LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAqIENvcHlyaWdodCAoYykgMjAxMSBNaWEtU29mdHdhcmUuDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICoNCiAqIENvbnRyaWJ1dG9yczoNCiAqICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzY1ODA4IC0gW1VuaXQgVGVzdCBGYWlsdXJlXVswLjIvNC4yXVswLjIvMy44XSBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cy5uYXR0YWJsZS50ZXN0cy5OYXRUYWJsZUFQSVRlc3RzDQogKiAgICBHculnb2lyZSBEdXDpIChNaWEtU29mdHdhcmUpIC0gQnVnIDM2NzE1MyAtIHN5bmNocm9uaXphdGlvbiB1dGlsaXRpZXMNCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KcGFja2FnZSBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC51aS5pbnRlcm5hbC5leHBvcnRlZC5kaXNwbGF5c3luYzsNCg0KcHVibGljIGFic3RyYWN0IGNsYXNzIEFic3RyYWN0Vm9pZFJ1bm5hYmxlPEUgZXh0ZW5kcyBFeGNlcHRpb24+IGltcGxlbWVudHMNCgkJSVJ1bm5hYmxlPE9iamVjdCwgRT4gew0KCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHZvaWRSdW4oKSB0aHJvd3MgRTsNCg0KCXB1YmxpYyBPYmplY3QgcnVuKCkgdGhyb3dzIEUgew0KCQl0aGlzLnZvaWRSdW4oKTsNCgkJcmV0dXJuIG51bGw7DQoJfQ0KfQ0K