Re: Draft for discussion: Project Tick General Public License v2.0 (only)
"M.samet Duman via License-discuss" <[email protected]> Fri, 23 Jan 2026 12:59:48 +0300
| Newsgroups | gmane.comp.licenses.open-source.general |
|---|---|
| Message-ID | <[email protected]> |
SGVsbG8gRGF2aWQsCgpUaGFuayB5b3UgZm9yIHRoZSB0aG91Z2h0ZnVsIGZlZWRiYWNrIOKAlCBp dOKAmXMgdmVyeSBoZWxwZnVsLgoKT24gdGhlIGNvbmNlcm4gYWJvdXQgdGhpcyBjcmVhdGluZyDi gJx0d28gbGljZW5zZXPigJ06ClRoZSBpbnRlbnQgaXMgZXhwbGljaXRseSB0byBtYWludGFpbiBh IHNpbmdsZSBsaWNlbnNlIHRleHQuClRoZSBFeHBsaWNpdCBOZXR3b3JrIFVzZSBOb3RpY2UgaXMg YSBsaWNlbnNvci1jb250cm9sbGVkCnRyaWdnZXIgd2l0aGluIHRoZSBzYW1lIGxpY2Vuc2UsIG5v dCBhbiBhbHRlcm5hdGl2ZSBsaWNlbnNlCm9yIHZhcmlhbnQuIEkgaGF2ZSByZWluZm9yY2VkIHRo aXMgYnkgc3RhdGluZyB0aGF0IFBULUdQTCB2Mgplc3RhYmxpc2hlcyBhIHNpbmdsZSBhbmQgdW5p Zm9ybSBzZXQgb2YgcmlnaHRzIGFuZCBvYmxpZ2F0aW9ucywKd2l0aCBjZXJ0YWluIG5ldHdvcmst cmVsYXRlZCBvYmxpZ2F0aW9ucyBhcHBseWluZyBvbmx5IHdoZW4KZXhwcmVzc2x5IGVuYWJsZWQu CgpPbiDigJx0aWdodGx5IGNvdXBsZWTigJ0gYmVpbmcgdmFndWU6CkkgYWdyZWUuIFRoYXQgcGhy YXNpbmcgaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGRlZmluaXRpb24gbm93CmZvbGxvd3MgYSBnZW5l cmFsIHJ1bGUgd2l0aCBhIGNsYXJpZnlpbmcsIG5vbi1leGhhdXN0aXZlIGluY2x1c2lvbiwKZm9y IGV4YW1wbGU6IOKAnFdpdGhvdXQgbGltaXRpbmcgdGhlIGdlbmVyYWxpdHkgb2YgdGhlIGZvcmVn b2luZywgdGhpcwppbmNsdWRlcyBjb25maWd1cmF0aW9uLCBpbnRlZ3JhdGlvbiwgb3IgZGVwbG95 bWVudCBjb21wb25lbnRzIHRoYXQKYXJlIHNwZWNpZmljYWxseSB3cml0dGVuIHRvIG1ha2UgdGhl IGNvdmVyZWQgV29yayBmdW5jdGlvbiBpbiBpdHMgaW50ZW5kZWQKb3BlcmF0aW9uYWwgY29udGV4 dC7igJ0gVGhlIGdvYWwgaXMgdG8gYmUgc2VydmljZS1hd2FyZSB3aXRob3V0IGFsbG93aW5nCkFH UEwtc3R5bGUgc3BpbGxvdmVyLgoKUmVnYXJkaW5nIHRoZSBBZmVyby1saWtlIGFzcGVjdHM6ClRo ZSBvdmVybGFwIGlzIGF0IHRoZSBwcm9ibGVtIGxldmVsLCBub3QgdGhlIG1lY2hhbmlzbS4gTmV0 d29yayBvcGVyYXRpb24KaXMgbmV2ZXIgdHJlYXRlZCBhcyBjb252ZXlhbmNlIGJ5IGRlZmF1bHQs IGlzIG9wdC1pbiwgYW5kIGlzIGxpbWl0ZWQgc3RyaWN0bHkgdG8Kc291cmNlIGF2YWlsYWJpbGl0 eSByYXRoZXIgdGhhbiBmdWxsIGNvcHlsZWZ0IHByb3BhZ2F0aW9uLgoKVGhlIGZ1bGwgY3VycmVu dCBkcmFmdCBvZiBQVC1HUEwgdjIgKG9ubHkpIGlzIG5vdCB5ZXQgcHVibGljbHkgcHVibGlzaGVk LiBJ4oCZbQppbnRlbnRpb25hbGx5IGtlZXBpbmcgZGlzY3Vzc2lvbiBmb2N1c2VkIG9uIHNwZWNp ZmljIG9wZXJhdGl2ZSBtZWNoYW5pc21zLApidXQgSeKAmW0gaGFwcHkgdG8gc2hhcmUgdGhlIGZ1 bGwgdGV4dCBpZiB0aGF0IHdvdWxkIGJlIHVzZWZ1bCBmb3IgZnVydGhlciByZXZpZXcuCgpCZXN0 IHJlZ2FyZHMsCk1laG1ldCBTYW1ldCBEdW1hbgpBdXRob3Igb2YgUHJvamVjdCBUaWNrCgotLS0K CkxpY2Vuc2UgdGV4dDoKClBST0pFQ1QgVElDSyBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFClZlcnNp b24gMiwgMiBGZWJydWFyeSAyMDI2CgpDb3B5cmlnaHQgKEMpIDIwMjYgUHJvamVjdCBUaWNrIDxo dHRwczovL3Byb2plY3R0aWNrLm9yZy8+CkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFu ZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwpvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1 dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KVGhpcyBpcyB0aGUgY2Fub25pY2FsIHRleHQg b2YgdGhlIFByb2plY3QgVGljayBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlLCBWZXJzaW9uIDIuIFdv cmtzIGxpY2Vuc2VkIHVuZGVyIHRoaXMgdGV4dCBhcmUgZ292ZXJuZWQKZXhjbHVzaXZlbHkgYnkg VmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCB1bmxlc3MgdGhlIGFwcGxpY2FibGUKY29weXJpZ2h0 IGhvbGRlciBleHBsaWNpdGx5IGF1dGhvcml6ZXMgdGhlIHVzZSBvZiBhbm90aGVyIHZlcnNpb24u CgpQcmVhbWJsZQoKVGhlIFByb2plY3QgVGljayBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGEg Y29weXJpZ2h0LWJhc2VkIGNvcHlsZWZ0CmxpY2Vuc2UgaW50ZW5kZWQgZm9yIHNvZnR3YXJlIHBy b2dyYW1zLCBhcyBkZXNpZ25hdGVkIGJ5IHRoZSBhcHBsaWNhYmxlCmNvcHlyaWdodCBob2xkZXIu IFVubGVzcyBleHByZXNzbHkgc3RhdGVkIG90aGVyd2lzZSwgdGhpcyBMaWNlbnNlCmFwcGxpZXMg dG8gdGhlIFdvcmsgc29sZWx5IGluIGl0cyBjYXBhY2l0eSBhcyBzb2Z0d2FyZS4KClRoaXMgTGlj ZW5zZSBpcyBkZXNpZ25lZCB0byBlbnN1cmUgdGhhdCByZWNpcGllbnRzIG9mIGEgY292ZXJlZCBX b3JrCmNhbiBlZmZlY3RpdmVseSBhY2Nlc3MsIHN0dWR5LCBtb2RpZnksIGFuZCBzaGFyZSB0aGF0 IFdvcmssIHdpdGhvdXQKYmVpbmcgc3ViamVjdGVkIHRvIHJlc3RyaWN0aW9ucyB0aGF0IHVuZGVy bWluZSB0aGUgcHJhY3RpY2FsIGV4ZXJjaXNlCm9mIHRob3NlIHJpZ2h0cy4KCkJ5IGFwcGx5aW5n IHRoaXMgTGljZW5zZSwgYSBjb3B5cmlnaHQgaG9sZGVyIGF1dGhvcml6ZXMgcmVjaXBpZW50cyB0 bwp1c2UsIG1vZGlmeSwgYW5kIGNvbnZleSB0aGUgV29yayB1bmRlciBhIGNvbnNpc3RlbnQgc2V0 IG9mIGNvbmRpdGlvbnMuCkFueSBwYXJ0eSB0aGF0IGNvbnZleXMgYSBjb3ZlcmVkIFdvcmsgbXVz dCBkbyBzbyBpbiBhIG1hbm5lciB0aGF0CnByZXNlcnZlcyB0aGUgc2FtZSByaWdodHMgYW5kIG9i bGlnYXRpb25zIGZvciBhbGwgZG93bnN0cmVhbSByZWNpcGllbnRzLgoKVGhpcyBMaWNlbnNlIHBs YWNlcyBwYXJ0aWN1bGFyIGVtcGhhc2lzIG9uIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlCldvcmsg aW4gZm9ybXMgc3VpdGFibGUgZm9yIG1vZGlmaWNhdGlvbiBhbmQgcmV1c2UuIFdoZXJlIGEgY292 ZXJlZCBXb3JrCmlzIGNvbnZleWVkIHRvZ2V0aGVyIHdpdGggaXRzIHByZWZlcnJlZCBmb3JtIGZv ciBtb2RpZmljYXRpb24sIGFjY2Vzcwp0byB0aGF0IGZvcm0gbXVzdCBiZSBwcm92aWRlZCBpbiBh IG1hbm5lciBjb25zaXN0ZW50IHdpdGggdGhpcyBMaWNlbnNlLgpBIGNvcHkgb2YgdGhpcyBMaWNl bnNlIG11c3QgYWNjb21wYW55IGFsbCBjb252ZXlhbmNlcyBvZiB0aGUgV29yay4KClRoZSBMaWNl bnNlIGFsc28gZGVmaW5lcyB0aGUgc2NvcGUgb2YgcGVybWl0dGVkIHVzZSwgbW9kaWZpY2F0aW9u LCBhbmQKY29udmV5YW5jZSBpbiBhIGNsZWFyIGFuZCBwcmVkaWN0YWJsZSBtYW5uZXIsIHdoaWxl IGRpc2NsYWltaW5nCndhcnJhbnRpZXMgZm9yIHRoZSBXb3JrLiBVbmxlc3MgdGhlIGNvcHlyaWdo dCBob2xkZXIgZXhwbGljaXRseSBzdGF0ZXMKb3RoZXJ3aXNlLCB0aGlzIExpY2Vuc2UgZG9lcyBu b3QgaW1wb3NlIGFueSBvYmxpZ2F0aW9uIHRvIGRpc3RyaWJ1dGUKZnV0dXJlIHZlcnNpb25zIG9m IGEgV29yayB1bmRlciB0aGUgc2FtZSB0ZXJtcy4KClNvbWUgZGV2aWNlcyBvciBkZXBsb3ltZW50 IGVudmlyb25tZW50cyBtYXkgaW1wb3NlIHRlY2huaWNhbCBvciBkZXNpZ24KY29uc3RyYWludHMg dGhhdCBhZmZlY3QgdGhlIGV4ZWN1dGlvbiBvZiBtb2RpZmllZCB2ZXJzaW9ucyBvZiBhIFdvcmsu ClRoZSBvYmxpZ2F0aW9ucyBjcmVhdGVkIGJ5IHRoaXMgTGljZW5zZSBhcmlzZSBleGNsdXNpdmVs eSBmcm9tIGl0cwpvcGVyYXRpdmUgcHJvdmlzaW9ucyBhbmQgYXJlIGluZGVwZW5kZW50IG9mIHN1 Y2ggZXh0ZXJuYWwgY29uc3RyYWludHMuCgpFYWNoIGNvbnRyaWJ1dG9yIHRvIGEgY292ZXJlZCBX b3JrIGdyYW50cyBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwKcm95YWx0eS1mcmVlIHBhdGVu dCBsaWNlbnNlIGxpbWl0ZWQgdG8gd2hhdCBpcyBuZWNlc3NhcnkgdG8gZXhlcmNpc2UKdGhlIHJp Z2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSB3aXRoIHJlc3BlY3QgdG8gdGhhdCBjb250 cmlidXRvcuKAmXMKY29udHJpYnV0aW9ucy4KClRoaXMgTGljZW5zZSBwcmVzZXJ2ZXMgdGhlIGNv cmUgZnJlZWRvbXMgYW5kIG9ibGlnYXRpb25zIGNvbW1vbmx5CmFzc29jaWF0ZWQgd2l0aCBlc3Rh Ymxpc2hlZCBjb3B5bGVmdCBsaWNlbnNlcywgd2hpbGUgZXhwbGljaXRseQpleHRlbmRpbmcgdGhv c2UgcHJpbmNpcGxlcyB0byBuZXR3b3JrLWJhc2VkIG9wZXJhdGlvbiwgbWFuYWdlZApkZXBsb3lt ZW50IGVudmlyb25tZW50cywgYW5kIHNlcnZpY2Utb3JpZW50ZWQgdXNlIGNhc2VzIHRoYXQgYXJl Cm5vdCBjb25zaXN0ZW50bHkgYWRkcmVzc2VkIGJ5IHRyYWRpdGlvbmFsIGRpc3RyaWJ1dGlvbi1m b2N1c2VkIG1vZGVscy4KCkluIHByYWN0aWNhbCB0ZXJtcywgdGhpcyBMaWNlbnNlIGlzIGludGVu ZGVkIHRvIGJlIHVuZGVyc3RhbmRhYmxlCmFuZCB1c2FibGUgYnkgaW5kaXZpZHVhbCBkZXZlbG9w ZXJzLCBzbWFsbCB0ZWFtcywgYW5kIGNvbW11bml0eQpwcm9qZWN0cywgbm90IG9ubHkgYnkgbGVn YWwgZXhwZXJ0cy4gSXQgZG9lcyBub3QgcmVxdWlyZSBwZXJtaXNzaW9uCnRvIHVzZSBvciBzdHVk eSB0aGUgV29yaywgYW5kIGl0IGRvZXMgbm90IHJlc3RyaWN0IHByaXZhdGUsCmV4cGVyaW1lbnRh bCwgb3Igbm9uLXB1YmxpYyB1c2UuIEl0cyBvYmxpZ2F0aW9ucyBhcHBseSBvbmx5IHdoZW4KdGhl IFdvcmsgaXMgc2hhcmVkIHdpdGggb3RoZXJzIG9yIHVzZWQgdG8gcHJvdmlkZSBpdHMgZnVuY3Rp b25hbGl0eQp0byB0aGUgcHVibGljLgoKVGhpcyBMaWNlbnNlIGVzdGFibGlzaGVzIGEgc2luZ2xl IGFuZCB1bmlmb3JtIHNldCBvZiByaWdodHMgYW5kCm9ibGlnYXRpb25zLiBDZXJ0YWluIG9ibGln YXRpb25zIHJlbGF0ZWQgdG8gbmV0d29yay1iYXNlZCBvcGVyYXRpb24KYXBwbHkgb25seSB3aGVy ZSB0aGUgY29weXJpZ2h0IGhvbGRlciBoYXMgZXhwcmVzc2x5IGVuYWJsZWQgdGhlbQpieSBhbiBF eHBsaWNpdCBOZXR3b3JrIFVzZSBOb3RpY2UsIGFzIGRlZmluZWQgaW4gdGhpcyBMaWNlbnNlLgoK VGhlIGJpbmRpbmcgdGVybXMgZ292ZXJuaW5nIHVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgY29udmV5 YW5jZSBvZgpjb3ZlcmVkIFdvcmtzIGFyZSBzZXQgZm9ydGggYmVsb3cuCgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBURVJNUyBB TkQgQ09ORElUSU9OUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0tLS0tLS0tLS0t LS0tLS0gUEFSVCBJIOKAlCBDT1JFIFJJR0hUUyBBTkQgT0JMSUdBVElPTlMgLS0tLS0tLS0tLS0t LS0tLS0tLQpUaGUgcHJvdmlzaW9ucyBvZiB0aGlzIFBhcnQgZGVmaW5lIHRoZSBlc3NlbnRpYWwg cGVybWlzc2lvbnMsIGNvbmRpdGlvbnMsIC0KYW5kIG9ibGlnYXRpb25zIG9mIHRoaXMgTGljZW5z ZS4gQ29tcGxpYW5jZSB3aXRoIHRoaXMgUGFydCBpcyBtYW5kYXRvcnkgZm9yCmFueSB1c2UsIG1v ZGlmaWNhdGlvbiwgb3BlcmF0aW9uLCBvciBjb252ZXlhbmNlIG9mIGEgY292ZXJlZCBXb3JrLiAt LS0tLS0tLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkkuIERlZmluaXRpb25zLgoKIlRoaXMgTGljZW5z ZSIgcmVmZXJzIHRvIHRoZSBQcm9qZWN0IFRpY2sgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKVmVy c2lvbiAyLgoKIkNvbXBhdGlibGUgTGljZW5zZSIgbWVhbnMgYSBsaWNlbnNlIHRoYXQgaXMgY29t cGF0aWJsZSB3aXRoIHRoaXMKTGljZW5zZSB1bmRlciBhcHBsaWNhYmxlIGNvcHlyaWdodCBsYXcs IHdpdGhvdXQgaW1wb3NpbmcgYWRkaXRpb25hbApyZXN0cmljdGlvbnMgb24gdGhlIGV4ZXJjaXNl IG9mIHRoZSByaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UuCgoiQ29weXJpZ2h0IiBy ZWZlcnMgdG8gbGF3cyBzaW1pbGFyIHRvIGNvcHlyaWdodCB0aGF0IGFwcGx5IHRvIG90aGVyCnR5 cGVzIG9mIFdvcmtzLCBzdWNoIGFzIHNlbWljb25kdWN0b3IgY2hpcHMuCgoiV29yayIgbWVhbnMg YSBzb2Z0d2FyZSBwcm9ncmFtIGxpY2Vuc2VkIHVuZGVyIHRoaXMgTGljZW5zZS4KRWFjaCBsaWNl bnNlZSBpcyByZWZlcnJlZCB0byBhcyAieW91Ii4gIlJlY2lwaWVudHMiIG1heSBiZQppbmRpdmlk dWFscyBvciBvcmdhbml6YXRpb25zLgoKVG8gIm1vZGlmeSIgYSBXb3JrIG1lYW5zIHRvIGNvcHkg ZnJvbSBvciBhZGFwdCBhbGwgb3IgcGFydCBvZiB0aGUKV29yayBpbiBhIGZhc2hpb24gcmVxdWly aW5nIGNvcHlyaWdodCBwZXJtaXNzaW9uLCBvdGhlciB0aGFuIHRoZQptYWtpbmcgb2YgYW4gZXhh Y3QgY29weS4gIFRoZSByZXN1bHRpbmcgV29yayBpcyBjYWxsZWQgYSAibW9kaWZpZWQKdmVyc2lv biIgb2YgdGhlIGVhcmxpZXIgV29yayBvciBhIFdvcmsgImJhc2VkIG9uIiB0aGUgZWFybGllciBX b3JrLgoKVG8gImNvbnZleSIgYSBXb3JrIG1lYW5zIGFueSBraW5kIG9mIHByb3BhZ2F0aW9uIHRo YXQgZW5hYmxlcyBvdGhlcgpwYXJ0aWVzIHRvIG1ha2Ugb3IgcmVjZWl2ZSBjb3BpZXMgb2YgdGhl IFdvcmsuIE1lcmUgaW50ZXJhY3Rpb24gd2l0aAphIHVzZXIgdGhyb3VnaCBhIGNvbXB1dGVyIG5l dHdvcmssIHdpdGhvdXQgdGhlIHRyYW5zZmVyIG9mIGEgY29weSwKZG9lcyBub3QgYnkgaXRzZWxm IGNvbnN0aXR1dGUgY29udmV5aW5nLgoKIkV4cGxpY2l0IE5ldHdvcmsgVXNlIE5vdGljZSIgbWVh bnMgYSBjbGVhciBhbmQgcHJvbWluZW50IG5vdGljZQpwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBo b2xkZXIgc3RhdGluZyB0aGF0IG9wZXJhdGlvbiBvZiB0aGUgV29yawp0aHJvdWdoIGEgY29tcHV0 ZXIgbmV0d29yayBzaGFsbCBiZSB0cmVhdGVkIGFzIGNvbnZleWluZyBmb3IgdGhlCnB1cnBvc2Vz IG9mIHNvdXJjZSBhdmFpbGFiaWxpdHkuCgpUbyAib3BlcmF0ZSIgYSBXb3JrIG1lYW5zIHRvIHJ1 biwgZGVwbG95LCBvciBtYWtlIGZ1bmN0aW9uYWwgdXNlCm9mIHRoZSBXb3JrIGZvciB0aGUgcHJp bWFyeSBwdXJwb3NlIG9mIHByb3ZpZGluZyBpdHMgZnVuY3Rpb25hbGl0eQpvciBvdXRwdXQgdG8g dGhpcmQgcGFydGllcyBhcyBhIHNlcnZpY2Ugb3Igc3lzdGVtLCB3aGV0aGVyIGRpcmVjdGx5Cm9y IGluZGlyZWN0bHksIGluY2x1ZGluZyB0aHJvdWdoIGEgY29tcHV0ZXIgbmV0d29yaywgd2hlcmUg c3VjaCBwYXJ0aWVzCmFyZSBub3QgdW5kZXIgdGhlIGRpcmVjdCBjb250cm9sIG9mIHRoZSBvcGVy YXRvci4KCkEgIkxpYnJhcnkgV29yayIgaXMgYSBXb3JrIHRoYXQgaXMgZGVzaWduZWQgdG8gcHJv dmlkZSByZXVzYWJsZQpmdW5jdGlvbmFsaXR5IGludGVuZGVkIHRvIGJlIGxpbmtlZCwgaW1wb3J0 ZWQsIG9yIG90aGVyd2lzZSBjb21iaW5lZAp3aXRoIG90aGVyIGluZGVwZW5kZW50IFdvcmtzLCB3 aXRob3V0LCBieSBpdHMgbmF0dXJlLCBmb3JtaW5nIGEgc2luZ2xlCkNvbWJpbmVkIFdvcmsgbWVy ZWx5IGJ5IGJlaW5nIHByZXNlbnQuCgoiVXNlciBQcm9kdWN0IiBtZWFucyAoMSkgYW55IHRhbmdp YmxlIHBlcnNvbmFsIHByb3BlcnR5IHdoaWNoIGlzCm5vcm1hbGx5IHVzZWQgZm9yIHBlcnNvbmFs LCBmYW1pbHksIG9yIGRvbWVzdGljIHB1cnBvc2VzLCBhbmQgKDIpCmFueXRoaW5nIGRlc2lnbmVk IG9yIHNvbGQgZm9yIGluY29ycG9yYXRpb24gaW50byBhIGR3ZWxsaW5nLiBJbgpkZXRlcm1pbmlu ZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIFVzZXIgUHJvZHVjdCwgZG91YnRmdWwgY2FzZXMgc2hh bGwKYmUgcmVzb2x2ZWQgaW4gZmF2b3Igb2YgY292ZXJhZ2UuIEZvciBhIHBhcnRpY3VsYXIgcHJv ZHVjdCByZWNlaXZlZApieSBhIHBhcnRpY3VsYXIgdXNlciwgIm5vcm1hbGx5IHVzZWQiIHJlZmVy cyB0byB0aGUgdHlwaWNhbCBvciBjb21tb24KdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwg cmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzIG9mIHRoZSBwYXJ0aWN1bGFyCnVzZXIgb3IgdGhlIHdh eSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyIGFjdHVhbGx5IHVzZXMsIGV4cGVjdHMKdG8g dXNlLCBvciBpcyBleHBlY3RlZCB0byB1c2UgdGhlIHByb2R1Y3QuCgoiSW5zdGFsbGF0aW9uIElu Zm9ybWF0aW9uIiBmb3IgYSBVc2VyIFByb2R1Y3QgbWVhbnMgYW55IG1ldGhvZHMsCnByb2NlZHVy ZXMsIGF1dGhvcml6YXRpb24ga2V5cywgb3Igb3RoZXIgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8K aW5zdGFsbCBhbmQgcnVuIG1vZGlmaWVkIHZlcnNpb25zIG9mIGEgY292ZXJlZCBXb3JrIGluIHRo YXQgVXNlcgpQcm9kdWN0IGZyb20gYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGl0cyBDb3JyZXNwb25k aW5nIFJlc291cmNlLiBUaGUKaW5mb3JtYXRpb24gbXVzdCBiZSBzdWZmaWNpZW50IHRvIGVuc3Vy ZSB0aGF0IHRoZSBjb250aW51ZWQgb3BlcmF0aW9uCm9mIHRoZSBtb2RpZmllZCBvYmplY3QgY29k ZSBpcyBub3QgcHJldmVudGVkIG9yIGludGVyZmVyZWQgd2l0aCBzb2xlbHkKYmVjYXVzZSB0aGUg V29yayBoYXMgYmVlbiBtb2RpZmllZC4KCkEgIkNvbWJpbmVkIFdvcmsiIGlzIGEgV29yayBwcm9k dWNlZCBieSBsaW5raW5nLCBpbXBvcnRpbmcsIG9yCm90aGVyd2lzZSBjb21iaW5pbmcgYSBMaWJy YXJ5IFdvcmsgd2l0aCBhbm90aGVyIGluZGVwZW5kZW50IFdvcmssCndoZXRoZXIgc3RhdGljYWxs eSBvciBkeW5hbWljYWxseS4KCkFuIGludGVyYWN0aXZlIHVzZXIgaW50ZXJmYWNlIGRpc3BsYXlz ICJBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzIgp0byB0aGUgZXh0ZW50IHRoYXQgaXQgaW5jbHVk ZXMgYSBjb252ZW5pZW50IGFuZCBwcm9taW5lbnRseSB2aXNpYmxlCmZlYXR1cmUgdGhhdCAoMSkg ZGlzcGxheXMgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSwgYW5kICgyKQp0ZWxscyB0 aGUgdXNlciB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGUgV29yayAoZXhjZXB0IHRv IHRoZQpleHRlbnQgdGhhdCB3YXJyYW50aWVzIGFyZSBwcm92aWRlZCksIHRoYXQgbGljZW5zZWVz IG1heSBjb252ZXkgdGhlCldvcmsgdW5kZXIgdGhpcyBMaWNlbnNlLCBhbmQgaG93IHRvIHZpZXcg YSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIElmCnRoZSBpbnRlcmZhY2UgcHJlc2VudHMgYSBsaXN0 IG9mIHVzZXIgY29tbWFuZHMgb3Igb3B0aW9ucywgc3VjaCBhcyBhCm1lbnUsIGEgcHJvbWluZW50 IGl0ZW0gaW4gdGhlIGxpc3QgbWVldHMgdGhpcyBjcml0ZXJpb24uCgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCklJLiBTb3VyY2UgQ29kZSBhbmQgQ29ycmVzcG9uZGluZyBSZXNvdXJjZS4KCiJTb3VyY2Ug Q29kZSIgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSBXb3JrIGZvciBtYWtpbmcKbW9k aWZpY2F0aW9ucyB0byBpdC4gSXQgaW5jbHVkZXMgYWxsIGZpbGVzLCBkZWZpbml0aW9ucywgc2Ny aXB0cywKYnVpbGQgaW5zdHJ1Y3Rpb25zLCBhbmQgbWF0ZXJpYWxzIG5lY2Vzc2FyeSB0byB1bmRl cnN0YW5kLCBtb2RpZnksCmJ1aWxkLCBpbnN0YWxsLCBhbmQgcnVuIHRoZSBXb3JrIGluIHByYWN0 aWNlLCBpbiBhIGZvcm0gdGhhdCBpcwpyZWFzb25hYmx5IHN1aXRhYmxlIGZvciBlZGl0aW5nLiAi T2JqZWN0IENvZGUiIG1lYW5zIGFueSBmb3JtIG9mCnRoZSBXb3JrIHRoYXQgaXMgbm90IFNvdXJj ZSBDb2RlLiBEZWxpYmVyYXRlIG9iZnVzY2F0aW9uLCBtaW5pZmljYXRpb24sCmNvZGUgZ2VuZXJh dGlvbiBvdXRwdXQgd2l0aG91dCB0aGUgY29ycmVzcG9uZGluZyBodW1hbi1yZWFkYWJsZSBpbnB1 dCwKb3IgYW55IG90aGVyIHRyYW5zZm9ybWF0aW9uIHRoYXQgbWF0ZXJpYWxseSBpbXBhaXJzIHRo ZSByZWFkYWJpbGl0eSwKYXVkaXRhYmlsaXR5LCBvciBtb2RpZmlhYmlsaXR5IG9mIHRoZSBXb3Jr IHNoYWxsIG5vdCBiZSBjb25zaWRlcmVkClNvdXJjZSBDb2RlLiAiU3RhbmRhcmQgSW50ZXJmYWNl IiByZWZlcnMgdG8gZWl0aGVyIGEgZm9ybWFsIHN0YW5kYXJkCmRlZmluZWQgYnkgYSByZWNvZ25p emVkIHN0YW5kYXJkcyBvcmdhbml6YXRpb24sIG9yLCB3aGVyZSBhcHBsaWNhYmxlLAphbiBpbnRl cmZhY2UgdGhhdCBpcyB3aWRlbHkgdXNlZCBhbmQgcHVibGljbHkgZG9jdW1lbnRlZCBhbW9uZwpw cmFjdGl0aW9uZXJzIHdvcmtpbmcgaW4gdGhlIHJlbGV2YW50IGxhbmd1YWdlLCBwbGF0Zm9ybSwg b3IKZWNvc3lzdGVtLiBUaGUgIlN5c3RlbSBMaWJyYXJpZXMiIG9mIGFuIGV4ZWN1dGFibGUgV29y ayBpbmNsdWRlCmNvbXBvbmVudHMgdGhhdCAoMSkgYXJlIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhl IG5vcm1hbCBwYWNrYWdpbmcKb2YgYSBNYWluIENvbXBvbmVudCwgYnV0IGFyZSBub3QgcGFydCBv ZiB0aGUgV29yayBpdHNlbGYsIGFuZCAoMikKc2VydmUgb25seSB0byBlbmFibGUgdXNlIG9mIHRo ZSBXb3JrIHdpdGggdGhhdCBNYWluIENvbXBvbmVudCBvcgp3aXRoIGFuIGltcGxlbWVudGF0aW9u IG9mIGEgU3RhbmRhcmQgSW50ZXJmYWNlLiBJbiB0aGlzIGNvbnRleHQsCmEgIk1haW4gQ29tcG9u ZW50IiByZWZlcnMgdG8gYSBrZXJuZWwsIG9wZXJhdGluZyBzeXN0ZW0sIHdpbmRvdwpzeXN0ZW0s IGNvbXBpbGVyLCBydW50aW1lLCBvciBvYmplY3QgY29kZSBpbnRlcnByZXRlciB1c2VkIHRvIHJ1 bgp0aGUgV29yay4gRm9yIGEgV29yayBjb252ZXllZCBpbiBvYmplY3QgY29kZSBvciBvdGhlciBu b24tc291cmNlIGZvcm0sCiJDb3JyZXNwb25kaW5nIFJlc291cmNlIiBtZWFucyBhbGwgU291cmNl IENvZGUgcmVxdWlyZWQgdG8gZ2VuZXJhdGUsCmluc3RhbGwsIHJ1biwgYW5kIG1vZGlmeSB0aGUg V29yaywgaW5jbHVkaW5nIGJ1aWxkIHNjcmlwdHMsIGludGVyZmFjZQpkZWZpbml0aW9ucywgYW5k IHN1cHBvcnRpbmcgY29kZSBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gZW5hYmxlIHRoZQpnZW5l cmF0aW9uLCBpbnN0YWxsYXRpb24sIG9wZXJhdGlvbiwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZSBX b3JrLgpXaXRob3V0IGxpbWl0aW5nIHRoZSBnZW5lcmFsaXR5IG9mIHRoZSBmb3JlZ29pbmcsIHRo aXMgaW5jbHVkZXMKY29uZmlndXJhdGlvbiwgaW50ZWdyYXRpb24sIG9yIGRlcGxveW1lbnQgY29t cG9uZW50cyB0aGF0IGFyZQpzcGVjaWZpY2FsbHkgd3JpdHRlbiB0byBtYWtlIHRoZSBjb3ZlcmVk IFdvcmsgZnVuY3Rpb24gaW4gaXRzCmludGVuZGVkIG9wZXJhdGlvbmFsIGNvbnRleHQuIFRoZSBD b3JyZXNwb25kaW5nIFJlc291cmNlIGRvZXMgbm90CmluY2x1ZGUgU3lzdGVtIExpYnJhcmllcywg Z2VuZXJhbC1wdXJwb3NlIGRldmVsb3BtZW50IHRvb2xzLCBvcgp0aGlyZC1wYXJ0eSBjb21wb25l bnRzIHRoYXQgYXJlIG5vdCBkZXJpdmVkIGZyb20gdGhlIFdvcmsgYW5kIGFyZQpub3QgcmVxdWly ZWQgZm9yIGl0cyBtb2RpZmljYXRpb24gb3IgdGhlIGV4ZXJjaXNlIG9mIHJpZ2h0cyBncmFudGVk CnVuZGVyIHRoaXMgTGljZW5zZS4gQW55IHBvcnRpb24gb2YgdGhlIFdvcmsgdGhhdCBpcyBsaWNl bnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UgbXVzdCByZW1haW4gbGljZW5zZWQgdW5kZXIgdGhpcyBM aWNlbnNlLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QKcmVxdWlyZSByZWxpY2Vuc2luZyBvZiBpbmRl cGVuZGVudCB0aGlyZC1wYXJ0eSBjb21wb25lbnRzLiBGb3IgYSBXb3JrCmNvbnZleWVkIGluIFNv dXJjZSBDb2RlIGZvcm0sIHRoZSBTb3VyY2UgQ29kZSBpdHNlbGYgY29uc3RpdHV0ZXMgdGhlCkNv cnJlc3BvbmRpbmcgUmVzb3VyY2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCklJSS4gVHJhbnNtaXNz aW9uIG9mIE1vZGlmaWVkIFNvdXJjZSBWZXJzaW9ucy4KCllvdSBtYXkgY29udmV5IGEgV29yayBi YXNlZCBvbiB0aGUgV29yaywgb3IgbW9kaWZpY2F0aW9ucyBkZXJpdmVkIGZyb20KdGhlIFdvcmss IGluIFNvdXJjZSBDb2RlIGZvcm0gdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gNSwgcHJvdmlk ZWQKdGhhdCB5b3UgYWxzbyBjb21wbHkgd2l0aCBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgoKICBhKSBUaGUgbW9kaWZpZWQgV29yayBtdXN0IGNvbnRhaW4gcHJvbWluZW50IG5vdGlj ZXMgc3RhdGluZyB0aGF0IHlvdQogICAgIGhhdmUgbW9kaWZpZWQgaXQsIHRvZ2V0aGVyIHdpdGgg dGhlIGRhdGUgb2YgZWFjaCBzdWNoIG1vZGlmaWNhdGlvbi4KCiAgYikgVGhlIG1vZGlmaWVkIFdv cmsgbXVzdCBjb250YWluIGNsZWFyIG5vdGljZXMgc3RhdGluZyB0aGF0IGl0IGlzCiAgICAgbGlj ZW5zZWQgdW5kZXIgdGhpcyBMaWNlbnNlLCB0b2dldGhlciB3aXRoIGFueSBhcHBsaWNhYmxlIGFk ZGl0aW9uYWwKICAgICBwZXJtaXNzaW9ucyBleHByZXNzbHkgcGVybWl0dGVkIHVuZGVyIHRoaXMg TGljZW5zZS4gU3VjaCBub3RpY2VzIG1heQogICAgIHJlcGxhY2Ugb3IgdXBkYXRlIGV4aXN0aW5n IG5vdGljZXMgdG8gYWNjdXJhdGVseSByZWZsZWN0IHRoZSBtb2RpZmllZAogICAgIHN0YXR1cyBv ZiB0aGUgV29yay4KCiAgYykgWW91IG11c3QgbGljZW5zZSB0aGUgbW9kaWZpZWQgV29yaywgYXMg YSB3aG9sZSwgdW5kZXIgdGhpcyBMaWNlbnNlCiAgICAgdG8gYW55IHJlY2lwaWVudCB3aG8gcmVj ZWl2ZXMgYSBjb3B5IG9mIGl0LiBUaGlzIExpY2Vuc2UsIGFuZCBhbnkKICAgICBhcHBsaWNhYmxl IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgcGVybWl0dGVkIGJ5IGl0LCBzaGFsbCB0aGVyZWZvcmUK ICAgICBhcHBseSB0byB0aGUgbW9kaWZpZWQgV29yayBhbmQgYWxsIG9mIGl0cyBwYXJ0cywgcmVn YXJkbGVzcyBvZiBob3cgdGhleQogICAgIGFyZSBwYWNrYWdlZCBvciBkaXN0cmlidXRlZC4KClRo aXMgTGljZW5zZSBkb2VzIG5vdCBwZXJtaXQgcmVsaWNlbnNpbmcgb2YgdGhlIG1vZGlmaWVkIFdv cmsgdW5kZXIKZGlmZmVyZW50IHRlcm1zLiBIb3dldmVyLCB0aGlzIHByb3Zpc2lvbiBkb2VzIG5v dCBpbnZhbGlkYXRlIHBlcm1pc3Npb25zCnRoYXQgeW91IG1heSBoYXZlIG9idGFpbmVkIHNlcGFy YXRlbHkgYW5kIGluZGVwZW5kZW50bHkgZnJvbSB0aGUKY29weXJpZ2h0IGhvbGRlcnMgb2YgcG9y dGlvbnMgb2YgdGhlIFdvcmsuCgogIGQpIElmIHRoZSBtb2RpZmllZCBXb3JrIGluY2x1ZGVzIGlu dGVyYWN0aXZlIHVzZXIgaW50ZXJmYWNlcywgc3VjaAogICAgIGludGVyZmFjZXMgbXVzdCBkaXNw bGF5IEFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXMsIHVubGVzcyB0aGUgb3JpZ2luYWwKICAgICBX b3JrIGRpZCBub3QgaW5jbHVkZSBzdWNoIG5vdGljZXMgYW5kIHRoZSBuYXR1cmUgb2YgdGhlIGlu dGVyZmFjZSBtYWtlcwogICAgIHRoZWlyIGRpc3BsYXkgaW1wcmFjdGljYWwgb3IgdW5yZWFzb25h YmxlLgoKICBlKSBJZiB0aGUgbW9kaWZpZWQgV29yayBpcyBhIExpYnJhcnkgV29yaywgdGhlIExp YnJhcnkgV29yayBpdHNlbGYgbXVzdAogICAgIHJlbWFpbiBsaWNlbnNlZCB1bmRlciB0aGlzIExp Y2Vuc2UuIExpbmtpbmcsIGltcG9ydGluZywgb3Igb3RoZXJ3aXNlCiAgICAgdXNpbmcgYSBMaWJy YXJ5IFdvcmsgaW4gY29tYmluYXRpb24gd2l0aCBvdGhlciBpbmRlcGVuZGVudCBXb3JrcyBkb2Vz CiAgICAgbm90IHJlbW92ZSBvciBhbHRlciB0aGUgb2JsaWdhdGlvbnMgaW1wb3NlZCBieSB0aGlz IExpY2Vuc2Ugb24gdGhlCiAgICAgTGlicmFyeSBXb3JrIGl0c2VsZiwgbm9yIGRvZXMgaXQgZ3Jh bnQgcGVybWlzc2lvbiB0byByZWxpY2Vuc2UgdGhlCiAgICAgTGlicmFyeSBXb3JrIHVuZGVyIGRp ZmZlcmVudCB0ZXJtcy4KCkEgY29tcGlsYXRpb24gb2YgYSBjb3ZlcmVkIFdvcmsgd2l0aCBvdGhl ciBzZXBhcmF0ZSBhbmQgaW5kZXBlbmRlbnQKV29ya3MgdGhhdCBhcmUgbm90LCBieSB0aGVpciBu YXR1cmUsIGV4dGVuc2lvbnMgb2YgdGhlIGNvdmVyZWQgV29yayBhbmQKdGhhdCBhcmUgbm90IGNv bWJpbmVkIHdpdGggaXQgdG8gZm9ybSBhIHNpbmdsZSB1bmlmaWVkIFdvcmsgaXMgcmVmZXJyZWQK dG8gYXMgYW4gImFnZ3JlZ2F0ZSIuIFRoZSBpbmNsdXNpb24gb2YgYSBjb3ZlcmVkIFdvcmsgaW4g YW4gYWdncmVnYXRlCmRvZXMgbm90IGNhdXNlIHRoaXMgTGljZW5zZSB0byBhcHBseSB0byB0aGUg b3RoZXIgV29ya3MgaW4gdGhlIGFnZ3JlZ2F0ZSwKcHJvdmlkZWQgdGhhdCB0aGUgY29tcGlsYXRp b24gYW5kIGl0cyBjb252ZXlhbmNlIGRvIG5vdCBpbXBvc2UKYWRkaXRpb25hbCByZXN0cmljdGlv bnMgb24gdGhlIHJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSB3aXRoCnJlc3BlY3Qg dG8gdGhlIGNvdmVyZWQgV29yay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSVYuIFRyYW5zbWlzc2lv biBvZiBOb24tU291cmNlIEZvcm1hdHMuCgpGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgU2VjdGlv biwgIk5ldHdvcmsgSW50ZXJhY3Rpb24iIG1lYW5zIG9wZXJhdGlvbgpvZiBhIFdvcmsgdGhyb3Vn aCBhIGNvbXB1dGVyIG5ldHdvcmsgcHJpbWFyaWx5IGZvciB0aGUgcHVycG9zZSBvZgpwcm92aWRp bmcgaXRzIGZ1bmN0aW9uYWxpdHkgb3Igb3V0cHV0IHRvIHRoaXJkIHBhcnRpZXMsIHJlZ2FyZGxl c3Mgb2YKd2hldGhlciBhIGNvcHkgb2YgdGhlIFdvcmsgaXMgdHJhbnNmZXJyZWQuCgpUaGlzIHBy b3Zpc2lvbiBpcyBub3QgaW50ZW5kZWQgdG8gZGlzY291cmFnZSBsZWdpdGltYXRlIHNlcnZpY2UK ZGVwbG95bWVudCwgZXhwZXJpbWVudGF0aW9uLCBvciBjb21tdW5pdHktaG9zdGVkIHVzZSBvZiBj b3ZlcmVkCldvcmtzLiBJdHMgcHVycG9zZSBpcyBzb2xlbHkgdG8gZW5zdXJlIHRoYXQgcmVjaXBp ZW50cyBpbnRlcmFjdGluZwp3aXRoIGEgY292ZXJlZCBXb3JrIHRocm91Z2ggYSBuZXR3b3JrIGFy ZSBhZmZvcmRlZCB0aGUgc2FtZSBwcmFjdGljYWwKZnJlZWRvbXMgdG8gYWNjZXNzLCBzdHVkeSwg YW5kIG1vZGlmeSB0aGUgV29yayBhcyByZWNpcGllbnRzIHdobwpyZWNlaXZlIGNvcGllcyB0aHJv dWdoIHRyYWRpdGlvbmFsIGRpc3RyaWJ1dGlvbi4KCkluIHBhcnRpY3VsYXIsIHRoaXMgTGljZW5z ZSBkb2VzIG5vdCByZXF1aXJlIGRpc2Nsb3N1cmUgb2YgdW5yZWxhdGVkCnN5c3RlbXMsIGluZGVw ZW5kZW50IHNlcnZpY2VzLCBvciBwcm9wcmlldGFyeSBpbmZyYXN0cnVjdHVyZSB0aGF0CmFyZSBu b3QgZGVyaXZlZCBmcm9tIHRoZSBjb3ZlcmVkIFdvcmsgaXRzZWxmLgoKT3BlcmF0aW5nIGEgY292 ZXJlZCBXb3JrIHRocm91Z2ggTmV0d29yayBJbnRlcmFjdGlvbiBwcmltYXJpbHkgZm9yIHRoZQpw dXJwb3NlIG9mIHByb3ZpZGluZyBpdHMgZnVuY3Rpb25hbGl0eSBvciBvdXRwdXQgdG8gdGhlIHB1 YmxpYyBtYXkgYmUKdHJlYXRlZCBhcyBjb252ZXlpbmcgdGhlIFdvcmsgd2hlcmUgdGhlIGNvcHly aWdodCBob2xkZXIgaGFzIGV4cHJlc3NseQpyZXF1aXJlZCBzdWNoIHRyZWF0bWVudCBieSBhbiBl eHBsaWNpdCBub3RpY2Ugc29sZWx5IGZvciB0aGUgcHVycG9zZXMKb2YgdHJpZ2dlcmluZyB0aGUg c291cmNlIGF2YWlsYWJpbGl0eSBvYmxpZ2F0aW9ucyBzZXQgZm9ydGggaW4gdGhpcwpMaWNlbnNl LiBUaGlzIGRvZXMgbm90IGluY2x1ZGUgaW50ZXJuYWwsIHByaXZhdGUsIHRlc3RpbmcsIGRldmVs b3BtZW50LApvciBpbmNpZGVudGFsIHVzZXMgdGhhdCBkbyBub3QgcHJpbWFyaWx5IHByb3ZpZGUg dGhlIFdvcmvigJlzIGZ1bmN0aW9uYWxpdHkKdG8gdGhlIHB1YmxpYy4gSW4gYWNjb3JkYW5jZSB3 aXRoIFNlY3Rpb25zIDQgYW5kIDUsIHlvdSBtYXkgY29udmV5IGEKY292ZXJlZCBXb3JrIGluIG9i amVjdCBjb2RlIG9yIG90aGVyIG5vbi1zb3VyY2UgZm9ybSwgcHJvdmlkZWQgdGhhdCB0aGUKQ29y cmVzcG9uZGluZyBSZXNvdXJjZSBvZiB0aGUgV29yayBpcyBtYWRlIGF2YWlsYWJsZSB1bmRlciB0 aGUgdGVybXMgb2YKdGhpcyBMaWNlbnNlIGluIGEgbWFjaGluZS1yZWFkYWJsZSBmb3JtLiBUaGUg Q29ycmVzcG9uZGluZyBSZXNvdXJjZSBtdXN0CmJlIG1hZGUgYXZhaWxhYmxlIGluIGEgbWFubmVy IHRoYXQgaXMgbm8gbGVzcyBhY2Nlc3NpYmxlLCB0aW1lbHksIGFuZCB1c2FibGUKdGhhbiB0aGUg b2JqZWN0IGNvZGUgaXRzZWxmLgoKICBhKSBZb3UgbWF5IGNvbnZleSB0aGUgb2JqZWN0IGNvZGUg aW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsCiAgICAgcHJvZHVjdCAoaW5jbHVkaW5nIGEg cGh5c2ljYWwgZGlzdHJpYnV0aW9uIG1lZGl1bSksIGFjY29tcGFuaWVkIGJ5CiAgICAgdGhlIENv cnJlc3BvbmRpbmcgUmVzb3VyY2UgZml4ZWQgb24gYSBkdXJhYmxlIHBoeXNpY2FsIG1lZGl1bQog ICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLgoKICBiKSBZb3UgbWF5 IGNvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsCiAg ICAgcHJvZHVjdCAoaW5jbHVkaW5nIGEgcGh5c2ljYWwgZGlzdHJpYnV0aW9uIG1lZGl1bSksIGFj Y29tcGFuaWVkIGJ5IGEKICAgICB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQgbGVhc3QgdGhy ZWUgeWVhcnMgYW5kIGZvciBhcyBsb25nIGFzIHlvdQogICAgIG9mZmVyIHNwYXJlIHBhcnRzLCB1 cGRhdGVzLCBvciBjdXN0b21lciBzdXBwb3J0IGZvciB0aGF0IHByb2R1Y3QKICAgICBtb2RlbCwg dG8gcHJvdmlkZSBhbnkgcmVjaXBpZW50IHdpdGggZWl0aGVyOgoKICAgICAgICgxKSBhIGNvcHkg b2YgdGhlIENvcnJlc3BvbmRpbmcgUmVzb3VyY2UgZm9yIGFsbCBjb3ZlcmVkIFdvcmtzIGluCiAg ICAgICAgICAgdGhlIHByb2R1Y3QsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0gY3VzdG9t YXJpbHkgdXNlZCBmb3IKICAgICAgICAgICBzb2Z0d2FyZSBleGNoYW5nZSwgZm9yIGEgcHJpY2Ug bm8gaGlnaGVyIHRoYW4gdGhlIHJlYXNvbmFibGUKICAgICAgICAgICBjb3N0IG9mIHBoeXNpY2Fs bHkgcGVyZm9ybWluZyB0aGlzIHRyYW5zbWlzc2lvbjsgb3IKCiAgICAgICAoMikgaW1tZWRpYXRl IGFuZCB1bnJlc3RyaWN0ZWQgYWNjZXNzIHRvIGNvcHkgdGhlIENvcnJlc3BvbmRpbmcKICAgICAg ICAgICBSZXNvdXJjZSB0aHJvdWdoIGFueSByZWFzb25hYmxlIGFuZCBwdWJsaWNseSBhY2Nlc3Np YmxlIG1lYW5zLgoKVGhlIHJlZnVzYWwgb3Igbm9uLWFjY2VwdGFuY2Ugb2Ygc3VjaCBhIHdyaXR0 ZW4gb2ZmZXIgYnkgYW55IHJlY2lwaWVudApkb2VzIG5vdCByZWxpZXZlIHlvdSBvZiB0aGUgb2Js aWdhdGlvbiB0byBlbnN1cmUgdGhhdCB0aGUKQ29ycmVzcG9uZGluZyBSZXNvdXJjZSByZW1haW5z IHB1YmxpY2x5IGF2YWlsYWJsZSB1bmRlciB0aGlzIExpY2Vuc2UKZm9yIHRoZSBkdXJhdGlvbiBy ZXF1aXJlZCBieSB0aGlzIFNlY3Rpb24uCgogIGMpIFlvdSBtYXkgY29udmV5IGluZGl2aWR1YWwg Y29waWVzIG9mIHRoZSBvYmplY3QgY29kZSB0b2dldGhlciB3aXRoIGEKICAgICBjb3B5IG9mIHRo ZSB3cml0dGVuIG9mZmVyIGRlc2NyaWJlZCBpbiBzdWJzZWN0aW9uIChiKSwgYnV0IG9ubHkKICAg ICBvY2Nhc2lvbmFsbHksIGZvciBub24tY29tbWVyY2lhbCBwdXJwb3NlcywgYW5kIG9ubHkgaWYg eW91IHJlY2VpdmVkCiAgICAgdGhlIG9iamVjdCBjb2RlIGFjY29tcGFuaWVkIGJ5IHN1Y2ggYW4g b2ZmZXIuCgogIGQpIFlvdSBtYXkgY29udmV5IHRoZSBvYmplY3QgY29kZSBieSBvZmZlcmluZyBh Y2Nlc3MgZnJvbSBhIGRlc2lnbmF0ZWQKICAgICBsb2NhdGlvbiwgZnJlZSBvZiBjaGFyZ2Ugb3Ig Zm9yIGEgZmVlLCBwcm92aWRlZCB0aGF0IGVxdWl2YWxlbnQgYWNjZXNzCiAgICAgdG8gdGhlIENv cnJlc3BvbmRpbmcgUmVzb3VyY2UgaXMgb2ZmZXJlZCBpbiB0aGUgc2FtZSBtYW5uZXIsIHdpdGhv dXQKICAgICBkZWxheSwgYWRkaXRpb25hbCBjb25kaXRpb25zLCBvciBwcmFjdGljYWwgYmFycmll cnMuIElmIHRoZSBvYmplY3QKICAgICBjb2RlIGlzIG9mZmVyZWQgZnJvbSBhIG5ldHdvcmsgc2Vy dmVyLCB0aGUgQ29ycmVzcG9uZGluZyBSZXNvdXJjZSBtYXkKICAgICBiZSBob3N0ZWQgb24gYSBk aWZmZXJlbnQgc2VydmVyIG9wZXJhdGVkIGJ5IHlvdSBvciBieSBhIHRoaXJkIHBhcnR5LAogICAg IHByb3ZpZGVkIHRoYXQgY2xlYXIsIHByb21pbmVudCwgYW5kIHBlcnNpc3RlbnQgaW5zdHJ1Y3Rp b25zIGFyZSBnaXZlbgogICAgIGFsb25nc2lkZSB0aGUgb2JqZWN0IGNvZGUgaW5kaWNhdGluZyB3 aGVyZSBhbmQgaG93IHRoZSBDb3JyZXNwb25kaW5nCiAgICAgUmVzb3VyY2UgbWF5IGJlIG9idGFp bmVkLgoKQW55IHRlY2huaWNhbCwgY29udHJhY3R1YWwsIHByb2NlZHVyYWwsIG9yIHBvbGljeS1i YXNlZCBtZWFzdXJlIHRoYXQKaGFzIHRoZSBlZmZlY3Qgb2YgZGlzY291cmFnaW5nLCBkZWxheWlu ZywgY29uZGl0aW9uaW5nLCBvciBwcmV2ZW50aW5nCmFjY2VzcyB0byB0aGUgQ29ycmVzcG9uZGlu ZyBSZXNvdXJjZSBjb25zdGl0dXRlcyBhIGZhaWx1cmUgdG8gY29tcGx5CndpdGggdGhlIHJlcXVp cmVtZW50cyBvZiB0aGlzIExpY2Vuc2UuCgogIGUpIFlvdSBtYXkgY29udmV5IHRoZSBvYmplY3Qg Y29kZSB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uLAogICAgIHByb3ZpZGVkIHRoYXQg eW91IGNsZWFybHkgaW5mb3JtIGFsbCBwZWVycyB3aGVyZSB0aGUgb2JqZWN0IGNvZGUgYW5kCiAg ICAgdGhlIENvcnJlc3BvbmRpbmcgUmVzb3VyY2UgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdl bmVyYWwgcHVibGljLAogICAgIGZyZWUgb2YgY2hhcmdlLCB1bmRlciB0aGUgdGVybXMgb2YgdGhp cyBMaWNlbnNlLgoKQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUgd2hvc2Ug c291cmNlIGlzIGV4Y2x1ZGVkIGZyb20KdGhlIENvcnJlc3BvbmRpbmcgUmVzb3VyY2UgYXMgYSBT eXN0ZW0gTGlicmFyeSBuZWVkIG5vdCBiZSBpbmNsdWRlZCBpbgp0aGUgdHJhbnNtaXNzaW9uIG9m IHRoZSBvYmplY3QgY29kZS4gSWYgeW91IGNvbnZleSBhbiBvYmplY3QgY29kZSBXb3JrCnVuZGVy IHRoaXMgU2VjdGlvbiBpbiwgd2l0aCwgb3Igc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gYSBVc2Vy IFByb2R1Y3QsCmFuZCB0aGUgY29udmV5YW5jZSBvY2N1cnMgYXMgcGFydCBvZiBhIHRyYW5zYWN0 aW9uIHRyYW5zZmVycmluZyB0aGUgcmlnaHQKb2YgcG9zc2Vzc2lvbiBvciB1c2Ugb2YgdGhlIFVz ZXIgUHJvZHVjdCB0byB0aGUgcmVjaXBpZW50LCB0aGUgQ29ycmVzcG9uZGluZwpSZXNvdXJjZSBt dXN0IGJlIGFjY29tcGFuaWVkIGJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uIFRoaXMg cmVxdWlyZW1lbnQKZG9lcyBub3QgYXBwbHkgaWYgbmVpdGhlciB5b3Ugbm9yIGFueSB0aGlyZCBw YXJ0eSByZXRhaW5zIHRoZSBhYmlsaXR5IHRvCmluc3RhbGwgbW9kaWZpZWQgb2JqZWN0IGNvZGUg b24gdGhlIFVzZXIgUHJvZHVjdC4gVGhlIENvcnJlc3BvbmRpbmcgUmVzb3VyY2UKYW5kIGFueSBJ bnN0YWxsYXRpb24gSW5mb3JtYXRpb24gcHJvdmlkZWQgdW5kZXIgdGhpcyBTZWN0aW9uIG11c3Qg YmUgaW4gYQpwdWJsaWNseSBkb2N1bWVudGVkIGZvcm1hdCwgbXVzdCBub3QgaW1wb3NlIGFkZGl0 aW9uYWwgcmVzdHJpY3Rpb25zIHRoYXQKbWF0ZXJpYWxseSBsaW1pdCB0aGUgcHJhY3RpY2FsIGFi aWxpdHkgb2YgcmVjaXBpZW50cyB0byBleGVyY2lzZSB0aGUgcmlnaHRzCmdyYW50ZWQgdW5kZXIg dGhpcyBMaWNlbnNlIHRvIGFjY2VzcywgYW5kIG11c3QgcmVtYWluIGF2YWlsYWJsZSBmb3IgYXMg bG9uZwphcyBuZWNlc3NhcnkgdG8gc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgTGlj ZW5zZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVi4gVGVybWluYXRpb24uCgpZb3UgbWF5IG5vdCBj b252ZXksIG9yIG1vZGlmeSBhIGNvdmVyZWQgV29yayBleGNlcHQgYXMKZXhwcmVzc2x5IHBlcm1p dHRlZCB1bmRlciB0aGlzIExpY2Vuc2UuIEFueSBhdHRlbXB0IHRvIGRvIHNvIG90aGVyd2lzZQpp cyB2b2lkIGFuZCBzaGFsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRl ciB0aGlzCkxpY2Vuc2UuIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9ucyBvZiB0 aGlzIExpY2Vuc2UsIHlvdXIKcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZSBmcm9tIGEgcGFydGlj dWxhciBjb3B5cmlnaHQgaG9sZGVyIGFyZQpyZWluc3RhdGVkIHByb3Zpc2lvbmFsbHksIHVubGVz cyBhbmQgdW50aWwgdGhhdCBjb3B5cmlnaHQgaG9sZGVyCmV4cGxpY2l0bHkgYW5kIGZpbmFsbHkg dGVybWluYXRlcyB0aG9zZSByaWdodHMuCgpZb3VyIHJpZ2h0cyBhcmUgcmVpbnN0YXRlZCBwZXJt YW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBmYWlscyB0bwpub3RpZnkgeW91IG9mIHRo ZSB2aW9sYXRpb24gYnkgcmVhc29uYWJsZSBtZWFucyB3aXRoaW4gc2l4dHkgKDYwKSBkYXlzCmFm dGVyIHRoZSBjZXNzYXRpb24gb2YgdGhlIHZpb2xhdGlvbi4KCkFkZGl0aW9uYWxseSwgeW91ciBy aWdodHMgYXJlIHJlaW5zdGF0ZWQgcGVybWFuZW50bHkgaWYgdGhpcyBpcyB0aGUKZmlyc3QgdGlt ZSB5b3UgaGF2ZSByZWNlaXZlZCBub3RpY2Ugb2YgYSB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNl IGZyb20KdGhhdCBjb3B5cmlnaHQgaG9sZGVyLCBhbmQgeW91IGN1cmUgdGhlIHZpb2xhdGlvbiB3 aXRoaW4gdGhpcnR5ICgzMCkKZGF5cyBhZnRlciByZWNlaXZpbmcgc3VjaCBub3RpY2UuCgpUZXJt aW5hdGlvbiBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIFNlY3Rpb24gZG9lcyBub3QgdGVybWlu YXRlIHRoZQpsaWNlbnNlcyBvZiBhbnkgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMg b2YgdGhlIFdvcmssIG9yIHJpZ2h0cwp1bmRlciB0aGlzIExpY2Vuc2UsIGZyb20geW91IHByaW9y IHRvIHN1Y2ggdGVybWluYXRpb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClZJLiBBY2NlcHRhbmNl IE5vdCBSZXF1aXJlZCBmb3IgUG9zc2Vzc2lvbiBvciBVc2UuCgpZb3UgYXJlIG5vdCByZXF1aXJl ZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHJlY2VpdmUsCnBvc3Nlc3MsIG9y IHVzZSBhIGNvcHkgb2YgYSBjb3ZlcmVkIFdvcmsuIFRoZSBtZXJlIGFjdCBvZiBkb3dubG9hZGlu ZywKcmVjZWl2aW5nLCBzdG9yaW5nLCBvciBleGVjdXRpbmcgdGhlIFdvcmsgZG9lcyBub3QgY29u c3RpdHV0ZSBhY2NlcHRhbmNlCm9mIHRoaXMgTGljZW5zZS4KClByb3BhZ2F0aW9uIG9yIGNvbnZl eWFuY2Ugb2YgYSBjb3ZlcmVkIFdvcmsgdGhhdCBvY2N1cnMgc29sZWx5IGFzIGFuCmF1dG9tYXRp YywgaW5jaWRlbnRhbCwgb3IgcGFzc2l2ZSBjb25zZXF1ZW5jZSBvZiB1c2luZyBhIG5ldHdvcmss CmRpc3RyaWJ1dGlvbiBzeXN0ZW0sIG9yIHBlZXItdG8tcGVlciB0cmFuc21pc3Npb24gdG8gcmVj ZWl2ZSBhIGNvcHkKbGlrZXdpc2UgZG9lcyBub3QgcmVxdWlyZSBhY2NlcHRhbmNlIG9mIHRoaXMg TGljZW5zZS4KCkhvd2V2ZXIsIG5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRz IHlvdSBwZXJtaXNzaW9uIHRvCmNvbnZleSwgb3IgbW9kaWZ5IGEgY292ZXJlZCBXb3JrLiBBbnkg c3VjaCBhY3Rpb25zIHdpdGhvdXQKYXV0aG9yaXphdGlvbiB1bmRlciB0aGlzIExpY2Vuc2UgY29u c3RpdHV0ZSBjb3B5cmlnaHQgaW5mcmluZ2VtZW50LgoKQnkgcHJvcGFnYXRpbmcsIGNvbnZleWlu Zywgb3IgbW9kaWZ5aW5nIGEgY292ZXJlZCBXb3JrLCB5b3UgaW5kaWNhdGUKeW91ciBhY2NlcHRh bmNlIG9mIHRoaXMgTGljZW5zZSBhbmQgYWxsIG9mIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucwp3 aXRoIHJlc3BlY3QgdG8gdGhvc2UgYWN0aW9ucy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVklJLiBB dXRvbWF0aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4KClRoZSBsaWNlbnNl IGdyYW50ZWQgdG8gcmVjaXBpZW50cyBvZiBhIGNvdmVyZWQgV29yayBhcmlzZXMgc29sZWx5IGJ5 Cm9wZXJhdGlvbiBvZiB0aGlzIExpY2Vuc2UgYW5kIG5vdCBieSB2aXJ0dWUgb2YgYW55IHNlcGFy YXRlIGFncmVlbWVudCwKY29udHJhY3QsIG9yIHBvbGljeS4KCkVhY2ggdGltZSB5b3UgY29udmV5 IGEgY292ZXJlZCBXb3JrLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkKcmVjZWl2ZXMgYSBs aWNlbnNlIGRpcmVjdGx5IGZyb20gdGhlIG9yaWdpbmFsIGxpY2Vuc29ycyB0byB1c2UsCm9wZXJh dGUsIHN0dWR5LCBtb2RpZnksIGFuZCBjb252ZXkgdGhhdCBXb3JrLCBzdWJqZWN0IHRvIHRoZSB0 ZXJtcyBhbmQKY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuCgpZb3UgYXJlIG5vdCByZXNwb25z aWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2Ugd2l0aCB0aGlzIExpY2Vuc2UgYnkKdGhpcmQg cGFydGllcy4KCkFuICJlbnRpdHkgdHJhbnNhY3Rpb24iIG1lYW5zIGEgdHJhbnNhY3Rpb24gdGhh dCB0cmFuc2ZlcnMgY29udHJvbCBvZgphbiBvcmdhbml6YXRpb24sIHRyYW5zZmVycyBzdWJzdGFu dGlhbGx5IGFsbCBvZiBpdHMgYXNzZXRzLCBzdWJkaXZpZGVzCmFuIG9yZ2FuaXphdGlvbiwgb3Ig bWVyZ2VzIG9yZ2FuaXphdGlvbnMuIElmIGNvbnZleWFuY2Ugb2YgYSBjb3ZlcmVkCldvcmsgcmVz dWx0cyBmcm9tIGFuIGVudGl0eSB0cmFuc2FjdGlvbiwgZWFjaCBwYXJ0eSB0byB0aGF0IHRyYW5z YWN0aW9uCndobyByZWNlaXZlcyBhIGNvcHkgb2YgdGhlIFdvcmsgYWxzbyByZWNlaXZlcyBhbnkg bGljZW5zZXMgdG8gdGhlIFdvcmsKdGhhdCB0aGUgcHJlZGVjZXNzb3IgaW4gaW50ZXJlc3QgaGFk IG9yIGNvdWxkIGdyYW50IHVuZGVyIHRoaXMgTGljZW5zZSwKdG9nZXRoZXIgd2l0aCB0aGUgcmln aHQgdG8gcmVjZWl2ZSB0aGUgQ29ycmVzcG9uZGluZyBSZXNvdXJjZSBvZiB0aGUKV29yaywgaWYg dGhlIHByZWRlY2Vzc29yIHBvc3Nlc3NlcyBpdCBvciBjYW4gb2J0YWluIGl0IHdpdGggcmVhc29u YWJsZQplZmZvcnQuCgpZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGFkZGl0aW9uYWwgbGVnYWwsIGNv bnRyYWN0dWFsLCB0ZWNobmljYWwsIG9yCnBvbGljeS1iYXNlZCByZXN0cmljdGlvbnMgb24gdGhl IGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBvcgphZmZpcm1lZCB1bmRlciB0aGlzIExp Y2Vuc2UuIEFueSBhdHRlbXB0IHRvIGltcG9zZSBzdWNoIGZ1cnRoZXIKcmVzdHJpY3Rpb25zIGlz IHZvaWQgYW5kIHNoYWxsIG5vdCBhZmZlY3QgdGhlIHJpZ2h0cyBvZiByZWNpcGllbnRzCnVuZGVy IHRoaXMgTGljZW5zZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVklJSS4gUGF0ZW50cy4KCkEgIkNv bnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdGhlIHVzZSBv ZiBhCmNvdmVyZWQgV29yayB1bmRlciB0aGlzIExpY2Vuc2UuIFRoZSBXb3JrIHNvIGxpY2Vuc2Vk IGlzIHJlZmVycmVkIHRvCmFzIHRoZSBDb250cmlidXRvcuKAmXMgIkNvbnRyaWJ1dG9yIFZlcnNp b24iLgoKRWFjaCBDb250cmlidXRvciBncmFudHMgdG8gZXZlcnkgcmVjaXBpZW50IG9mIHRoZSBD b250cmlidXRvciBWZXJzaW9uCmEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZy ZWUsIGlycmV2b2NhYmxlIHBhdGVudCBsaWNlbnNlCnVuZGVyIGFueSBwYXRlbnQgY2xhaW1zIG93 bmVkIG9yIGNvbnRyb2xsZWQgYnkgdGhhdCBDb250cmlidXRvciwgdG8KdGhlIGV4dGVudCB0aGF0 IHN1Y2ggY2xhaW1zIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSwKb3BlcmF0 aW9uLCBtb2RpZmljYXRpb24sIG9yIGNvbnZleWFuY2Ugb2YgdGhlIENvbnRyaWJ1dG9yIFZlcnNp b24gaW4KYSBtYW5uZXIgcGVybWl0dGVkIGJ5IHRoaXMgTGljZW5zZS4KClRoaXMgcGF0ZW50IGxp Y2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgdGhhdCBhcmUKdW5hdm9p ZGFibHkgaW5mcmluZ2VkIGJ5IGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBncmFudGVkIHVuZGVyIHRo aXMKTGljZW5zZSB3aXRoIHJlc3BlY3QgdG8gdGhlIENvbnRyaWJ1dG9yIFZlcnNpb24uIEl0IGRv ZXMgbm90IGV4dGVuZAp0byBwYXRlbnQgY2xhaW1zIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIHNv bGVseSBhcyBhIHJlc3VsdCBvZiBmdXJ0aGVyCm1vZGlmaWNhdGlvbiwgY29tYmluYXRpb24sIG9y IHVzZSBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoZSBDb250cmlidXRvcgpWZXJzaW9uLgoKSWYgeW91 IGNvbnZleSBhIGNvdmVyZWQgV29yaywgeW91IG1heSBub3QgcmVseSBvbiwgYXNzZXJ0LCBvciBl bmZvcmNlCmFueSBwYXRlbnQgbGljZW5zZSwgYWdyZWVtZW50LCBjb3ZlbmFudCwgb3IgYXJyYW5n ZW1lbnQgdGhhdCB3b3VsZApyZXN1bHQgaW4gYW55IHJlY2lwaWVudCBiZWluZyBkZW5pZWQgdGhl IGZ1bGwgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cwpncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4K CkFueSBwYXRlbnQgbGljZW5zZSBncmFudGVkIGluIGNvbm5lY3Rpb24gd2l0aCBhIGNvdmVyZWQg V29yayBtdXN0IGJlCm5vbi1kaXNjcmltaW5hdG9yeSBhbmQgbXVzdCBleHRlbmQgZXF1YWxseSB0 byBhbGwgcmVjaXBpZW50cyBvZiB0aGF0CldvcmsgdW5kZXIgdGhpcyBMaWNlbnNlLgoKTm90aGlu ZyBpbiB0aGlzIExpY2Vuc2Ugc2hhbGwgYmUgY29uc3RydWVkIGFzIGxpbWl0aW5nLCBleGNsdWRp bmcsIG9yCndhaXZpbmcgYW55IGltcGxpZWQgcGF0ZW50IGxpY2Vuc2UsIHBhdGVudCBleGhhdXN0 aW9uIGRvY3RyaW5lLCBvcgpvdGhlciBkZWZlbnNlcyB0byBwYXRlbnQgaW5mcmluZ2VtZW50IHRo YXQgbWF5IGJlIGF2YWlsYWJsZSB1bmRlcgphcHBsaWNhYmxlIGxhdy4KCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKSVguIExpbmtpbmcgYW5kIENvbWJpbmVkIFdvcmtzLgoKQSBMaWJyYXJ5IFdvcmsgY292 ZXJlZCBieSB0aGlzIExpY2Vuc2UgbWF5IGJlIGxpbmtlZCwgY29tYmluZWQsIG9yCm90aGVyd2lz ZSBpbnRlZ3JhdGVkIHdpdGggYW4gaW5kZXBlbmRlbnQgV29yaywgd2hldGhlciBzdGF0aWNhbGx5 IG9yCmR5bmFtaWNhbGx5LCB3aXRob3V0IGNhdXNpbmcgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRv IHRoZSBpbmRlcGVuZGVudApXb3JrIGFzIGEgd2hvbGUsIHByb3ZpZGVkIHRoYXQgdGhlIHRlcm1z IG9mIHRoaXMgU2VjdGlvbiBhcmUgc2F0aXNmaWVkLgoKVGhlIExpYnJhcnkgV29yayBpdHNlbGYs IGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB0byBpdCwgbXVzdCByZW1haW4KbGljZW5zZWQgdW5kZXIg dGhpcyBMaWNlbnNlLiBBbnkgcGFydHkgY29udmV5aW5nIGEgbW9kaWZpZWQgdmVyc2lvbiBvZgp0 aGUgTGlicmFyeSBXb3JrLCBvciBhIENvbWJpbmVkIFdvcmsgY29udGFpbmluZyBhIG1vZGlmaWVk IExpYnJhcnkgV29yaywKbXVzdCBjb21wbHkgd2l0aCB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNl IHdpdGggcmVzcGVjdCB0byB0aGUgTGlicmFyeQpXb3JrLgoKWW91IG11c3Qgbm90IHJlc3RyaWN0 IHRoZSBhYmlsaXR5IG9mIHJlY2lwaWVudHMgdG8gbW9kaWZ5IHRoZSBMaWJyYXJ5CldvcmsgYW5k IHRvIHJlbGluayBvciBvdGhlcndpc2UgdXNlIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgTGli cmFyeQpXb3JrIHdpdGggdGhlIENvbWJpbmVkIFdvcmsuIFRoaXMgaW5jbHVkZXMgcHJvdmlkaW5n IHRoZSBuZWNlc3NhcnkKc291cmNlIGNvZGUsIGludGVyZmFjZSBpbmZvcm1hdGlvbiwgYW5kIGJ1 aWxkIG1lY2hhbmlzbXMgcmVxdWlyZWQgdG8KZW5hYmxlIHN1Y2ggbW9kaWZpY2F0aW9uIGFuZCBy ZWxpbmtpbmcuCgpBIENvbWJpbmVkIFdvcmsgdGhhdCBtZXJlbHkgbGlua3MgdG8sIGltcG9ydHMs IG9yIHVzZXMgYSBMaWJyYXJ5IFdvcmsKdGhyb3VnaCBpdHMgZGVmaW5lZCBpbnRlcmZhY2VzIHNo YWxsIG5vdCBiZSByZXF1aXJlZCB0byBiZSBsaWNlbnNlZAp1bmRlciB0aGlzIExpY2Vuc2UsIHBy b3ZpZGVkIHRoYXQgdGhlIExpYnJhcnkgV29yayByZW1haW5zIHNlcGFyYWJsZQphbmQgcmVwbGFj ZWFibGUuCgpNZXJlIGFnZ3JlZ2F0aW9uIG9mIGluZGVwZW5kZW50IFdvcmtzLCBvciBjb21tdW5p Y2F0aW9uIGJldHdlZW4KaW5kZXBlbmRlbnQgV29ya3MgdGhyb3VnaCBzdGFuZGFyZCBpbnRlcmZh Y2VzLCBpbnRlci1wcm9jZXNzCmNvbW11bmljYXRpb24sIGNvbW1hbmQtbGluZSBpbnZvY2F0aW9u LCBvciBuZXR3b3JrIHByb3RvY29scywgZG9lcyBub3QKYnkgaXRzZWxmIGNhdXNlIHRoaXMgTGlj ZW5zZSB0byBhcHBseSB0byBzdWNoIGluZGVwZW5kZW50IFdvcmtzLgoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCgpYLiBFcXVhbCBBY2Nlc3MgdG8gQ29ycmVzcG9uZGluZyBSZXNvdXJjZS4KCldoZXJlIGFj Y2VzcyB0byBhIGNvdmVyZWQgV29yayBvciBpdHMgQ29ycmVzcG9uZGluZyBSZXNvdXJjZSBpcyBn cmFudGVkCnRvIGFueSByZWNpcGllbnQsIHN1Y2ggYWNjZXNzIG11c3QgYmUgcHJvdmlkZWQgaW4g YSBtYW5uZXIgY29uc2lzdGVudAp3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNl IGFuZCBtdXN0IG5vdCBpbXBvc2UgYWRkaXRpb25hbApyZXN0cmljdGlvbnMgdGhhdCBtYXRlcmlh bGx5IGFuZCBkZW1vbnN0cmFibHkgaW1wYWlyIHRoZSBhYmlsaXR5IG9mCnJlY2lwaWVudHMgdG8g ZXhlcmNpc2UgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KCkRpZmZlcmVuY2VzIGluIHRpbWlu ZywgZm9ybWF0LCBsb2NhdGlvbiwgb3IgbWV0aG9kIG9mIGFjY2VzcyBzaGFsbCBub3QKY29uc3Rp dHV0ZSBhIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgdW5sZXNzIHRoZXkgaGF2ZSB0aGUgcHJh Y3RpY2FsCmVmZmVjdCBvZiBwcmV2ZW50aW5nIG9yIHNpZ25pZmljYW50bHkgaGluZGVyaW5nIHJl Y2lwaWVudHMgZnJvbQp1bmRlcnN0YW5kaW5nLCBtb2RpZnlpbmcsIG9yIHJldXNpbmcgdGhlIFdv cmsuCgpUaGUgQ29ycmVzcG9uZGluZyBSZXNvdXJjZSBtdXN0IGJlIHByb3ZpZGVkIGluIGEgZm9y bSB0aGF0IGlzIHJlYXNvbmFibHkKdXNhYmxlIGFuZCBtb2RpZmlhYmxlIGJ5IGEgY29tcGV0ZW50 IGRldmVsb3BlciB1c2luZyBjb21tb25seSBhdmFpbGFibGUKdG9vbHMuCgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KClhJLiBQcm90ZWN0aW9uIG9mIENvbnRyaWJ1dG9yIFJpZ2h0cy4KCk5vIGFncmVlbWVu dCwgcG9saWN5LCBjb250cmFjdCwgb3Igb3RoZXIgYXJyYW5nZW1lbnQgbWF5IHJldHJvYWN0aXZl bHkKcmVzdHJpY3QsIHJldm9rZSwgb3IgbnVsbGlmeSB0aGUgcmlnaHRzIGdyYW50ZWQgdG8gYSBD b250cmlidXRvciB1bmRlcgp0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvIHRoZWlyIGNvbnRy aWJ1dGlvbnMuCgpBbnkgYWRkaXRpb25hbCBhZ3JlZW1lbnQgYWZmZWN0aW5nIGEgQ29udHJpYnV0 b3LigJlzIGNvbnRyaWJ1dGlvbnMgbXVzdApub3QgZGltaW5pc2ggdGhlIHBlcm1pc3Npb25zLCBm cmVlZG9tcywgb3IgcHJvdGVjdGlvbnMgZ3JhbnRlZCBieSB0aGlzCkxpY2Vuc2UgdG8gdGhhdCBD b250cmlidXRvciBvciB0byByZWNpcGllbnRzIG9mIHRoZSBjb3ZlcmVkIFdvcmsuCgpJZiBjb25k aXRpb25zIGFyZSBpbXBvc2VkIHVwb24geW91LCB3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3Jl ZW1lbnQsCnBvbGljeSwgb3Igb3RoZXJ3aXNlLCB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlv bnMgb2YgdGhpcyBMaWNlbnNlLApzdWNoIGNvbmRpdGlvbnMgZG8gbm90IGV4Y3VzZSB5b3UgZnJv bSBjb21wbHlpbmcgd2l0aCB0aGlzIExpY2Vuc2UuIElmCnlvdSBjYW5ub3QgY29udmV5IGEgY292 ZXJlZCBXb3JrIGluIGEgbWFubmVyIHRoYXQgc2ltdWx0YW5lb3VzbHkKc2F0aXNmaWVzIHlvdXIg b2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBMaWNlbnNlIGFuZCBhbnkgb3RoZXIgYXBwbGljYWJsZQpv YmxpZ2F0aW9ucywgdGhlbiB5b3UgbWF5IG5vdCBjb252ZXkgdGhlIGNvdmVyZWQgV29yayBhdCBh bGwuCgpZb3UgbWF5IG5vdCBpbXBvc2UsIGFjY2VwdCwgb3IgcGFzcyB0aHJvdWdoIGFueSBvYmxp Z2F0aW9uIHRoYXQgaGFzIHRoZQplZmZlY3Qgb2YgcmVzdHJpY3RpbmcsIGNvbmRpdGlvbmluZywg b3IgZGlzY291cmFnaW5nIHRoZSBleGVyY2lzZSBvZgp0aGUgcmlnaHRzIGdyYW50ZWQgdW5kZXIg dGhpcyBMaWNlbnNlIGJ5IHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQgV29yay4KRm9yIGV4YW1w bGUsIGlmIHlvdSBhZ3JlZSB0byB0ZXJtcyB0aGF0IHJlcXVpcmUgdGhlIGNvbGxlY3Rpb24gb2Yg ZmVlcywKcm95YWx0aWVzLCBvciBvdGhlciBjb25zaWRlcmF0aW9uIGFzIGEgY29uZGl0aW9uIG9m IGZ1cnRoZXIgY29udmV5YW5jZSwKYW5kIHN1Y2ggdGVybXMgYXJlIGluY29tcGF0aWJsZSB3aXRo IHRoaXMgTGljZW5zZSwgeW91IG11c3QgcmVmcmFpbgplbnRpcmVseSBmcm9tIGNvbnZleWluZyB0 aGUgY292ZXJlZCBXb3JrIHVuZGVyIHRob3NlIHRlcm1zLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpY SUkuIFVuaWZvcm0gRXhlcmNpc2Ugb2YgUmlnaHRzLgoKV2hlcmUgYSBjb3ZlcmVkIFdvcmsgaXMg Y29udmV5ZWQsIGRpc3RyaWJ1dGVkLCBvciBtYWRlIGF2YWlsYWJsZSBpbgpvYmplY3QgY29kZSwg ZXhlY3V0YWJsZSwgb3BlcmF0aW9uYWwsIG9yIHNlcnZpY2UgZm9ybSwgdGhlCkNvcnJlc3BvbmRp bmcgUmVzb3VyY2UgZm9yIHRoYXQgV29yayBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRo aXMKTGljZW5zZSBubyBsYXRlciB0aGFuIHRoZSB0aW1lIGF0IHdoaWNoIHN1Y2ggZm9ybSBpcyBm aXJzdCBwcm92aWRlZCB0bwphbnkgcmVjaXBpZW50LgoKQSBkaWZmZXJlbmNlIGluIHRpbWluZywg bWFubmVyLCBvciBjb25kaXRpb25zIHVuZGVyIHdoaWNoIGFjY2VzcyB0byB0aGUKV29yayBvciBp dHMgQ29ycmVzcG9uZGluZyBSZXNvdXJjZSBpcyBwcm92aWRlZCBzaGFsbCBjb25zdGl0dXRlIGEK dmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSBvbmx5IHdoZXJlIHN1Y2ggZGlmZmVyZW5jZSBtYXRl cmlhbGx5IGFuZApkZW1vbnN0cmFibHkgcHJldmVudHMgcmVjaXBpZW50cyBmcm9tIGV4ZXJjaXNp bmcgdGhlIHJpZ2h0cyBncmFudGVkCnVuZGVyIHRoaXMgTGljZW5zZS4KCk5vdGhpbmcgaW4gdGhp cyBTZWN0aW9uIHNoYWxsIGJlIGNvbnN0cnVlZCB0byBwcm9oaWJpdCBzdGFnZWQgcmVsZWFzZXMs CmRpZmZlcmVudGlhdGVkIGRpc3RyaWJ1dGlvbiBtb2RlbHMsIG9yIHZhcmllZCBhY2Nlc3MgYXJy YW5nZW1lbnRzLApwcm92aWRlZCB0aGF0IHRoZSBDb3JyZXNwb25kaW5nIFJlc291cmNlIGlzIG1h ZGUgYXZhaWxhYmxlIGluIGEgbWFubmVyCmNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRz IG9mIHRoaXMgTGljZW5zZSBhbmQgd2l0aG91dCBpbXBvc2luZwphZGRpdGlvbmFsIHJlc3RyaWN0 aW9ucyBvbiB0aGUgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KClRoZSBy aWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UgYXBwbHkgZXF1YWxseSB0byBhbGwgcmVj aXBpZW50cwphbmQgYWxsIGZpZWxkcyBvZiBlbmRlYXZvci4gTm8gcmVzdHJpY3Rpb24gb3IgY29u ZGl0aW9uIG1heSBiZSBpbXBvc2VkCnRoYXQgbGltaXRzIHRoZSBleGVyY2lzZSBvZiBzdWNoIHJp Z2h0cyBiYXNlZCBvbiB0aGUgbmF0dXJlLCBpZGVudGl0eSwKb3IgcHVycG9zZSBvZiB0aGUgcmVj aXBpZW50LgoKVGhlIHJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSBtYXkgbm90IGJl IG5lZ2F0ZWQgb3IgcmVzdHJpY3RlZApieSBzZXBhcmF0ZSBhZ3JlZW1lbnRzLCBwb2xpY2llcywg b3IgY29udHJhY3R1YWwgdGVybXMgdG8gdGhlIGV4dGVudAp0aGF0IHN1Y2ggdGVybXMgY29uZmxp Y3Qgd2l0aCB0aGlzIExpY2Vuc2UuCgpXaGVyZSBhIGNvdmVyZWQgV29yayBpcyBvcGVyYXRlZCBh cyBwYXJ0IG9mIGEgbGFyZ2VyIHN5c3RlbSwgc2VydmljZSwKb3IgZGVwbG95bWVudCwgdGhlIENv cnJlc3BvbmRpbmcgUmVzb3VyY2Ugc2hhbGwgaW5jbHVkZSBvbmx5IHRoZSBzb3VyY2UKY29kZSBv ZiB0aGUgY292ZXJlZCBXb3JrIGl0c2VsZiBhbmQgYW55IG1vZGlmaWNhdGlvbnMgdGhlcmV0bywg YW5kIGRvZXMKbm90IHJlcXVpcmUgdGhlIGRpc2Nsb3N1cmUgb2YgaW5kZXBlbmRlbnQgd29ya3Mg b3Igc3lzdGVtIGNvbXBvbmVudHMKdGhhdCBhcmUgbm90IGRlcml2ZWQgZnJvbSB0aGUgY292ZXJl ZCBXb3JrLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpYSUlJLiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5 LgoKVE8gVEhFIE1BWElNVU0gRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVywgVEhF IFdPUksgSVMgUFJPVklERUQKIkFTIElTIiBBTkQgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RC4gRVhDRVBUIFdIRVJFIE9USEVSV0lTRQpFWFBSRVNTTFkgU1RBVEVEIElOIFdSSVRJTkcsIFRI RSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUwpQUk9WSURFIFRIRSBXT1JL IFdJVEhPVVQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsCkJV VCBOT1QgTElNSVRFRCBUTywgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwg RklUTkVTUyBGT1IKQSBQQVJUSUNVTEFSIFBVUlBPU0UsIFRJVExFLCBPUiBOT04tSU5GUklOR0VN RU5ULiBUSEUgRU5USVJFIFJJU0sgQVMgVE8KVEhFIFFVQUxJVFksIFBFUkZPUk1BTkNFLCBBTkQg RlVOQ1RJT05BTElUWSBPRiBUSEUgV09SSyBJUyBXSVRIIFlPVS4KU0hPVUxEIFRIRSBXT1JLIFBS T1ZFIERFRkVDVElWRSBPUiBGQUlMIFRPIE9QRVJBVEUgQVMgRVhQRUNURUQsIFlPVQpBU1NVTUUg QUxMIENPU1RTIE9GIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiwgQ09SUkVDVElPTiwgT1Ig UkVNRURJQVRJT04uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClhJVi4gTGltaXRhdGlvbiBvZiBMaWFi aWxpdHkuCgpUTyBUSEUgTUFYSU1VTSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFX LCBJTiBOTyBFVkVOVCBTSEFMTApBTlkgQ09QWVJJR0hUIEhPTERFUiwgQ09OVFJJQlVUT1IsIE9S IEFOWSBPVEhFUiBQQVJUWSBXSE8gTU9ESUZJRVMsCkNPTlZFWVMsIE9SIE9USEVSV0lTRSBNQUtF UyBUSEUgV09SSyBBVkFJTEFCTEUgQkUgTElBQkxFIFRPIFlPVSBGT1IKQU5ZIERBTUFHRVMgT0Yg QU5ZIEtJTkQsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBESVJFQ1QsCklORElSRUNU LCBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMLCBDT05TRVFVRU5USUFMLCBFWEVNUExBUlks IE9SClBVTklUSVZFIERBTUFHRVMsIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU SCBUSEUgVVNFIE9GLCBPUgpJTkFCSUxJVFkgVE8gVVNFLCBUSEUgV09SSywgRVZFTiBJRiBTVUNI IFBBUlRZIEhBUyBCRUVOIEFEVklTRUQgT0YgVEhFClBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF Uy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKWFYuIEludGVycHJldGF0aW9uIG9mIFNlY3Rpb25zIFhJ SUkgYW5kIFhJVi4KCklmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IG9yIGxpbWl0YXRpb24g b2YgbGlhYmlsaXR5IHNldCBmb3J0aCBpbgpTZWN0aW9ucyBYSUlJIGFuZCBYSVYgb2YgdGhpcyBM aWNlbnNlIGNhbm5vdCBiZSBnaXZlbiBmdWxsIGxlZ2FsIGVmZmVjdAp1bmRlciBhcHBsaWNhYmxl IGxvY2FsIGxhdywgc3VjaCBwcm92aXNpb25zIHNoYWxsIGJlIGVuZm9yY2VkIHRvIHRoZQptYXhp bXVtIGV4dGVudCBwZXJtaXR0ZWQgYnkgdGhhdCBsYXcuCgpJbiBzdWNoIGNhc2VzLCBjb3VydHMg c2hhbGwgYXBwbHkgdGhlIGxvY2FsIGxhdyBpbiBhIG1hbm5lciB0aGF0IG1vc3QKY2xvc2VseSBh cHByb3hpbWF0ZXMgYW4gYWJzb2x1dGUgZXhjbHVzaW9uIG9yIGxpbWl0YXRpb24gb2YgY2l2aWwK bGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUgV29yaywgY29uc2lzdGVudCB3aXRoIHRo ZSBpbnRlbnQgb2YKU2VjdGlvbnMgWElJSSBhbmQgWElWLCB1bmxlc3MgYSB3YXJyYW50eSBvciBh c3N1bXB0aW9uIG9mIGxpYWJpbGl0eQphY2NvbXBhbmllcyBhIGNvcHkgb2YgdGhlIFdvcmsgaW4g cmV0dXJuIGZvciBhIGZlZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LS0tLS0tLS0gUEFSVCBJSSDigJQgTkVUV09SSy1CQVNFRCBPUEVSQVRJT04gQU5EIFBMQVRGT1JN IENPTlNUUkFJTlRTLS0tLS0tLS0KVGhpcyBQYXJ0IGNsYXJpZmllcyBob3cgdGhlIGNvcmUgb2Js aWdhdGlvbnMgb2YgdGhpcyBMaWNlbnNlIGFwcGx5IHdoZW4gLS0tCmEgY292ZXJlZCBXb3JrIGlz IG9wZXJhdGVkLCBkZXBsb3llZCwgb3IgbWFkZSBhdmFpbGFibGUgYXMgcGFydCBvZiBhIC0tLS0t LQpuZXR3b3JrLWFjY2Vzc2libGUgc2VydmljZSBvciBtYW5hZ2VkIHN5c3RlbS4gVEhJUyBQQVJU IElTIE5PTi1OT1JNQVRJVkUuIC0KTm90aGluZyBpbiB0aGlzIFBhcnQgY3JlYXRlcyBhZGRpdGlv bmFsIHBlcm1pc3Npb25zLCBvYmxpZ2F0aW9ucywgb3IgLS0tLS0tCnJlc3RyaWN0aW9ucyBiZXlv bmQgdGhvc2UgZXhwcmVzc2x5IHNldCBmb3J0aCBpbiBQYXJ0IEkuIC0tLS0tLS0tLS0tLS0tLS0t LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpJLiBEZXNpZ24gSW50ZW50 IGFuZCBTY29wZSAoTm9uLU5vcm1hdGl2ZSkKClRoaXMgTGljZW5zZSBpcyBpbnRlbnRpb25hbGx5 IGRlc2lnbmVkIHRvIGFkZHJlc3MgZGVwbG95bWVudCBtb2RlbHMKYW5kIHRlY2huaWNhbCByZWFs aXRpZXMgdGhhdCBhcmUgaW5zdWZmaWNpZW50bHkgY292ZXJlZCBieSBleGlzdGluZwpjb3B5bGVm dCBsaWNlbnNlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bzoKCi0gTmV0d29yay1iYXNl ZCBzZXJ2aWNlIG9wZXJhdGlvbiB3aXRob3V0IGRpc3RyaWJ1dGlvbgotIE1hbmFnZWQgZGVwbG95 bWVudCBlbnZpcm9ubWVudHMgYW5kIHBsYXRmb3JtLWNvbnRyb2xsZWQgc3lzdGVtcwotIE1vZGVy biBzb2Z0d2FyZSBzdXBwbHkgY2hhaW5zIGludm9sdmluZyBvcmNoZXN0cmF0aW9uIGFuZCBzZXJ2 aWNlIGdsdWUKClRoZSBvcGVyYXRpdmUgcHJvdmlzaW9ucyBvZiB0aGlzIExpY2Vuc2UgcmVmbGVj dCB0aGVzZSBnb2FscyBkaXJlY3RseS4KVGhpcyBleHBsYW5hdG9yeSBzZWN0aW9uIGlzIG5vbi1u b3JtYXRpdmUgYW5kIGRvZXMgbm90IG1vZGlmeSB0aGUgbGVnYWwKdGVybXMgb2YgdGhlIExpY2Vu c2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCklJLiBBdXRob3JpdHkgb2YgSW50ZXJwcmV0YXRpb24u CgpUaGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGludGVycHJldGVkIGFjY29yZGlu ZyB0byB0aGVpcgpwbGFpbiBtZWFuaW5nIGFuZCBpbnRlbnQsIGFzIGV4cHJlc3NlZCBpbiB0aGUg dGV4dCBvZiB0aGlzIExpY2Vuc2UsCmFuZCBpbiBhY2NvcmRhbmNlIHdpdGggYXBwbGljYWJsZSBs YXcuIE5vIHBlcnNvbiBvciBvcmdhbml6YXRpb24gbWF5CmdyYW50IHBlcm1pc3Npb25zLCBleGNl cHRpb25zLCBvciBpbnRlcnByZXRhdGlvbnMgdGhhdCBwdXJwb3J0IHRvCm1vZGlmeSB0aGUgdGVy bXMgb2YgdGhpcyBMaWNlbnNlIG9yIGltcG9zZSBhZGRpdGlvbmFsIG9ibGlnYXRpb25zCmJleW9u ZCB0aG9zZSBleHByZXNzbHkgc3RhdGVkIGhlcmVpbiwgZXhjZXB0IGJ5IHRoZSBhcHBsaWNhYmxl CmNvcHlyaWdodCBob2xkZXIgd2l0aCByZXNwZWN0IHRvIHRoZWlyIG93biBjb250cmlidXRpb25z LgpBbnkgc3RhdGVtZW50cywgcG9saWNpZXMsIGd1aWRhbmNlIGRvY3VtZW50cywgY29udHJhY3R1 YWwgdGVybXMsCm9yIHJlcHJlc2VudGF0aW9ucyBub3QgZXhwcmVzc2x5IGluY29ycG9yYXRlZCBp bnRvIHRoaXMgTGljZW5zZQpzaGFsbCBoYXZlIG5vIGVmZmVjdCBvbiB0aGUgc2NvcGUsIGludGVy cHJldGF0aW9uLCBvciBlbmZvcmNlbWVudApvZiB0aGUgcmlnaHRzIGFuZCBvYmxpZ2F0aW9ucyBn cmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gTm90aGluZwppbiB0aGlzIHNlY3Rpb24gbGltaXRz IGp1ZGljaWFsIGludGVycHJldGF0aW9uLCBjb21tdW5pdHkgYW5hbHlzaXMsCmFjYWRlbWljIGNv bW1lbnRhcnksIG9yIG5vbi1iaW5kaW5nIGV4cGxhbmF0b3J5IG1hdGVyaWFscywgcHJvdmlkZWQK dGhhdCBzdWNoIG1hdGVyaWFscyBkbyBub3QgY2xhaW0gdG8gYWx0ZXIgb3Igc3VwZXJzZWRlIHRo ZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCklJSS4gUHJvdGVj dGlvbiBvZiBVc2Vyc+KAmSBMZWdhbCBSaWdodHMgQWdhaW5zdCBUZWNobm9sb2dpY2FsIE1lYXN1 cmVzLgoKTm8gY292ZXJlZCBXb3JrIHNoYWxsIGJlIGNvbnNpZGVyZWQgcGFydCBvZiBhbiBlZmZl Y3RpdmUgdGVjaG5vbG9naWNhbAptZWFzdXJlIHVuZGVyIEFydGljbGUgMTEgb2YgdGhlIFdJUE8g Q29weXJpZ2h0IFRyZWF0eSBvZiAyMCBEZWNlbWJlciAxOTk2LApvciBhbnkgc2ltaWxhciBsYXcs IHRvIHRoZSBleHRlbnQgdGhhdCBzdWNoIGEgbWVhc3VyZSBpcyB1c2VkIHByaW1hcmlseQp0byBy ZXN0cmljdCBvciBwcm9oaWJpdCB0aGUgZXhlcmNpc2Ugb2YgcmlnaHRzIGdyYW50ZWQgdW5kZXIg dGhpcyBMaWNlbnNlLgoKQnkgbGljZW5zaW5nLCBjb252ZXlpbmcsIG9yIG90aGVyd2lzZSBhcHBs eWluZyB0aGlzIExpY2Vuc2UgdG8gYSBXb3JrLAp5b3UgYWdyZWUgbm90IHRvIGFzc2VydCBhbnkg bGVnYWwgcmlnaHQgdG8gcHJvaGliaXQgb3IgcmVzdHJpY3QgdGhlCmNpcmN1bXZlbnRpb24gb2Yg dGVjaG5vbG9naWNhbCBtZWFzdXJlcyB3aGVyZSBzdWNoIGNpcmN1bXZlbnRpb24gaXMKbmVjZXNz YXJ5IHRvIGV4ZXJjaXNlIHRoZSByaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UuCgpU aGlzIFNlY3Rpb24gZG9lcyBub3QgcHJvaGliaXQgdGhlIHVzZSBvZiB0ZWNobmljYWwgbWVjaGFu aXNtcyB0aGF0IGFyZQpkZXNpZ25lZCBzb2xlbHkgdG8gZW5zdXJlIHN5c3RlbSBpbnRlZ3JpdHks IHNlY3VyaXR5LCBhdXRoZW50aWNpdHksIG9yCnJlbGlhYmxlIGRpc3RyaWJ1dGlvbiwgaW5jbHVk aW5nIGJ1dCBub3QgbGltaXRlZCB0byBzZWN1cmUgYm9vdAptZWNoYW5pc21zLCBjcnlwdG9ncmFw aGljIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24sIG9yIHBsYXRmb3JtLWxldmVsCmRpc3RyaWJ1dGlv biByZXF1aXJlbWVudHMsIHByb3ZpZGVkIHRoYXQgc3VjaCBtZWNoYW5pc21zIGRvIG5vdCBwcmV2 ZW50CnJlY2lwaWVudHMgZnJvbSBhY2Nlc3NpbmcsIG1vZGlmeWluZywgb3IgY29udmV5aW5nIHRo ZSBDb3JyZXNwb25kaW5nClJlc291cmNlIG9mIHRoZSBjb3ZlcmVkIFdvcmsgdW5kZXIgdGhlIHRl cm1zIG9mIHRoaXMgTGljZW5zZS4KCkFueSB0ZWNobm9sb2dpY2FsLCBjb250cmFjdHVhbCwgbGVn YWwsIG9yIHBvbGljeS1iYXNlZCBtZWNoYW5pc20gdGhhdCwKaW4gcHJhY3RpY2UsIGNvbmRpdGlv bnMgYWNjZXNzIHRvIHRoZSBDb3JyZXNwb25kaW5nIFJlc291cmNlIG9uIHBheW1lbnQsCmV4Y2x1 c2l2ZSBhZ3JlZW1lbnRzLCBzdWJzY3JpcHRpb24gc3RhdHVzLCBjdXN0b21lciBjbGFzc2lmaWNh dGlvbiwgb3IKYWNjZXB0YW5jZSBvZiB0ZXJtcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGlzIExpY2Vu c2Ugc2hhbGwgYmUgZGVlbWVkIGEKdGVjaG5vbG9naWNhbCBtZWFzdXJlIGZvciB0aGUgcHVycG9z ZXMgb2YgdGhpcyBTZWN0aW9uLgoKUGxhdGZvcm0gcG9saWNpZXMgb3IgZGlzdHJpYnV0aW9uIHJl cXVpcmVtZW50cyB0aGF0IGFwcGx5IHVuaWZvcm1seSwKd2l0aG91dCBkaXNjcmltaW5hdGlvbiwg YW5kIHRoYXQgZG8gbm90IHJlc3RyaWN0IHRoZSBhdmFpbGFiaWxpdHkgb3IKZXhlcmNpc2Ugb2Yg cmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIHNoYWxsIG5vdCwgYnkgdGhlbXNlbHZl cywKY29uc3RpdHV0ZSBhIHZpb2xhdGlvbiBvZiB0aGlzIFNlY3Rpb24uCgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCklWLiBBZGRpdGlvbmFsIFRlcm1zLgoKTm90aGluZyBpbiB0aGlzIExpY2Vuc2UgZ3Jh bnRzIHBlcm1pc3Npb24gdG8gcmVsaWNlbnNlIGEgV29yayBpbiBhCm1hbm5lciBub3QgcGVybWl0 dGVkIGJ5IHRoZSB0ZXJtcyB1bmRlciB3aGljaCB0aGF0IFdvcmsgd2FzIG9yaWdpbmFsbHkKbGlj ZW5zZWQuCgoiQWRkaXRpb25hbCBwZXJtaXNzaW9ucyIgYXJlIHRlcm1zIHRoYXQgc3VwcGxlbWVu dCB0aGlzIExpY2Vuc2UgYnkKZ3JhbnRpbmcgbGltaXRlZCBleGNlcHRpb25zIHRvIG9uZSBvciBt b3JlIG9mIGl0cyBjb25kaXRpb25zLCB3aXRob3V0CnJlbW92aW5nLCB3ZWFrZW5pbmcsIG9yIGNv bnRyYWRpY3RpbmcgdGhlIGNvcmUgcmVxdWlyZW1lbnRzIG9mIHRoaXMKTGljZW5zZS4KCkFkZGl0 aW9uYWwgcGVybWlzc2lvbnMgdGhhdCBhcHBseSB0byBhbiBlbnRpcmUgV29yayBzaGFsbCBiZSB0 cmVhdGVkCmFzIGluY29ycG9yYXRlZCBpbnRvIHRoaXMgTGljZW5zZSB3aXRoIHJlc3BlY3QgdG8g dGhhdCBXb3JrLCB0byB0aGUKZXh0ZW50IHRoYXQgdGhleSBhcmUgdmFsaWQgdW5kZXIgYXBwbGlj YWJsZSBsYXcuIFdoZXJlIGFkZGl0aW9uYWwKcGVybWlzc2lvbnMgYXBwbHkgb25seSB0byBhIHNw ZWNpZmljIHBvcnRpb24gb2YgYSBXb3JrLCB0aGF0IHBvcnRpb24KbWF5IGJlIHVzZWQgdW5kZXIg dGhvc2UgcGVybWlzc2lvbnMsIHByb3ZpZGVkIHRoYXQgdGhlIFdvcmsgYXMgYSB3aG9sZQpyZW1h aW5zIGdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZS4KCldoZW4gY29udmV5aW5nIGEgV29yayBjb3Zl cmVkIGJ5IHRoaXMgTGljZW5zZSwgeW91IGFyZSBub3QgcmVxdWlyZWQgdG8KcHJvcGFnYXRlIGFk ZGl0aW9uYWwgcGVybWlzc2lvbnMgdGhhdCB3ZXJlIGdyYW50ZWQgYnkgYSBwcmV2aW91cwpjb250 cmlidXRvciwgdW5sZXNzIHN1Y2ggcGVybWlzc2lvbnMgYXJlIGluc2VwYXJhYmxlIGZyb20gdGhl IG1hdGVyaWFsCnRvIHdoaWNoIHRoZXkgYXBwbHkuIEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbWF5 IGFsc28gYmUgcmVtb3ZlZCB3aGVuCm1vZGlmeWluZyB0aGUgV29yaywgd2hlcmUgc3VjaCByZW1v dmFsIGlzIG5lY2Vzc2FyeSB0byBwcmVzZXJ2ZSB0aGUKY29uc2lzdGVuY3kgb3IgaW50ZW50IG9m IHRoaXMgTGljZW5zZS4KCllvdSBtYXkgcGxhY2UgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBt YXRlcmlhbCBhZGRlZCBieSB5b3UgdG8gYQpjb3ZlcmVkIFdvcmssIHByb3ZpZGVkIHRoYXQgeW91 IGhhdmUgdGhlIGF1dGhvcml0eSB0byBncmFudCBzdWNoCnBlcm1pc3Npb25zIGZvciB0aGF0IG1h dGVyaWFsLgoKTm90d2l0aHN0YW5kaW5nIHRoZSBvdGhlciBwcm92aXNpb25zIG9mIHRoaXMgTGlj ZW5zZSwgYWRkaXRpb25hbApwZXJtaXNzaW9ucyBhcHBsaWNhYmxlIHRvIG1hdGVyaWFsIGFkZGVk IGJ5IHlvdSBtYXkgaW5jbHVkZSB0ZXJtcwp0aGF0OgoKICBhKSBkaXNjbGFpbSB3YXJyYW50eSBv ciBsaW1pdCBsaWFiaWxpdHkgZm9yIHRoYXQgbWF0ZXJpYWw7CgogIGIpIHJlcXVpcmUgdGhhdCBy ZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IgYXV0aG9yIGF0dHJpYnV0aW9ucyBiZQogICAgIHBy ZXNlcnZlZCBpbiBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGF0 IG1hdGVyaWFsOwoKICBjKSBwcm9oaWJpdCBtaXNyZXByZXNlbnRhdGlvbiBvZiB0aGUgb3JpZ2lu IG9mIHRoYXQgbWF0ZXJpYWwgb3IgcmVxdWlyZQogICAgIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMg YmUgY2xlYXJseSBtYXJrZWQgYXMgc3VjaDsKCiAgZCkgcmVzdHJpY3QgdGhlIHByb21vdGlvbmFs IHVzZSBvZiB0aGUgbmFtZXMgb2YgbGljZW5zb3JzIG9yIGF1dGhvcnMKICAgICBvZiB0aGF0IG1h dGVyaWFsOwoKICBlKSBkaXNjbGFpbSBhbnkgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgdG8g dXNlIHNwZWNpZmljIHRyYWRlIG5hbWVzLAogICAgIHRyYWRlbWFya3MsIG9yIHNlcnZpY2UgbWFy a3MgYXNzb2NpYXRlZCB3aXRoIHRoYXQgbWF0ZXJpYWwuCgpObyBhZGRpdGlvbmFsIHBlcm1pc3Np b24gbWF5IGltcG9zZSBjb25kaXRpb25zIHRoYXQgcmVzdHJpY3QsIG5lZ2F0ZSwKb3IgY2lyY3Vt dmVudCB0aGUgb2JsaWdhdGlvbnMgb2YgdGhpcyBMaWNlbnNlIGNvbmNlcm5pbmcgc291cmNlCmF2 YWlsYWJpbGl0eSwgY29weWxlZnQgcmVxdWlyZW1lbnRzLCBuZXR3b3JrLWJhc2VkIHVzZSwgb3Ig dGhlIHJpZ2h0cwpvZiByZWNpcGllbnRzIHRvIHVzZSwgbW9kaWZ5LCBhbmQgcmVkaXN0cmlidXRl IHRoZSBXb3JrLgoKV2hlcmUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcHBseSB0byBhIFdvcmss IHRoZSBhcHBsaWNhYmxlIHNvdXJjZQpmaWxlcyBtdXN0IGluY2x1ZGUgYSBjbGVhciBub3RpY2Ug ZGVzY3JpYmluZyB0aG9zZSBwZXJtaXNzaW9ucyBvcgppbmRpY2F0aW5nIHdoZXJlIHRoZSBmdWxs IHRleHQgb2Ygc3VjaCBwZXJtaXNzaW9ucyBtYXkgYmUgZm91bmQuCgpOb3R3aXRoc3RhbmRpbmcg dGhlIGNvcHlsZWZ0IHJlcXVpcmVtZW50cyBvZiB0aGlzIExpY2Vuc2UsIGEgY292ZXJlZApXb3Jr IG1heSBiZSBjb21iaW5lZCwgbGlua2VkLCBvciBvdGhlcndpc2UgdXNlZCB0b2dldGhlciB3aXRo IGEgV29yawpsaWNlbnNlZCB1bmRlciBhIENvbXBhdGlibGUgTGljZW5zZSwgcHJvdmlkZWQgdGhh dCBzdWNoCmNvbWJpbmF0aW9uIGRvZXMgbm90IGltcG9zZSBhZGRpdGlvbmFsIHJlc3RyaWN0aW9u cyBvbiB0aGUgY292ZXJlZApXb3JrIGJleW9uZCB0aG9zZSBwZXJtaXR0ZWQgYnkgdGhpcyBMaWNl bnNlLgoKQSBXb3JrIGxpY2Vuc2VkIHVuZGVyIGEgQ29tcGF0aWJsZSBMaWNlbnNlIHNoYWxsIGJl CmNvbnNpZGVyZWQsIGZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBMaWNlbnNlLCB0byBiZSBsaWNl bnNlLWNvbXBhdGlibGUKd2l0aCB0aGlzIExpY2Vuc2UuIFN1Y2ggY29tcGF0aWJpbGl0eSBhcHBs aWVzIHNvbGVseSBmb3IgdGhlIHB1cnBvc2VzCm9mIGNvbWJpbmF0aW9uLCBsaW5raW5nLCBhbmQg aW50ZXJvcGVyYWJpbGl0eSwgYW5kIGRvZXMgbm90IGFsdGVyIHRoZQpjb3B5bGVmdCByZXF1aXJl bWVudHMgYXBwbGljYWJsZSB0byB0aGUgY292ZXJlZCBXb3JrIGl0c2VsZi4KClRoZSBkZXNpZ25h dGlvbiBvZiBhIENvbXBhdGlibGUgTGljZW5zZSBkb2VzIG5vdCBncmFudApwZXJtaXNzaW9uIHRv IHJlbGljZW5zZSBhIGNvdmVyZWQgV29yayB1bmRlciB0aGF0IGxpY2Vuc2UsIHVubGVzcyBzdWNo CnBlcm1pc3Npb24gaXMgZXhwcmVzc2x5IHN0YXRlZCBieSB0aGUgYXBwbGljYWJsZSBjb3B5cmln aHQgaG9sZGVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpWLiBFc3NlbnRpYWwgUGVybWlzc2lvbnMu CgpBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0 aGUgZnVsbCB0ZXJtIG9mCmNvcHlyaWdodCBhcHBsaWNhYmxlIHRvIHRoZSBXb3JrIGFuZCBhcmUg aXJyZXZvY2FibGUsIHByb3ZpZGVkIHRoYXQKdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNl IGFyZSBzYXRpc2ZpZWQuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZApjb25kaXRpb25zIG9mIHRo aXMgTGljZW5zZSwgeW91IGFyZSBwZXJtaXR0ZWQgdG8gdXNlLCBvcGVyYXRlLCBzdHVkeSwKbW9k aWZ5LCBhbmQgY29udmV5IHRoZSBXb3JrLiBPcGVyYXRpb24gb2YgYW4gdW5tb2RpZmllZCBXb3Jr IGZvciBwcml2YXRlLAppbnRlcm5hbCwgdGVzdGluZywgZGV2ZWxvcG1lbnQsIG9yIGV2YWx1YXRp b24gcHVycG9zZXMgZG9lcyBub3QsIGJ5IGl0c2VsZiwKaW1wb3NlIGFueSBvYmxpZ2F0aW9uIHRv IGNvbnZleSB0aGUgV29yayBvciBtYWtlIGl0cyBDb3JyZXNwb25kaW5nIFJlc291cmNlCmF2YWls YWJsZSwgZXhjZXB0IHdoZXJlIGV4cHJlc3NseSBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgoKWW91 IG1heSBjb252ZXkgdGhlIFdvcmssIGluIG9yaWdpbmFsIG9yIG1vZGlmaWVkIGZvcm0sIHByb3Zp ZGVkIHRoYXQKZWFjaCByZWNpcGllbnQgcmVjZWl2ZXMgdGhlIHNhbWUgcmlnaHRzIGFuZCBvYmxp Z2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UsIGFuZCB0aGF0IG5vIGFkZGl0aW9uYWwgcmVzdHJp Y3Rpb25zIGFyZSBpbXBvc2VkIG9uIHRoZQpleGVyY2lzZSBvZiB0aG9zZSByaWdodHMuCgpZb3Ug bWF5IGVuZ2FnZSB0aGlyZCBwYXJ0aWVzIHRvIHBlcmZvcm0gYWN0aXZpdGllcyBvbiB5b3VyIGJl aGFsZgpyZWxhdGluZyB0byB0aGUgY3JlYXRpb24sIG1vZGlmaWNhdGlvbiwgb3BlcmF0aW9uLCBv ciBkaXNwbGF5IG9mIHRoZQpXb3JrLCBwcm92aWRlZCB0aGF0IHN1Y2ggYWN0aXZpdGllcyBhcmUg Y2FycmllZCBvdXQgdW5kZXIgeW91cgphdXRob3JpemF0aW9uIGFuZCB0aGF0IG5vIGNvcGllcyBv ZiB0aGUgV29yayBhcmUgcmV0YWluZWQsIGNvbnZleWVkLApvciBtYWRlIGF2YWlsYWJsZSBiZXlv bmQgdGhlIHNjb3BlIG9mIHRoYXQgZW5nYWdlbWVudCwgZXhjZXB0IGFzCnBlcm1pdHRlZCB1bmRl ciB0aGlzIExpY2Vuc2UuCgpJZiB0aGUgV29yaywgb3IgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRo ZSBXb3JrLCBpcyBvcGVyYXRlZCBwcmltYXJpbHkKZm9yIHRoZSBwdXJwb3NlIG9mIHByb3ZpZGlu ZyBpdHMgZnVuY3Rpb25hbGl0eSBvciBvdXRwdXQgdG8gdGhpcmQKcGFydGllcyB0aHJvdWdoIGEg Y29tcHV0ZXIgbmV0d29yaywgaW5jbHVkaW5nIHZpYSBob3N0ZWQsIHJlbW90ZSwKb3IgaW50ZXJu ZXQtYWNjZXNzaWJsZSBzZXJ2aWNlcywgc3VjaCBvcGVyYXRpb24gc2hhbGwgYmUgdHJlYXRlZAph cyBjb252ZXlhbmNlIHNvbGVseSBmb3IgdGhlIGxpbWl0ZWQgcHVycG9zZSBvZiB0cmlnZ2VyaW5n IHNvdXJjZQphdmFpbGFiaWxpdHkgb2JsaWdhdGlvbnMgZXhwcmVzc2x5IGlkZW50aWZpZWQgaW4g dGhpcyBMaWNlbnNlLCBhbmQKc2hhbGwgbm90IGJlIGNvbnN0cnVlZCBhcyBhIGdlbmVyYWwgY29u dmV5YW5jZSBmb3IgYW55IG90aGVyIHB1cnBvc2UuCkluIHN1Y2ggY2FzZXMsIHRoZSBDb3JyZXNw b25kaW5nIFJlc291cmNlIG9mIHRoZSBXb3JrIG11c3QgYmUgbWFkZQpwdWJsaWNseSBhdmFpbGFi bGUgdW5kZXIgdGhpcyBMaWNlbnNlIGluIGEgcmVhc29uYWJsZSwgdGltZWx5LCBhbmQKYWNjZXNz aWJsZSBtYW5uZXIsIGF0IG5vIGFkZGl0aW9uYWwgY2hhcmdlLgoKQW55IG91dHB1dCByZXN1bHRp bmcgZnJvbSB0aGUgb3BlcmF0aW9uIG9mIHRoZSBXb3JrIGlzIGNvdmVyZWQgdW5kZXIKdGhpcyBM aWNlbnNlIG9ubHkgdG8gdGhlIGV4dGVudCB0aGF0IHN1Y2ggb3V0cHV0IGl0c2VsZiBjb25zdGl0 dXRlcywKaW4gd2hvbGUgb3IgaW4gcGFydCwgYSBjb3ZlcmVkIFdvcmsgb3IgYSBkZXJpdmF0aXZl IHRoZXJlb2YuCgpTdWJsaWNlbnNpbmcgb2YgdGhlIFdvcmsgYXMgYSBzZXBhcmF0ZSBsaWNlbnNl IGdyYW50IGlzIG5vdCBwZXJtaXR0ZWQuCkFsbCByaWdodHMgZ3JhbnRlZCB0byByZWNpcGllbnRz IGFyaXNlIHNvbGVseSBmcm9tIHRoaXMgTGljZW5zZSBhbmQgbm90CmZyb20gYW55IHNlcGFyYXRl IGxpY2Vuc2UgZ3JhbnQgYnkgYW4gaW50ZXJtZWRpYXJ5LiBUaGlzIExpY2Vuc2UgbWF5Cm5vdCBi ZSBhcHBsaWVkIHRvIGEgV29yayBpbiBhIG1hbm5lciB0aGF0IHN1YmplY3RzIHRoZSBzYW1lIFdv cmssIGluCndob2xlIG9yIGluIHBhcnQsIHRvIGFkZGl0aW9uYWwgb3IgY29uZmxpY3RpbmcgbGlj ZW5zZSB0ZXJtcy4gUmVsaWNlbnNpbmcKb2YgdGhlIFdvcmsgaXMgcGVybWl0dGVkIG9ubHkgd2hl cmUgZXhwbGljaXRseSBhdXRob3JpemVkIHVuZGVyIHRoZSB0ZXJtcwpvZiB0aGlzIExpY2Vuc2Uu CgpWLmEgTmV0d29yay1CYXNlZCBPcGVyYXRpb24KClRoZSBvYmxpZ2F0aW9ucyBkZXNjcmliZWQg aW4gdGhpcyBMaWNlbnNlIGFwcGx5IGluIGFkZGl0aW9uIHRvLCBhbmQKaW5kZXBlbmRlbnRseSBm cm9tLCBhbnkgb2JsaWdhdGlvbnMgYXJpc2luZyBmcm9tIGRpc3RyaWJ1dGlvbiBvcgp0cmFuc2Zl ciBvZiBjb3BpZXMsIGluY2x1ZGluZyB3aGVyZSB0aGUgV29yayBpcyBvcGVyYXRlZCB0byBwcm92 aWRlCmZ1bmN0aW9uYWxpdHkgdG8gdGhpcmQgcGFydGllcyB0aHJvdWdoIGEgbmV0d29yay4KCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKVkkuIFRyYW5zbWlzc2lvbiBvZiBJZGVudGljYWwgQ29waWVzLgoK WW91IG1heSBjb252ZXkgZXhhY3QsIHVubW9kaWZpZWQgY29waWVzIG9mIHRoZSBXb3JrLCBhcyBy ZWNlaXZlZCwgaW4gYW55Cm1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBh bmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uCmVhY2ggY29weSBhbiBhcHByb3ByaWF0ZSBjb3B5 cmlnaHQgbm90aWNlOyBrZWVwIGludGFjdCBhbGwgbm90aWNlcwpzdGF0aW5nIHRoYXQgdGhpcyBM aWNlbnNlIGFwcGxpZXMgdG8gdGhlIFdvcmsgYW5kIHRoYXQgbm8gd2FycmFudHkgaXMKcHJvdmlk ZWQ7IGFuZCBwcm92aWRlIGFsbCByZWNpcGllbnRzIHdpdGggYSBjb3B5IG9mIHRoaXMgTGljZW5z ZS4KClRoZSBjb252ZXlhbmNlIG9mIGlkZW50aWNhbCBjb3BpZXMgdW5kZXIgdGhpcyBTZWN0aW9u IHNoYWxsIG5vdCBpbXBvc2UKYW55IHRlY2huaWNhbCwgY29udHJhY3R1YWwsIHByb2NlZHVyYWws IG9yIHByYWN0aWNhbCByZXN0cmljdGlvbnMgdGhhdAp3b3VsZCBsaW1pdCBvciBpbnRlcmZlcmUg d2l0aCB0aGUgcmVjaXBpZW50c+KAmSBhYmlsaXR5IHRvIGFjY2VzcywgY29weSwKbW9kaWZ5LCBv ciByZWRpc3RyaWJ1dGUgdGhlIFdvcmsgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSB0ZXJtcyBvZiB0 aGlzCkxpY2Vuc2UuCgpXaGVyZSBpZGVudGljYWwgY29waWVzIG9mIHRoZSBXb3JrIGFyZSBtYWRl IGF2YWlsYWJsZSB0byBhbnkgcmVjaXBpZW50CnRocm91Z2ggb25saW5lIHNlcnZpY2VzLCBzdWJz Y3JpcHRpb24tYmFzZWQgc3lzdGVtcywgb3IgY29udHJvbGxlZAphY2Nlc3MgcGxhdGZvcm1zLCB0 aGUgQ29ycmVzcG9uZGluZyBSZXNvdXJjZSBmb3IgdGhhdCBXb3JrIG11c3QgYmUgbWFkZQpwdWJs aWNseSBhdmFpbGFibGUgdW5kZXIgdGhpcyBMaWNlbnNlIG5vIGxhdGVyIHRoYW4gdGhlIHRpbWUg c3VjaCBjb3BpZXMKYXJlIGZpcnN0IG1hZGUgYXZhaWxhYmxlIHRvIGFueSByZWNpcGllbnQuIFN1 Y2ggYXZhaWxhYmlsaXR5IHNoYWxsIG5vdApiZSBjb25kaXRpb25lZCBvbiBleGNsdXNpdmUgYWdy ZWVtZW50cywgbm9uLWRpc2Nsb3N1cmUgb2JsaWdhdGlvbnMsCmFjY291bnQgcmVnaXN0cmF0aW9u LCBwYXltZW50LCBvciBhY2NlcHRhbmNlIG9mIHRlcm1zIGluY29uc2lzdGVudCB3aXRoCnRoaXMg TGljZW5zZS4KCk5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHByb2hpYml0cyBjaGFyZ2luZyBhIGZl ZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZgp0cmFuc2ZlcnJpbmcgYSBjb3B5LCBvciBmb3IgcHJv dmlkaW5nIHNlcnZpY2VzIHN1Y2ggYXMgc3VwcG9ydCwKbWFpbnRlbmFuY2UsIG9yIHdhcnJhbnR5 IHByb3RlY3Rpb24uIEhvd2V2ZXIsIHN1Y2ggZmVlcyBvciBzZXJ2aWNlcwpzaGFsbCBub3QgYmUg dXNlZCB0byByZXN0cmljdCwgZGVsYXksIGNvbmRpdGlvbiwgb3IgZGlzY291cmFnZSBhY2Nlc3MK dG8gdGhlIFdvcmsgb3IgaXRzIENvcnJlc3BvbmRpbmcgUmVzb3VyY2UuCgpEaXN0cmlidXRpb24g b2YgdGhlIFdvcmsgdGhyb3VnaCBhcHBsaWNhdGlvbiBzdG9yZXMsIHJlcG9zaXRvcmllcywgb3IK b3RoZXIgY29udHJvbGxlZCBwbGF0Zm9ybXMgaXMgcGVybWl0dGVkIG9ubHkgdG8gdGhlIGV4dGVu dCB0aGF0IHN1Y2gKZGlzdHJpYnV0aW9uIGRvZXMgbm90IGltcG9zZSBhZGRpdGlvbmFsIHJlc3Ry aWN0aW9ucyBiZXlvbmQgdGhvc2UKcGVybWl0dGVkIGJ5IHRoaXMgTGljZW5zZS4KCkNsZWFyLCBw cm9taW5lbnQsIGFuZCBwZXJzaXN0ZW50IGluc3RydWN0aW9ucyBmb3Igb2J0YWluaW5nIHRoZQpD b3JyZXNwb25kaW5nIFJlc291cmNlIG11c3QgYmUgcHJvdmlkZWQgYWxvbmdzaWRlIHRoZSBXb3Jr LCBhbmQgc3VjaApyZXNvdXJjZSBtdXN0IGJlIGFjY2Vzc2libGUgdG8gdGhlIGdlbmVyYWwgcHVi bGljIHRocm91Z2ggYW55IHJlYXNvbmFibGUKYW5kIHB1YmxpY2x5IGFjY2Vzc2libGUgbWVhbnMg d2l0aG91dCB1bmR1ZSBiYXJyaWVycy4KCkZvciB0aGUgYXZvaWRhbmNlIG9mIGRvdWJ0LCBDb3Jy ZXNwb25kaW5nIFJlc291cmNlIGluY2x1ZGVzIG9ubHkKdGhvc2UgY29uZmlndXJhdGlvbiBvciBp bnRlZ3JhdGlvbiBjb21wb25lbnRzIHRoYXQgYXJlIHNwZWNpZmljYWxseQp3cml0dGVuIHRvIG1h a2UgdGhlIGNvdmVyZWQgV29yayBmdW5jdGlvbiBhcyBhIG5ldHdvcmstYWNjZXNzaWJsZQpzZXJ2 aWNlLCBhbmQgZG9lcyBub3QgaW5jbHVkZSBnZW5lcmFsIGluZnJhc3RydWN0dXJlIG9yIHVucmVs YXRlZApzeXN0ZW1zLiBUaGlzIG9ibGlnYXRpb24gYXBwbGllcyByZWdhcmRsZXNzIG9mIHdoZXRo ZXIgc3VjaCBjb2RlIGlzCmNoYXJhY3Rlcml6ZWQgYXMg4oCcZ2x1ZSBjb2Rl4oCdLCDigJxpbmZy YXN0cnVjdHVyZSBjb2Rl4oCdLCBvciDigJxkZXBsb3ltZW50CmNvbmZpZ3VyYXRpb27igJ0uCgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCkVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClRoZSBvcGluaW9ucyBleHBy ZXNzZWQgaW4gdGhpcyBlbWFpbCBhcmUgdGhvc2Ugb2YgdGhlIHNlbmRlciBhbmQgbm90IG5lY2Vz c2FyaWx5IHRob3NlIG9mIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLiBPZmZpY2lhbCBzdGF0 ZW1lbnRzIGJ5IHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlIHdpbGwgYmUgc2VudCBmcm9tIGFu IG9wZW5zb3VyY2Uub3JnIGVtYWlsIGFkZHJlc3MuCgpMaWNlbnNlLWRpc2N1c3MgbWFpbGluZyBs aXN0CkxpY2Vuc2UtZGlzY3Vzc0BsaXN0cy5vcGVuc291cmNlLm9yZwpodHRwOi8vbGlzdHMub3Bl bnNvdXJjZS5vcmcvbWFpbG1hbi9saXN0aW5mby9saWNlbnNlLWRpc2N1c3NfbGlzdHMub3BlbnNv dXJjZS5vcmcK