PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfRU5VTV9SPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQlUaGUgPGI+Qk9PU1RfUFBfTElTVF9FTlVNX1I8L2I+IG1hY3JvIGNvbnZlcnRzIGEgPGk+bGlzdDwvaT4gdG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdC4mbmJzcDsKCQlJdCByZWVudGVycyA8Yj5CT09TVF9QUF9GT1I8L2I+IHdpdGggbWF4aW11bSBlZmZpY2llbmN5LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9MSVNUX0VOVU1fUjwvYj4oPGk+cjwvaT4sIDxpPmxpc3Q8L2k+KQoJCTwvZGl2PgoJPGg0PkFyZ3VtZW50czwvaDQ+CgkJPGRsPgoJCQk8ZHQ+cjwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBuZXh0IGF2YWlsYWJsZSA8Yj5CT09TVF9QUF9GT1I8L2I+IHJlcGV0aXRpb24uCgkJCTwvZGQ+CgkJCTxkdD5saXN0PC9kdD4KCQkJPGRkPgoJCQkJVGhlIDxpPmxpc3Q8L2k+IHRvIGJlIGNvbnZlcnRlZC4KCQkJPC9kZD4KCQk8L2RsPgoJPGg0PlJlbWFya3M8L2g0PgoJCTxkaXY+CgkJCUlmIDxpPmxpc3Q8L2k+IGlzLCBmb3IgZXhhbXBsZSwgKDxpPmE8L2k+LCAoPGk+YjwvaT4sICg8aT5jPC9pPiwgPGI+Qk9PU1RfUFBfTklMPC9iPikpKSwKCQkJdGhpcyBtYWNybyB3aWxsIHByb2R1Y2U6CgkJCTxkaXY+CgkJCQk8aT5hPC9pPiwgPGk+YjwvaT4sIDxpPmM8L2k+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPGg0PlNlZSBBbHNvPC9oND4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJsaXN0X2VudW0uaHRtbCI+Qk9PU1RfUFBfTElTVF9FTlVNPC9hPjwvbGk+CgkJPC91bD4KCTxoND5SZXF1aXJlbWVudHM8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9lbnVtLmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9lbnVtLmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2xpc3QvYWR0Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FkdC5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9yZXBldGl0aW9uL2Zvci5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9lbnVtLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2VudW0uaHBwPC9hPiZndDsKCiNkZWZpbmUgTElTVCAoeCwgKHksICh6LCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKQoKI2RlZmluZSBQUkVEKHIsIHN0YXRlKSA8YSBocmVmPSJsaXN0X2lzX2NvbnMuaHRtbCI+Qk9PU1RfUFBfTElTVF9JU19DT05TPC9hPihzdGF0ZSkKI2RlZmluZSBPUChyLCBzdGF0ZSkgPGEgaHJlZj0ibGlzdF9yZXN0Lmh0bWwiPkJPT1NUX1BQX0xJU1RfUkVTVDwvYT4oc3RhdGUpCiNkZWZpbmUgTUFDUk8ociwgc3RhdGUpIFsgPGEgaHJlZj0ibGlzdF9lbnVtX3IuaHRtbCI+Qk9PU1RfUFBfTElTVF9FTlVNX1I8L2E+KHIsIHN0YXRlKSBdCgo8YSBocmVmPSJmb3IuaHRtbCI+Qk9PU1RfUFBfRk9SPC9hPihMSVNULCBQUkVELCBPUCwgTUFDUk8pCiAgIC8vIGV4cGFuZHMgdG8gW3gsIHksIHpdIFt5LCB6XSBbel0KPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=