PGh0bWw+Cgo8aGVhZD4KPG1ldGEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05URU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KPHRpdGxlPldlYiBTZXJ2aWNlcyBEZXZlbG9wbWVudCBXaXRoIFRoZSBFY2xpcHNlIFdlYiBUb29scyBQbGF0Zm9ybTwvdGl0bGU+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZGVmYXVsdF9zdHlsZS5jc3MiPgo8L2hlYWQ+Cgo8Ym9keSBMSU5LPSIjMDAwMGZmIiBWTElOSz0iIzgwMDA4MCI+CjxkaXYgYWxpZ249InJpZ2h0Ij4mbmJzcDsgPGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWYiIHNpemU9IjIiPkNvcHlyaWdodCAKICAmY29weTsgMjAwNiBWaXJ0dXNhIENvcnAuPC9mb250PiAKICA8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9MCBjZWxscGFkZGluZz0yIHdpZHRoPSIxMDAlIj4KICAgIDx0cj4gCiAgICAgIDx0ZCBhbGlnbj1MRUZUIHZhbGlnbj1UT1AgY29sc3Bhbj0iMiIgYmdjb2xvcj0iIzAwODBDMCI+PGI+PGZvbnQgZmFjZT0iQXJpYWwsSGVsdmV0aWNhIj48Zm9udCBjb2xvcj0iI0ZGRkZGRiI+Jm5ic3A7RWNsaXBzZSAKICAgICAgICBDb3JuZXIgQXJ0aWNsZTwvZm9udD48L2ZvbnQ+PC9iPjwvdGQ+CiAgICA8L3RyPgogIDwvdGFibGU+CjwvZGl2Pgo8ZGl2IGFsaWduPSJsZWZ0Ij4gCiAgPGgxPjxpbWcgc3JjPSJpbWFnZXMvSWRlYS5qcGciIGhlaWdodD04NiB3aWR0aD0xMjAgYWxpZ249Q0VOVEVSPjwvaDE+CjwvZGl2Pgo8cD4mbmJzcDs8L3A+Cgo8aDEgQUxJR049IkNFTlRFUiI+V2ViIFNlcnZpY2VzIERldmVsb3BtZW50IFdpdGggVGhlIEVjbGlwc2UgV2ViIFRvb2xzIFBsYXRmb3JtPGJyPgo8L2gxPgoKPGJsb2NrcXVvdGU+CjxiPlN1bW1hcnk8L2I+Cgo8YnI+CiAgVGhlIFdlYiBUb29scyBQbGF0Zm9ybSAoV1RQKSBQcm9qZWN0IGV4dGVuZHMgRWNsaXBzZSB3aXRoIGEgc2V0IG9mIG9wZW4tc291cmNlIAogIFdlYiBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCB0b29scyBhbmQgQVBJJ3MuIFRoaXMgdHV0b3JpYWwgZm9jdXNlcyBvbiBpdHMgV2ViIAogIFNlcnZpY2UgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgc3VwcG9ydC4gVGhlIHR1dG9yaWFsIHdpbGwgZm9sbG93IGEgY29tbW9uIGxpZmUgCiAgY3ljbGUgb2YgYSBXZWIgU2VydmljZSBhcHBsaWNhdGlvbiB0aHJvdWdoIFNlcnZpY2UgRGlzY292ZXJ5LCBXU0RMIGlkZW50aWZpY2F0aW9uLCAKICBTdHViIEdlbmVyYXRpb24sIFRlc3RpbmcgYW5kIFdTLUkgY29tcGxpYW5jZSB2ZXJpZmljYXRpb24uIAogIDxwPjxiPiBCeSBUeXJlbGwgUGVyZXJhLCA8YSBocmVmPSJodHRwOi8vd3d3LnZpcnR1c2EuY29tIj5WaXJ0dXNhIENvcnA8L2E+LjwvYj48YnI+CiAgICA8Zm9udCBzaXplPSItMSI+TWF5IDAyLCAyMDA2PC9mb250PiA8L3A+CjwvYmxvY2txdW90ZT4KCjxociB3aWR0aD0iMTAwJSI+CjxoMT5JbnRyb2R1Y3Rpb24gPC9oMT4KPHA+IFRoZSBXZWIgVG9vbHMgUGxhdGZvcm0gKFdUUCkgUHJvamVjdCBleHRlbmRzIEVjbGlwc2Ugd2l0aCBhIHNldCBvZiBvcGVuLXNvdXJjZSAKICBXZWIgc2VydmljZXMgZGV2ZWxvcG1lbnQgdG9vbHMgYW5kIEFQSSdzLiBUaGlzIHR1dG9yaWFsIGdpdmVzIGFuIG92ZXJ2aWV3IG9mIAogIHRoZSBwcm9qZWN0IGFuZCBmb2N1c2VzIG9uIGl0cyBXZWIgU2VydmljZXMgc3VwcG9ydC48L3A+CjxwPkF0IHByZXNlbnQgdGhlIHByb2plY3QgaXMgZGl2aWRlZCBpbnRvIHRocmVlIHN1YiBwcm9qZWN0czo8L3A+CjxwPiCVIFdlYiBTdGFuZGFyZCBUb29scyAoV1NUKTxicj4KICCVIEoyRUUgU3RhbmRhcmQgVG9vbHMgKEpTVCk8YnI+CiAglSBKYXZhIFNlcnZlciBGYWNlcyBUb29scyAoSlNGKSA8L3A+CjxwPlRoZSBXZWIgU3RhbmRhcmQgVG9vbHMgc3VicHJvamVjdCBjb250YWlucyBzdXBwb3J0IGZvciBYTUwgV2ViIHNlcnZpY2VzLCBpbmNsdWRpbmcgCiAgdG9vbHMgYmFzZWQgb24gc3RhbmRhcmRzIGRlZmluZWQgYnkgdGhlIFczQywgT2FzaXMsIFdTLUkgYW5kIG90aGVycy4gV1MtSSBpcyAKICBhbiBvcGVuIGluZHVzdHJ5IG9yZ2FuaXphdGlvbiBjaGFydGVyZWQgdG8gcHJvbW90ZSBXZWIgc2VydmljZXMgaW50ZXJvcGVyYWJpbGl0eSAKICBhY3Jvc3MgcGxhdGZvcm1zLCBvcGVyYXRpbmcgc3lzdGVtcyBhbmQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiBUaGUgb3JnYW5pemF0aW9uknMgCiAgZGl2ZXJzZSBjb21tdW5pdHkgb2YgV2ViIHNlcnZpY2VzIGxlYWRlcnMgaGVscHMgY3VzdG9tZXJzIHRvIGRldmVsb3AgaW50ZXJvcGVyYWJsZSAKICBXZWIgc2VydmljZXMgYnkgcHJvdmlkaW5nIGd1aWRhbmNlLCByZWNvbW1lbmRlZCBwcmFjdGljZXMgYW5kIHN1cHBvcnRpbmcgcmVzb3VyY2VzLjwvcD4KPHA+VGhlIEoyRUUgU3RhbmRhcmQgVG9vbHMgc3VicHJvamVjdCBjb250YWlucyBzdXBwb3J0IGZvciBzdGFuZGFyZHMgZGVmaW5lZCBieSAKICB0aGUgSmF2YSBDb21tdW5pdHkgUHJvY2Vzcywgc3VjaCBhcyBKQVgtUlBDIGFuZCBKU1ItMTA5LCBhbmQgZm9yIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbnMgCiAgb2YgdGhlc2Ugc3RhbmRhcmRzLCBzdWNoIGFzIEFwYWNoZSBBeGlzLiBUaGUgcHJvamVjdCBjb250YWlucyBib3RoIGEgc2V0IG9mIAogIHRvb2xzIGZvciBXZWIgc2VydmljZXMgZGV2ZWxvcGVycyBhbmQgYSBzZXQgb2YgQVBJJ3MgZm9yIFdlYiBzZXJ2aWNlcyB0b29sIGNyZWF0b3JzLjwvcD4KPHA+VGhlIEphdmEgU2VydmVyIEZhY2VzIFRvb2xzIHByb2plY3Qgd2lsbCBwcm92aWRlIHRvb2xzIGFuZCBBUEkncyBmb3IgSlNSIDEyNyAKICB3aGljaCBpcyBwYXJ0IG9mIEphdmEgRUUgNS4gVGhlIHByb2plY3Qgd2lsbCBvcGVyYXRlIGFzIGFuIGluY3ViYXRvciBkdXJpbmcgCiAgdGhlIFdUUCAxLjAgZGV2ZWxvcG1lbnQgY3ljbGUgYW5kIHdpbGwgYmVjb21lIGEgY29tcG9uZW50IG9mIHRoZSBKU1Qgc3VicHJvamVjdCAKICBpbiBXVFAgMS41LjwvcD4KPHA+Q29sbGVjdGl2ZWx5LCB0aGVzZSB0aHJlZSBzdWIgcHJvamVjdHMgaW5jbHVkZSB0b29scyBmb3IgSFRNTCwgWE1MLCBXZWIgU2VydmljZXMsIAogIEoyRUUgYW5kIEpTRiBkZXZlbG9wbWVudCBhbG9uZyB3aXRoIFNlcnZlciB0b29scyBmb3IgaW50ZWdyYXRpbmcgYXBwbGljYXRpb24gCiAgc2VydmVycywgaW5jbHVkaW5nIEFwYWNoZSBUb21jYXQsIEFwYWNoZSBHZXJvbmltbywgSkJvc3MsIElCTSBXZWJTcGhlcmUgYW5kIAogIEJFQSBXZWJMb2dpYy48L3A+CjxwPiZuYnNwOzwvcD4KPHA+PGltZyBzcmM9ImltYWdlcy90aXAuZ2lmIiB3aWR0aD0iNjIiIGhlaWdodD0iMTMiPiBUaGlzIHR1dG9yaWFsIHVzZXMgdGhlIEVjbGlwc2UgCiAgV2ViIFRvb2xzIFBsYXRmb3JtIDEuMCBhbmQgQXBhY2hlIFRvbWNhdCA1LjUgZm9yIGl0J3MgZGVtb25zdHJhdGlvbnMuIFRoZSBsb2NhdGlvbnMgCiAgZm9yIGRvd25sb2FkcyBhcmUgZ2l2ZW4gaW4gdGhlIDxlbT48c3Ryb25nPlJlZmVyZW5jZXMgYW5kIFJlc291cmNlcyA8L3N0cm9uZz48L2VtPnNlY3Rpb24gCiAgYXQgdGhlIGVuZC48L3A+CjxwPiZuYnNwOzwvcD4KPHA+Jm5ic3A7PC9wPgo8aDE+QnVpbGRpbmcgYSAnU3RvY2sgUXVvdGUnIFdlYiBTZXJ2aWNlIENsaWVudCBVc2luZyB0aGUgRWNsaXBzZSBXVFA8L2gxPgo8cD4gQWx0aG91Z2ggV1RQIHByb3ZpZGVzIG1hbnkgdG9vbHMgdGhhdCBhcmUgdXNlZnVsIGluIFdlYiBBcHBsaWNhdGlvbiBkZXZlbG9wbWVudCwgCiAgdGhpcyB0dXRvcmlhbCB3aWxsIGZvY3VzIG9uIHRoZSB0b29scyB0aGF0IGFyZSBkaXJlY3RseSByZWxhdGVkIHRvIFdlYiBTZXJ2aWNlcyAKICBkZXZlbG9wbWVudCwgdGVzdGluZyBhbmQgZGVwbG95bWVudC4gVGhlc2UgdG9vbHMsIG1vc3RseSBpbnRlZ3JhdGVkIHVuZGVyIHRoZSAKICBXZWIgU3RhbmRhcmRzIFRvb2xzIHN1YiBwcm9qZWN0LCBhcmU7PC9wPgo8cD4gMS4gV2ViIFNlcnZpY2UgRXhwbG9yZXI8YnI+CiAgMi4gV1NETC9YU0QgRWRpdG9yPGJyPgogIDMuIFdlYiBTZXJ2aWNlIFdpemFyZCBhbmQ8YnI+CiAgNC4gV1MtSSBUZXN0IFRvb2xzIDxicj4KPC9wPgo8cD5JbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIG9mIHRoaXMgdHV0b3JpYWwsIHdlIHdpbGwgbG9vayBpbnRvIHRoZSB1c2FnZSBvZiAKICB0aGVzZSB0b29scyBpbiBXZWIgU2VydmljZXMgZGV2ZWxvcG1lbnQuIFdlIHdpbGwgY29uc2lkZXIgYSBzY2VuYXJpbyB3aGVyZSB3ZSAKICBhcmUgZW50cnVzdGVkIHRvIGltcGxlbWVudCBhIFdlYiBTZXJ2aWNlIGNsaWVudCBmb3IgYSAnU3RvY2sgUXVvdGUnIHNlcnZpY2UuIAogIFVzaW5nIHRoZSBFY2xpcHNlIFdUUCwgd2Ugd2lsbDs8L3A+Cjx1bD4KICA8bGk+IFNlYXJjaCBmb3IgYW4gZXhwb3NlZCAnU3RvY2sgUXVvdGUnIHNlcnZpY2UgaW4gYSBVRERJIHJlZ2lzdHJ5LDwvbGk+CiAgPGxpPkFjY2VzcyB0aGUgV1NETCBmb3IgdGhpcyBzZXJ2aWNlLDwvbGk+CiAgPGxpPkltcG9ydCB0aGUgV1NETCB0byB0aGUgRWNsaXBzZSBXVFAgd29ya2JlbmNoLDwvbGk+CiAgPGxpPkdlbmVyYXRlIGNvZGUgKHN0dWJzKSB1c2luZyB0aGUgV1NETCw8L2xpPgogIDxsaT5UZXN0IHRoZSBzZXJ2aWNlIGFuZCBmaW5hbGx5PC9saT4KICA8bGk+VmFsaWRhdGUgV1MtSSBjb21wbGlhbmNlPC9saT4KPC91bD4KPHA+QXQgZWFjaCBzdGFnZSBvZiB0aGUgdHV0b3JpYWwsIHdlIHdpbGwgbG9vayBhdCBhIGRlbW9uc3RyYXRpb24gb2YgaG93IHRoZSBhY3Rpdml0aWVzIAogIGRlc2NyaWJlZCBjYW4gYmUgZG9uZSBpbiB0aGUgRWNsaXBzZSBXVFAuPC9wPgo8cD4mbmJzcDs8L3A+CjxwPiZuYnNwOzwvcD4KPGgyPkZpbmRpbmcgYSBjYW5kaWRhdGUgc2VydmljZSB1c2luZyB0aGUgJ1dlYiBTZXJ2aWNlcyBFeHBsb3Jlcic8L2gyPgo8cD4gVGhlIFdlYiBTZXJ2aWNlcyBFeHBsb3JlciBoZWxwcyBpbiB0aGUgPGVtPjxzdHJvbmc+RGlzY292ZXJ5PC9zdHJvbmc+PC9lbT4sPGVtPjxzdHJvbmc+IAogIFRlc3RpbmcgPC9zdHJvbmc+PC9lbT5hbmQ8ZW0+PHN0cm9uZz4gUHVibGlzaGluZzwvc3Ryb25nPjwvZW0+IG9mIFdlYiBTZXJ2aWNlcy4gCiAgSW4gb3JkZXIgdG8gYnVpbGQgYSBjbGllbnQsIHdlIG5lZWQgdG8gZmlyc3QgZmluZCBhbiBleHBvc2VkIFdlYiBTZXJ2aWNlLCB3aGljaCAKICBzYXRpc2ZpZXMgb3VyIHJlcXVpcmVtZW50cy4gQWZ0ZXIgZmluZGluZyBzZXZlcmFsIGNhbmRpZGF0ZXMgZnJvbSB0aGUgcHVibGlzaGVkIAogIFVEREkgcmVnaXN0cnkgaW5mb3JtYXRpb24sIGl0IGlzIG9ubHkgbmF0dXJhbCB0byB0ZXN0IHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSAKICBtZXRob2RzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2aWNlcy4gVGhlICdXZWIgU2VydmljZXMgRXhwbG9yZXInIHByb3ZpZGVkIGJ5IHRoZSAKICBFY2xpcHNlIFdUUCBwcm92aWRlcyBzdXBwb3J0IGZvciBlYWNoIG9mIHRoZXNlIGFjdGlvbnMgYXMgb3V0bGluZWQgYmVsb3cuPGJyPgo8L3A+CjxwPiA8c3Ryb25nPjEuIERpc2NvdmVyeTwvc3Ryb25nPjwvcD4KPHVsPgogIDxsaT4gU2VhcmNoaW5nIFVEREkgUmVnaXN0cmllcyA8L2xpPgogIDxibG9ja3F1b3RlPiAKICAgIDxwPlVEREkgaXMgYW4gYWNyb255bSBmb3IgVW5pdmVyc2FsIERlc2NyaXB0aW9uLCBEaXNjb3ZlcnksIGFuZCBJbnRlZ3JhdGlvbi4gCiAgICAgIFVEREkgZGVmaW5lcyBhIHBsYXRmb3JtLWluZGVwZW5kZW50LCBYTUwtYmFzZWQgcmVnaXN0cnkgZm9yIGJ1c2luZXNzZXMgd29ybGR3aWRlIHRvIGxpc3QgCiAgICAgIHRoZW1zZWx2ZXMgb24gdGhlIEludGVybmV0LiBVRERJIGlzIGFuIG9wZW4gaW5kdXN0cnkgaW5pdGlhdGl2ZSAoc3BvbnNvcmVkIAogICAgICBieSBPQVNJUykgZW5hYmxpbmcgYnVzaW5lc3NlcyB0byBwdWJsaXNoIHNlcnZpY2UgbGlzdGluZ3MgYW5kIGRpc2NvdmVyIGVhY2ggCiAgICAgIG90aGVyIGFuZCBkZWZpbmUgaG93IHRoZSBzZXJ2aWNlcyBvciBzb2Z0d2FyZSBhcHBsaWNhdGlvbnMgaW50ZXJhY3Qgb3ZlciAKICAgICAgdGhlIEludGVybmV0LiBBIFVEREkgYnVzaW5lc3MgcmVnaXN0cmF0aW9uIGNvbnNpc3RzIG9mIHRocmVlIGNvbXBvbmVudHM6PC9wPgogICAgPHA+IDEuIFdoaXRlIFBhZ2VzIC0gYWRkcmVzcywgY29udGFjdCwgYW5kIGtub3duIGlkZW50aWZpZXJzOzxicj4KICAgICAgMi4gWWVsbG93IFBhZ2VzIC0gaW5kdXN0cmlhbCBjYXRlZ29yaXphdGlvbnMgYmFzZWQgb24gc3RhbmRhcmQgdGF4b25vbWllczsgCiAgICAgIGFuZDxicj4KICAgICAgMy4gR3JlZW4gUGFnZXMgLSB0ZWNobmljYWwgaW5mb3JtYXRpb24gYWJvdXQgc2VydmljZXMgZXhwb3NlZCBieSB0aGUgYnVzaW5lc3M8L3A+CiAgICA8cD5VRERJIGlzIG5vbWluYWxseSBvbmUgb2YgdGhlIGNvcmUgV2ViIFNlcnZpY2VzIHN0YW5kYXJkcy4gSXQgaXMgZGVzaWduZWQgCiAgICAgIHRvIGJlIGludGVycm9nYXRlZCBieSBTT0FQIG1lc3NhZ2VzIGFuZCB0byBwcm92aWRlIGFjY2VzcyB0byBXU0RMIGRvY3VtZW50cyAKICAgICAgZGVzY3JpYmluZyB0aGUgcHJvdG9jb2wgYmluZGluZ3MgYW5kIG1lc3NhZ2UgZm9ybWF0cyByZXF1aXJlZCB0byBpbnRlcmFjdCAKICAgICAgd2l0aCB0aGUgd2ViIHNlcnZpY2VzIGxpc3RlZCBpbiBpdHMgZGlyZWN0b3J5LjwvcD4KICA8L2Jsb2NrcXVvdGU+CiAgPGxpPiBOYXZpZ2F0aW5nIFdTSUwgKFdlYiBTZXJ2aWNlcyBJbnNwZWN0aW9uIExhbmd1YWdlKSBEb2N1bWVudHMgPC9saT4KICA8YmxvY2txdW90ZT4gCiAgICA8cD5XUy1JbnNwZWN0aW9uIGlzIGEgd2ViIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiBmb3IgJnF1b3Q7ZGlzY292ZXJ5IGRvY3VtZW50cyZxdW90OyAKICAgICAgZGV2ZWxvcGVkIGluIGEgam9pbnQgZWZmb3J0IGJ5IE1pY3Jvc29mdCBhbmQgSUJNLiBXUy1JbnNwZWN0aW9uIGxpc3RzIGdyb3VwcyAKICAgICAgb2Ygd2ViIHNlcnZpY2VzIGFuZCB0aGVpciBlbmRwb2ludHMgaW4gYW4gWE1MIGZvcm1hdC4gQ3VycmVudGx5LCBvdGhlciBzdGFuZGFyZHMgCiAgICAgIGFyZSBiZWluZyB1c2VkIGZvciB0aGlzIHB1cnBvc2UsIHN1Y2ggYXMgTWljcm9zb2Z0J3MgRElTQ08uIEl0IGlzIGV4cGVjdGVkIAogICAgICB0aGF0IFdTLUluc3BlY3Rpb24gd2lsbCBldmVudHVhbGx5IHJlcGxhY2UgdGhlc2Ugc3RhbmRhcmRzIHRvIGJlY29tZSB0aGUgCiAgICAgIHVuaXZlcnNhbGx5IGFjY2VwdGVkIGRpc2NvdmVyeSBzdGFuZGFyZCBmb3Igd2ViIHNlcnZpY2VzLjwvcD4KICA8L2Jsb2NrcXVvdGU+CiAgPGxpPiBJbXBvcnRpbmcgV1NETCBpbnRvIGRldmVsb3BtZW50IHByb2plY3QgCiAgICA8YmxvY2txdW90ZT4gCiAgICAgIDxwPlRoZSBXZWIgU2VydmljZXMgRGVzY3JpcHRpb24gTGFuZ3VhZ2UgKFdTREwpIGlzIGFuIFhNTCBmb3JtYXQgcHVibGlzaGVkIAogICAgICAgIGZvciBkZXNjcmliaW5nIFdlYiBzZXJ2aWNlcy4gVmVyc2lvbiBWIDEuMSBoYXMgbm90IGJlZW4gZW5kb3JzZWQgYnkgdGhlIAogICAgICAgIFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0gKFczQyksIGhvd2V2ZXIgaXQgaGFzIHJlbGVhc2VkIGEgZHJhZnQgZm9yIHZlcnNpb24gCiAgICAgICAgMi4wIG9uIE1heSAxMSwgMjAwNSwgdGhhdCB3aWxsIGJlIGEgVzNDIHJlY29tbWVuZGF0aW9uLCBhbmQgdGh1cyBlbmRvcnNlZCAKICAgICAgICBieSB0aGUgVzNDLjxicj4KICAgICAgPC9wPgogICAgPC9ibG9ja3F1b3RlPgogIDwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+Mi4gVGVzdDwvc3Ryb25nPjxicj4KICCVIER5bmFtaWMgaW52b2NhdGlvbiBiYXNlZCBvbiBXU0RMPGJyPgogIJUgVmlldyBTT0FQIG1lc3NhZ2VzPGJyPgo8L3A+CjxwPjxzdHJvbmc+My4gUHVibGlzaDwvc3Ryb25nPjxicj4KICCVIFB1Ymxpc2ggV1NETCBpbnRvIFVEREkgUmVnaXN0cmllczwvcD4KPHA+Jm5ic3A7PC9wPgo8cD5JbiB0aGUgZGVtb25zdHJhdGlvbiBiZWxvdyB3ZSB3aWxsICdzZWFyY2gnIGEgVURESSByZWdpc3RyeSB1c2luZyB0aGUgRWNsaXBzZSAKICBXVFAgYW5kIGZpbHRlciB0aGUgcmVzdWx0cywgaW4gb3JkZXIgdG8gb2J0YWluIGEgdmlhYmxlIGNhbmRpZGF0ZSBzZXJ2aWNlIGZvciAKICBvdXIgY2xpZW50LiBUaGVuIHdlIHdpbGwgaW52b2tlIHNvbWUgJ3NlcnZpY2Ugb3BlcmF0aW9ucycgdG8gY2hlY2sgdGhlIGFjdHVhbCAKICBvdXRwdXRzIGFuZCBmaW5hbGx5ICdpbXBvcnQnIHRoZSBzZXJ2aWNlIFdTREwgdG8gb3VyIHdvcmtiZW5jaC48L3A+CjxwPiZuYnNwOzwvcD4KPGgzPkRlbW9uc3RyYXRpb248L2gzPgo8aDQ+IExhdW5jaGluZyB0aGUgV2ViIFNlcnZpY2VzIEV4cGxvcmVyPC9oND4KPHA+PGltZyBzcmM9ImltYWdlcy90cnlpdC5naWYiIHdpZHRoPSI2MSIgaGVpZ2h0PSIxMyI+IE1ha2Ugc3VyZSB0aGF0IHlvdSBhcmUgCiAgaW4gdGhlIDxlbT48c3Ryb25nPkoyRUUgUGVyc3BlY3RpdmU8L3N0cm9uZz48L2VtPiBpbiBFY2xpcHNlLiBJbiB0aGUgSjJFRSBwZXJzcGVjdGl2ZSwgCiAgY2xpY2tpbmcgdGhlICdMYXVuY2ggV2ViIFNlcnZpY2VzIEV4cGxvcmVyJyBidXR0b24gaW4gdGhlIEVjbGlwc2UgV1RQIHRvb2wgYmFyIAogIHdpbGwgbGF1bmNoIHRoZSBXZWIgU2VydmljZXMgRXhwbG9yZXIgaW4geW91ciBkZWZhdWx0IHdlYiBicm93c2VyIChpbiB0aGlzIGluc3RhbmNlLCAKICBNb3ppbGxhIEZpcmVmb3gpLiBUaGUgZGVmYXVsdCByZWdpc3RyeSBxdWVyaWVkIGlzIHRoZSBJQk0gVGVzdCBVRERJIHJlZ2lzdHJ5LiAKPC9wPgo8cD4gPGltZyBzcmM9ImltYWdlcy9sYXVuY2gtd2ViLXNlcnZpY2UtZXhwbG9yZXIuanBnIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI3NjgiPjwvcD4KPHA+RmlndXJlIDEgLSBFY2xpcHNlIFdUUCB3b3JrYmVuY2ggd2l0aCB0aGUgJyA8ZW0+PHN0cm9uZz5MYXVuY2ggV2ViIFNlcnZpY2VzIAogIEV4cGxvcmVyPC9zdHJvbmc+PC9lbT4nIGJ1dHRvbiBoaWdobGlnaHRlZCA8L3A+CjxoND4mbmJzcDs8L2g0Pgo8aDQ+V2ViIFNlcnZpY2VzIEV4cGxvcmVyIExhdW5jaGVkIEluIHRoZSBFY2xpcHNlIFdUUDwvaDQ+CjxwPkluIHRoaXMgdHV0b3JpYWwgd2Ugd2lsbCB1c2UgdGhlICdYTWV0aG9kcycgVURESSByZWdpc3RyeSB0byBnZXQgb3Vyc2VsdmVzIAogIGZhbWlsaWFyIHdpdGggdGhlIFdlYiBTZXJ2aWNlcyBFeHBsb3Jlci4gPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3RyeWl0LmdpZiIgd2lkdGg9IjYxIiBoZWlnaHQ9IjEzIj4gU2VsZWN0IHRoZSByZWdpc3RyeSBmcm9tIAogIHRoZSBkcm9wIGRvd24gbGlzdCwgcmVnaXN0ZXIgZm9yIGFuIGFjY291bnQsIGFjdGl2YXRlIHRoZSBhY2NvdW50IGFuZCB3ZSBhcmUgCiAgcmVhZHkgdG8gbW92ZSBmb3J3YXJkLjxicj4KICBDbGljayB0aGUgJ0dvJyBidXR0b24gdG8gYmVnaW4gZXhwbG9yaW5nIHRoZSByZWdpc3RyeS48L3A+CjxoND48aW1nIHNyYz0iaW1hZ2VzL3dlYi1zZXJ2aWNlLWV4cGxvcmVyLmpwZyIgd2lkdGg9IjEwMjQiIGhlaWdodD0iNzY4Ij48L2g0Pgo8cD5GaWd1cmUgMiAtIFRoZSBXZWIgU2VydmljZXMgRXhwbG9yZXI8YnI+CjwvcD4KPHA+Jm5ic3A7PC9wPgo8aDQ+U2VhcmNoaW5nIEZvciBFeHBvc2VkIFdlYiBTZXJ2aWNlcyBpbiB0aGUgVURESSByZWdpc3RyeTxicj4KPC9oND4KPHA+QWZ0ZXIgYWNjZXNzaW5nIHRoZSByZWdpc3RyeSwgd2UgbmVlZCB0byBmaW5kIGEgV2ViIFNlcnZpY2UgdG8gd29yayB3aXRoLiA8L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvdHJ5aXQuZ2lmIiB3aWR0aD0iNjEiIGhlaWdodD0iMTMiPiBDbGljayB0aGUgJ0ZpbmQnIGJ1dHRvbiAKICBhbmQgdHlwZSAnU3RvY2sgUXVvdGUgU2VydmljZXMnIGFzIHRoZSA8ZW0+PHN0cm9uZz5uYW1lIG9mIHRoaXMgcXVlcnk8L3N0cm9uZz48L2VtPi4gCiAgSW4gdGhlIDxlbT48c3Ryb25nPm5hbWU8L3N0cm9uZz48L2VtPiB0ZXh0IGJveCwgdHlwZSAnU3RvY2sgUXVvdGUnICh3aGljaCB3ZSAKICBrbm93IGV4aXN0cykuIEluIHRoZSBjb21ibyBib3ggeW91IGdldCB0aHJlZSBzZWxlY3Rpb25zIGFzIDxlbT48c3Ryb25nPkJ1c2luZXNzZXM8L3N0cm9uZz48L2VtPiwgCiAgPGVtPiA8c3Ryb25nPlNlcnZpY2VzPC9zdHJvbmc+PC9lbT4gb3IgPGVtPjxzdHJvbmc+U2VydmljZSBJbnRlcmZhY2VzPC9zdHJvbmc+PC9lbT4uIAogIFNlbGVjdCCRU2VydmljZXOSIHRoZXJlLiBDbGljayCRR2+SIHRvIGV4ZWN1dGUgdGhlIHNlYXJjaC48L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvc2VhcmNoLXNlcnZpY2VzLmpwZyIgd2lkdGg9IjEwMjQiIGhlaWdodD0iNzY4Ij48L3A+CjxwPkZpZ3VyZSAzIC0gU2VhcmNoaW5nIGZvciBleHBvc2VkIFdlYiBTZXJ2aWNlczwvcD4KPHA+Jm5ic3A7PC9wPgo8cD48L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvc2VydmljZXMtZm91bmQuanBnIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI3NjgiPjwvcD4KPHA+RmlndXJlIDQgLSBTZWFyY2ggcXVlcnkgcmVzdWx0cyBkaXNwbGF5ZWQ8L3A+CjxwPiZuYnNwOzwvcD4KPHA+PGltZyBzcmM9ImltYWdlcy90cnlpdC5naWYiIHdpZHRoPSI2MSIgaGVpZ2h0PSIxMyI+IENsaWNrIG9uIG9uZSBvZiB0aGUgcmVzdWx0cyAKICB0byB2aWV3IHNlcnZpY2UgaW5mb3JtYXRpb24uIFRoZW4gY2xpY2sgJ0FkZCBUbyBXU0RMIFBhZ2UnIHRvIGFkZCB0aGlzIHNlcnZpY2UgCiAgdG8gdGhlIFdTREwgcGFnZSB0byBmdXJ0aGVyIGV4cGxvcmUgaXQuPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3NlcnZpY2UtZGV0YWlscy1kaXNwbGF5ZWQuanBnIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI3NjgiPjwvcD4KPHA+RmlndXJlIDUgLSBBZGQgdG8gV1NETCBhY3Rpb24gc2VsZWN0ZWQ8L3A+CjxoND4mbmJzcDs8L2g0Pgo8aDQ+IEludm9raW5nIFNlcnZpY2UgT3BlcmF0aW9ucyBBdmFpbGFibGUgZm9yIERldmVsb3BlcnM8L2g0Pgo8cD5XZSBjYW4gZXhwbG9yZSBhbmQgaW52b2tlIFdTREwgb3BlcmF0aW9ucyBpbiB0aGUgV1NETCBQYWdlLiBJbiB0aGlzIHBhcnRpY3VsYXIgCiAgc2VydmljZSwgd2UgY2FuIGludm9rZSB0aGUgb3BlcmF0aW9uIGF2YWlsYWJsZSB0byBnZXQgYSBTdG9jayBRdW90ZSBmb3IgYSBnaXZlbiAKICBzeW1ib2wgc3RyaW5nLiBUaGlzIGlzIGdvb2QgYmVjYXVzZSB3ZSBjYW4gYWN0dWFsbHkgdHJ5IG91dCB0aGUgc2VydmljZSBtZXRob2RzIAogIGFuZCB2ZXJpZnkgd2hldGhlciB0aGUgZXhwZWN0ZWQgb3V0cHV0IGlzIHByb3ZpZGVkIGJ5IHRoZW0uPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3RyeWl0LmdpZiIgd2lkdGg9IjYxIiBoZWlnaHQ9IjEzIj4gVHlwZSAnSUJNJyBhbmQgY2hlY2sgdGhlIAogICdTdGF0dXMnIHBhbmVsIGZvciB0aGUgcmV0dXJuZWQgZGF0YS48L3A+CjxoND48aW1nIHNyYz0iaW1hZ2VzL2ludm9raW5nLXNlcnZpY2Utb3BlcmF0aW9ucy5KUEciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9Ijc2OCI+PC9oND4KPHA+RmlndXJlIDYgLSBJbnZva2luZyBhIFdTREwgb3BlcmF0aW9uPC9wPgo8cD48L3A+CjxwPiA8L3A+CjxoND5JbXBvcnRpbmcgdGhlIFNlcnZpY2UgV1NETCB0byB0aGUgV29ya2JlbmNoPC9oND4KPHA+IEFmdGVyIGV4cGxvcmluZyBhbmQgZmluZGluZyBvdXIgc2VydmljZXMsIHRoZSBuZXh0IHN0ZXAgaXMgdG8gc3RhcnQgdXNpbmcgCiAgdGhlbSBpbiBvdXIgV2ViIEFwcGxpY2F0aW9ucy4gSW4gb3JkZXIgdG8gZG8gdGhpcywgd2UgbmVlZCB0byBjcmVhdGUgQ2xpZW50IAogIHN0dWJzIGFsb25nIHdpdGggPGVtPldlYiBTZXJ2aWNlIEVtdWxhdG9yczwvZW0+ICh0byB0ZXN0IG91ciBjbGllbnRzKS4gVXNpbmcgCiAgdGhlIEVjbGlwc2UgV1RQIHdlIGNhbiBpbXBvcnQgdGhlIFdTREwgb2YgdGhlIFdlYiBTZXJ2aWNlIGV4cGxvcmVkIGludG8gdGhlIAogIHdvcmtiZW5jaC4gPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3RyeWl0LmdpZiIgd2lkdGg9IjYxIiBoZWlnaHQ9IjEzIj4gTGV0J3MgdHJ5IHRoaXMgdXNpbmcgdGhlIAogIHN0ZXBzIGJlbG93Ljxicj4KPC9wPgo8YmxvY2txdW90ZT4KICA8cD4gMS4gQ3JlYXRlIGEgc2ltcGxlIHByb2plY3QgaW4geW91ciBFY2xpcHNlIFdUUCB3b3JrYmVuY2ggKEV4OiBXVFB0dXRvcmlhbCk8YnI+CiAgICAyLiBDbGljayAnSW1wb3J0IFdTREwgVG8gV29ya2JlbmNoJyBidXR0b24gaW4gdGhlIHdlYiBzZXJ2aWNlcyBleHBsb3JlciwgYXMgCiAgICBpbGx1c3RyYXRlZCBiZWxvdzxicj4KICAgIDMuIFNlbGVjdCB0aGUgYXBwcm9wcmlhdGUgcHJvamVjdCB0byBpbXBvcnQgdGhlIFdTREwgdG8gKGluIHRoaXMgaW5zdGFuY2UsIAogICAgV1RQdHV0b3JpYWwpPGJyPgogICAgNC4gR2l2ZSBhIG5hbWUgdG8gdGhlIGdlbmVyYXRlZCBXU0RMIGZpbGUgaW4gdGhlIHByb2plY3QuPC9wPgo8L2Jsb2NrcXVvdGU+CjxoMj48aW1nIHNyYz0iaW1hZ2VzL2ltcG9yLXdzZGwtdG8td29ya2JlbmNoLkpQRyIgd2lkdGg9IjEwMjQiIGhlaWdodD0iNzY4Ij48L2gyPgo8cD5GaWd1cmUgNyAtIEltcG9ydGluZyB0aGUgV1NETCBvZiB0aGUgc2VydmljZSB0byB0aGUgd29ya2JlbmNoPC9wPgo8cD48L3A+CjxoMj4mbmJzcDs8L2gyPgo8aDI+RWRpdGluZyBEb2N1bWVudHMgd2l0aCB0aGUgV1NETC9YU0QgRWRpdG9yPC9oMj4KPHA+QXMgZGVzY3JpYmVkIHByZXZpb3VzbHksIFRoZSBXZWIgU2VydmljZXMgRGVzY3JpcHRpb24gTGFuZ3VhZ2UgKFdTREwpIGlzIHRoZSAKICBYTUwgZm9ybWF0IHB1Ymxpc2hlZCBmb3IgZGVzY3JpYmluZyBXZWIgc2VydmljZXMuIFdTREwgZGVzY3JpYmVzIHRoZSBwdWJsaWMgCiAgaW50ZXJmYWNlIHRvIHRoZSB3ZWIgc2VydmljZS4gVGhpcyBpcyBhbiBYTUwtYmFzZWQgc2VydmljZSBkZXNjcmlwdGlvbiBvbiBob3cgCiAgdG8gY29tbXVuaWNhdGUgdXNpbmcgdGhlIHdlYiBzZXJ2aWNlOyBuYW1lbHksIHRoZSBwcm90b2NvbCBiaW5kaW5ncyBhbmQgbWVzc2FnZSAKICBmb3JtYXRzIHJlcXVpcmVkIHRvIGludGVyYWN0IHdpdGggdGhlIHdlYiBzZXJ2aWNlcyBsaXN0ZWQgaW4gaXRzIGRpcmVjdG9yeS4gCiAgVGhlIHN1cHBvcnRlZCBvcGVyYXRpb25zIGFuZCBtZXNzYWdlcyBhcmUgZGVzY3JpYmVkIGFic3RyYWN0bHksIGFuZCB0aGVuIGJvdW5kIAogIHRvIGEgY29uY3JldGUgbmV0d29yayBwcm90b2NvbCBhbmQgbWVzc2FnZSBmb3JtYXQuPC9wPgo8cD5XU0RMIGlzIG9mdGVuIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBTT0FQIGFuZCBYTUwgU2NoZW1hIHRvIHByb3ZpZGUgd2ViIHNlcnZpY2VzIAogIG92ZXIgdGhlIGludGVybmV0LiBBIGNsaWVudCBwcm9ncmFtIGNvbm5lY3RpbmcgdG8gYSB3ZWIgc2VydmljZSBjYW4gcmVhZCB0aGUgCiAgV1NETCB0byBkZXRlcm1pbmUgd2hhdCBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSBvbiB0aGUgc2VydmVyLiBBbnkgc3BlY2lhbCBkYXRhIAogIHR5cGVzIHVzZWQgYXJlIGVtYmVkZGVkIGluIHRoZSBXU0RMIGZpbGUgaW4gdGhlIGZvcm0gb2YgWE1MIFNjaGVtYS4gVGhlIGNsaWVudCAKICBjYW4gdGhlbiB1c2UgU09BUCB0byBhY3R1YWxseSBjYWxsIG9uZSBvZiB0aGUgZnVuY3Rpb25zIGxpc3RlZCBpbiB0aGUgV1NETC48L3A+CjxwPkFuIFhNTCBTY2hlbWEgRGVmaW5pdGlvbiAoWFNEKSBpcyBhbiBpbnN0YW5jZSBvZiBhbiBYTUwgc2NoZW1hIHdyaXR0ZW4gaW4gdGhlIAogIFczQydzIFhNTCBTY2hlbWEgbGFuZ3VhZ2UuIEFuIFhTRCBkZWZpbmVzIGEgdHlwZSBvZiBYTUwgZG9jdW1lbnQgaW4gdGVybXMgb2YgCiAgY29uc3RyYWludHMgdXBvbiB3aGF0IGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIG1heSBhcHBlYXIsIHRoZWlyIHJlbGF0aW9uc2hpcCAKICB0byBlYWNoIG90aGVyLCB3aGF0IHR5cGVzIG9mIGRhdGEgbWF5IGJlIGluIHRoZW0sIGFuZCBvdGhlciB0aGluZ3MuPGJyPgo8L3A+CjxwPiBUaGUgV1NETC9YU0QgRWRpdG9yIHByb3ZpZGVkIGJ5IHRoZSBFY2xpcHNlIFdUUCBwcm92aWRlcyB0aGUgZGV2ZWxvcGVyIHdpdGggCiAgZnVuY3Rpb25hbGl0eSBleHBlY3RlZCBmcm9tIGFuIGFkdmFuY2VkIGVkaXRvciBzdWNoIGFzOzxicj4KPC9wPgo8cD6VIEdyYXBoaWNhbCBhbmQgU291cmNlIGVkaXRpbmcgbW9kZXM8YnI+CiAglSBTZWFtbGVzcyBpbnRlZ3JhdGlvbiBmb3IgZWRpdGluZyBpbmxpbmUgWFNEPGJyPgogIJUgQ29udGVudCBBc3Npc3Q8YnI+CiAglSBQb3AtdXAgYWN0aW9uczxicj4KICCVIEJpbmRpbmcgV2l6YXJkPGJyPgogIJUgVmFsaWRhdGlvbiwgaW5jbHVkaW5nIFdTLUkgcHJvZmlsZXM8YnI+CiAglSBFeHRlbnNpYmxlIGZvciBXU0RMIGV4dGVuc2lvbiBlbGVtZW50czwvcD4KPHA+SWxsdXN0cmF0ZWQgYmVsb3cgaXMgdGhlIFdTREwgaW1wb3J0ZWQgZnJvbSB0aGUgYWJvdmUgc2VjdGlvbi4gSXQgaXMgZGlzcGxheWVkIAogIGluIHRoZSBXU0RMIGVkaXRvciBydW5uaW5nIGluIJE8ZW0+PHN0cm9uZz5ncmFwaGljYWw8L3N0cm9uZz48L2VtPpIgbW9kZS48L3A+CjxoMz48aW1nIHNyYz0iaW1hZ2VzL3dzZGwtZWRpdG9yLWdyYXBoaWNhbC1tb2RlLkpQRyIgd2lkdGg9IjEwMjQiIGhlaWdodD0iNzY4Ij48L2gzPgo8cD5GaWd1cmUgOCAtIFRoZSBXU0RMIGVkaXRvciBydW5uaW5nIGluIGdyYXBoaWNhbCBtb2RlPC9wPgo8cD48L3A+CjxoMz4gPC9oMz4KPGgzPldTREwgRWRpdG9yIERlbW9uc3RyYXRpb248L2gzPgo8cD48YnI+CiAgPGltZyBzcmM9ImltYWdlcy90cnlpdC5naWYiIHdpZHRoPSI2MSIgaGVpZ2h0PSIxMyI+IFdlIHdpbGwgdHJ5IHRoZSBlZGl0b3IgZm9sbG93aW5nIAogIHRoZSBzdGVwcyBiZWxvdy48L3A+CjxibG9ja3F1b3RlPgogIDxwPjxicj4KICAgIDEuIE9wZW4gk1N0b2NrUXVvdGUud3NkbJQgaW4gV1NETCBFZGl0b3I8YnI+CiAgICAyLiBHbyBpbnRvIGdyYXBoaWNhbCB2aWV3IG9mIFhNTCBzY2hlbWEgZm9yIG1lc3NhZ2VzPGJyPgogICAgMy4gTmF2aWdhdGUgaW50byCTR2V0UXVvdGWUIGVsZW1lbnQ8YnI+CiAgICA0LiBTd2l0Y2ggdG8gU291cmNlIHRhYjxicj4KICAgIDUuIE5hdmlnYXRlIHVzaW5nIGxpbmtlZCBPdXRsaW5lIGFuZCBQcm9wZXJ0aWVzIHZpZXdzPC9wPgo8L2Jsb2NrcXVvdGU+CjxwPkluIHRoZSBpbGx1c3RyYXRpb24gYmVsb3csIHdlIGNhbiBzZWUgdGhlIGVkaXRvciBpbiAnU291cmNlJyBtb2RlIGFsb25nIHdpdGggCiAgdGhlIEVjbGlwc2Ugd29ya2JlbmNoIGNvbnRlbnQgb3V0bGluZS48L3A+CjxoMj48aW1nIHNyYz0iaW1hZ2VzL3dzZGwtZWRpdG9yLWRlbW8uSlBHIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI3NjgiPjwvaDI+CjxwPkZpZ3VyZSA5IC0gVGhlIFdTREwgRWRpdG9yIHJ1bm5pbmcgaW4gJ1NvdXJjZScgbW9kZSwgd2l0aCAnQ29udGVudCBPdXRsaW5lJyAKICBhbmQgc3ludGF4IGhpZ2hsaWdodGluZzwvcD4KPHA+PC9wPgo8aDI+IDwvaDI+CjxoMj5HZW5lcmF0aW5nIENvZGUgVXNpbmcgdGhlIFdlYiBTZXJ2aWNlcyBXaXphcmQ8L2gyPgo8cD4gVGhlIG5leHQgc3RhZ2UgaW4gdGhlIHR1dG9yaWFsIGlzIHRvIHN0YXJ0IGNyZWF0aW5nIGFuZCBhY2Nlc3Npbmcgd2ViIHNlcnZpY2VzLiAKICBUaGUgRWNsaXBzZSBXVFAgV2ViIFNlcnZpY2VzIFdpemFyZCBwcm92aWRlcyB0aGUgdG9vbHMgZm9yIGRvaW5nIGp1c3QgdGhhdC4gCjwvcD4KPHA+VGhlIHdpemFyZDs8YnI+CjwvcD4KPHA+IDEuIFN1cHBvcnRzIGdlbmVyYXRlL2RlcGxveS90ZXN0L3B1Ymxpc2ggbGlmZWN5Y2xlPGJyPgogIDIuIENvbmZpZ3VyZXMgcHJvamVjdCwgc2VydmVyLCBhbmQgU09BUCBlbmdpbmU8YnI+CiAgMy4gSGFzIGhpZ2hseSBleHRlbnNpYmxlCjx1bD4KICA8bGk+IFNPQVAgZW5naW5lczwvbGk+CiAgPGxpPiBDb2RlIGdlbmVyYXRvcnM8L2xpPgogIDxsaT4gVGVzdCBmYWNpbGl0aWVzIDwvbGk+CjwvdWw+PC9wPgo8cD4mbmJzcDs8L3A+PGgzPldlYiBTZXJ2aWNlcyBDbGllbnQgV2l6YXJkIERlbW9uc3RyYXRpb248L2gzPgo8cD4gSW4gdGhpcyBkZW1vbnN0cmF0aW9uLCB3ZSB3aWxsIGNyZWF0ZSBhIFdlYiBTZXJ2aWNlIGNsaWVudCBmb3Igb3VyICdTdG9jayAKICBRdW90ZScgc2VydmljZS4gV2Ugd2lsbCBmb2xsb3cgdGhlIEdlbmVyYXRlLCBEZXBsb3ksIFRlc3QgYW5kIFB1Ymxpc2ggbGlmZSBjeWNsZS4gCjwvcD4KPGg0Pjxicj4KICAxLiBDb25maWd1cmluZyB0aGUgU2VydmVyPC9oND4KPHA+IEZpcnN0IHdlIG11c3QgY29uZmlndXJlIG91ciBzZXJ2ZXIgaW4gdGhlIEVjbGlwc2UgV1RQIHdvcmtiZW5jaC4gVGhpcyBkZW1vbnN0cmF0aW9uIAogIHdpbGwgdXNlIHRoZSBBcGFjaGUgVG9tY2F0IHNlcnZlci4gPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3RyeWl0LmdpZiIgd2lkdGg9IjYxIiBoZWlnaHQ9IjEzIj4gR28gdG8gdGhlIE1lbnUgRmlsZSAtJmd0OyAKICBOZXcgLSZndDsgT3RoZXIgYW5kIFNlbGVjdCBTZXJ2ZXJzLiBGaWxsIHlvdXIgc2VydmVyIGluZm9ybWF0aW9uIGFzIGlsbHVzdHJhdGVkIAogIGluIHRoZSBBZGQgTmV3IFNlcnZlciB3aXphcmQuPC9wPgo8cD48YnI+CiAgPGltZyBzcmM9ImltYWdlcy93ZWItc2VydmljZS13aXphcmQtMS5KUEciIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIj48L3A+CjxwPkZpZ3VyZSAxMCAtIEJlZ2lubmluZyB0byBhZGQgYSBuZXcgc2VydmVyPC9wPgo8cD4mbmJzcDs8L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvd2ViLXNlcnZpY2Utd2l6YXJkLTIuSlBHIiB3aWR0aD0iNTE4IiBoZWlnaHQ9IjUzOCI+PC9wPgo8cD5GaWd1cmUgMTEgLSBTZWxlY3RpbmcgdGhlIHNlcnZlciAndHlwZSc8L3A+CjxwPiZuYnNwOzwvcD4KPGg0Pjxicj4KICAyLiBDb21wbGV0ZSB0aGUgV2ViIFNlcnZpY2VzIFdpemFyZDwvaDQ+CjxwPiA8aW1nIHNyYz0iaW1hZ2VzL3RyeWl0LmdpZiIgd2lkdGg9IjYxIiBoZWlnaHQ9IjEzIj4gVGhlIHN0ZXBzIGFyZSBpbGx1c3RyYXRlZCAKICBpbiB0aGUgZm9sbG93aW5nIHNjcmVlbiBzaG90cy4gVGhleSBjYW4gYmUgYnJpZWZseSBvdXRsaW5lZCBhczs8L3A+CjxwPjEuIFJ1biBXZWIgU2VydmljZSBDbGllbnQgV2l6YXJkIHRvIGdlbmVyYXRlIEphdmEgcHJveHkgYW5kIEpTUCB0ZXN0IHBhZ2Ugd2l0aCAKICBUQ1AvSVAgbW9uaXRvcjxicj4KICBHbyB0byBNZW51IEZpbGUgLSZndDsgTmV3IC0mZ3Q7IE90aGVyLiBFeHBhbmQgJzxlbT48c3Ryb25nPldlYiBTZXJ2aWNlczwvc3Ryb25nPjwvZW0+Jy4gCiAgU2VsZWN0ICc8c3Ryb25nPjxlbT5XZWIgU2VydmljZSBDbGllbnQ8L2VtPjwvc3Ryb25nPicuIENsaWNrICdOZXh0Jy48L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvY3JlYXRlLXdlYi1zZXJ2aWNlLTEuanBnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PC9wPgo8cD5GaWd1cmUgMTIgLSBCZWdpbm5pbmcgdG8gY3JlYXRlIGEgbmV3IFdFYiBTZXJ2aWNlIGNsaWVudDwvcD4KPHA+Jm5ic3A7PC9wPgo8cD4yLiBTZWxlY3QgdGhlICdDbGllbnQgcHJveHkgdHlwZScgYXMgJzxlbT48c3Ryb25nPkphdmEgUHJveHk8L3N0cm9uZz48L2VtPicuIAogIE1ha2Ugc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlICc8ZW0+PHN0cm9uZz5UZXN0IHRoZSBXZWIgc2VydmljZTwvc3Ryb25nPjwvZW0+JyAKICBhbmQgJzxlbT48c3Ryb25nPk1vbml0b3IgdGhlIHdlYiBzZXJ2aWNlPC9zdHJvbmc+PC9lbT4nIG9wdGlvbnMuPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL2NyZWF0ZS13ZWItc2VydmljZS0yLmpwZyIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPiA8L3A+CjxwPkZpZ3VyZSAxMyAtIFNlbGVjdGluZyB0aGUgb3B0aW9ucyBmb3IgdGhlIGdlbmVyYXRlZCBXZWIgU2VydmljZSBjbGllbnQ8L3A+CjxwPiZuYnNwOzwvcD4KPHA+My4gQ2xpY2sgJ0Jyb3dzZScgYW5kIHNlbGVjdCB0aGUgJzxlbT48c3Ryb25nPlN0b2NrUXVvdGUud3NkbDwvc3Ryb25nPjwvZW0+JyAKICBmaWxlIGFzIHRoZSBXU0RMIGRvY3VtZW50LjwvcD4KPHA+PGltZyBzcmM9ImltYWdlcy9jcmVhdGUtd2ViLXNlcnZpY2UtMy5qcGciIHdpZHRoPSI1MDAiIGhlaWdodD0iNjg1Ij4gPC9wPgo8cD5GaWd1cmUgMTQgLSBMb2NhdGluZyB0aGUgaW1wb3J0ZWQgV1NETDwvcD4KPHA+Jm5ic3A7PC9wPgo8cD40LiBUeXBlICdTdG9ja1F1b3RlQ2xpZW50JyBhcyB0aGUgQ2xpZW50IFByb2plY3QuIEFsbCB0aGUgZ2VuZXJhdGVkIGNvZGUgd2lsbCAKICBiZSBvcmdhbml6ZWQgdW5kZXIgdGhpcyBwcm9qZWN0IGluIHRoZSBFY2xpcHNlIFdUUC48L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvY3JlYXRlLXdlYi1zZXJ2aWNlLTQuanBnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjY4NSI+IDwvcD4KPHA+RmlndXJlIDE1IC0gR2l2aW5nIGEgbmFtZSBmb3IgdGhlIHByb2plY3QgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIGdlbmVyYXRlZCAKICBjbGllbnQgc3R1YnM8L3A+CjxwPiZuYnNwOzwvcD4KPHA+NS4gQ2xpY2sgJ05leHQnIGluIHRoaXMgcGFnZS4gTm8gbW9kaWZpY2F0aW9ucyBuZWNlc3NhcnkuPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL2NyZWF0ZS13ZWItc2VydmljZS01LmpwZyIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI2ODUiPjwvcD4KPHA+RmlndXJlIDE2IC0gRmluYWwgb3B0aW9ucyBiZWZvcmUgY29kZSBnZW5lcmF0aW9uPC9wPgo8cD4mbmJzcDs8L3A+CjxwPjYuIElmIHlvdXIgVG9tY2F0IHNlcnZlciBpcyBzdG9wcGVkLCB5b3UgbWlnaHQgZ2V0IHRoaXMgc2NyZWVuLiBDbGljayAnU3RhcnQgCiAgU2VydmVyJyB0byBzdGFydCB0aGUgc2VydmVyLiBPbmNlIHRoZSBzZXJ2ZXIgaXMgc3RhcnRlZCBzdWNjZXNzZnVsbHksIGNsaWNrIAogICdOZXh0Jy4gPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL2NyZWF0ZS13ZWItc2VydmljZS02LmpwZyIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI2ODUiPjwvcD4KPHA+RmlndXJlIDE3IC0gU3RhcnQgdGhlIFRvbWNhdCBzZXJ2ZXIgPC9wPgo8cD4mbmJzcDs8L3A+CjxwPjcuIEluIHRoaXMgc2NyZWVuIHNlbGVjdCB0aGUgb3B0aW9uICdSdW4gdGVzdCBvbiBzZXJ2ZXInLCBzaW5jZSBpdCdzIG5vdCBzZWxlY3RlZCAKICBieSBkZWZhdWx0LiBUaGlzIHdpbGwgZW5hYmxlIHVzIHRvIHRlc3QgdGhlIFdlYiBzZXJ2aWNlIGluIG91ciBUb21jYXQgc2VydmVyIAogIHdpdGggdGhlIEVjbGlwc2UgV1RQIGdlbmVyYXRlZCBKU1Ancy4gQ2xpY2sgJ0ZpbmlzaCcgdG8gY29tcGxldGUgdGhlIHdpemFyZC48L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvY3JlYXRlLXdlYi1zZXJ2aWNlLTcuanBnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjY4NSI+PC9wPgo8cD5GaWd1cmUgMTggLSBTZWxlY3RpbmcgdGhlIHNlcnZpY2UgdGVzdGluZyBvcHRpb25zPC9wPgo8cD4mbmJzcDs8L3A+CjxwPjguIEZpbmFsbHkgeW91IGNhbiBzZWUgdGhlIG5ld2x5IGNyZWF0ZWQgcHJvamVjdCBpbiB0aGUgRWNsaXBzZSBXVFAgd29ya2JlbmNoIAogIChVbmRlciAnRHluYW1pYyBXZWIgUHJvamVjdHMnKSwgYWxvbmcgd2l0aCB0aGUgZ2VuZXJhdGVkIGZpbGVzLjwvcD4KPHA+PGltZyBzcmM9ImltYWdlcy9jcmVhdGUtd2ViLXNlcnZpY2UtOC5qcGciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9Ijc2OCI+PC9wPgo8cD5GaWd1cmUgMTkgLSBUaGUgZ2VuZXJhdGVkIGNvZGUsIGRpc3BsYXllZCBpbiB0aGUgd29ya2JlbmNoPC9wPgo8cD4mbmJzcDs8L3A+CjxoND4zLiBUZXN0IHRoZSBHZW5lcmF0ZWQgQ2xpZW50IFN0dWJzPC9oND4KPHA+PGltZyBzcmM9ImltYWdlcy90cnlpdC5naWYiIHdpZHRoPSI2MSIgaGVpZ2h0PSIxMyI+IEhlcmUgd2UgYXJlIHNldHRpbmcgdGhlIAogIGVuZCBwb2ludCBvZiB0aGUgd2ViIHNlcnZpY2UgKHVzaW5nIHNldEVuZFBvaW50KCkgbWV0aG9kKSBhcyCRaHR0cDovL2xvY2FsaG9zdDo5OTEzL3N0b2NrcXVvdGUuYXNteJIgCiAgaW5zdGVhZCBvZiCRaHR0cDovL3d3dy53ZWJzZXJ2aWNleC5jb20vc3RvY2txdW90ZS5hc214ki4gV2UgZG8gdGhpcyBpbiBvcmRlciAKICB0byBtb25pdG9yIG91ciBTT0FQIHJlcXVlc3RzIHVzaW5nIFRDUC9JUCBtb25pdG9yLjwvcD4KPHA+PGltZyBzcmM9ImltYWdlcy90ZXN0LWdlbmVyYXRlZC1zdHVicy0xLkpQRyIgd2lkdGg9IjEwMjQiIGhlaWdodD0iNzY4Ij48L3A+CjxwPkZpZ3VyZSAyMCAtIFRlc3RpbmcgdXNpbmcgdGhlIGdlbmVyYXRlZCBKU1AncyBob3N0ZWQgaW4gdGhlIFRvbWNhdCBzZXJ2ZXI8L3A+CjxwPiZuYnNwOzwvcD4KPHA+PGltZyBzcmM9ImltYWdlcy90cnlpdC5naWYiIHdpZHRoPSI2MSIgaGVpZ2h0PSIxMyI+IE5vdyBnbyB0byB0aGUgTWVudSBXaW5kb3cgCiAgLSZndDsgU2hvdyBWaWV3IC0mZ3Q7IE90aGVyLiBFeHBhbmQgRGVidWcgYW5kIHNlbGVjdCBUQ1AvSVAgbW9uaXRvci4gVGhpcyB3aWxsIAogIGxhdW5jaCB0aGUgVENQL0lQIG1vbml0b3IgR1VJLiBSaWdodCBjbGljayBhcyBpbGx1c3RyYXRlZCBhbmQgc2VsZWN0IFByb3BlcnRpZXMuPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3Rlc3QtZ2VuZXJhdGVkLXN0dWJzLTIuSlBHIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI3NjgiPjwvcD4KPHA+RmlndXJlIDIxIC0gVGhlIFRDUC9JUCBtb25pdG9yIEdVSTwvcD4KPHA+Jm5ic3A7PC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3RyeWl0LmdpZiIgd2lkdGg9IjYxIiBoZWlnaHQ9IjEzIj4gSW4gdGhlIFByb3BlcnRpZXMgZGlhbG9nIAogIGNsaWNrIEFkZC4gSW4gdGhlIG5leHQgZGlhbG9nLCBlbnRlciA5OTEzIGFzIG1vbml0b3JpbmcgcG9ydCBhbmQgdGhlIJFyZWFskiAKICBlbmQgcG9pbnRzIGRldGFpbHMgYXMgaWxsdXN0cmF0ZWQgYmVsb3cuIENsaWNrIE9LIGFuZCBTdGFydCB0byBiZWdpbiBtb25pdG9yaW5nLjwvcD4KPHA+V2hhdCBoYXBwZW5zIGhlcmUgaXMgdGhhdCwgYWxsIHJlcXVlc3RzIGdvaW5nIHRvIHRoZSByZWFsIGVuZHBvaW50IHdpbGwgYmUgCiAgbW9uaXRvcmVkIGJ5IHRoZSBUQ1AvSVAgbW9uaXRvci4gSGVuY2UsIHdlIGdldCB0aGUgb3Bwb3J0dW5pdHkgdG8gaW50ZXJjZXB0IAogIGFuZCB2aWV3IGFsbCBTT0FQIG1lc3NhZ2VzIGFuZCBkZWJ1ZyBpZiByZXF1aXJlZC48L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvdGVzdC1nZW5lcmF0ZWQtc3R1YnMtMy5KUEciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9Ijc2OCI+PC9wPgo8cD5GaWd1cmUgMjIgLSBQb3J0IG1hcHBpbmcgaW4gdGhlIFRDUC9JUCBtb25pdG9yPC9wPgo8cD4mbmJzcDs8L3A+CjxwPk5vdyB0aGF0IHdlIGhhdmUgYWxsIHRoaXMgc2V0IHVwLCBsZXSScyBmaXJlIGEgdGVzdCBhbmQgc2VlIGV2ZXJ5dGhpbmcgaW4gYWN0aW9uLiAKPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3RyeWl0LmdpZiIgd2lkdGg9IjYxIiBoZWlnaHQ9IjEzIj4gUmlnaHQgY2xpY2sgdGhlIHByb2plY3QgCiAgaW4gdGhlIHdvcmtiZW5jaC4gQ2xpY2sgUnVuIEFzIC0mZ3Q7IFJ1biBvbiBTZXJ2ZXIuIFRoZSB0ZXN0IEpTUCBwYWdlIHdpbGwgY29tZSAKICB1cC4gU2V0IHRoZSBlbmQgcG9pbnQgYXMgZGVzY3JpYmVkIGFib3ZlLiBNYWtlIHN1cmUgdGhlIFRDUC9JUCBtb25pdG9yIGlzIGNvbmZpZ3VyZWQgCiAgYW5kIHJ1bm5pbmcgYXMgaWxsdXN0cmF0ZWQgYWJvdmUuPC9wPgo8cD48aW1nIHNyYz0iaW1hZ2VzL3RyeWl0LmdpZiIgd2lkdGg9IjYxIiBoZWlnaHQ9IjEzIj4gQ2xpY2sgb24gdGhlIGdldFN0b2NrUXVvdGUoKSAKICBtZXRob2QuIElucHV0IGEgc3ltYm9sIChleDogkWlibZIpLiBJZiBhbGwgaXMgd2VsbCB5b3Ugc2hvdWxkIGdldCBkYXRhIHNpbWlsYXIgCiAgdG8gdGhlIGZvbGxvd2luZyBzY3JlZW4gc2hvdC48L3A+CjxoMj48aW1nIHNyYz0iaW1hZ2VzL3Rlc3QtZ2VuZXJhdGVkLXN0dWJzLTQuSlBHIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI3NjgiPjwvaDI+CjxwPkZpZ3VyZSAyMyAtIFRlc3RpbmcgdGhlIHNlcnZpY2UsIHdoaWxlIHRoZSBTT0FQIG1lc3NhZ2VzIGFyZSBpbnRlcmNlcHRlZCBieSAKICB0aGUgVENQL0lQIG1vbml0b3I8L3A+CjxwPiZuYnNwOzwvcD4KPHA+PC9wPgo8cD4gPC9wPgo8aDI+TWFpbnRhaW5pbmcgSW50ZXJvcGVyYWJpbGl0eSBVc2luZyB0aGUgV1MtSSBDb21wbGlhbmNlIFRvb2xzPC9oMj4KPGgyPiZuYnNwOzwvaDI+CjxoMj5XaGF0IGlzIFdTLUk/PGJyPgo8L2gyPgo8cD5UaGUgV2ViIFNlcnZpY2VzIEludGVyb3BlcmFiaWxpdHkgT3JnYW5pemF0aW9uIGlzIGFuIG9wZW4gaW5kdXN0cnkgZWZmb3J0IGNoYXJ0ZXJlZCAKICB0byBwcm9tb3RlIFdlYiBTZXJ2aWNlcyBpbnRlcm9wZXJhYmlsaXR5IGFjcm9zcyBwbGF0Zm9ybXMsIGFwcGxpY2F0aW9ucyBhbmQgCiAgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiBJdCBhY3RzIGFuIGEgc3RhbmRhcmRzIGludGVncmF0b3IgdG8gaGVscCBXZWIgc2VydmljZXMgCiAgYWR2YW5jZSBpbiBhIHN0cnVjdHVyZWQsIGNvaGVyZW50IG1hbm5lci4gVGhlIFdTLUkgY29uc2lzdHMgb2YgYXBwcm94aW1hdGVseSAKICAxMzAgbWVtYmVyIG9yZ2FuaXphdGlvbnMgb2Ygd2hpY2ggNzAlIGFyZSB2ZW5kb3JzIGFuZCAzMCUgYXJlIGVuZC11c2VyIG9yZ2FuaXphdGlvbnMuIAogIEl0IGhhcyBhIHN0cm9uZyBub24tVS5TLiBtZW1iZXJzaGlwLCBpbmNsdWRpbmcgdGhlIHZlcnkgaW5mbHVlbnRpYWwgSmFwYW4gU0lHLjxicj4KPC9wPgo8aDI+V1MtSSBHb2FsczwvaDI+CjxwPjEuIEFjaGlldmUgV2ViIHNlcnZpY2VzIGludGVyb3BlcmFiaWxpdHkgYnkgaW50ZWdyYXRpbmcgc3BlY2lmaWNhdGlvbnMsIHByb21vdGluZyAKICBjb25zaXN0ZW50IGltcGxlbWVudGF0aW9ucyBhbmQgcHJvdmlkaW5nIGEgdmlzaWJsZSByZXByZXNlbnRhdGlvbiBvZiBjb25mb3JtYW5jZS48YnI+CiAgMi4gQWNjZWxlcmF0ZSBXZWIgc2VydmljZXMgZGVwbG95bWVudCBieSBvZmZlcmluZyBpbXBsZW1lbnRhdGlvbiBndWlkYW5jZSBhbmQgCiAgYmVzdCBwcmFjdGljZXMsIGRlbGl2ZXJpbmcgdG9vbHMgYW5kIHNhbXBsZSBhcHBsaWNhdGlvbnMgYW5kIHByb3ZpZGluZyBhIGltcGxlbWVudGVyknMgCiAgZm9ydW0gd2hlcmUgZGV2ZWxvcGVycyBjYW4gY29sbGFib3JhdGUuPGJyPgogIDMuIEVuY291cmFnZSBXZWIgc2VydmljZXMgYWRvcHRpb24gYnkgYnVpbGRpbmcgaW5kdXN0cnkgY29uc2Vuc3VzIHRvIHJlZHVjZSAKICBlYXJseSBhZG9wdGVyIHJpc2tzLCBwcm92aWRpbmcgYSBmb3J1bSBmb3IgZW5kIHVzZXJzIHRvIGNvbW11bmljYXRlIHJlcXVpcmVtZW50cyAKICBhbmQgcmFpc2luZyBhd2FyZW5lc3Mgb2YgY3VzdG9tZXIgYnVzaW5lc3MgcmVxdWlyZW1lbnRzPC9wPgo8cD4mbmJzcDs8L3A+CjxwPlRoZSBXUy1JIENvbXBsaWFuY2UgdG9vbHMgaW4gRWNsaXBzZSBXVFAgaGVscHMgdGhlIGRldmVsb3BlciB0byB2ZXJpZnkgaW50ZXJvcGVyYWJpbGl0eSAKICBvZiB0aGUgd2ViIHNlcnZpY2VzIGRldmVsb3BlZC4gVGhlc2UgdG9vbHMgYXJlIGRldmVsb3BlZCBpbiB0aGUgRWNsaXBzZSBXZWIgCiAgU2VydmljZSBWYWxpZGF0aW9uIFRvb2xzIChXU1ZUKSBQcm9qZWN0IGFuZCBzdXBwb3J0czs8L3A+CjxwPiCVIFdTLUkgQmFzaWMgUHJvZmlsZSAxLjAvMS4xPGJyPgogIJUgU2ltcGxlIFNPQVAgQmluZGluZyBQcm9maWxlIDEuMCBhbmQgPGJyPgogIJUgQXR0YWNobWVudHMgUHJvZmlsZSAxLjA8L3A+CjxwPlRoZSBFY2xpcHNlIFdUUCBwcm92aWRlcyB1cyB3aXRoOzwvcD4KPHA+IDEuIEEgV1NETCAxLjEgVmFsaWRhdG9yIGFuZDxicj4KICAyLiBBIFNPQVAgMS4xIE1lc3NhZ2UgTW9uaXRvci9BbmFseXplcjwvcD4KPGgzPiZuYnNwOzwvaDM+CjxoMz5XUy1JIFRlc3QgVG9vbHMgRGVtb25zdHJhdGlvbjwvaDM+CjxoND48YnI+CiAgMS4gU3BlY2lmeSBsZXZlbCBvZiBXUy1JIGNvbXBsaWFuY2UgaW4gUHJlZmVyZW5jZXMgcGFnZTwvaDQ+CjxwPjxpbWcgc3JjPSJpbWFnZXMvdHJ5aXQuZ2lmIiB3aWR0aD0iNjEiIGhlaWdodD0iMTMiPiBHbyB0byB0aGUgTWVudSBXaW5kb3cgLSZndDsgCiAgUHJlZmVyZW5jZXMuIEV4cGFuZCBXZWIgU2VydmljZXMuIFNlbGVjdCBQcm9maWxlIENvbXBsaWFuY2UgYW5kIFZhbGlkYXRpb24gPC9wPgo8cD5XZSBjYW4gc2V0IHRoZSBkZXNpcmVkIGxldmVscyBvZiBXUy1JIGNvbXBsaWFuY2UgdmFsaWRhdGlvbnMgaGVyZS48L3A+CjxwPjxpbWcgc3JjPSJpbWFnZXMvd3NpLXRlc3QtdG9vbHMtMS5KUEciIHdpZHRoPSI2OTAiIGhlaWdodD0iNTMyIj48L3A+CjxwPkZpZ3VyZSAyNCAtIFNldHRpbmcgdGhlIFdTLUkgY29tcGxpYW5jZSBsZXZlbHM8L3A+CjxoND48L2g0Pgo8cD48L3A+CjxoND4yLiBTYXZlIFNPQVAgbWVzc2FnZXMgZnJvbSBUQ1AvSVAgdG8gYSBXUy1JIGxvZyBmaWxlPC9oND4KPHA+IDxpbWcgc3JjPSJpbWFnZXMvdHJ5aXQuZ2lmIiB3aWR0aD0iNjEiIGhlaWdodD0iMTMiPiBDbGljayB0aGUgYXBwcm9wcmlhdGUgCiAgYnV0dG9uIGZyb20gdGhlIFRDUC9JUCBtb25pdG9yIEdVSSBhcyBpbGx1c3RyYXRlZCBiZWxvdy48YnI+CjwvcD4KPHA+IDxpbWcgc3JjPSJpbWFnZXMvd3NpLXRlc3QtdG9vbHMtMi5KUEciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9Ijc2OCI+IDwvcD4KPHA+RmlndXJlIDI1IC0gTGF1bmNoaW5nIHRoZSBMb2dnaW5nIFdpemFyZDwvcD4KPHA+Jm5ic3A7PC9wPgo8aDQ+My4gU3BlY2lmeSBXU0RMIGZpbGUgdGhhdCBkZXNjcmliZXMgbWVzc2FnZXM8L2g0Pgo8aDQ+PGltZyBzcmM9ImltYWdlcy93c2ktdGVzdC10b29scy0zLkpQRyIgd2lkdGg9IjUwMyIgaGVpZ2h0PSI1NzAiPjwvaDQ+CjxwPkZpZ3VyZSAyNiAtIFNwZWNpZnlpbmcgYSBsb2dnaW5nIGZpbGU8L3A+CjxoND4mbmJzcDsgPC9oND4KPGg0PjQuIFNlbGVjdCB0aGUgV1NETCBmaWxlIGZvciB0aGUgd2ViIHNlcnZpY2UgKE9wdGlvbmFsKTwvaDQ+CjxwPjxpbWcgc3JjPSJpbWFnZXMvd3NpLXRlc3QtdG9vbHMtNC5KUEciIHdpZHRoPSI2NjciIGhlaWdodD0iNTUzIj48L3A+CjxwPkZpZ3VyZSAyNyAtIFNlbGVjdGluZyB0aGUgV1NETCBmb3IgdGhlIFdlYiBTZXJ2aWNlPC9wPgo8cD4mbmJzcDs8L3A+CjxoND48L2g0Pgo8aDQ+NS4gVmlldyBXUy1JIGVycm9ycyBhbmQgd2FybmluZ3MgaW4gUHJvYmxlbXMgdmlldzwvaDQ+CjxwPiBBZnRlciBzZXR0aW5nIGV2ZXJ5dGhpbmcgdXAgYXMgaWxsdXN0cmF0ZWQsIHdlIGNhbiB2YWxpZGF0ZSB0aGUgbWVzc2FnZSBsb2cgCiAgZmlsZSBhcyBzaG93biBpbiB0aGUgZm9sbG93aW5nIHNjcmVlbiBzaG90LiBBbnkgaXNzdWVzIHdpbGwgYmUgbGlzdGVkIGluIHRoZSAKICBQcm9ibGVtcyB2aWV3IG9mIHRoZSB3b3JrYmVuY2guPC9wPgo8aDE+PGltZyBzcmM9ImltYWdlcy93c2ktdGVzdC10b29scy01LkpQRyIgd2lkdGg9IjEwMjQiIGhlaWdodD0iNzY4Ij4gPC9oMT4KPHA+RmlndXJlIDI4IC0gVmFsaWRhdGluZyB0aGUgV1MtSSBsb2cgZmlsZTwvcD4KPHA+PC9wPgo8aDE+PC9oMT4KPHA+PC9wPgo8aDE+Q29uY2x1c2lvbiA8L2gxPgo8cD4gVGhpcyB0dXRvcmlhbCBpbGx1c3RyYXRlcyBhIGNvbW1vbiBsaWZlIGN5Y2xlIG9mIGEgV2ViIFNlcnZpY2VzIGFwcGxpY2F0aW9uIAogIGluIG9yZGVyIHRvIGhpZ2hsaWdodCB0aGUgc3VwcG9ydCBwcm92aWRlZCBpbiBpdHMgZGV2ZWxvcG1lbnQgZnJvbSB0aGUgRWNsaXBzZSAKICBXZWIgVG9vbHMgcGxhdGZvcm0uIFRoaXMgdHV0b3JpYWwgaXMgaW4gbm8gd2F5IGNvbXBsZXRlLCBzaW5jZSBpdCB3b3VsZCByZXF1aXJlIAogIGEgYm9vayB0byBoaWdobGlnaHQgYWxsIHRoZSBmZWF0dXJlcyBvZmZlcmVkIGJ5IHRoZSBFY2xpcHNlIFdUUCBmb3IgV2ViIFNlcnZpY2VzIAogIGFuZCBXZWIgQXBwbGljYXRpb24gZGV2ZWxvcGVycy4gRnVydGhlciBpbmZvcm1hdGlvbiBvbiB0aGUgZmVhdHVyZXMgb2YgdGhlIEVjbGlwc2UgCiAgV1RQIGNhbiBiZSBmb3VuZCBpbiB0aGUgRWNsaXBzZSBXVFAgZm9ydW1zIGFuZCBtYWlsaW5nIGxpc3RzLjwvcD4KPHA+Jm5ic3A7PC9wPgo8cD4mbmJzcDs8L3A+CjxoMT5SZWZlcmVuY2VzIGFuZCBSZXNvdXJjZXM8L2gxPgo8b2w+CiAgPGxpPkVjbGlwc2UgV1RQIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvd2VidG9vbHMvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL3dlYnRvb2xzLzwvYT48L2xpPgogIDxsaT5XZWIgU2VydmljZXMgSW50ZXJvcGVyYWJpbGl0eSBPcmdhbml6YXRpb24gPGEgaHJlZj0iaHR0cDovL3d3dy53cy1pLm9yZy8iPmh0dHA6Ly93d3cud3MtaS5vcmcvPC9hPjwvbGk+CiAgPGxpPkFwYWNoZSBBWElTIDxhIGhyZWY9Imh0dHA6Ly93cy5hcGFjaGUub3JnL2F4aXMvIj5odHRwOi8vd3MuYXBhY2hlLm9yZy9heGlzLzwvYT48L2xpPgogIDxsaT5BcGFjaGUgVG9tY2F0IDxhIGhyZWY9Imh0dHA6Ly90b21jYXQuYXBhY2hlLm9yZy8iPmh0dHA6Ly90b21jYXQuYXBhY2hlLm9yZy88L2E+PC9saT4KICA8bGk+QXBhY2hlIEdlcm9uaW1vIDxhIGhyZWY9Imh0dHA6Ly9nZXJvbmltby5hcGFjaGUub3JnLyI+aHR0cDovL2dlcm9uaW1vLmFwYWNoZS5vcmcvPC9hPjwvbGk+CiAgPGxpPkpCb3NzIDxhIGhyZWY9Imh0dHA6Ly93d3cuamJvc3Mub3JnLyI+aHR0cDovL3d3dy5qYm9zcy5vcmcvPC9hPjwvbGk+CiAgPGxpPklCTSBXZWJTcGhlcmUgPGEgaHJlZj0iaHR0cDovL3d3dy5pYm0uY29tL3dlYnNwaGVyZSI+aHR0cDovL3d3dy5pYm0uY29tL3dlYnNwaGVyZTwvYT48L2xpPgogIDxsaT5CRUEgV2ViTG9naWMgPGEgaHJlZj0iaHR0cDovL3d3dy5iZWEuY29tL2ZyYW1ld29yay5qc3A/Q05UPWluZGV4Lmh0bSZGUD0vY29udGVudC9wcm9kdWN0cy93ZWJsb2dpYyI+aHR0cDovL3d3dy5iZWEuY29tL2ZyYW1ld29yay5qc3A/Q05UPWluZGV4Lmh0bSZGUD0vY29udGVudC9wcm9kdWN0cy93ZWJsb2dpYzwvYT48L2xpPgogIDxsaT5XaWtpcGVkaWEgPGEgaHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9XU0RMIj5odHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dTREw8L2E+LCAKICAgIDxhIGhyZWY9Imh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVURESSI+aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VRERJPC9hPjwvbGk+Cjwvb2w+CjxwPiZuYnNwOzwvcD4KPHA+Jm5ic3A7PC9wPgo8L2JvZHk+CjwvaHRtbD4K