IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIENvcHlyaWdodCAoYykgMjAwMCwgMjAwNSwgMjAwOCBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCiMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAojIAojIENvbnRyaWJ1dG9yczoKIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiMgICAgIEplc3BlciBTdGVlbiBN+GxsZXIgLSBhZGFwdGVkIGZyb20gb3JnLmVjbGlwc2UuY29yZS5pbnRlcm5hbC5jb250ZW50IAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIyMgUmVzb2x2ZXIgcHJvYmxlbXMKWFNMQ29yZVBsdWdpbl9iYWRJbml0aWFsaXphdGlvbkRhdGEgPSBJbnZhbGlkIGluaXRpYWxpemF0aW9uIGRhdGEgZm9yICJ7MH0iLgpYU0xDb3JlUGx1Z2luX3BhcnNlckNvbmZpZ3VyYXRpb24gPSBYU0wgcGFyc2VyIGNvbmZpZ3VyYXRpb24gZXJyb3IgZHVyaW5nIGNvbnRlbnQgZGVzY3JpcHRpb24uClhTTENvcmVQbHVnaW5fY29yZUVycm9yPUVycm9yIGxvZ2dlZCBmcm9tIFhTTCBjb3JlIHBsdWctaW5cOiAK