LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDA3IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiCgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQ29tbW9uIFB1YmxpYyBMaWNlbnNlIHYxLjAKICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwKIKAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGFja2FnZSBvcmcuZWNsaXBzZS53c3Qud3NkbC50ZXN0cy5wZXJmb3JtYW5jZS5zY2FsYWJpbGl0eTsKCmltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdDsKaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0U3VpdGU7CgpwdWJsaWMgY2xhc3MgV1NETFNjYWxhYmlsaXR5VGVzdHMKewoKICBwdWJsaWMgc3RhdGljIFRlc3Qgc3VpdGUoKQogIHsKICAgIFRlc3RTdWl0ZSBzdWl0ZSA9IG5ldyBUZXN0U3VpdGUoIlRlc3QgZm9yIG9yZy5lY2xpcHNlLndzdC53c2RsLnRlc3RzLnBlcmZvcm1hbmNlLnNjYWxhYmlsaXR5Iik7CiAgICAvLyRKVW5pdC1CRUdJTiQKICAgIHN1aXRlLmFkZFRlc3RTdWl0ZShSZXBlYXRWYWxpZGF0ZXg3NVRlc3RDYXNlLmNsYXNzKTsKICAgIHN1aXRlLmFkZFRlc3RTdWl0ZShSZXBlYXRPcGVuRWRpdG9yeDI1VGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFJlcGVhdE9wZW5FZGl0b3J4MVRlc3RDYXNlLmNsYXNzKTsKICAgIHN1aXRlLmFkZFRlc3RTdWl0ZShSZXBlYXRPcGVuRWRpdG9yeDEwMFRlc3RDYXNlLmNsYXNzKTsKICAgIHN1aXRlLmFkZFRlc3RTdWl0ZShSZXBlYXRPcGVuRWRpdG9yeDUwVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFJlcGVhdE9wZW5FZGl0b3J4MTBUZXN0Q2FzZS5jbGFzcyk7CiAgICBzdWl0ZS5hZGRUZXN0U3VpdGUoT3BlbjIwMEtCRmlsZVRlc3RDYXNlLmNsYXNzKTsKLy8gICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMTAwMFdTRExzQ3Jvc3NEZXBlbmRzVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMTBXU0RMc0Nyb3NzRGVwZW5kc1Rlc3RDYXNlLmNsYXNzKTsKICAgIHN1aXRlLmFkZFRlc3RTdWl0ZShWYWxpZGF0ZTEwMFdTRExzQ3Jvc3NEZXBlbmRzVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMjAwS0JGaWxlVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFJlcGVhdFZhbGlkYXRleDEwMFRlc3RDYXNlLmNsYXNzKTsKICAgIHN1aXRlLmFkZFRlc3RTdWl0ZShSZXBlYXRWYWxpZGF0ZXgxVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFJlcGVhdFZhbGlkYXRleDI1VGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFJlcGVhdFZhbGlkYXRleDUwVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFJlcGVhdFZhbGlkYXRleDEwVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMTAwV1NETHNYU0REZXBlbmRzVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMTBXU0RMc1hTRERlcGVuZHNUZXN0Q2FzZS5jbGFzcyk7CiAgICBzdWl0ZS5hZGRUZXN0U3VpdGUoVmFsaWRhdGUxTUJGaWxlVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFJlcGVhdE9wZW5FZGl0b3J4NzVUZXN0Q2FzZS5jbGFzcyk7CiAgICBzdWl0ZS5hZGRUZXN0U3VpdGUoT3BlbjFNQkZpbGVUZXN0Q2FzZS5jbGFzcyk7CiAgICBzdWl0ZS5hZGRUZXN0U3VpdGUoT3BlbjEwS0JGaWxlVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKE9wZW4xS0JGaWxlVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKE9wZW4xMDBLQkZpbGVUZXN0Q2FzZS5jbGFzcyk7CiAgICBzdWl0ZS5hZGRUZXN0U3VpdGUoT3BlbjUwMEtCRmlsZVRlc3RDYXNlLmNsYXNzKTsKICAgIHN1aXRlLmFkZFRlc3RTdWl0ZShWYWxpZGF0ZTEwMFdTRExzTm9EZXBlbmRzVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlNTAwS0JGaWxlVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMTAwS0JGaWxlVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMUtCRmlsZVRlc3RDYXNlLmNsYXNzKTsKLy8gICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMTAwMFdTRExzTm9EZXBlbmRzVGVzdENhc2UuY2xhc3MpOwogICAgc3VpdGUuYWRkVGVzdFN1aXRlKFZhbGlkYXRlMTBXU0RMc05vRGVwZW5kc1Rlc3RDYXNlLmNsYXNzKTsKICAgIHN1aXRlLmFkZFRlc3RTdWl0ZShWYWxpZGF0ZTEwS0JGaWxlVGVzdENhc2UuY2xhc3MpOwovLyAgICBzdWl0ZS5hZGRUZXN0U3VpdGUoVmFsaWRhdGUxMDAwV1NETHNYU0REZXBlbmRzVGVzdENhc2UuY2xhc3MpOwogICAgLy8kSlVuaXQtRU5EJAogICAgcmV0dXJuIHN1aXRlOwogIH0KCn0K