Ly89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gysrKysrKysrKysrKysrKysrKyspUaGUgTExWTSBDb21waWxlciBJbmZyYXN0cnVjdHVyZQovLwovLyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFVuaXZlcnNpdHkgb2YgSWxsaW5vaXMgT3BlbiBTb3VyY2UKLy8gTGljZW5zZS4gU2VlIExJQ0VOU0UuVFhUIGZvciBkZXRhaWxzLgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKLy8gPGFycmF5PgoKLy8gdm9pZCBzd2FwKGFycmF5JiBhKTsKCiNpbmNsdWRlIDxhcnJheT4KI2luY2x1ZGUgPGNhc3NlcnQ+CgppbnQgbWFpbigpCnsKICAgIHsKICAgICAgICB0eXBlZGVmIGRvdWJsZSBUOwogICAgICAgIHR5cGVkZWYgc3RkOjphcnJheTxULCAzPiBDOwogICAgICAgIEMgYzEgPSB7MSwgMiwgMy41fTsKICAgICAgICBDIGMyID0gezQsIDUsIDYuNX07CiAgICAgICAgYzEuc3dhcChjMik7CiAgICAgICAgYXNzZXJ0KGMxLnNpemUoKSA9PSAzKTsKICAgICAgICBhc3NlcnQoYzFbMF0gPT0gNCk7CiAgICAgICAgYXNzZXJ0KGMxWzFdID09IDUpOwogICAgICAgIGFzc2VydChjMVsyXSA9PSA2LjUpOwogICAgICAgIGFzc2VydChjMi5zaXplKCkgPT0gMyk7CiAgICAgICAgYXNzZXJ0KGMyWzBdID09IDEpOwogICAgICAgIGFzc2VydChjMlsxXSA9PSAyKTsKICAgICAgICBhc3NlcnQoYzJbMl0gPT0gMy41KTsKICAgIH0KICAgIHsKICAgICAgICB0eXBlZGVmIGRvdWJsZSBUOwogICAgICAgIHR5cGVkZWYgc3RkOjphcnJheTxULCAwPiBDOwogICAgICAgIEMgYzEgPSB7fTsKICAgICAgICBDIGMyID0ge307CiAgICAgICAgYzEuc3dhcChjMik7CiAgICAgICAgYXNzZXJ0KGMxLnNpemUoKSA9PSAwKTsKICAgICAgICBhc3NlcnQoYzIuc2l6ZSgpID09IDApOwogICAgfQp9Cg==