QWxsIGZpbGVzIHVuZGVyIHRoaXMgY29udHJpYiBkaXJlY3RvcnkgYXJlIFVOU1VQUE9SVEVELiBUaGVyZSB3ZXJlCnByb3ZpZGVkIGJ5IHVzZXJzIG9mIHpsaWIgYW5kIHdlcmUgbm90IHRlc3RlZCBieSB0aGUgYXV0aG9ycyBvZiB6bGliLgpVc2UgYXQgeW91ciBvd24gcmlzay4gUGxlYXNlIGNvbnRhY3QgdGhlIGF1dGhvcnMgb2YgdGhlIGNvbnRyaWJ1dGlvbnMKZm9yIGhlbHAgYWJvdXQgdGhlc2UsIG5vdCB0aGUgemxpYiBhdXRob3JzLiBUaGFua3MuCgoKYXNtMzg2LyAgICAgYnkgR2lsbGVzIFZvbGxhbnQgPGluZm9Ad2luaW1hZ2UuY29tPgoJMzg2IGFzbSBjb2RlIHJlcGxhY2luZyBsb25nZXN0X21hdGNoKCksIGZvciBWaXN1YWwgQysrIDQuMiBhbmQgTUwgNi4xMWMKCmFzbTU4Ni8gYW5kIGFzbTY4Ni8gICAgYnkgQnJpYW4gUmFpdGVyIDxicmVhZGJveEBtdXBwZXRsYWJzLmNvbT4gCiAgICAgICAgYXNtIGNvZGUgZm9yIFBlbnRpdW0gYW5kIFBlbnRpdW0gUHJvCiAgICAgICAgU2VlIGh0dHA6Ly93d3cubXVwcGV0bGFicy5jb20vfmJyZWFkYm94L3NvZnR3YXJlL2Fzc2VtYmx5Lmh0bWwKCmJsYXN0LyAgICAgIGJ5IE1hcmsgQWRsZXIgPG1hZGxlckBhbHVtbmkuY2FsdGVjaC5lZHU+CglEZWNvbXByZXNzb3IgZm9yIG91dHB1dCBvZiBQS1dhcmUgRGF0YSBDb21wcmVzc2lvbiBMaWJyYXJ5CgpkZWxwaGkvICAgICBieSBCb2IgRGVsbGFjYSA8Ym9iZGxAeHRyYS5jby5uej4KCVN1cHBvcnQgZm9yIERlbHBoaQoKZGVscGhpMi8gICAgYnkgRGF2aWRlIE1vcmV0dGkgPGRhdmVAcmltaW5pLmNvbT4KICAgICAgICBBbm90aGVyIHN1cHBvcnQgZm9yIEMrK0J1aWxkZXIgYW5kIERlbHBoaQoKaW5mbGF0ZTg2LyAgYnkgQ2hyaXMgQW5kZXJzb24gPGNocmlzdG9wQGNoYXJtLm5ldD4KCVR1bmVkIHg4NiBnY2MgYXNtIGNvZGUgdG8gcmVwbGFjZSBpbmZsYXRlX2Zhc3QoKQoKbWluaXppcC8gICAgYnkgR2lsbGVzIFZvbGxhbnQgPGluZm9Ad2luaW1hZ2UuY29tPgoJTWluaSB6aXAgYW5kIHVuemlwIGJhc2VkIG9uIHpsaWIKICAgICAgICBTZWUgaHR0cDovL3d3dy53aW5pbWFnZS5jb20vekxpYkRsbC91bnppcC5odG1sCgppb3N0cmVhbS8gICBieSBLZXZpbiBSdWxhbmQgPGtldmluQHJvZGluLnd1c3RsLmVkdT4KICAgICAgICBBIEMrKyBJL08gc3RyZWFtcyBpbnRlcmZhY2UgdG8gdGhlIHpsaWIgZ3oqIGZ1bmN0aW9ucwoKaW9zdHJlYW0yLyAgYnkgVHlnZSBM+HZzZXQgPFR5Z2UuTG92c2V0QGNtci5ubz4KCUFub3RoZXIgQysrIEkvTyBzdHJlYW1zIGludGVyZmFjZQoKdW50Z3ovICAgICAgYnkgIlBlZHJvIEEuIEFyYW5kYSBHdXRpXGlycmV6IiA8cGFhZ0B0aWQuZXM+CglBIHZlcnkgc2ltcGxlIHRhci5neiBmaWxlIGV4dHJhY3RvciB1c2luZyB6bGliCgp2aXN1YWwtYmFzaWMudHh0IGJ5IENhcmxvcyBSaW9zIDxjX3Jpb3NAc29uZGEuY2w+CiAgICAgICAgSG93IHRvIHVzZSBjb21wcmVzcygpLCB1bmNvbXByZXNzKCkgYW5kIHRoZSBneiogZnVuY3Rpb25zIGZyb20gVkIuCg==