Nmap 6.25 holiday season release! 85 new scripts, better performance, Windows 8 enhancements, and more
Fyodor <[email protected]> Thu, 29 Nov 2012 16:34:15 -0800
| Newsgroups | gmane.comp.security.nmap.general |
|---|---|
| Message-ID | <CAJjO9M=k=UTpO1BMddfx3KjkdL3iNtd5EgNT2ZRffCiJo8bpxQ@mail.gmail.com> |
SGkgZm9sa3MuICBJdCBoYXMgYmVlbiBtb3JlIHRoYW4gZml2ZSBtb250aHMgc2luY2UgdGhlIE5t YXAgNi4wMQpyZWxlYXNlLCBhbmQgSSdtIHBsZWFzZWQgdG8gYW5ub3VuY2UgYSBuZXcgdmVyc2lv biBmb3IgeW91IHRvIGVuam95CmR1cmluZyB0aGUgaG9saWRheXMhICBObWFwIDYuMjUgY29udGFp bnMgaHVuZHJlZHMgb2YgaW1wcm92ZW1lbnRzLAppbmNsdWRpbmcgODUgbmV3IE5TRSBzY3JpcHRz LCBuZWFybHkgMSwwMDAgbmV3IE9TIGFuZCBzZXJ2aWNlCmRldGVjdGlvbiBmaW5nZXJwcmludHMs IHBlcmZvcm1hbmNlIGVuaGFuY2VtZW50cyBzdWNoIGFzIHRoZSBuZXcKa3F1ZXVlIGFuZCBwb2xs IEkvTyBlbmdpbmVzLCBiZXR0ZXIgSVB2NiB0cmFjZXJvdXRlIHN1cHBvcnQsIFdpbmRvd3MgOApp bXByb3ZlbWVudHMsIGFuZCBtdWNoIG1vcmUhICBJdCBhbHNvIGluY2x1ZGVzIHRoZSB3b3JrIG9m IGZpdmUgR29vZ2xlClN1bW1lciBvZiBDb2RlIGludGVybnMgd2hvIHdvcmtlZCBmdWxsIHRpbWUg d2l0aCBObWFwIG1lbnRvcnMgZHVyaW5nCnRoZSBzdW1tZXIuCgpObWFwIDYuMjUgc291cmNlIGNv ZGUgYW5kIGJpbmFyeSBwYWNrYWdlcyBmb3IgTGludXgsIFdpbmRvd3MsIGFuZCBNYWMKYXJlIGF2 YWlsYWJsZSBmb3IgZnJlZSBkb3dubG9hZCBmcm9tOgoKaHR0cDovL25tYXAub3JnL2Rvd25sb2Fk Lmh0bWwKCklmIHlvdSBmaW5kIGFueSBidWdzLCBwbGVhc2UgbGV0IHVzIGtub3cgb24gbm1hcC1k ZXYgYXMgZGVzY3JpYmVkIGF0Cmh0dHA6Ly9ubWFwLm9yZy9ib29rL21hbi1idWdzLmh0bWwuICBI ZXJlIGFyZSB0aGUgbW9zdCBpbXBvcnRhbnQKY2hhbmdlIHNpbmNlIDYuMDE6CgpvIEludGVncmF0 ZWQgYWxsIG9mIHlvdXIgSVB2NCBPUyBmaW5nZXJwcmludCBzdWJtaXNzaW9ucyBzaW5jZSBKYW51 YXJ5CiAgKG1vcmUgdGhhbiAzLDAwMCBvZiB0aGVtKS4gIEFkZGVkIDM3MyBmaW5nZXJwcmludHMs IGJyaW5naW5nIHRoZSBuZXcKICB0b3RhbCB0byAzLDk0Ni4gIEFkZGl0aW9ucyBpbmNsdWRlIExp bnV4IDMuNiwgV2luZG93cyA4LCBXaW5kb3dzCiAgU2VydmVyIDIwMTIsIE1hYyBPUyBYIDEwLjgs IGFuZCBhIHRvbiBvZiBuZXcgV0FQcywgcHJpbnRlcnMsCiAgcm91dGVycywgYW5kIG90aGVyIGRl dmljZXMtLWluY2x1ZGluZyBvdXIgZmlyc3QgSVAtZW5hYmxlZCBkb29yYmVsbCEKICBNYW55IGV4 aXN0aW5nIGZpbmdlcnByaW50cyB3ZXJlIGltcHJvdmVkLiBbRGF2aWQgRmlmaWVsZF0KCm8gSW50 ZWdyYXRlZCBhbGwgb2YgeW91ciBzZXJ2aWNlL3ZlcnNpb24gZGV0ZWN0aW9uIGZpbmdlcnByaW50 cwogIHN1Ym1pdHRlZCBzaW5jZSBKYW51YXJ5IChtb3JlIHRoYW4gMSw1MDApISAgT3VyIHNpZ25h dHVyZQogIGNvdW50IGp1bXBlZCBieSBtb3JlIHRoYW4gNDAwIHRvIDgsNjQ1LiAgV2Ugbm93IGRl dGVjdCA4OTcKICBwcm90b2NvbHMsIGZyb20gZXh0cmVtZWx5IHBvcHVsYXIgb25lcyBsaWtlIGh0 dHAsIHNzaCwgc210cCBhbmQgaW1hcAogIHRvIHRoZSBtb3JlIG9ic2N1cmUgYWlyZHJvaWQsIGdv cGhlci1wcm94eSwgYW5kCiAgZW5lbXl0ZXJyaXRvcnkuIFtEYXZpZCBGaWZpZWxkXQoKbyBJbnRl Z3JhdGVkIHlvdXIgbGF0ZXN0IElQdjYgT1Mgc3VibWlzc2lvbnMgYW5kIGNvcnJlY3Rpb25zLiBX ZSdyZQogIHN0aWxsIGxvdyBvbiBJUHY2IGZpbmdlcnByaW50cywgc28gcGxlYXNlIHNjYW4gYW55 IElQdjYgc3lzdGVtcyB5b3UKICBvd24gb3IgYWRtaW5pc3RlciBhbmQgc3VibWl0IHRoZW0gdG8g aHR0cDovL25tYXAub3JnL3N1Ym1pdC8uICBCb3RoCiAgbmV3IGZpbmdlcnByaW50cyAoaWYgTm1h cCBkb2Vzbid0IGZpbmQgYSBnb29kIG1hdGNoKSBhbmQgY29ycmVjdGlvbnMKICAoaWYgTm1hcCBn dWVzc2VzIHdyb25nKSBhcmUgdXNlZnVsLgoKbyBFbmFibGVkIHN1cHBvcnQgZm9yIElQdjYgdHJh Y2Vyb3V0ZSB1c2luZyBVRFAsIFNDVFAsIGFuZCBJUFByb3RvCiAgKE5leHQgSGVhZGVyKSBwcm9i ZXMuIFtEYXZpZCBGaWZpZWxkXQoKbyBTY3JpcHRzIGNhbiBub3cgcmV0dXJuIGEgc3RydWN0dXJl ZCBuYW1lLXZhbHVlIHRhYmxlIHNvIHRoYXQgcmVzdWx0cwogIGFyZSBxdWVyeS1hYmxlIGZyb20g WE1MIG91dHB1dC4gU2NyaXB0cyBjYW4gcmV0dXJuIGEgc3RyaW5nIGFzCiAgYmVmb3JlLCBvciBh IHRhYmxlLCBvciBhIHRhYmxlIGFuZCBhIHN0cmluZy4gSW4gdGhpcyBsYXN0IGNhc2UsIHRoZQog IHRhYmxlIHdpbGwgZ28gdG8gWE1MIG91dHB1dCBhbmQgdGhlIHN0cmluZyB3aWxsIGdvIHRvIHNj cmVlbiBvdXRwdXQuCiAgU2VlIGh0dHA6Ly9ubWFwLm9yZy9ib29rL25zZS1hcGkuaHRtbCNuc2Ut c3RydWN0dXJlZC1vdXRwdXQgW0RhbmllbAogIE1pbGxlciwgRGF2aWQgRmlmaWVsZCwgUGF0cmlj ayBEb25uZWxseV0KCm8gW05zb2NrXSBBZGRlZCBuZXcgcG9sbCBhbmQga3F1ZXVlIEkvTyBlbmdp bmVzIGZvciBpbXByb3ZlZAogIHBlcmZvcm1hbmNlIG9uIFdpbmRvd3MgYW5kIEJTRC1iYXNlZCBz eXN0ZW1zIGluY2x1ZGluZyBNYWMgT1MgWC4KICBUaGVzZSBhcmUgaW4gYWRkaXRpb24gdG8gdGhl IGVwb2xsIGVuZ2luZSAodXNlZCBvbiBMaW51eCkgYW5kIHRoZQogIGNsYXNzaWMgc2VsZWN0IGVu Z2luZSBmYWxsYmFjayBmb3Igb3RoZXIgc3lzdGVtLiAgW0hlbnJpIERvcmVhdV0KCm8gW05jYXRd IEFkZGVkIHN1cHBvcnQgZm9yIFVuaXggZG9tYWluIHNvY2tldHMuIFRoZSBuZXcgLVUgYW5kCiAg LS11bml4c29jayBvcHRpb25zIGFjdGl2YXRlIHRoaXMgbW9kZS4gIFRoZXNlIHByb3ZpZGUgY29t cGF0aWJpbGl0eQogIHdpdGggSG9iYml0J3Mgb3JpZ2luYWwgTmV0Y2F0LiBbVG9tYXMgSG96emFd CgpvIE1vdmVkIHNvbWUgV2luZG93cyBkZXBlbmRlbmNpZXMsIGluY2x1ZGluZyBPcGVuU1NMLCBs aWJzdm4sIGFuZCB0aGUKICB2Y3JlZGlzdCBmaWxlcywgaW50byBhIG5ldyBwdWJsaWMgU3VidmVy c2lvbiBkaXJlY3RvcnkKICAvbm1hcC1tc3dpbjMyLWF1eCBhbmQgbW92ZWQgaXQgb3V0IG9mIHRo ZSBzb3VyY2UgdGFyYmFsbC4gVGhpcwogIHJlZHVjZXMgdGhlIGNvbXByZXNzZWQgdGFyYmFsbCBz aXplIGZyb20gMjIgTUIgdG8gOCBNQiBhbmQgc2ltaWxhcmx5CiAgcmVkdWNlcyB0aGUgYmFuZHdp ZHRoIGFuZCBzdG9yYWdlIHJlcXVpcmVkIGZvciBhbiBzdm4gY2hlY2tvdXQuCiAgRm9sa3Mgd2hv IGJ1aWxkIE5tYXAgb24gV2luZG93cyB3aWxsIG5lZWQgdG8gY2hlY2sgb3V0CiAgL25tYXAtbXN3 aW4zMi1hdXggYWxvbmcgd2l0aCAvbm1hcCBhcyBkZXNjcmliZWQgYXQKICBodHRwOi8vbm1hcC5v cmcvYm9vay9pbnN0LXdpbmRvd3MuaHRtbCNpbnN0LXdpbi1zb3VyY2UuCgpvIE1hbnkgb2YgdGhl IGdyZWF0IGZlYXR1cmVzIGluIHRoaXMgcmVsZWFzZSB3ZXJlIGNyZWF0ZWQgYnkgY29sbGVnZQog IGFuZCBncmFkIHN0dWRlbnRzIGdlbmVyb3VzbHkgc3BvbnNvcmVkIGJ5IEdvb2dsZSdzIFN1bW1l ciBvZiBDb2RlCiAgcHJvZ3JhbS4gIFRoYW5rcywgR29vZ2xlIE9wZW4gU291cmNlIERlcGFydG1l bnQhICBUaGlzIHllYXIncyB0ZWFtCiAgb2YgZml2ZSBkZXZlbG9wZXJzIGlzIGludHJvZHVjZWQg YXQKICBodHRwOi8vc2VjbGlzdHMub3JnL25tYXAtZGV2LzIwMTIvcTIvMjA0IGFuZCB0aGVpciBz dWNjZXNzZXMKICBkb2N1bWVudGVkIGF0IGh0dHA6Ly9zZWNsaXN0cy5vcmcvbm1hcC1kZXYvMjAx Mi9xNC8xMzgKCm8gW05TRV0gUmVwbGFjZWQgb2xkIFJQQyBncmluZGVyIChSUEMgZW51bWVyYXRp b24sIHBlcmZvcm1lZCBhcyBwYXJ0CiAgb2YgdmVyc2lvbiBkZXRlY3Rpb24gd2hlbiBhIHBvcnQg c2VlbXMgdG8gcnVuIGEgU3VuUlBDIHNlcnZpY2UpIHdpdGgKICBhIGZhc3RlciBhbmQgZWFzaWVy IHRvIG1haW50YWluIE5TRS1iYXNlZCBpbXBsZW1lbnRhdGlvbi4gIFRoaXMgYWxzbwogIGFsbG93 ZWQgdXMgdG8gcmVtb3ZlIHRoZSBjcnVmdHkgb2xkIHBvc19zY2FuIHNjYW4gZW5naW5lLiBbSGFu aQogIEJlbmhhYmlsZXNdCgpvIFVwZGF0ZWQgb3VyIE5tYXAgU2NyaXB0aW5nIEVuZ2luZSB0byB1 c2UgTHVhIDUuMiAoYW5kIHRoZW4gNS4yLjEpCiAgcmF0aGVyIHRoYW4gNS4xLiBTZWUgaHR0cDov L3NlY2xpc3RzLm9yZy9ubWFwLWRldi8yMDEyL3EyLzM0IGZvcgogIGRldGFpbHMuIFtQYXRyaWNr IERvbm5lbGx5XQoKbyBbTlNFXSBBZGRlZCA4NSghKSBOU0Ugc2NyaXB0cywgYnJpbmdpbmcgdGhl IHRvdGFsIHVwIHRvIDQzMy4gIFRoZXkKICBhcmUgYWxsIGxpc3RlZCBhdCBodHRwOi8vbm1hcC5v cmcvbnNlZG9jLywgYW5kIHRoZSBzdW1tYXJpZXMgYXJlCiAgYmVsb3cgKGF1dGhvcnMgYXJlIGxp c3RlZCBpbiBicmFja2V0cyk6CgogICsgYWpwLWF1dGggcmV0cmlldmVzIHRoZSBhdXRoZW50aWNh dGlvbiBzY2hlbWUgYW5kIHJlYWxtIG9mIGFuIEFKUAogICAgc2VydmljZSAoQXBhY2hlIEpTZXJ2 IFByb3RvY29sKSB0aGF0IHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiBUaGUKICAgIEFwYWNoZSBK U2VydiBQcm90b2NvbCBpcyBjb21tb25seSB1c2VkIGJ5IHdlYiBzZXJ2ZXJzIHRvCiAgICBjb21t dW5pY2F0ZSB3aXRoIGJhY2stZW5kIEphdmEgYXBwbGljYXRpb24gc2VydmVyCiAgICBjb250YWlu ZXJzLiBbUGF0cmlrIEthcmxzc29uXQoKICArIGFqcC1icnV0ZSBwZXJmb3JtcyBicnV0ZSBmb3Jj ZSBwYXNzd29yZHMgYXVkaXRpbmcgYWdhaW5zdCB0aGUKICAgIEFwYWNoZSBKU2VydiBwcm90b2Nv bC4gW1BhdHJpayBLYXJsc3Nvbl0KCiAgKyBhanAtaGVhZGVycyBwZXJmb3JtcyBhIEhFQUQgb3Ig R0VUIHJlcXVlc3QgYWdhaW5zdCBlaXRoZXIgdGhlIHJvb3QKICAgIGRpcmVjdG9yeSBvciBhbnkg b3B0aW9uYWwgZGlyZWN0b3J5IG9mIGFuIEFwYWNoZSBKU2VydiBQcm90b2NvbAogICAgc2VydmVy IGFuZCByZXR1cm5zIHRoZSBzZXJ2ZXIgcmVzcG9uc2UgaGVhZGVycy4gW1BhdHJpayBLYXJsc3Nv bl0KCiAgKyBhanAtbWV0aG9kcyBkaXNjb3ZlcnMgd2hpY2ggb3B0aW9ucyBhcmUgc3VwcG9ydGVk IGJ5IHRoZSBBSlAKICAgIChBcGFjaGUgSlNlcnYgUHJvdG9jb2wpIHNlcnZlciBieSBzZW5kaW5n IGFuIE9QVElPTlMgcmVxdWVzdCBhbmQKICAgIGxpc3RzIHBvdGVudGlhbGx5IHJpc2t5IG1ldGhv ZHMuIFtQYXRyaWsgS2FybHNzb25dCgogICsgYWpwLXJlcXVlc3QgcmVxdWVzdHMgYSBVUkkgb3Zl ciB0aGUgQXBhY2hlIEpTZXJ2IFByb3RvY29sIGFuZAogICAgZGlzcGxheXMgdGhlIHJlc3VsdCAo b3Igc3RvcmVzIGl0IGluIGEgZmlsZSkuIERpZmZlcmVudCBBSlAKICAgIG1ldGhvZHMgc3VjaCBh czsgR0VULCBIRUFELCBUUkFDRSwgUFVUIG9yIERFTEVURSBtYXkgYmUKICAgIHVzZWQuIFtQYXRy aWsgS2FybHNzb25dCgogICsgYmpucC1kaXNjb3ZlciByZXRyaWV2ZXMgcHJpbnRlciBvciBzY2Fu bmVyIGluZm9ybWF0aW9uIGZyb20gYQogICAgcmVtb3RlIGRldmljZSBzdXBwb3J0aW5nIHRoZSBC Sk5QIHByb3RvY29sLiBUaGUgcHJvdG9jb2wgaXMga25vd24KICAgIHRvIGJlIHN1cHBvcnRlZCBi eSBuZXR3b3JrIGJhc2VkIENhbm9uIGRldmljZXMuIFtQYXRyaWsgS2FybHNzb25dCgogICsgYnJv YWRjYXN0LWF0YW9lLWRpc2NvdmVyIGRpc2NvdmVycyBzZXJ2ZXJzIHN1cHBvcnRpbmcgdGhlIEFU QSBvdmVyCiAgICBFdGhlcm5ldCBwcm90b2NvbC4gQVRBIG92ZXIgRXRoZXJuZXQgaXMgYW4gZXRo ZXJuZXQgcHJvdG9jb2wKICAgIGRldmVsb3BlZCBieSB0aGUgQnJhbnRsZXkgQ29pbGUgQ29tcGFu eSBhbmQgYWxsb3dzIGZvciBzaW1wbGUsCiAgICBoaWdoLXBlcmZvcm1hbmNlIGFjY2VzcyB0byBT QVRBIGRyaXZlcyBvdmVyIEV0aGVybmV0LiBbUGF0cmlrCiAgICBLYXJsc3Nvbl0KCiAgKyBicm9h ZGNhc3QtYmpucC1kaXNjb3ZlciBhdHRlbXB0cyB0byBkaXNjb3ZlciBDYW5vbiBkZXZpY2VzCiAg ICAoUHJpbnRlcnMvU2Nhbm5lcnMpIHN1cHBvcnRpbmcgdGhlIEJKTlAgcHJvdG9jb2wgYnkgc2Vu ZGluZyBCSk5QCiAgICBEaXNjb3ZlciByZXF1ZXN0cyB0byB0aGUgbmV0d29yayBicm9hZGNhc3Qg YWRkcmVzcyBmb3IgYm90aCBwb3J0cwogICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm90b2NvbC4g W1BhdHJpayBLYXJsc3Nvbl0KCiAgKyBicm9hZGNhc3QtZWlncnAtZGlzY292ZXJ5IHBlcmZvcm1z IG5ldHdvcmsgZGlzY292ZXJ5IGFuZCByb3V0aW5nCiAgICBpbmZvcm1hdGlvbiBnYXRoZXJpbmcg dGhyb3VnaCBDaXNjbydzIEVJR1JQIHByb3RvY29sLiBbSGFuaQogICAgQmVuaGFiaWxlc10KCiAg KyBicm9hZGNhc3QtaWdtcC1kaXNjb3ZlcnkgZGlzY292ZXJzIHRhcmdldHMgdGhhdCBoYXZlIElH TVAKICAgIE11bHRpY2FzdCBtZW1iZXJzaGlwcyBhbmQgZ3JhYnMgaW50ZXJlc3RpbmcgaW5mb3Jt YXRpb24uIFtIYW5pCiAgICBCZW5oYWJpbGVzXQoKICArIGJyb2FkY2FzdC1waW0tZGlzY292ZXJ5 IGRpc2NvdmVycyByb3V0ZXJzIHRoYXQgYXJlIHJ1bm5pbmcgUElNCiAgICAoUHJvdG9jb2wgSW5k ZXBlbmRlbnQgTXVsdGljYXN0KS4gW0hhbmkgQmVuaGFiaWxlc10KCiAgKyBicm9hZGNhc3QtdGVs bHN0aWNrLWRpc2NvdmVyIGRpc2NvdmVycyBUZWxsZHVzIFRlY2hub2xvZ2llcwogICAgVGVsbFN0 aWNrTmV0IGRldmljZXMgb24gdGhlIExBTi4gVGhlIFRlbGxkdXMgVGVsbFN0aWNrIGlzIHVzZWQg dG8KICAgIHdpcmVsZXNzbHkgY29udHJvbCBlbGVjdHJpYyBkZXZpY2VzIHN1Y2ggYXMgbGlnaHRz LCBkaW1tZXJzIGFuZAogICAgZWxlY3RyaWMgb3V0bGV0cy4gW1BhdHJpayBLYXJsc3Nvbl0KCiAg KyBjYXNzYW5kcmEtYnJ1dGUgcGVyZm9ybXMgYnJ1dGUgZm9yY2UgcGFzc3dvcmQgYXVkaXRpbmcg YWdhaW5zdCB0aGUKICAgIENhc3NhbmRyYSBkYXRhYmFzZS4gW1ZsYXRrbyBLb3N0dXJqYWtdCgog ICsgY2Fzc2FuZHJhLWluZm8gYXR0ZW1wdHMgdG8gZ2V0IGJhc2ljIGluZm8gYW5kIHNlcnZlciBz dGF0dXMgZnJvbSBhCiAgICBDYXNzYW5kcmEgZGF0YWJhc2UuIFtWbGF0a28gS29zdHVyamFrXQoK ICArIGN1cHMtaW5mbyBsaXN0cyBwcmludGVycyBtYW5hZ2VkIGJ5IHRoZSBDVVBTIHByaW50aW5n CiAgICBzZXJ2aWNlLiBbUGF0cmlrIEthcmxzc29uXQoKICArIGN1cHMtcXVldWUtaW5mbyBMaXN0 cyBjdXJyZW50bHkgcXVldWVkIHByaW50IGpvYnMgb2YgdGhlIHJlbW90ZQogICAgQ1VQUyBzZXJ2 aWNlIGdyb3VwZWQgYnkgcHJpbnRlci4gW1BhdHJpayBLYXJsc3Nvbl0KCiAgKyBkaWN0LWluZm8g Q29ubmVjdHMgdG8gYSBkaWN0aW9uYXJ5IHNlcnZlciB1c2luZyB0aGUgRElDVCBwcm90b2NvbCwK ICAgIHJ1bnMgdGhlIFNIT1cgU0VSVkVSIGNvbW1hbmQsIGFuZCBkaXNwbGF5cyB0aGUgcmVzdWx0 LiBbUGF0cmlrCiAgICBLYXJsc3Nvbl0KCiAgKyBkaXN0Y2MtY3ZlMjAwNC0yNjg3IGRldGVjdHMg YW5kIGV4cGxvaXRzIGEgcmVtb3RlIGNvZGUgZXhlY3V0aW9uCiAgICB2dWxuZXJhYmlsaXR5IGlu IHRoZSBkaXN0cmlidXRlZCBjb21waWxlciBkYWVtb24gZGlzdGNjLiBbUGF0cmlrCiAgICBLYXJs c3Nvbl0KCiAgKyBkbnMtY2hlY2stem9uZSBjaGVja3MgRE5TIHpvbmUgY29uZmlndXJhdGlvbiBh Z2FpbnN0IGJlc3QKICAgIHByYWN0aWNlcywgaW5jbHVkaW5nIFJGQyAxOTEyLiAgVGhlIGNvbmZp Z3VyYXRpb24gY2hlY2tzIGFyZQogICAgZGl2aWRlZCBpbnRvIGNhdGVnb3JpZXMgd2hpY2ggZWFj aCBoYXZlIGEgbnVtYmVyIG9mIGRpZmZlcmVudAogICAgdGVzdHMuIFtQYXRyaWsgS2FybHNzb25d CgogICsgZG5zLWlwNi1hcnBhLXNjYW4gcGVyZm9ybXMgYSBxdWljayByZXZlcnNlIEROUyBsb29r dXAgb2YgYW4gSVB2NgogICAgbmV0d29yayB1c2luZyBhIHRlY2huaXF1ZSB3aGljaCBhbmFseXpl cyBETlMgc2VydmVyIHJlc3BvbnNlIGNvZGVzCiAgICB0byBkcmFtYXRpY2FsbHkgcmVkdWNlIHRo ZSBudW1iZXIgb2YgcXVlcmllcyBuZWVkZWQgdG8gZW51bWVyYXRlCiAgICBsYXJnZSBuZXR3b3Jr cy4gW1BhdHJpayBLYXJsc3Nvbl0KCiAgKyBkbnMtbnNlYzMtZW51bSB0cmllcyB0byBlbnVtZXJh dGUgZG9tYWluIG5hbWVzIGZyb20gdGhlIEROUyBzZXJ2ZXIKICAgIHRoYXQgc3VwcG9ydHMgRE5T U0VDIE5TRUMzIHJlY29yZHMuIFtBbGVrc2FuZGFyIE5pa29saWMsIEpvaG4KICAgIEJvbmRdCgog ICsgZXBwYy1lbnVtLXByb2Nlc3NlcyBhdHRlbXB0cyB0byBlbnVtZXJhdGUgcHJvY2VzcyBpbmZv IG92ZXIgdGhlCiAgICBBcHBsZSBSZW1vdGUgRXZlbnQgcHJvdG9jb2wuICBXaGVuIGFjY2Vzc2lu ZyBhbiBhcHBsaWNhdGlvbiBvdmVyCiAgICB0aGUgQXBwbGUgUmVtb3RlIEV2ZW50IHByb3RvY29s IHRoZSBzZXJ2aWNlIHJlc3BvbmRzIHdpdGggdGhlIHVpZAogICAgYW5kIHBpZCBvZiB0aGUgYXBw bGljYXRpb24sIGlmIGl0IGlzIHJ1bm5pbmcsIHByaW9yIHRvIHJlcXVlc3RpbmcKICAgIGF1dGhl bnRpY2F0aW9uLiBbUGF0cmlrIEthcmxzc29uXQoKICArIGZpcmV3YWxsLWJ5cGFzcyBkZXRlY3Rz IGEgdnVsbmVyYWJpbGl0eSBpbiBOZXRmaWx0ZXIgYW5kIG90aGVyCiAgICBmaXJld2FsbHMgdGhh dCB1c2UgaGVscGVycyB0byBkeW5hbWljYWxseSBvcGVuIHBvcnRzIGZvciBwcm90b2NvbHMKICAg IHN1Y2ggYXMgZnRwIGFuZCBzaXAuIFtIYW5pIEJlbmhhYmlsZXNdCgogICsgZmx1bWUtbWFzdGVy LWluZm8gcmV0cmlldmVzIGluZm9ybWF0aW9uIGZyb20gRmx1bWUgbWFzdGVyIEhUVFAKICAgIHBh Z2VzLiBbSm9obiBSLiBCb25kXQoKICArIGdrcmVsbG0taW5mbyBxdWVyaWVzIGEgR0tSZWxsTSBz ZXJ2aWNlIGZvciBtb25pdG9yaW5nCiAgICBpbmZvcm1hdGlvbi4gQSBzaW5nbGUgcm91bmQgb2Yg Y29sbGVjdGlvbiBpcyBtYWRlLCBzaG93aW5nIGEKICAgIHNuYXBzaG90IG9mIGluZm9ybWF0aW9u IGF0IHRoZSB0aW1lIG9mIHRoZSByZXF1ZXN0LiBbUGF0cmlrCiAgICBLYXJsc3Nvbl0KCiAgKyBn cHNkLWluZm8gcmV0cmlldmVzIEdQUyB0aW1lLCBjb29yZGluYXRlcyBhbmQgc3BlZWQgZnJvbSB0 aGUgR1BTRAogICAgbmV0d29yayBkYWVtb24uIFtQYXRyaWsgS2FybHNzb25dCgogICsgaG9zdG1h cC1yb2J0ZXggZGlzY292ZXJzIGhvc3RuYW1lcyB0aGF0IHJlc29sdmUgdG8gdGhlIHRhcmdldCdz IElQCiAgICBhZGRyZXNzIGJ5IHF1ZXJ5aW5nIHRoZSBSb2J0ZXggc2VydmljZSBhdAogICAgaHR0 cDovL3d3dy5yb2J0ZXguY29tL2Rucy8uIFtBcnR1cm8gQnVzbGVpbWFuXQoKICArIGh0dHAtZHJ1 cGFsLWVudW0tdXNlcnMgZW51bWVyYXRlcyBEcnVwYWwgdXNlcnMgYnkgZXhwbG9pdGluZyBhIGFu CiAgICBpbmZvcm1hdGlvbiBkaXNjbG9zdXJlIHZ1bG5lcmFiaWxpdHkgaW4gVmlld3MsIERydXBh bCdzIG1vc3QKICAgIHBvcHVsYXIgbW9kdWxlLiBbSGFuaSBCZW5oYWJpbGVzXQoKICArIGh0dHAt ZHJ1cGFsLW1vZHVsZXMgZW51bWVyYXRlcyB0aGUgaW5zdGFsbGVkIERydXBhbCBtb2R1bGVzIGJ5 CiAgICB1c2luZyBhIGxpc3Qgb2Yga25vd24gbW9kdWxlcy4gW0hhbmkgQmVuaGFiaWxlc10KCiAg KyBodHRwLWV4aWYtc3BpZGVyIHNwaWRlcnMgYSBzaXRlJ3MgaW1hZ2VzIGxvb2tpbmcgZm9yIGlu dGVyZXN0aW5nCiAgICBleGlmIGRhdGEgZW1iZWRkZWQgaW4gLmpwZyBmaWxlcy4gRGlzcGxheXMg dGhlIG1ha2UgYW5kIG1vZGVsIG9mCiAgICB0aGUgY2FtZXJhLCB0aGUgZGF0ZSB0aGUgcGhvdG8g d2FzIHRha2VuLCBhbmQgdGhlIGVtYmVkZGVkIGdlb3RhZwogICAgaW5mb3JtYXRpb24uIFtSb24g Qm93ZXNdCgogICsgaHR0cC1mb3JtLWZ1enplciBwZXJmb3JtcyBhIHNpbXBsZSBmb3JtIGZ1enpp bmcgYWdhaW5zdCBmb3JtcwogICAgZm91bmQgb24gd2Vic2l0ZXMuICBUcmllcyBzdHJpbmdzIGFu ZCBudW1iZXJzIG9mIGluY3JlYXNpbmcgbGVuZ3RoCiAgICBhbmQgYXR0ZW1wdHMgdG8gZGV0ZXJt aW5lIGlmIHRoZSBmdXp6aW5nIHdhcyBzdWNjZXNzZnVsLiBbUGlvdHIKICAgIE9sbWFdCgogICsg aHR0cC1mcm9udHBhZ2UtbG9naW4gY2hlY2tzIHdoZXRoZXIgdGFyZ2V0IG1hY2hpbmVzIGFyZSB2 dWxuZXJhYmxlCiAgICB0byBhbm9ueW1vdXMgRnJvbnRwYWdlIGxvZ2luLiBbQWxla3NhbmRhciBO aWtvbGljXQoKICArIGh0dHAtZ2l0IGNoZWNrcyBmb3IgYSBHaXQgcmVwb3NpdG9yeSBmb3VuZCBp biBhIHdlYnNpdGUncyBkb2N1bWVudAogICAgcm9vdCAoLy5naXQvPHNvbWV0aGluZz4pIHRoZW4g cmV0cmlldmVzIGFzIG11Y2ggcmVwbwogICAgaW5mb3JtYXRpb24gYXMgcG9zc2libGUsIGluY2x1 ZGluZyBsYW5ndWFnZS9mcmFtZXdvcmssIEdpdGh1YgogICAgdXNlcm5hbWUsIGxhc3QgY29tbWl0 IG1lc3NhZ2UsIGFuZCByZXBvc2l0b3J5IGRlc2NyaXB0aW9uLiBbQWxleAogICAgV2ViZXJdCgog ICsgaHR0cC1naXR3ZWItcHJvamVjdHMtZW51bSByZXRyaWV2ZXMgYSBsaXN0IG9mIEdpdCBwcm9q ZWN0cywgb3duZXJzCiAgICBhbmQgZGVzY3JpcHRpb25zIGZyb20gYSBnaXR3ZWIgKHdlYiBpbnRl cmZhY2UgdG8gdGhlIEdpdCByZXZpc2lvbgogICAgY29udHJvbCBzeXN0ZW0pLiBbcmllbWFubl0K CiAgKyBodHRwLWh1YXdlaS1oZzV4eC12dWxuIGRldGVjdHMgSHVhd2VpIG1vZGVtcyBtb2RlbHMg SEc1MzB4LAogICAgSEc1MjB4LCBIRzUxMHggKGFuZCBwb3NzaWJseSBvdGhlcnMuLi4pIHZ1bG5l cmFibGUgdG8gYSByZW1vdGUKICAgIGNyZWRlbnRpYWwgYW5kIGluZm9ybWF0aW9uIGRpc2Nsb3N1 cmUgdnVsbmVyYWJpbGl0eS4gSXQgYWxzbwogICAgZXh0cmFjdHMgdGhlIFBQUG9FIGNyZWRlbnRp YWxzIGFuZCBvdGhlciBpbnRlcmVzdGluZyBjb25maWd1cmF0aW9uCiAgICB2YWx1ZXMuIFtQYXVs aW5vIENhbGRlcm9uXQoKICArIGh0dHAtaWNsb3VkLWZpbmRteWlwaG9uZSByZXRyaWV2ZXMgdGhl IGxvY2F0aW9ucyBvZiBhbGwgIkZpbmQgbXkKICAgIGlQaG9uZSIgZW5hYmxlZCBpT1MgZGV2aWNl cyBieSBxdWVyeWluZyB0aGUgTW9iaWxlTWUgd2ViIHNlcnZpY2UKICAgIChhdXRoZW50aWNhdGlv biByZXF1aXJlZCkuIFtQYXRyaWsgS2FybHNzb25dCgogICsgaHR0cC1pY2xvdWQtc2VuZG1zZyBz ZW5kcyBhIG1lc3NhZ2UgdG8gYSBpT1MgZGV2aWNlIHRocm91Z2ggdGhlCiAgICBBcHBsZSBNb2Jp bGVNZSB3ZWIgc2VydmljZS4gVGhlIGRldmljZSBoYXMgdG8gYmUgcmVnaXN0ZXJlZCB3aXRoCiAg ICBhbiBBcHBsZSBJRCB1c2luZyB0aGUgRmluZCBNeSBpUGhvbmUgYXBwbGljYXRpb24uIFtQYXRy aWsKICAgIEthcmxzc29uXQoKICArIGh0dHAtcGhwc2VsZi14c3MgY3Jhd2xzIGEgd2ViIHNlcnZl ciBhbmQgYXR0ZW1wdHMgdG8gZmluZCBQSFAKICAgIGZpbGVzIHZ1bG5lcmFibGUgdG8gcmVmbGVj dGVkIGNyb3NzIHNpdGUgc2NyaXB0aW5nIHZpYSB0aGUKICAgIHZhcmlhYmxlICRfU0VSVkVSWyJQ SFBfU0VMRiJdLiAgW1BhdWxpbm8gQ2FsZGVyb25dCgogICsgaHR0cC1yZmktc3BpZGVyIGNyYXds cyB3ZWJzZXJ2ZXJzIGluIHNlYXJjaCBvZiBSRkkgKHJlbW90ZSBmaWxlCiAgICBpbmNsdXNpb24p IHZ1bG5lcmFiaWxpdGllcy4gSXQgdGVzdHMgZXZlcnkgZm9ybSBmaWVsZCBpdCBmaW5kcyBhbmQK ICAgIGV2ZXJ5IHBhcmFtZXRlciBvZiBhIFVSTCBjb250YWluaW5nIGEgcXVlcnkuIFtQaW90ciBP bG1hXQoKICArIGh0dHAtcm9idGV4LXNoYXJlZC1ucyBGaW5kcyB1cCB0byAxMDAgZG9tYWluIG5h bWVzIHdoaWNoIHVzZSB0aGUKICAgIHNhbWUgbmFtZSBzZXJ2ZXIgYXMgdGhlIHRhcmdldCBieSBx dWVyeWluZyB0aGUgUm9idGV4IHNlcnZpY2UgYXQKICAgIGh0dHA6Ly93d3cucm9idGV4LmNvbS9k bnMvLiBbQXJ0dXJvIEJ1c2xlaW1hbl0KCiAgKyBodHRwLXNpdGVtYXAtZ2VuZXJhdG9yIHNwaWRl cnMgYSB3ZWIgc2VydmVyIGFuZCBkaXNwbGF5cyBpdHMKICAgIGRpcmVjdG9yeSBzdHJ1Y3R1cmUg YWxvbmcgd2l0aCBudW1iZXIgYW5kIHR5cGVzIG9mIGZpbGVzIGluIGVhY2gKICAgIGZvbGRlci4g Tm90ZSB0aGF0IGZpbGVzIGxpc3RlZCBhcyBoYXZpbmcgYW4gJ090aGVyJyBleHRlbnNpb24gYXJl CiAgICBvbmVzIHRoYXQgaGF2ZSBubyBleHRlbnNpb24gb3IgdGhhdCBhcmUgYSByb290IGRvY3Vt ZW50LiBbUGlvdHIKICAgIE9sbWFdCgogICsgaHR0cC1zbG93bG9yaXMtY2hlY2sgdGVzdHMgYSB3 ZWIgc2VydmVyIGZvciB2dWxuZXJhYmlsaXR5IHRvIHRoZQogICAgU2xvd2xvcmlzIERvUyBhdHRh Y2sgd2l0aG91dCBhY3R1YWxseSBsYXVuY2hpbmcgYSBEb1MKICAgIGF0dGFjay4gW0FsZWtzYW5k YXIgTmlrb2xpY10KCiAgKyBodHRwLXNsb3dsb3JpcyB0ZXN0cyBhIHdlYiBzZXJ2ZXIgZm9yIHZ1 bG5lcmFiaWxpdHkgdG8gdGhlCiAgICBTbG93bG9yaXMgRG9TIGF0dGFjayBieSBsYXVuY2hpbmcg YSBTbG93bG9yaXMgYXR0YWNrLiBbQWxla3NhbmRhcgogICAgTmlrb2xpYywgQW5nZSBHdXRla10K CiAgKyBodHRwLXRwbGluay1kaXItdHJhdmVyc2FsIGV4cGxvaXRzIGEgZGlyZWN0b3J5IHRyYXZl cnNhbAogICAgdnVsbmVyYWJpbGl0eSBleGlzdGluZyBpbiBzZXZlcmFsIFRQLUxpbmsgd2lyZWxl c3MKICAgIHJvdXRlcnMuIEF0dGFja2VycyBtYXkgZXhwbG9pdCB0aGlzIHZ1bG5lcmFiaWxpdHkg dG8gcmVhZCBhbnkgb2YKICAgIHRoZSBjb25maWd1cmF0aW9uIGFuZCBwYXNzd29yZCBmaWxlcyBy ZW1vdGVseSBhbmQgd2l0aG91dAogICAgYXV0aGVudGljYXRpb24uIFtQYXVsaW5vIENhbGRlcm9u XQoKICArIGh0dHAtdHJhY2Vyb3V0ZSBleHBsb2l0cyB0aGUgTWF4LUZvcndhcmRzIEhUVFAgaGVh ZGVyIHRvIGRldGVjdAogICAgdGhlIHByZXNlbmNlIG9mIHJldmVyc2UgcHJveGllcy4gW0hhbmkg QmVuaGFiaWxlc10KCiAgKyBodHRwLXZpcnVzdG90YWwgY2hlY2tzIHdoZXRoZXIgYSBmaWxlIGhh cyBiZWVuIGRldGVybWluZWQgYXMKICAgIG1hbHdhcmUgYnkgdmlydXN0b3RhbC4gVmlydXN0b3Rh bCBpcyBhIHNlcnZpY2UgdGhhdCBwcm92aWRlcyB0aGUKICAgIGNhcGFiaWxpdHkgdG8gc2NhbiBh IGZpbGUgb3IgY2hlY2sgYSBjaGVja3N1bSBhZ2FpbnN0IGEgbnVtYmVyIG9mCiAgICB0aGUgbWFq b3IgYW50aXZpcnVzIHZlbmRvcnMuIFtQYXRyaWsgS2FybHNzb25dCgogICsgaHR0cC12bGNzdHJl YW1lci1scyBjb25uZWN0cyB0byBhIFZMQyBTdHJlYW1lciBoZWxwZXIgc2VydmljZSBhbmQKICAg IGxpc3RzIGRpcmVjdG9yeSBjb250ZW50cy4gVGhlIFZMQyBTdHJlYW1lciBoZWxwZXIgc2Vydmlj ZSBpcyB1c2VkCiAgICBieSB0aGUgaU9TIFZMQyBTdHJlYW1lciBhcHBsaWNhdGlvbiB0byBlbmFi bGUgc3RyZWFtaW5nIG9mCiAgICBtdWx0aW1lZGlhIGNvbnRlbnQgZnJvbSB0aGUgcmVtb3RlIHNl cnZlciB0byB0aGUgZGV2aWNlLiBbUGF0cmlrCiAgICBLYXJsc3Nvbl0KCiAgKyBodHRwLXZ1bG4t Y3ZlMjAxMC0wNzM4IHRlc3RzIHdoZXRoZXIgYSBKQm9zcyB0YXJnZXQgaXMgdnVsbmVyYWJsZQog ICAgdG8gam14IGNvbnNvbGUgYXV0aGVudGljYXRpb24gYnlwYXNzIChDVkUtMjAxMC0wNzM4KS4g W0hhbmkKICAgIEJlbmhhYmlsZXNdCgogICsgaHR0cC13YWYtZmluZ2VycHJpbnQgVHJpZXMgdG8g ZGV0ZWN0IHRoZSBwcmVzZW5jZSBvZiBhIHdlYgogICAgYXBwbGljYXRpb24gZmlyZXdhbGwgYW5k IGl0cyB0eXBlIGFuZCB2ZXJzaW9uLiBbSGFuaSBCZW5oYWJpbGVzXQoKICArIGljYXAtaW5mbyB0 ZXN0cyBhIGxpc3Qgb2Yga25vd24gSUNBUCBzZXJ2aWNlIG5hbWVzIGFuZCBwcmludHMKICAgIGlu Zm9ybWF0aW9uIGFib3V0IGFueSBpdCBkZXRlY3RzLiBUaGUgSW50ZXJuZXQgQ29udGVudCBBZGFw dGF0aW9uCiAgICBQcm90b2NvbCAoSUNBUCkgaXMgdXNlZCB0byBleHRlbmQgdHJhbnNwYXJlbnQg cHJveHkgc2VydmVycyBhbmQgaXMKICAgIGdlbmVyYWxseSB1c2VkIGZvciBjb250ZW50IGZpbHRl cmluZyBhbmQgYW50aXZpcnVzCiAgICBzY2FubmluZy4gW1BhdHJpayBLYXJsc3Nvbl0KCiAgKyBp cC1mb3J3YXJkaW5nIGRldGVjdHMgd2hldGhlciB0aGUgcmVtb3RlIGRldmljZSBoYXMgaXAgZm9y d2FyZGluZwogICAgb3IgIkludGVybmV0IGNvbm5lY3Rpb24gc2hhcmluZyIgZW5hYmxlZCwgYnkg c2VuZGluZyBhbiBJQ01QIGVjaG8KICAgIHJlcXVlc3QgdG8gYSBnaXZlbiB0YXJnZXQgdXNpbmcg dGhlIHNjYW5uZWQgaG9zdCBhcyBkZWZhdWx0CiAgICBnYXRld2F5LiBbUGF0cmlrIEthcmxzc29u XQoKICArIGlwdjYtcmEtZmxvb2QgZ2VuZXJhdGVzIGEgZmxvb2Qgb2YgUm91dGVyIEFkdmVydGlz ZW1lbnRzIChSQSkgd2l0aAogICAgcmFuZG9tIHNvdXJjZSBNQUMgYWRkcmVzc2VzIGFuZCBJUHY2 IHByZWZpeGVzLiBDb21wdXRlcnMsIHdoaWNoCiAgICBoYXZlIHN0YXRlbGVzcyBhdXRvY29uZmln dXJhdGlvbiBlbmFibGVkIGJ5IGRlZmF1bHQgKGV2ZXJ5IG1ham9yCiAgICBPUyksIHdpbGwgc3Rh cnQgdG8gY29tcHV0ZSBJUHY2IHN1ZmZpeCBhbmQgdXBkYXRlIHRoZWlyIHJvdXRpbmcKICAgIHRh YmxlIHRvIHJlZmxlY3QgdGhlIGFjY2VwdGVkIGFubm91bmNlbWVudC4gVGhpcyB3aWxsIGNhdXNl IDEwMCUKICAgIENQVSB1c2FnZSBvbiBXaW5kb3dzIGFuZCBwbGF0Zm9ybXMsIHByZXZlbnRpbmcg dG8gcHJvY2VzcyBvdGhlcgogICAgYXBwbGljYXRpb24gcmVxdWVzdHMuIFtBZGFtIFN0ZXZrb10K CiAgKyBpcmMtc2FzbC1icnV0ZSBwZXJmb3JtcyBicnV0ZSBmb3JjZSBwYXNzd29yZCBhdWRpdGlu ZyBhZ2FpbnN0IElSQwogICAgKEludGVybmV0IFJlbGF5IENoYXQpIHNlcnZlcnMgc3VwcG9ydGlu ZyBTQVNMCiAgICBhdXRoZW50aWNhdGlvbi4gW1Bpb3RyIE9sbWFdCgogICsgaXNucy1pbmZvIGxp c3RzIHBvcnRhbHMgYW5kIGlTQ1NJIG5vZGVzIHJlZ2lzdGVyZWQgd2l0aCB0aGUKICAgIEludGVy bmV0IFN0b3JhZ2UgTmFtZSBTZXJ2aWNlIChpU05TKS4gW1BhdHJpayBLYXJsc3Nvbl0KCiAgKyBq ZHdwLWV4ZWMgYXR0ZW1wdHMgdG8gZXhwbG9pdCBqYXZhJ3MgcmVtb3RlIGRlYnVnZ2luZyBwb3J0 LiBXaGVuCiAgICByZW1vdGUgZGVidWdnaW5nIHBvcnQgaXMgbGVmdCBvcGVuLCBpdCBpcyBwb3Nz aWJsZSB0byBpbmplY3QgamF2YQogICAgYnl0ZWNvZGUgYW5kIGFjaGlldmUgcmVtb3RlIGNvZGUg ZXhlY3V0aW9uLiAgVGhpcyBzY3JpcHQgYWJ1c2VzCiAgICB0aGlzIHRvIGluamVjdCBhbmQgZXhl Y3V0ZSBhIEphdmEgY2xhc3MgZmlsZSB0aGF0IGV4ZWN1dGVzIHRoZQogICAgc3VwcGxpZWQgc2hl bGwgY29tbWFuZCBhbmQgcmV0dXJucyBpdHMgb3V0cHV0LiBbQWxla3NhbmRhcgogICAgTmlrb2xp Y10KCiAgKyBqZHdwLWluZm8gYXR0ZW1wdHMgdG8gZXhwbG9pdCBqYXZhJ3MgcmVtb3RlIGRlYnVn Z2luZyBwb3J0LiAgV2hlbgogICAgcmVtb3RlIGRlYnVnZ2luZyBwb3J0IGlzIGxlZnQgb3Blbiwg aXQgaXMgcG9zc2libGUgdG8gaW5qZWN0IGphdmEKICAgIGJ5dGVjb2RlIGFuZCBhY2hpZXZlIHJl bW90ZSBjb2RlIGV4ZWN1dGlvbi4gIFRoaXMgc2NyaXB0IGluamVjdHMKICAgIGFuZCBleGVjdXRl IGEgSmF2YSBjbGFzcyBmaWxlIHRoYXQgcmV0dXJucyByZW1vdGUgc3lzdGVtCiAgICBpbmZvcm1h dGlvbi4gW0FsZWtzYW5kYXIgTmlrb2xpY10KCiAgKyBqZHdwLWluamVjdCBhdHRlbXB0cyB0byBl eHBsb2l0IGphdmEncyByZW1vdGUgZGVidWdnaW5nIHBvcnQuCiAgICBXaGVuIHJlbW90ZSBkZWJ1 Z2dpbmcgcG9ydCBpcyBsZWZ0IG9wZW4sIGl0IGlzIHBvc3NpYmxlIHRvIGluamVjdAogICAgamF2 YSBieXRlY29kZSBhbmQgYWNoaWV2ZSByZW1vdGUgY29kZSBleGVjdXRpb24uICBUaGlzIHNjcmlw dAogICAgYWxsb3dzIGluamVjdGlvbiBvZiBhcmJpdHJhcnkgY2xhc3MgZmlsZXMuIFtBbGVrc2Fu ZGFyIE5pa29saWNdCgogICsgbGxtbnItcmVzb2x2ZSByZXNvbHZlcyBhIGhvc3RuYW1lIGJ5IHVz aW5nIHRoZSBMTE1OUiAoTGluay1Mb2NhbAogICAgTXVsdGljYXN0IE5hbWUgUmVzb2x1dGlvbikg cHJvdG9jb2wuIFtIYW5pIEJlbmhhYmlsZXNdCgogICsgbWNhZmVlLWVwby1hZ2VudCBjaGVjayBp ZiBlUE8gYWdlbnQgaXMgcnVubmluZyBvbiBwb3J0IDgwODEgb3IKICAgIHBvcnQgaWRlbnRpZmll ZCBhcyBlUE8gQWdlbnQgcG9ydC4gW0RpZGllciBTdGV2ZW5zIGFuZCBEYW5pZWwKICAgIE1pbGxl cl0KCiAgKyBtZXRhc3Bsb2l0LWluZm8gZ2F0aGVycyBpbmZvIGZyb20gdGhlIE1ldGFzcGxvaXQg UlBDIHNlcnZpY2UuICBJdAogICAgcmVxdWlyZXMgYSB2YWxpZCBsb2dpbiBwYWlyLiBBZnRlciBh dXRoZW50aWNhdGlvbiBpdCB0cmllcyB0bwogICAgZGV0ZXJtaW5lIE1ldGFzcGxvaXQgdmVyc2lv biBhbmQgZGVkdWNlIHRoZSBPUyB0eXBlLiAgVGhlbiBpdAogICAgY3JlYXRlcyBhIG5ldyBjb25z b2xlIGFuZCBleGVjdXRlcyBmZXcgY29tbWFuZHMgdG8gZ2V0IGFkZGl0aW9uYWwKICAgIGluZm8u IFtBbGVrc2FuZGFyIE5pa29saWNdCgogICsgbWV0YXNwbG9pdC1tc2dycGMtYnJ1dGUgcGVyZm9y bXMgYnJ1dGUgZm9yY2UgdXNlcm5hbWUgYW5kIHBhc3N3b3JkCiAgICBhdWRpdGluZyBhZ2FpbnN0 IE1ldGFzcGxvaXQgbXNncnBjIGludGVyZmFjZS4gW0FsZWtzYW5kYXIgTmlrb2xpY10KCiAgKyBt bW91c2UtYnJ1dGUgcGVyZm9ybXMgYnJ1dGUgZm9yY2UgcGFzc3dvcmQgYXVkaXRpbmcgYWdhaW5z dCB0aGUKICAgIFJQQSBUZWNoIE1vYmlsZSBNb3VzZSBzZXJ2ZXJzLiBbUGF0cmlrIEthcmxzc29u XQoKICArIG1tb3VzZS1leGVjIGNvbm5lY3RzIHRvIGFuIFJQQSBUZWNoIE1vYmlsZSBNb3VzZSBz ZXJ2ZXIsIHN0YXJ0cyBhbgogICAgYXBwbGljYXRpb24gYW5kIHNlbmRzIGEgc2VxdWVuY2Ugb2Yg a2V5cyB0byBpdC4gQW55IGFwcGxpY2F0aW9uCiAgICB0aGF0IHRoZSB1c2VyIGhhcyBhY2Nlc3Mg dG8gY2FuIGJlIHN0YXJ0ZWQgYW5kIHRoZSBrZXkgc2VxdWVuY2UgaXMKICAgIHNlbnQgdG8gdGhl IGFwcGxpY2F0aW9uIGFmdGVyIGl0IGhhcyBiZWVuIHN0YXJ0ZWQuIFtQYXRyaWsKICAgIEthcmxz c29uXQoKICArIG1yaW5mbyBxdWVyaWVzIHRhcmdldHMgZm9yIG11bHRpY2FzdCByb3V0aW5nIGlu Zm9ybWF0aW9uLiBbSGFuaQogICAgQmVuaGFiaWxlc10KCiAgKyBtc3JwYy1lbnVtIHF1ZXJpZXMg YW4gTVNSUEMgZW5kcG9pbnQgbWFwcGVyIGZvciBhIGxpc3Qgb2YgbWFwcGVkCiAgICBzZXJ2aWNl cyBhbmQgZGlzcGxheXMgdGhlIGdhdGhlcmVkIGluZm9ybWF0aW9uLiBbQWxla3NhbmRhcgogICAg Tmlrb2xpY10KCiAgKyBtcy1zcWwtZGFjIHF1ZXJpZXMgdGhlIE1pY3Jvc29mdCBTUUwgQnJvd3Nl ciBzZXJ2aWNlIGZvciB0aGUgREFDCiAgICAoRGVkaWNhdGVkIEFkbWluIENvbm5lY3Rpb24pIHBv cnQgb2YgYSBnaXZlbiAob3IgYWxsKSBTUUwgU2VydmVyCiAgICBpbnN0YW5jZS4gVGhlIERBQyBw b3J0IGlzIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgZGF0YWJhc2UgaW5zdGFuY2UKICAgIHdoZW4g bm9ybWFsIGNvbm5lY3Rpb24gYXR0ZW1wdHMgZmFpbCwgZm9yIGV4YW1wbGUsIHdoZW4gc2VydmVy IGlzCiAgICBoYW5naW5nLCBvdXQgb2YgbWVtb3J5IG9yIGluIG90aGVyIGJhZCBzdGF0ZXMuIFtQ YXRyaWsgS2FybHNzb25dCgogICsgbXRyYWNlIHF1ZXJpZXMgZm9yIHRoZSBtdWx0aWNhc3QgcGF0 aCBmcm9tIGEgc291cmNlIHRvIGEKICAgIGRlc3RpbmF0aW9uIGhvc3QuIFtIYW5pIEJlbmhhYmls ZXNdCgogICsgbXlzcWwtZHVtcC1oYXNoZXMgZHVtcHMgdGhlIHBhc3N3b3JkIGhhc2hlcyBmcm9t IGFuIE15U1FMIHNlcnZlcgogICAgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGNyYWNraW5nIGJ5 IHRvb2xzIHN1Y2ggYXMgSm9obiB0aGUKICAgIFJpcHBlci4gIEFwcHJvcHJpYXRlIERCIHByaXZp bGVnZXMgKHJvb3QpIGFyZSByZXF1aXJlZC4gW1BhdHJpawogICAgS2FybHNzb25dCgogICsgbXlz cWwtcXVlcnkgcnVucyBhIHF1ZXJ5IGFnYWluc3QgYSBNeVNRTCBkYXRhYmFzZSBhbmQgcmV0dXJu cyB0aGUKICAgIHJlc3VsdHMgYXMgYSB0YWJsZS4gW1BhdHJpayBLYXJsc3Nvbl0KCiAgKyBteXNx bC12dWxuLWN2ZTIwMTItMjEyMiBhdHRlbXB0cyB0byBieXBhc3MgYXV0aGVudGljYXRpb24gaW4g TXlTUUwKICAgIGFuZCBNYXJpYURCIHNlcnZlcnMgYnkgZXhwbG9pdGluZyBDVkUyMDEyLTIxMjIu IElmIGl0cyB2dWxuZXJhYmxlLAogICAgaXQgd2lsbCBhbHNvIGF0dGVtcHQgdG8gZHVtcCB0aGUg TXlTUUwgdXNlcm5hbWVzIGFuZCBwYXNzd29yZAogICAgaGFzaGVzLiBbUGF1bGlubyBDYWxkZXJv bl0KCiAgKyBvcmFjbGUtYnJ1dGUtc3RlYWx0aCBleHBsb2l0cyB0aGUgQ1ZFLTIwMTItMzEzNyB2 dWxuZXJhYmlsaXR5LCBhCiAgICB3ZWFrbmVzcyBpbiBPcmFjbGUncyBPNUxPR0lOIGF1dGhlbnRp Y2F0aW9uIHNjaGVtZS4gIFRoZQogICAgdnVsbmVyYWJpbGl0eSBleGlzdHMgaW4gT3JhY2xlIDEx ZyBSMS9SMiBhbmQgYWxsb3dzIGxpbmtpbmcgdGhlCiAgICBzZXNzaW9uIGtleSB0byBhIHBhc3N3 b3JkIGhhc2guIFtEaGlydSBLaG9saWFdCgogICsgcGNhbnl3aGVyZS1icnV0ZSBwZXJmb3JtcyBi cnV0ZSBmb3JjZSBwYXNzd29yZCBhdWRpdGluZyBhZ2FpbnN0CiAgICB0aGUgcGNBbnl3aGVyZSBy ZW1vdGUgYWNjZXNzIHByb3RvY29sLiBbQWxla3NhbmRhciBOaWtvbGljXQoKICArIHJkcC1lbnVt LWVuY3J5cHRpb24gZGV0ZXJtaW5lcyB3aGljaCBTZWN1cml0eSBsYXllciBhbmQgRW5jcnlwdGlv bgogICAgbGV2ZWwgaXMgc3VwcG9ydGVkIGJ5IHRoZSBSRFAgc2VydmljZS4gSXQgZG9lcyBzbyBi eSBjeWNsaW5nCiAgICB0aHJvdWdoIGFsbCBleGlzdGluZyBwcm90b2NvbHMgYW5kIGNpcGhlcnMu IFtQYXRyaWsgS2FybHNzb25dCgogICsgcm1pLXZ1bG4tY2xhc3Nsb2FkZXIgdGVzdHMgd2hldGhl ciBKYXZhIHJtaXJlZ2lzdHJ5IGFsbG93cyBjbGFzcwogICAgbG9hZGluZy4gIFRoZSBkZWZhdWx0 IGNvbmZpZ3VyYXRpb24gb2Ygcm1pcmVnaXN0cnkgYWxsb3dzIGxvYWRpbmcKICAgIGNsYXNzZXMg ZnJvbSByZW1vdGUgVVJMcywgd2hpY2ggY2FuIGxlYWQgdG8gcmVtb3RlIGNvZGUKICAgIGV4ZWN1 dGlvbi4gVGhlIHZlbmRvciAoT3JhY2xlL1N1bikgY2xhc3NpZmllcyB0aGlzIGFzIGEgZGVzaWdu CiAgICBmZWF0dXJlLiBbQWxla3NhbmRhciBOaWtvbGljXQoKICArIHJwYy1ncmluZCBmaW5nZXJw cmludHMgdGhlIHRhcmdldCBSUEMgcG9ydCB0byBleHRyYWN0IHRoZSB0YXJnZXQKICAgIHNlcnZp Y2UsIFJQQyBudW1iZXIgYW5kIHZlcnNpb24uIFtIYW5pIEJlbmhhYmlsZXNdCgogICsgc2lwLWNh bGwtc3Bvb2Ygc3Bvb2ZzIGEgY2FsbCB0byBhIFNJUCBwaG9uZSBhbmQgZGV0ZWN0cyB0aGUgYWN0 aW9uCiAgICB0YWtlbiBieSB0aGUgdGFyZ2V0IChidXN5LCBkZWNsaW5lZCwgaHVuZyB1cCwgZXRj LikgW0hhbmkKICAgIEJlbmhhYmlsZXNdCgogICsgc2lwLW1ldGhvZHMgZW51bWVyYXRlcyBhIFNJ UCBTZXJ2ZXIncyBhbGxvd2VkIG1ldGhvZHMgKElOVklURSwKICAgIE9QVElPTlMsIFNVQlNDUklC RSwgZXRjLikgW0hhbmkgQmVuaGFiaWxlc10KCiAgKyBzbWItbHMgYXR0ZW1wdHMgdG8gcmV0cmll dmUgdXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IGZpbGVzIHNoYXJlZAogICAgb24gU01CIHZvbHVt ZXMuICBUaGUgb3V0cHV0IGlzIGludGVuZGVkIHRvIHJlc2VtYmxlIHRoZSBvdXRwdXQgb2YKICAg IHRoZSBVTklYIDxjb2RlPmxzPC9jb2RlPiBjb21tYW5kLiBbUGF0cmlrIEthcmxzc29uXQoKICAr IHNtYi1wcmludC10ZXh0IGF0dGVtcHRzIHRvIHByaW50IHRleHQgb24gYSBzaGFyZWQgcHJpbnRl ciBieQogICAgY2FsbGluZyBQcmludCBTcG9vbGVyIFNlcnZpY2UgUlBDIGZ1bmN0aW9ucy4gW0Fs ZWtzYW5kYXIgTmlrb2xpY10KCiAgKyBzbWItdnVsbi1tczEwLTA1NCB0ZXN0cyB3aGV0aGVyIHRh cmdldCBtYWNoaW5lcyBhcmUgdnVsbmVyYWJsZSB0bwogICAgdGhlIG1zMTAtMDU0IFNNQiByZW1v dGUgbWVtb3J5IGNvcnJ1cHRpb24KICAgIHZ1bG5lcmFiaWxpdHkuIFtBbGVrc2FuZGFyIE5pa29s aWNdCgogICsgc21iLXZ1bG4tbXMxMC0wNjEgdGVzdHMgd2hldGhlciB0YXJnZXQgbWFjaGluZXMg YXJlIHZ1bG5lcmFibGUgdG8KICAgIG1zMTAtMDYxIFByaW50ZXIgU3Bvb2xlciBpbXBlcnNvbmF0 aW9uIHZ1bG5lcmFiaWxpdHkuIFtBbGVrc2FuZGFyCiAgICBOaWtvbGljXQoKICArIHNubXAtaGgz Yy1sb2dpbnMgYXR0ZW1wdHMgdG8gZW51bWVyYXRlIEh1YXdlaSAvIEhQL0gzQyBMb2NhbGx5CiAg ICBEZWZpbmVkIFVzZXJzIHRocm91Z2ggdGhlIGhoM2MtdXNlci5taWIgT0lEIFtLdXJ0IEdydXR6 bWFjaGVyXQoKICArIHNzbC1kYXRlIHJldHJpZXZlcyBhIHRhcmdldCBob3N0J3MgdGltZSBhbmQg ZGF0ZSBmcm9tIGl0cyBUTFMKICAgIFNlcnZlckhlbGxvIHJlc3BvbnNlLiBbQWxla3NhbmRhciBO aWtvbGljXQoKICArIHRscy1uZXh0cHJvdG9uZWcgZW51bWVyYXRlcyBhIFRMUyBzZXJ2ZXIncyBz dXBwb3J0ZWQgcHJvdG9jb2xzIGJ5CiAgICB1c2luZyB0aGUgbmV4dCBwcm90b2NvbCBuZWdvdGlh dGlvbiBleHRlbnNpb24uIFtIYW5pIEJlbmhhYmlsZXNdCgogICsgdHJhY2Vyb3V0ZS1nZW9sb2Nh dGlvbiBsaXN0cyB0aGUgZ2VvZ3JhcGhpYyBsb2NhdGlvbnMgb2YgZWFjaCBob3AKICAgIGluIGEg dHJhY2Vyb3V0ZSBhbmQgb3B0aW9uYWxseSBzYXZlcyB0aGUgcmVzdWx0cyB0byBhIEtNTCBmaWxl LAogICAgcGxvdHRhYmxlIG9uIEdvb2dsZSBlYXJ0aCBhbmQgbWFwcy4gW1BhdHJpayBLYXJsc3Nv bl0KCm8gW05TRV0gQWRkZWQgMTIgbmV3IHByb3RvY29sIGxpYnJhcmllcywgYnJpbmcgb3VyIHRv dGFsIHRvIDEwNSEgIEhlcmUKICB0aGV5IGFyZSwgd2l0aCBhdXRob3JzIGVuY2xvc2VkIGluIGJy YWNrZXRzOgogICsgYWpwIChBcGFjaGUgSlNlcnYgUHJvdG9jb2wpIFtQYXRyaWsgS2FybHNzb25d CiAgKyBiYXNlMzIgKEJhc2UzMiBlbmNvZGluZy9kZWNvZGluZyAtIFJGQyA0NjQ4KSBbUGhpbGlw IFBpY2tlcmluZ10KICArIGJqbnAgKENhbm9uIEJKTlAgcHJpbnRlci9zY2FubmVyIGRpc2NvdmVy eSBwcm90b2NvbCkgW1BhdHJpayBLYXJsc3Nvbl0KICArIGNhc3NhbmRyYSAoQ2Fzc2FuZHJhIGRh dGFiYXNlIHByb3RvY29sKSBbVmxhdGtvIEtvc3R1cmpha10KICArIGVpZ3JwIChDaXNjbyBFbmhh bmNlZCBJbnRlcmlvciBHYXRld2F5IFJvdXRpbmcgUHJvdG9jb2wpIFtIYW5pIEJlbmhhYmlsZXNd CiAgKyBncHMgKEdsb2JhbCBQb3NpdGlvbmluZyBTeXN0ZW0gLSBkb2VzIEdQUk1DIE5NRUEgZGVj b2RpbmcpIFtQYXRyaWsgS2FybHNzb25dCiAgKyBpcHAgKENVUFMgSW50ZXJuZXQgUHJpbnRpbmcg UHJvdG9jb2wpIFtQYXRyaWsgS2FybHNzb25dCiAgKyBpc25zIChJbnRlcm5ldCBTdG9yYWdlIE5h bWUgU2VydmljZSkgW1BhdHJpayBLYXJsc3Nvbl0KICArIGpkd3AgKEphdmEgRGVidWcgV2lyZSBQ cm90b2NvbCkgW0FsZWtzYW5kYXIgTmlrb2xpY10KICArIG1vYmlsZW1lIChhIHNlcnZpY2UgZm9y IG1hbmFnaW5nIEFwcGxlL01hYyBkZXZpY2VzKSBbUGF0cmlrIEthcmxzc29uXQogICsgb3NwZiAo T3BlbiBTaG9ydGVzdCBQYXRoIEZpcnN0IHJvdXRpbmcgcHJvdG9jb2wpIFtQYXRyaWsgS2FybHNz b25dCiAgKyByZHAgKFJlbW90ZSBEZXNrdG9wIFByb3RvY29sKSBbUGF0cmlrIEthcmxzc29uXQoK byBBZGRlZCBDb21tb24gUGxhdGZvcm0gRW51bWVyYXRpb24gKENQRSkgaWRlbnRpZmllcnMgdG8g bmVhcmx5IDEsMDAwCiAgbW9yZSBPUyBkZXRlY3Rpb24gc2lnbmF0dXJlcy4gIE5tYXAgNi4wMSBo YWQgdGhlbSBmb3IgMiw2MDggb2YgMyw1NzIKICBmaW5nZXJwcmludHMgKDczJSkgYW5kIG5vdyB3 ZSBoYXZlIHRoZW0gZm9yIDMsNTU4IG91dCBvZiAzLDk0NgogICg5MCUpLiBbRGF2aWQgRmlmaWVs ZF0KCm8gU2NhbnMgdGhhdCB1c2UgT1Mgc29ja2V0cyAoaW5jbHVkaW5nIFRDUCBjb25uZWN0IHNj YW4sIHZlcnNpb24KICBkZXRlY3Rpb24sIGFuZCBzY3JpcHQgc2Nhbikgbm93IHVzZSB0aGUgU09f QklORFRPREVWSUNFIHNvY2tvcHQgb24KICBMaW51eCwgc28gdGhhdCB0aGUgLWUgKHNlbGVjdCBu ZXR3b3JrIGRldmljZSkgb3B0aW9uIGlzCiAgaG9ub3JlZC4gW0RhdmlkIEZpZmllbGRdCgpvIFta ZW5tYXBdIEhvc3QgZmlsdGVycyBjYW4gbm93IGRvIG5lZ2F0aXZlIG1hdGNoaW5nLCBmb3IgZXhh bXBsZSB5b3UKICBjYW4gdXNlICJvczohbGludXgiIHRvIG1hdGNoIGhvc3RzIE5PVCBkZXRlY3Rl ZCBhcyBMaW51eC4gW0RhbmllbAogIE1pbGxlcl0KCm8gRml4ZWQgYSBidWcgdGhhdCBjYXVzZWQg YW4gaW5jb3JyZWN0IHNvdXJjZSBhZGRyZXNzIHRvIGJlIHNldCB3aGVuCiAgc2Nhbm5pbmcgY2Vy dGFpbiBhZGRyZXNzZXMgKGFwcGFyZW50bHkgdGhvc2UgZW5kaW5nIGluIC4wKSBvbgogIFdpbmRv d3MgWFAuIFRoZSBzeW1wdG9tIG9mIHRoaXMgYnVnIHdhcyB0aGUgbWVzc2FnZXMKICAgIGdldF9z cmNhZGRyOiBjYW4ndCBjb25uZWN0IHNvY2tldDogVGhlIHJlcXVlc3RlZCBhZGRyZXNzIGlzIG5v dAp2YWxpZCBpbiBpdHMgY29udGV4dC4KICAgIEZhaWxlZCB0byBjb252ZXJ0IHNvdXJjZSBhZGRy ZXNzIHRvIHByZXNlbnRhdGlvbiBmb3JtYXQhPyEgIEVycm9yOgpVbmtub3duIGVycm9yCiAgVGhh bmtzIHRvIFJvYmVydCBXYXNoYW0gYW5kIEpvcmdlIEhlcm5hbmRleiBmb3IgcmVwb3J0cyBhbmQg aGVscAogIGRlYnVnZ2luZy4gW0RhdmlkIEZpZmllbGRdCgpvIFVwZ3JhZGVkIHRoZSBpbmNsdWRl ZCBPcGVuU1NMIHRvIHZlcnNpb24gMS4wLjFjLiBbRGF2aWQgRmlmaWVsZF0KCm8gW05TRV0gQWRk ZWQgY2hhbmdlcyB0byBicnV0ZSBhbmQgdW5wd2RiIGxpYnJhcmllcyB0byBhbGxvdyBtb3JlCiAg ZmxleGlibGUgaXRlcmF0b3Igc3BlY2lmaWNhdGlvbiBhbmQgY29udHJvbC4gW0FsZWtzYW5kYXIg Tmlrb2xpY10KCm8gVGVzdGVkIHRoYXQgb3VyIFdpblBjYXAgaW5zdGFsbGVyIHdvcmtzIG9uIFdp bmRvd3MgOCBhbmQgV2luZG93cwogIFNlcnZlciAyMDEyIGJ1aWxkIDg0MDAuICBVcGRhdGVkIHRv IGluc3RhbGxlciB0ZXh0IHRvIHJlY29tbWVuZCB0aGF0CiAgdXNlcnMgc2VsZWN0IHRoZSBvcHRp b24gdG8gc3RhcnQgJ05QRicgYXQgc3RhcnR1cC4gW1JvYiBOaWNob2xsc10KCm8gW05TRV0gQWRk ZWQgQ1BFIHRvIHNtYi1vcy1kaXNjb3Zlcnkgb3V0cHV0LgoKbyBbTmNhdF0gRml4ZWQgdGhlIHBy aW50aW5nIG9mIHdhcm5pbmcgbWVzc2FnZXMgZm9yIGxhcmdlIGFyZ3VtZW50cyB0bwogIHRoZSAt aSBhbmQgLXcgb3B0aW9ucy4gW01pY2hhbCBIbGF2aW5rYV0KCm8gW05jYXRdIFNodXQgZG93biB0 aGUgd3JpdGUgcGFydCBvZiBjb25uZWN0ZWQgc29ja2V0cyBpbiBsaXN0ZW4gbW9kZQogIHdoZW4g c3RkaW4gaGl0cyBFT0YsIGp1c3QgYXMgd2FzIGFscmVhZHkgZG9uZSBpbiBjb25uZWN0IG1vZGUu CiAgW01pY2hhbCBIbGF2aW5rYV0KCm8gW1plbm1hcF0gUmVtb3ZlZCBhIGNyYXNoaW5nIGVycm9y IHRoYXQgY291bGQgaGFwcGVuIHdoZW4gY2FuY2VsaW5nIGEKICAiUHJpbnQgdG8gRmlsZSIgb24g V2luZG93czoKICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICBGaWxlICJ6 ZW5tYXBHVUlcTWFpbldpbmRvdy5weW8iLCBsaW5lIDgzMSwgaW4gX3ByaW50X2NiCiAgICBGaWxl ICJ6ZW5tYXBHVUlcUHJpbnQucHlvIiwgbGluZSAxNTYsIGluIHJ1bl9wcmludF9vcGVyYXRpb24K ICBHRXJyb3I6IEVycm9yIGZyb20gU3RhcnREb2MKICBUaGlzIGJ1ZyB3YXMgcmVwb3J0ZWQgYnkg SW1yZSBBZMOhY3NpLiBbRGF2aWQgRmlmaWVsZF0KCm8gW05TRV0gQWRkZWQgbmV3IGZpbmdlcnBy aW50cyBmb3IgaHR0cC1lbnVtOiBTaXRlY29yZSwgTW9vZGxlLCB0eXBvMywKICBTcXVpcnJlbE1h aWwsIFJvdW5kQ3ViZS4gW0plc3BlciBLw7xja2VsaGFobl0KCm8gQ2hhbmdlZCBsaWJkbmV0J3Mg cm91dGluZyBpbnRlcmZhY2UgdG8gcmV0dXJuIGFuIGludGVyZmFjZSBuYW1lIGZvcgogIGVhY2gg cm91dGUgb24gdGhlIG1vc3QgY29tbW9uIG9wZXJhdGluZyBzeXN0ZW1zLiBUaGlzIGlzIHVzZWQg dG8KICBpbXByb3ZlIHRoZSBxdWFsaXR5IG9mIE5tYXAncyBtYXRjaGluZyBvZiByb3V0ZXMgdG8g aW50ZXJmYWNlcywKICB3aGljaCB3YXMgcHJldmlvdXNseSBkb25lIGJ5IG1hdGNoaW5nIHJvdXRl cyB0byBpbnRlcmZhY2UgYWRkcmVzc2VzLgogIFtEamFsYWwgSGFyb3VuaSwgRGF2aWQgRmlmaWVs ZF0KCm8gRml4ZWQgYSBidWcgdGhhdCBwcmV2ZW50ZWQgTm1hcCBmcm9tIGZpbmRpbmcgYW55IGlu dGVyZmFjZXMgd2hlbiBvbmUKICBvZiB0aGVtIGhhZCB0aGUgdHlwZSBBUlBIRFJfSU5GSU5JQkFO RDsgdGhpcyB3YXMgdGhlIGNhc2UgZm9yCiAgSVAtb3Zlci1JbmZpbmlCYW5kIGludGVyZmFjZXMu IEhvd2V2ZXIsIFRoaXMgc3VwcG9ydCBpcyBub3QgY29tcGxldGUKICBzaW5jZSBJUG9JQiBpbnRl cmZhY2VzIHVzZSAyMCBieXRlcyBmb3IgdGhlIGhhcmR3YXJlIGFkZHJlc3MsIGFuZAogIGN1cnJl bnRseSB3ZSBvbmx5IHJlcG9ydCBhbmQgaGFuZGxlIDYgYnl0ZXMuCiAgTm1hcCBJUCBsZXZlbCBz Y2FucyBzaG91bGQgd29yayB3aXRob3V0IGFueSBwcm9ibGVtLCBwbGVhc2UgcmVmZXIgdG8KICB0 aGUgJy0tc2VuZC1pcCcgc3dpdGNoIGFuZCB0byB0aGUgZm9sbG93aW5nIHRocmVhZDoKICBodHRw Oi8vc2VjbGlzdHMub3JnL25tYXAtZGV2LzIwMTIvcTMvNjQyCiAgVGhpcyBidWcgd2FzIHJlcG9y dGVkIGJ5IHN0YXJsaWdodC4yMDEycTMuIFtEamFsYWwgSGFyb3VuaV0KCm8gRml4ZWQgYSBidWcg dGhhdCBwcmV2ZW50ZWQgTm1hcCBmcm9tIGZpbmRpbmcgYW55IGludGVyZmFjZXMgd2hlbiBvbmUK ICBvZiB0aGVtIGhhZCB0aGUgdHlwZSBBUlBIRFJfSUVFRTgwMjExOyB0aGlzIHdhcyB0aGUgY2Fz ZSBmb3Igd2lyZWxlc3MKICBpbnRlcmZhY2VzIG9wZXJhdGluZyBpbiBhY2Nlc3MgcG9pbnQgbW9k ZS4gVGhpcyBidWcgd2FzIHJlcG9ydGVkIGJ5CiAgU2ViYXN0aWFhbiBWaWxlaWpuLiBbRGphbGFs IEhhcm91bmldCgpvIFVwZGF0ZWQgdGhlIFplbm1hcCBkZXNrdG9wIGljb25zIG9uIFdpbmRvd3Ms IExpbnV4LCBhbmQgTWFjIHdpdGggaGlnaGVyCiAgcmVzb2x1dGlvbiBvbmVzLiBbU2VhbiBSaXZl cmEsIERhdmlkIEZpZmllbGRdCgpvIFtOU0VdIFNjcmlwdCByZXN1bHRzIGZvciBhIGhvc3Qgb3Ig c2VydmljZSBhcmUgbm93IHNvcnRlZAogIGFscGhhYmV0aWNhbGx5IGJ5IHNjcmlwdCBuYW1lLiBb U2VhbiBSaXZlcmFdCgpvIEZpeGVkIGEgYnVnIHRoYXQgcHJldmVudGVkIE5tYXAgZnJvbSBmaW5k aW5nIGFueSBpbnRlcmZhY2VzIHdoZW4gYW55CiAgaW50ZXJmYWNlIGhhZCB0aGUgdHlwZSBBUlBI UkRfVk9JRDsgdGhpcyB3YXMgdGhlIGNhc2UgZm9yIE9wZW5WWgogIHZlbmV0IGludGVyZmFjZXMu IFtEamFsYWwgSGFyb3VuaSwgRGF2aWQgRmlmaWVsZF0KCm8gTGludXggdW5yZWFjaGFibGUgcm91 dGVzIGFyZSBub3cgcHJvcGVybHkgaWdub3JlZC4gW0RhdmlkIEZpZmllbGRdCgpvIEFkZGVkIERh biBNaWxsZXIgYXMgYW4gTm1hcCBjb21taXR0ZXIuICBIZSBoYXMgZG9uZSBhIHRvbiBvZiBncmVh dAogIHdvcmsgb24gTm1hcCwgYXMgeW91IGNhbiBzZWUgYnkgc2VhcmNoaW5nIGZvciBoaW0gaW4g dGhpcyBDSEFOR0VMT0cKICBvciByZWFkaW5nIHRoZSBObWFwIGNvbW1pdHRlcnMgbGlzdCBhdAog IGh0dHBzOi8vc3ZuLm5tYXAub3JnL25tYXAvZG9jcy9jb21taXR0ZXJzLnR4dC4KCm8gQWRkZWQg YSBuZXcgLS1kaXNhYmxlLWFycC1waW5nIG9wdGlvbi4gVGhpcyBvcHRpb24gcHJldmVudHMgTm1h cAogIGZyb20gaW1wbGljaXRseSB1c2luZyBBUlAgb3IgTkQgaG9zdCBkaXNjb3ZlcnkgZm9yIGRp c2NvdmVyaW5nCiAgZGlyZWN0bHkgY29ubmVjdGVkIEV0aGVybmV0IHRhcmdldHMuIFRoaXMgaXMg dXNlZnVsIGluIG5ldHdvcmtzCiAgdXNpbmcgcHJveHkgQVJQLCB3aGljaCBtYWtlIGFsbCBhZGRy ZXNzZXMgYXBwZWFyIHRvIGJlIHVwIHVzaW5nIEFSUAogIHNjYW4uIFRoZSBwcmV2aW91c2x5IHJl Y29tbWVuZGVkIHdvcmthcm91bmQgZm9yIHRoaXMgc2l0dWF0aW9uLAogIC0tc2VuZC1pcCwgZGlk bid0IHdvcmsgb24gV2luZG93cyBiZWNhdXNlIHRoYXQgbGFtZSBleGN1c2UgZm9yIGFuCiAgb3Bl cmF0aW5nIHN5c3RlbSBpcyBzdGlsbCBtaXNzaW5nIHJhdyBzb2NrZXQgc3VwcG9ydC4gIFtEYXZp ZAogIEZpZmllbGQgKGVkaXRvcmlhbGl6aW5nIGFkZGVkIGJ5IEZ5b2RvcildCgpvIFByb3RvY29s IHNjYW4gKC1zTykgcHJvYmVzIGZvciBUQ1AsIFVEUCwgYW5kIFNDVFAgbm93IGdvIHRvIHBvcnRz CiAgODAsIDQwMTI1LCBhbmQgODAgcmVzcGVjdGl2ZWx5LCBpbnN0ZWFkIG9mIGJlaW5nIHJhbmRv bWx5IGdlbmVyYXRlZAogIG9yIGdvaW5nIHRvIHRoZSBzYW1lIHBvcnQgYXMgdGhlIHNvdXJjZSBw b3J0LiBbRGF2aWQgRmlmaWVsZF0KCm8gVGhlIE5tYXAgLS1sb2ctZXJyb3JzIGZ1bmN0aW9uYWxp dHkgKGluY2x1ZGluZyBlcnJvcnMgYW5kIHdhcm5pbmdzCiAgaW4gdGhlIG5vcm1hbC1mb3JtYXQg b3V0cHV0IGZpbGUpIGlzIG5vdyBhbHdheXMgdHJ1ZSwgd2hldGhlciB5b3UKICBwYXNzIHRoYXQg b3B0aW9uIG9yIG5vdC4gW1NlYW4gUml2ZXJhXQoKbyBbTlNFXSBSZXdyb3RlIGZ0cC1icnV0ZSBz Y3JpcHQgdG8gdXNlIHRoZSBicnV0ZSBsaWJyYXJ5IGZvcgogIHBlcmZvcm1pbmcgcGFzc3dvcmQg YXVkaXRpbmcuIFtBbGVrc2FuZGFyIE5pa29saWNdCgpvIFJlZHVjZWQgdGhlIHNpemUgb2YgUG9y dCBzdHJ1Y3R1cmVzIGJ5IGFib3V0IHR3byB0aGlyZHMgKGZyb20gMTc2IHRvCiAgNjQgYnl0ZXMg b24geDg2XzY0KS4gVGhleSBoYWQgYWNjaWRlbnRhbGx5IGdyb3duIGR1cmluZyB0aGUgSVB2Ngog IGNvZGUgbWVyZ2UuIFtEYXZpZCBGaWZpZWxkXQoKbyBNYWRlIHNvdXJjZSBwb3J0IG51bWJlcnMg KHVzZWQgdG8gZW5jb2RlIHByb2JlIG1ldGFkYXRhKSBpbmNyZW1lbnQKICBzbyBhcyBub3QgdG8g b3ZlcmxhcCBiZXR3ZWVuIGRpZmZlcmVudCBzY2FubmluZyBwaGFzZXMuIFByZXZpb3VzbHkKICBp dCB3YXMgcG9zc2libGUgZm9yIGFuIFJTVCByZXNwb25zZSB0byBhbiBBQ0sgcHJvYmUgZnJvbSBo b3N0CiAgZGlzY292ZXJ5IHRvIGJlIG1pc2ludGVycHJldGVkIGFzIGEgcmVwbHkgdG8gYSBTWU4g cHJvYmUgZnJvbSBwb3J0CiAgc2Nhbm5pbmcuIFtTZWFuIFJpdmVyYSwgRGF2aWQgRmlmaWVsZF0K Cm8gW05TRV0gQWRkZWQgc3VwcG9ydCBmb3IgRUNEU0Ega2V5cyB0byBzc2gtaG9zdGtleS5uc2Uu IFtBZGFtIMWgdGV2a29dCgpvIENoYW5nZWQgdGhlIENQRSBmb3IgTGludXggZnJvbSBjcGU6L286 bGludXg6a2VybmVsIHRvCiAgY3BlOi9vOmxpbnV4OmxpbnV4X2tlcm5lbCB0byByZWZsZWN0IGRl cHJlY2F0aW9uIGluIHRoZSBvZmZpY2lhbCBDUEUKICBkaWN0aW9uYXJ5LgoKbyBBZGRlZCBzb21l IGFkZGl0aW9uYWwgQ1BFIGVudHJpZXMgdG8gbm1hcC1zZXJ2aWNlLXByb2Jlcy4KICBbRGlsbG9u IEdyYWhhbV0KCm8gRml4ZWQgYW4gYXNzZXJ0aW9uIGZhaWx1cmUgd2l0aCBJUHY2IHRyYWNlcm91 dGUgdHJ5aW5nIHRvIHVzZSBhbgogIHVuc3VwcG9ydGVkIHByb3RvY29sOgogICAgbm1hcDogdHJh Y2Vyb3V0ZS5jYzo3NDk6IHZpcnR1YWwgdW5zaWduZWQgY2hhcioKICAgIFVEUFByb2JlOjpidWls ZF9wYWNrZXQoY29uc3Qgc29ja2FkZHJfc3RvcmFnZSosIHUzMiopIGNvbnN0OiBBc3NlcnRpb24K ICAgIGBzb3VyY2UtPnNzX2ZhbWlseSA9PSAyJyBmYWlsZWQuCiAgVGhpcyB3YXMgcmVwb3J0ZWQg YnkgUGllcnJlIEVtZXJpYXVkLiBbRGF2aWQgRmlmaWVsZF0KCm8gQWRkZWQgdmVyc2lvbiBkZXRl Y3Rpb24gc2lnbmF0dXJlcyBmb3IgaGFsZiBhIGRvemVuIG5ldyBvciBjaGFuZ2VkCiAgcHJvZHVj dHMuIFtUb20gU2VsbGVyc10KCm8gRml4ZWQgcHJvdG9jb2wgbnVtYmVyLXRvLW5hbWUgbWFwcGlu Zy4gQSBwYXRjaCB3YXMgY29udHJpYnV0ZWQgYnkKICBoZWppYW5ldC4KCm8gW05TRV0gVGhlIG5t YXAuaXBfc2VuZCBmdW5jdGlvbiBub3cgdGFrZXMgYSBzZWNvbmQgYXJndW1lbnQsIHRoZQogIGRl c3RpbmF0aW9uIHRvIHNlbmQgdG8uIFByZXZpb3VzbHkgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3Mg d2FzIHRha2VuCiAgZnJvbSB0aGUgcGFja2V0IGJ1ZmZlciwgYnV0IHRoaXMgZmFpbGVkIGZvciBJ UHY2IGxpbmstbG9jYWwKICBhZGRyZXNzZXMsIGJlY2F1c2UgdGhlIHNjb3BlIElEIGlzIG5vdCBw YXJ0IG9mIHRoZSBwYWNrZXQuIENhbGxpbmcKICBpcF9zZW5kIHdpdGhvdXQgYSBkZXN0aW5hdGlv biBhZGRyZXNzIHdpbGwgY29udGludWUgdG8gdXNlIHRoZSBvbGQKICBiZWhhdmlvciwgYnV0IHRo aXMgcHJhY3RpY2UgaXMgZGVwcmVjYXRlZC4KCm8gSW5jcmVhc2VkIHBvcnRhYmlsaXR5IG9mIGNv bmZpZ3VyZSBzY3JpcHRzIG9uIHN5c3RlbXMgdXNpbmcgYSBsaWJjCiAgb3RoZXIgdGhhbiBHbGli Yy4gU2V2ZXJhbCBwcm9ibGVtcyB3ZXJlIHJlcG9ydGVkIGJ5IEpvaG4gU3BlbmNlci4KCm8gW05T RV0gRml4ZWQgYSBidWcgaW4gcnBjLWdyaW5kLm5zZSB0aGF0IHdvdWxkIGNhdXNlIHVucmVzcG9u c2l2ZSBVRFAKICBwb3J0cyB0byBiZSB3cm9uZ2x5IG1hcmtlZCBvcGVuLiBUaGlzIHdhcyByZXBv cnRlZCBieSBDaHJpc3RvcGhlcgogIENsZW1lbnRzLiBbRGF2aWQgRmlmaWVsZF0KCm8gW05jYXRd IENsb3NlIGNvbm5lY3Rpb24gZW5kcG9pbnQgd2hlbiByZWNlaXZpbmcgRU9GIG9uCiAgc3RkaW4u IFtNaWNoYWwgSGxhdmlua2FdLgoKbyBGaXhlZCBpbnRlcmZhY2UgbGlzdGluZyBvbiBOZXRCU0Qu IFRoZSBidWcgd2FzIGZpcnN0IG5vdGljZWQgYnkKICBGcmVkcmlrIFBldHRhaSBhbmQgZGlhZ25v c2VkIGJ5IEphbiBTY2hhdW1hbm4uIFtEYXZpZCBGaWZpZWxkXQoKbyBbTmNhdF0gQXBwbGllZCBh IGJsb2NraW5nLXNvY2tldCB3b3JrYXJvdW5kIGZvciBhIGJ1ZyB0aGF0IGNvdWxkCiAgcHJldmVu dCBzb21lIHNlbmRzIGZyb20gd29ya2luZyBpbiBsaXN0ZW4gbW9kZS4gVGhlIHByb2JsZW0gd2Fz CiAgcmVwb3J0ZWQgYnkgSm9uYXMgV2llbGlja2kuIFtBbGV4IFdlYmVyLCBEYXZpZCBGaWZpZWxk XQoKbyBbTlNFXSBVcGRhdGVkIG1zc3FsLmx1YSBsaWJyYXJ5IHRvIHN1cHBvcnQgYWRkaXRpb25h bCBkYXRhIHR5cGVzLAogIGVuaGFuY2VkIHNvbWUgb2YgdGhlIGV4aXN0aW5nIGRhdGEgdHlwZXMs IGFkZGVkIHRoZSBEb25lUHJvYwogIHJlc3BvbnNlIHRva2VuLCBhbmQgcmVvcmRlcmVkIGNvZGUg Zm9yIG1haW50YWluYWJpbGl0eS4gW1RvbQogIFNlbGxlcnNdCgpvIFtOcGluZ10gTnBpbmcgbm93 IHByaW50cyBvdXQgYW4gZXJyb3IgYW5kIGV4aXN0cyB3aGVuIHRoZSB1c2VyIHRyaWVzIHRvIHVz ZQogIHRoZSAtcCBmbGFnIGZvciBhIHNjYW4gb3B0aW9uIHdoZXJlIHRoYXQgaXMgbWVhbmluZ2xl c3MuIFtTZWFuIFJpdmVyYV0KCm8gW05TRV0gQWRkZWQgc3Bvb2xzcyBmdW5jdGlvbnMgYW5kIGNv bnN0YW50cyB0byBtc3JwYy5sdWEuIFtBbGVrc2FuZGFyIE5pa29saWNdCgpvIFtOU0VdIFJlZHVj ZWQgdGhlIG51bWJlciBvZiBuYW1lcyB0cmllZCBieSBodHRwLXZob3N0cyBieSBkZWZhdWx0Lgog IFtWbGF0a28gS29zdHVyamFrXQoKbyBbWmVubWFwXSBGaXhlZCBhIGNyYXNoIHdoZW4gdXNpbmcg dGhlIGVuX05HIGxvY2FsZTogIlZhbHVlRXJyb3I6CiAgdW5rbm93biBsb2NhbGU6IGVuX05HIiBb RGF2aWQgRmlmaWVsZF0KCm8gW05TRV0gRml4ZWQgc29tZSBidWdzIGluIHNubXAtaW50ZXJmYWNl cyB3aGljaCBwcmV2ZW50ZWQgdGhlIHNjcmlwdCBmcm9tCiAgb3V0cHV0dGluZyBkaXNjb3ZlcmVk IGludGVyZmFjZSBpbmZvIGFuZCBjYXVzZWQgaXQgdG8gYWJvcnQgaW4gdGhlCiAgcHJlLXNjYW5u aW5nIHBoYXNlLiBbamFoXQoKbyBbTlNFXSBsbHRkLWRpc2NvdmVyeSBzY3JpcHRzIG5vdyBwYXJz ZXMgZm9yIGhvc3RuYW1lcyBhbmQgb3V0cHV0cyBuZXR3b3JrCiAgY2FyZCBtYW51ZmFjdHVyZXIu IFtIYW5pIEJlbmhhYmlsZXNdCgpvIEFkZGVkIHByb3RvY29sIHNwZWNpZmljIHBheWxvYWRzIGZv ciBJUHY2IGhvcC1ieS1ob3AgKDB4MDApLCByb3V0aW5nICgweDJiKSwKICBmcmFnbWVudCAoMHgy YyksIGFuZCBkZXN0aW5hdGlvbiAoMHgzYykuIFtTZWFuIFJpdmVyYV0KCm8gW05TRV0gQWRkZWQg c3VwcG9ydCBmb3IgZGVjb2RpbmcgT1NQRiBIZWxsbyBwYWNrZXRzIHRvIGJyb2FkY2FzdC1saXN0 ZW5lci4KICBbSGFuaSBCZW5oYWJpbGVzXQoKbyBbTlNFXSBGaXhlZCBhIGZhbHNlIHBvc2l0aXZl IGluIGh0dHAtdnVsbi1jdmUyMDExLTMxOTIubnNlLCB3aGljaCBkZXRlY3RlZAogIEFwYWNoZSAy LjIuMjIgYXMgdnVsbmVyYWJsZS4gW01pY2hhZWwgTWV5ZXJdCgpvIFtOU0VdIE1vZGlmaWVkIG11 bHRpcGxlIHNjcmlwdHMgdGhhdCBvcGVyYXRlZCBhZ2FpbnN0IEhUVFAgYmFzZWQgc2VydmljZXMK ICBzbyBhcyB0byByZW1vdmUgZmFsc2UgcG9zaXRpdmVzIHRoYXQgd2VyZSBnZW5lcmF0ZWQgd2hl biB0aGUgdGFyZ2V0IHNlcnZpY2UKICBhbnN3ZXJzIHdpdGggYSAyMDAgcmVzcG9uc2UgdG8gYWxs IHJlcXVlc3RzLiBbVG9tIFNlbGxlcnNdCgpvIFtOU09DS10gRml4ZWQgYW4gZXBvbGwtZW5naW5l LXNwZWNpZmljIGJ1Zy4gVGhlIGVuZ2luZSBkaWRuJ3QgcmVjb2duaXplZCBGRHMKICB0aGF0IHdl cmUgaW50ZXJuYWxseSBjbG9zZWQgYW5kIHJlcGxhY2VkIGJ5IG90aGVyIG9uZXMuIFRoaXMgaGFw cGVuZWQgZHVyaW5nCiAgcmVjb25uZWN0IGF0dGVtcHRzLiBBbHNvLCB0aGUgSU9EIGZsYWdzIHdl cmUgbm90IHByb3Blcmx5IGNsZWFyZWQuCiAgW0hlbnJpIERvcmVhdSwgRGFuaWVsIE1pbGxlcl0K Cm8gQWRkZWQgc3VwcG9ydCBmb3IgbG9nIHR5cGUgYml0bWFza3MgaW4gbG9nX3Z3cml0ZSgpLiBB bHNvIHJlcGxhY2VkIGEgZmF0YWwoKQogIHN0YXRlbWVudCBieSBhbiBhc3NlcnQoMCkgdG8gZ2V0 IHJpZCBvZiBhIHBvc3NpYmxlIGluZmluaXRlIGNhbGwgbG9vcCB3aGVuCiAgcGFzc2VkIGFuIGlu dmFsaWQgbG9nIHR5cGUuIFtIZW5yaSBEb3JlYXVdCgpvIEFkZGVkIGhhbmRsaW5nIGZvciB0aGUg dW5leHBlY3RlZCBlcnJvciBXU0FFTkVUUkVTRVQgKDEwMDUyKS4gVGhpcyBlcnJvciBpcwogIGN1 cnJlbnRseSB3cmFwcGVkIGluIHRoZSBpZmRlZiBmb3IgV0lOMzIgYXMgdGhlcmUgZXJyb3IgYXBw ZWFycyB0byBiZSB1bmlxdWUKICB0byB3aW5kb3dzIFtTZWFuIFJpdmVyYV0KCm8gW05TRV0gQWRk ZWQgZGVmYXVsdCB2YWx1ZXMgZm9yIEV4cGlyZXMsIENhbGwtSUQsIEFsbG93IGFuZCBDb250ZW50 LUxlbmd0aAogIGhlYWRlcnMgaW4gU0lQIHJlcXVlc3RzIGFuZCByZW1vdmVkIHJlZHVuZGFudCBj b2RlIGluIHNpcCBsaWJyYXJ5LgogIFtIYW5pIEJlbmhhYmlsZXNdCgpvIFtOU0VdIENhbGxpbmcg bWV0aG9kcyBvZiB1bmNvbm5lY3RlZCBzb2NrZXRzIG5vdyBjYXVzZXMgdGhlIHVzdWFsCiAgZXJy b3IgY29kZSByZXR1cm4gdmFsdWUsIGluc3RlYWQgb2YgcmFpc2luZyBhIEx1YSBlcnJvci4gVGhl IHByb2JsZW0KICB3YXMgbm90aWNlZCBieSBEYW5pZWwgTWlsbGVyLiBbRGF2aWQgRmlmaWVsZF0K Cm8gW05TRV0gQWRkZWQgQVVUSF9VTklYIHN1cHBvcnQgdG8gdGhlIHJwYyBsaWJyYXJ5IGFuZCBO RlMgc2NyaXB0cy4KICBbRGFuaWVsIE1pbGxlcl0KCm8gW1plbm1hcF0gRml4ZWQgYSBjcmFzaCBp biB0aGUgcHJvZmlsZSBlZGl0b3IgdGhhdCB3b3VsZCBoYXBwZW4gd2hlbgogIHRoZSBubWFwIGJp bmFyeSBjb3VsZG4ndCBiZSBmb3VuZC4gW0RhdmlkIEZpZmllbGRdCgpvIE1hZGUgdGhlIHZhcmlv dXMgTWFrZWZpbGVzJyB0cmVhdG1lbnQgb2YgbWFrZWZpbGUuZGVwIHVuaWZvcm06CiAgIm1ha2Ug Y2xlYW4iIGtlZXBzIHRoZSBmaWxlIGFuZCAibWFrZSBkaXN0Y2xlYW4iIGRlbGV0ZXMgaXQuCiAg W01pY2hhZWwgTWNUZXJuYW5dCgpvIFtOU0VdIEZpeGVkIGRvemVucyBvZiBzY3JpcHRzIGFuZCBs aWJyYXJpZXMgdG8gd29yayBiZXR0ZXIgb24KICBzeXN0ZW0gd2hpY2ggZG9uJ3QgaGF2ZSBPcGVu U1NMIGF2YWlsYWJsZS4gW1BhdHJpayBLYXJsc3Nvbl0KCm8gW05jYXRdIC0tb3V0cHV0IGxvZ2dp bmcgbm93IHdvcmtzIGluIFVEUCBtb2RlLiBUaGFua3MgdG8gTWljaGFsCiAgSGxhdmlua2EgZm9y IHJlcG9ydGluZyB0aGUgYnVnLiBbRGF2aWQgRmlmaWVsZF0KCm8gW05TRV0gTW9yZSBXaW5kb3dz IDcgYW5kIFdpbmRvd3MgMjAwOCBmaXhlcyBmb3IgdGhlIHNtYiBsaWJyYXJ5IGFuZCBzbWItbHMK ICBzY3JpcHRzLiBbUGF0cmlrIEthcmxzc29uXQoKbyBbTlNFXSBBZGRlZCBTUE5FR08gYXV0aGVu dGljYXRpb24gc3VwcG9ydGluZyBXaW5kb3dzIDcgYW5kIFdpbmRvd3MgMjAwOCB0bwogIHRoZSBz bWIgbGlicmFyeS4gW1BhdHJpayBLYXJsc3Nvbl0KCm8gW05TRV0gQ2hhbmdlZCBodHRwLWJydXRl IHNvIHRoYXQgaXQgd29ya3MgYWdhaW5zdCB0aGUgcm9vdCBwYXRoCiAgKCIvIikgYnkgZGVmYXVs dCByYXRoZXIgdGhhbiBhbHdheXMgcmVxdWlyaW5nIHRoZSBodHRwLWJydXRlLnBhdGgKICBzY3Jp cHQgYXJndW1lbnQuIFtGeW9kb3JdCgpvIFtOU0VdIEFwcGxpZWQgcGF0Y2ggZnJvbSBEYW5pZWwg TWlsbGVyIHRoYXQgZml4ZXMgYnVnIGluIHNldmVyYWwgc2NyaXB0cyBhbmQKICBsaWJyYXJpZXMg aHR0cDovL3NlY2xpc3RzLm9yZy9ubWFwLWRldi8yMDEyL3EyLzU5MyBbRGFuaWVsIE1pbGxlcl0K Cm8gW1plbm1hcF0gQWRkZWQgSXRhbGlhbiB0cmFuc2xhdGlvbiBieSBGcmFuY2VzY28gVG9tYm9s aW5pIGFuZAogIEphcGFuZXNlIHRyYW5zbGF0aW9uIGJ5IFl1aml5IFRvdW5haS4gIFNvbWUgdHlw b3MgaW4gdGhlIEphcGFuZXNlCiAgdHJhbnNsYXRpb24gd2VyZSBjb3JyZWN0ZWQgYnkgT0tBTk8g VGFrYXlvc2hpLgoKbyBbTlNFXSBSZXdyb3RlIG15c3FsLWJydXRlIHRvIHVzZSBicnV0ZSBsaWJy YXJ5IFtBbGVrc2FuZGFyIE5pa29saWNdCgpvIEltcHJvdmVkIHRoZSBteXNxbCBsaWJyYXJ5IHRv IGhhbmRsZSBtdWx0aXBsZSBjb2x1bW5zIHdpdGggdGhlIHNhbWUgbmFtZSwKICBhZGRlZCBhIGZv cm1hdFJlc3VsdHNldCBmdW5jdGlvbiB0byBmb3JtYXQgYSBxdWVyeSByZXNwb25zZSB0byBhIHRh YmxlCiAgc3VpdGFibGUgZm9yIHNjcmlwdCBvdXRwdXQuIFtQYXRyaWsgS2FybHNzb25dCgpvIFRo ZSBtZXNzYWdlICJuZXh0aG9zdDogZmFpbGVkIHRvIGRldGVybWluZSByb3V0ZSB0byAuLi4iIGlz IG5vdyBhCiAgd2FybmluZyByYXRoZXIgdGhhbiBhIGZhdGFsIGVycm9yLiBBZGRyZXNzZXMgdGhh dCBhcmUgc2tpcHBlZCBpbgogIHRoaXMgd2F5IGFyZSByZWNvcmRlZCBpbiB0aGUgWE1MIG91dHB1 dCBhcyAidGFyZ2V0IiBlbGVtZW50cy4gW0RhdmlkCiAgRmlmaWVsZF0KCm8gW05TRV0gdGFyZ2V0 cy1zbmlmZmVyIG5vdyBpcyBjYXBhYmxlIG9mIHNuaWZmaW5nIElQdjYgYWRkcmVzc2VzLgogIFtE YW5pZWwgTWlsbGVyXQoKbyBbTlNFXSBQb3J0ZWQgdGhlIHBvcDMtYnJ1dGUgc2NyaXB0IHRvIHVz ZSB0aGUgYnJ1dGUgbGlicmFyeS4KICBbUGlvdHIgT2xtYV0KCm8gW05TRV0gQWRkZWQgYW4gZXJy b3IgbWVzc2FnZSBpbmRpY2F0aW5nIHNjcmlwdCBmYWlsdXJlLCB3aGVuIE5tYXAgaXMgYmVpbmcK ICBydW4gaW4gbm9uIHZlcmJvc2UvZGVidWcgbW9kZS4gW1BhdHJpayBLYXJsc3Nvbl0KCm8gU2Vy dmljZS1zY2FuIGluZm9ybWF0aW9uIGlzIG5vdyBpbmNsdWRlZCBpbiBYTUwgYW5kIGdyZXBhYmxl IG91dHB1dAogIGV2ZW4gaWYgLXNWIHdhc24ndCB1c2VkLiBUaGlzIGluZm9ybWF0aW9uIGNhbiBi ZSBzZXQgYnkgc2NyaXB0cyBpbiB0aGUKICBhYnNlbmNlIG9mIC1zVi4gW0RhbmllbCBNaWxsZXJd CgpFbmpveSB0aGUgbmV3IHJlbGVhc2UhCi1GeW9kb3IKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KU2VudCB0aHJvdWdoIHRoZSBubWFwLWhhY2tlcnMgbWFp bGluZyBsaXN0Cmh0dHA6Ly9jZ2kuaW5zZWN1cmUub3JnL21haWxtYW4vbGlzdGluZm8vbm1hcC1o YWNrZXJzCkFyY2hpdmVkIGF0IGh0dHA6Ly9zZWNsaXN0cy5vcmcvbm1hcC1oYWNrZXJzLw==