VGhpcyBpcyBhIFB5dGhvbiBpbnRlcmZhY2UgdG8gU3VuIFJQQywgZGVzaWduZWQgYW5kIGltcGxlbWVudGVkIG1vc3RseQpieSByZWFkaW5nIHRoZSBJbnRlcm5ldCBSRkNzIGFib3V0IHRoZSBzdWJqZWN0LgoKKioqIE5PVEU6IHhkci5weSBoYXMgZXZvbHZlZCBpbnRvIHRoZSBzdGFuZGFyZCBtb2R1bGUgeGRybGliLnB5ICoqKgoKVGhlcmUgYXJlIHR3byBsaWJyYXJ5IG1vZHVsZXMsIHhkci5weSBhbmQgcnBjLnB5LCBhbmQgc2V2ZXJhbCBleGFtcGxlCmNsaWVudHM6IG1vdW50Y2xpZW50LnB5LCBuZnNjbGllbnQucHksIGFuZCBybnVzZXJzY2xpZW50LnB5LAppbXBsZW1lbnRpbmcgdGhlIE5GUyBNb3VudCBwcm90b2NvbCwgKHBhcnQgb2YpIHRoZSBORlMgcHJvdG9jb2wsIGFuZAp0aGUgInJudXNlcnMiIHByb3RvY29sICh1c2VkIGJ5IHJ1c2VycygxKSksIHJlc3BlY3RpdmVseS4gIFRoZSBsYXR0ZXIKZGVtb25zdHJhdGVzIHRoZSB1c2Ugb2YgYnJvYWRjYXN0IHZpYSB0aGUgUG9ydCBtYXBwZXIncyBDQUxMSVQKcHJvY2VkdXJlLgoKVGhlcmUgaXMgYWxzbyBhIHdheSB0byBjcmVhdGUgc2VydmVycyBpbiBQeXRob24uCgpUbyB0ZXN0IHRoZSBuZnMgY2xpZW50LCBydW4gaXQgZnJvbSB0aGUgc2hlbGwgd2l0aCBzb21ldGhpbmcgbGlrZSB0aGlzOgoKICBweXRob24gLWMgJ2ltcG9ydCBuZnNjbGllbnQ7IG5mc2NsaWVudC50ZXN0KCknIFtob3N0bmFtZSBbZmlsZXN5c3RlbW5hbWVdXQoKV2hlbiBjYWxsZWQgd2l0aG91dCBhIGZpbGVzeXN0ZW1uYW1lLCBpdCBsaXN0cyB0aGUgZmlsZXN5c3RlbXMgYXQgdGhlCmhvc3Q7IGRlZmF1bHQgaG9zdCBpcyB0aGUgbG9jYWwgbWFjaGluZS4KCk90aGVyIGNsaWVudHMgYXJlIHRlc3RlZCBzaW1pbGFybHkuCgpGb3IgaG9zdG5hbWUsIHVzZSBlLmcuIHd1YXJjaGl2ZS53dXN0bC5lZHUgb3IgZ2F0ZWtlZXBlci5kZWMuY29tICh0d28KaG9zdHMgdGhhdCBhcmUga25vd24gdG8gZXhwb3J0IE5GUyBmaWxlc3lzdGVtcyB3aXRoIGxpdHRsZSByZXN0cmljdGlvbnMpLgoKVGhlcmUgYXJlIG5vdyB0d28gZGlmZmVyZW50IFJQQyBjb21waWxlcnM6CgoxKSBXaW0gTGV3aXMgcnBjZ2VuLnB5IGZvdW5kIG9uIGh0dHA6Ly93d3cub21uaWdyb3VwLmNvbS9+d2ltbC9zb2Z0L3N0YWxlLWluZGV4Lmh0bWwjcHl0aG9uLiAKCjIpIFBldGVyIMVzdHJhbmRzIHJwY2dlbi5weSwgd2hpY2ggaXMgcGFydCBvZiAicHluZnMiIChodHRwOi8vd3d3LmNlbmRpby5zZS9+cGV0ZXIvcHluZnMvKS4gCg==