PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xPQ0FMX0lURVJBVEU8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCVRoZSA8Yj5CT09TVF9QUF9MT0NBTF9JVEVSQVRFPC9iPiBtYWNybyBpbml0aWF0ZXMgYSA8aT5sb2NhbC1pdGVyYXRpb248L2k+LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQkjaW5jbHVkZSA8Yj5CT09TVF9QUF9MT0NBTF9JVEVSQVRFPC9iPigpCgkJPC9kaXY+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJVGhpcyBtYWNybyBjYXVzZXMgdGhlIHVzZXItZGVmaW5lZCBtYWNybyA8Yj5CT09TVF9QUF9MT0NBTF9NQUNSTzwvYj4gdG8gYmUgZXhwYW5kZWQgdmVydGljYWxseSB3aXRoIHZhbHVlcyBpbiB0aGUgcmFuZ2Ugc3BlY2lmaWVkIGJ5IDxiPkJPT1NUX1BQX0xPQ0FMX0xJTUlUUzwvYj4uCgkJPC9kaXY+Cgk8aDQ+U2VlIEFsc288L2g0PgoJCTx1bD4KCQkJPGxpPjxhIGhyZWY9ImxvY2FsX2xpbWl0cy5odG1sIj5CT09TVF9QUF9MT0NBTF9MSU1JVFM8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9ImxvY2FsX21hY3JvLmh0bWwiPkJPT1NUX1BQX0xPQ0FMX01BQ1JPPC9hPjwvbGk+CgkJPC91bD4KCTxoND5SZXF1aXJlbWVudHM8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvaXRlcmF0aW9uL2xvY2FsLmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2xvY2FsLmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2l0ZXJhdGlvbi9sb2NhbC5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2xvY2FsLmhwcDwvYT4mZ3Q7Cgp0ZW1wbGF0ZSZsdDtpbnQmZ3Q7IHN0cnVjdCBzYW1wbGU7CgojZGVmaW5lIDxhIGhyZWY9ImxvY2FsX21hY3JvLmh0bWwiPkJPT1NUX1BQX0xPQ0FMX01BQ1JPPC9hPihuKSBcCiAgIHRlbXBsYXRlJmx0OyZndDsgc3RydWN0IHNhbXBsZSZsdDtuJmd0OyB7IFwKICAgICAgZW51bSB7IHZhbHVlID0gbiB9OyBcCiAgIH07IFwKICAgLyoqLwoKI2RlZmluZSA8YSBocmVmPSJsb2NhbF9saW1pdHMuaHRtbCI+Qk9PU1RfUFBfTE9DQUxfTElNSVRTPC9hPiAoMSwgNSkKCiNpbmNsdWRlIDxhIGhyZWY9ImxvY2FsX2l0ZXJhdGUuaHRtbCI+Qk9PU1RfUFBfTE9DQUxfSVRFUkFURTwvYT4oKQovKiBleHBhbmRzIHRvLi4uCnRlbXBsYXRlJmx0OyZndDsgc3RydWN0IHNhbXBsZSZsdDsxJmd0OyB7IGVudW0geyB2YWx1ZSA9IDEgfTsgfTsKdGVtcGxhdGUmbHQ7Jmd0OyBzdHJ1Y3Qgc2FtcGxlJmx0OzImZ3Q7IHsgZW51bSB7IHZhbHVlID0gMiB9OyB9Owp0ZW1wbGF0ZSZsdDsmZ3Q7IHN0cnVjdCBzYW1wbGUmbHQ7MyZndDsgeyBlbnVtIHsgdmFsdWUgPSAzIH07IH07CnRlbXBsYXRlJmx0OyZndDsgc3RydWN0IHNhbXBsZSZsdDs0Jmd0OyB7IGVudW0geyB2YWx1ZSA9IDQgfTsgfTsKdGVtcGxhdGUmbHQ7Jmd0OyBzdHJ1Y3Qgc2FtcGxlJmx0OzUmZ3Q7IHsgZW51bSB7IHZhbHVlID0gNSB9OyB9OwoqLwo8L3ByZT48L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==