LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBDb3B5cmlnaHQgqSAyMDA4LTIwMTAgVGV4YXMgQ2VudGVyIGZvciBBcHBsaWVkIFRlY2hub2xvZ3kKICogVGV4YXMgRW5naW5lZXJpbmcgRXhwZXJpbWVudCBTdGF0aW9uCiAqIFRoZSBUZXhhcyBBJk0gVW5pdmVyc2l0eSBTeXN0ZW0KICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICogCiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCiAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgIEF1c3RpbiBSaWRkbGUgKFRleGFzIENlbnRlciBmb3IgQXBwbGllZCBUZWNobm9sb2d5KSAtIAogKiAgICAgICAgaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqIAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCnBhY2thZ2Ugb3JnLmVjbGlwc2UucmFwLnJ3dC5leGNhbnZhczsKCmltcG9ydCBvcmcuZWNsaXBzZS5yd3QucmVzb3VyY2VzLklSZXNvdXJjZTsKaW1wb3J0IG9yZy5lY2xpcHNlLnJ3dC5yZXNvdXJjZXMuSVJlc291cmNlTWFuYWdlci5SZWdpc3Rlck9wdGlvbnM7CgoKcHVibGljIGNsYXNzIEV4Q2FudmFzUmVzb3VyY2UgaW1wbGVtZW50cyBJUmVzb3VyY2UgewoKICBwcml2YXRlIFN0cmluZyBsb2NhdGlvbjsKICAKICBwdWJsaWMgU3RyaW5nIGdldENoYXJzZXQoKSB7CiAgICByZXR1cm4gIlVURi04IjsKICB9CgogIHB1YmxpYyBDbGFzc0xvYWRlciBnZXRMb2FkZXIoKSB7CiAgICByZXR1cm4gdGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCk7CiAgfQoKICBwdWJsaWMgUmVnaXN0ZXJPcHRpb25zIGdldE9wdGlvbnMoKSB7CiAgICByZXR1cm4gUmVnaXN0ZXJPcHRpb25zLlZFUlNJT05fQU5EX0NPTVBSRVNTOwogIH0KCiAgcHVibGljIFN0cmluZyBnZXRMb2NhdGlvbigpIHsKICAgIGlmKCBsb2NhdGlvbiA9PSBudWxsICkgewogICAgICBsb2NhdGlvbiA9ICJvcmcvZWNsaXBzZS9yYXAvcnd0L2V4Y2FudmFzL2V4Y2FudmFzLmNvbXBpbGVkLmpzIjsKICAgIH0KICAgIHJldHVybiBsb2NhdGlvbjsKICB9CgogIHB1YmxpYyBib29sZWFuIGlzSlNMaWJyYXJ5KCkgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICBwdWJsaWMgYm9vbGVhbiBpc0V4dGVybmFsKCkgewogICAgcmV0dXJuIGZhbHNlOwogIH0KfQo=