LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIENvbW1vbiBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sCqAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgIElCTSBDb3Jwb3JhdGlvbiAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KcGFja2FnZSBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUubW9kZWw7CgppbXBvcnQgamF2YS5uZXQuVVJMOwoKaW1wb3J0IG9yZy5lY2xpcHNlLndzdC5zZXJ2ZXIuY29yZS5JTW9kdWxlOwovKioKICogCiAqLwpwdWJsaWMgaW50ZXJmYWNlIElVUkxQcm92aWRlciB7CgkvKioKCSAqIFJldHVybiB0aGUgYmFzZSBVUkwgb2YgdGhpcyBtb2R1bGUgb24gdGhlIHNlcnZlci4gVGhpcyBtZXRob2QgbWF5IHJldHVybgoJICogbnVsbCBpZiB0aGlzIHNlcnZlciBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgY29uZmlndXJhdGlvbiBvciBkb2VzIG5vdCBjb250YWluCgkgKiB0aGlzIG1vZHVsZS4gT3RoZXJ3aXNlLCBpdCBzaG91bGQgcmV0dXJuIHRoZSBiYXNlIFVSTCAoZS5nLiAKCSAqICJodHRwOi8vbG9jYWxob3N0OjgwODAvbXlQcm9qZWN0IikgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBzZXJ2ZXIgaXMKCSAqIHJ1bm5pbmcgb3Igbm90LiBUaGUgcmV0dXJuZWQgVVJMIHNob3VsZCBub3QgZW5kIGluIGEgdHJhaWxpbmcgc2xhc2guCgkgKiAKCSAqIDxwPklmIHRoZSBtb2R1bGUgaXMgbnVsbCwgdGhlIHJldHVybmVkIFVSTCB3aWxsIGp1c3QgYmUgdG8gdGhlIHJvb3Qgb2YKCSAqIHRoZSBzZXJ2ZXIgKGUuZy4gImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIpPC9wPgoJICogCgkgKiA8cD5JZiB0aGUgbW9kdWxlIGlzIG5vdCBhbHJlYWR5IGFkZGVkIHRvIHRoZSBzZXJ2ZXIsIHRoZSBtZXRob2Qgd2lsbCByZXR1cm4KCSAqIGFzIGNsb3NlIGFuIGFwcHJveGltYXRpb24gYXMgcG9zc2libGUuIChmb3IgaW5zdGFuY2UsIGZvciBhIHdlYiBwcm9qZWN0IGl0CgkgKiBtYXkgdXNlIHRoZSBwcm9qZWN0J3MgY29udGV4dCByb290LCB3aGljaCBtYXkgbm90IGJlIHRoZSBzYW1lIHdoZW4gZGVwbG95ZWQKCSAqIHRvIGEgc2VydmVyKTwvcD4KCSAqCgkgKiBAcGFyYW0gbW9kdWxlIGNvbS5pYm0uZXRvb2xzLnNlcnZlci5jb3JlLm1vZGVsLklNb2R1bGUKCSAqIEByZXR1cm4gamF2YS5uZXQuVVJMCgkgKi8KCXB1YmxpYyBVUkwgZ2V0TW9kdWxlUm9vdFVSTChJTW9kdWxlIG1vZHVsZSk7Cn0=