ZGlmZiAtLWdpdCBhL1JFQURNRS5tZCBiL1JFQURNRS5tZAppbmRleCBhMDAxMWY2Li5lMjgyY2VmIDEwMDY0NAotLS0gYS9SRUFETUUubWQKKysrIGIvUkVBRE1FLm1kCkBAIC0zLDggKzMsOSBAQAogVGhpcyBwcm9qZWN0IGNvbnNpc3RzIG9mIHRvb2xzIGZvciB0ZXN0aW5nIE5ETiBhcHBsaWNhdGlvbnMgd2l0aG91dCBuZXR3b3JrIElPLiBJdCByZWxpZXMgb24gdGhlIFtORE4gUHJvdG9jb2xdKGh0dHBzOi8vbmFtZWQtZGF0YS5uZXQpIGFuZCBpdHMgYXNzb2NpYXRlZCBbY2xpZW50IGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9uYW1lZC1kYXRhL2puZG4pLgogCiAjIyBJbnN0YWxsCisKIFdpdGggTWF2ZW4sIGFkZCB0aGUgZm9sbG93aW5nIHRvIHlvdXIgUE9NOgotYGBgCitgYGB4bWwKIDxkZXBlbmRlbmN5PgogICA8Z3JvdXBJZD5jb20uaW50ZWwuam5kbi5tb2NrPC9ncm91cElkPgogICA8YXJ0aWZhY3RJZD5qbmRuLW1vY2s8L2FydGlmYWN0SWQ+CkBAIC0xMywxOCArMTQsMzAgQEAKIGBgYAogCiAjIyBVc2UKLWBNb2NrRmFjZWAgYW5kIGBNb2NrVHJhbnNwb3J0YCBhcmUgdGVzdCB0b29scyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gYXBwbGljYXRpb25zIGluc3RlYWQgb2YgdGhlIHR5cGljYWwgYEZhY2VgIGFuZCBgVHJhbnNwb3J0YC4gRm9yIGV4YW1wbGU6Ci1gYGAKLU1vY2tUcmFuc3BvcnQgdHJhbnNwb3J0ID0gbmV3IE1vY2tUcmFuc3BvcnQoKTsKLU1vY2tGYWNlIGZhY2UgPSBuZXcgTW9ja0ZhY2UodHJhbnNwb3J0LCBudWxsKTsKIAotYXBwbGljYXRpb24uZG9Tb21ldGhpbmdPbihmYWNlKTsKLWFzc2VydEVxdWFscygwLCB0cmFuc3BvcnQuZ2V0U2VudERhdGFQYWNrZXRzKCkuc2l6ZSgpKTsKLWFzc2VydEVxdWFscygxLCB0cmFuc3BvcnQuZ2V0U2VudEludGVyZXN0UGFja2V0cygpLnNpemUoKSk7CitgTW9ja0ZhY2VgIGlzIGEgdGVzdCB0b29sIHRoYXQgY2FuIGJlIHBhc3NlZCB0byBhcHBsaWNhdGlvbnMgaW5zdGVhZCBvZiBhIG5ldHdvcmsgSU8gYEZhY2VgOyBtYW5hZ2VtZW50IG9mIHRoZSBgRmFjZS5wcm9jZXNzRXZlbnRzKClgIGlzIHN0aWxsIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHksIHRob3VnaCB0aGlzIG1heSBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZS4gRm9yIGV4YW1wbGU6CitgYGBqYXZhCitGYWNlIGZhY2UgPSBuZXcgTW9ja0ZhY2UoKTsKK2ZhY2UuZXhwcmVzc0ludGVyZXN0KGludGVyZXN0LCBvbkRhdGEsIG9uVGltZW91dCk7CitmYWNlLnByb2Nlc3NFdmVudHMoKTsKK2BgYAorCitXaGVuIHVzaW5nIHRoZSBgTW9ja0ZhY2VgLCByZXRyaWV2ZSBzdGF0aXN0aWNzIGFib3V0IHNlbnQvcmVjZWl2ZWQgSW50ZXJlc3RzIGFuZCBEYXRhIHBhY2tldHMgbGlrZToKK2BgYGphdmEKK01vY2tGYWNlIGZhY2UgPSBuZXcgTW9ja0ZhY2UoKTsKK2Fzc2VydEVxdWFscygwLCBmYWNlLnNlbnREYXRhcy5zaXplKCkpOworYXNzZXJ0RXF1YWxzKDAsIGZhY2Uuc2VudEludGVyZXN0cy5zaXplKCkpOworCitmYWNlLmV4cHJlc3NJbnRlcmVzdChpbnRlcmVzdCwgb25EYXRhLCBvblRpbWVvdXQpOworLi4uCitmYWNlLnByb2Nlc3NFdmVudHMoKTsKKy4uLgorYXNzZXJ0RXF1YWxzKDEsIGZhY2Uuc2VudEludGVyZXN0cy5zaXplKCkpOwogYGBgCiAKICMjIExpY2Vuc2UKLUNvcHlyaWdodCCpIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLgorCitDb3B5cmlnaHQgMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDMsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogCg==