PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfVE9fVFVQTEU8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCVRoZSA8Yj5CT09TVF9QUF9MSVNUX1RPX1RVUExFPC9iPiBtYWNybyBjb252ZXJ0cyBhIDxpPmxpc3Q8L2k+IHRvIGEgPGk+dHVwbGU8L2k+LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9MSVNUX1RPX1RVUExFPC9iPig8aT5saXN0PC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0Pmxpc3Q8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgPGk+bGlzdDwvaT4gdG8gYmUgY29udmVydGVkLgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJSWYgPGk+bGlzdDwvaT4gaXMsIGZvciBleGFtcGxlLCAoPGk+YTwvaT4sICg8aT5iPC9pPiwgKDxpPmM8L2k+LCA8Yj5CT09TVF9QUF9OSUw8L2I+KSkpLAoJCQl0aGlzIG1hY3JvIHdpbGwgcHJvZHVjZToKCQkJPGRpdj4KCQkJCSg8aT5hPC9pPiwgPGk+YjwvaT4sIDxpPmM8L2k+KQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCQk8ZGl2PgoJCQlQcmV2aW91c2x5LCB0aGlzIG1hY3JvIGNvdWxkIG5vdCBiZSB1c2VkIGluc2lkZSA8Yj5CT09TVF9QUF9GT1I8L2I+LiZuYnNwOwoJCQlUaGVyZSBpcyBubyBsb25nZXIgYW55IHN1Y2ggcmVzdHJpY3Rpb24uJm5ic3A7CgkJCUl0IGlzIG1vcmUgZWZmaWNpZW50LCBob3dldmVyLCB0byB1c2UgPGI+Qk9PU1RfUFBfTElTVF9UT19UVVBMRV9SPC9iPiBpbiBzdWNoIGEgc2l0dWF0aW9uLgoJCTwvZGl2PgoJPGg0PlNlZSBBbHNvPC9oND4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJsaXN0X3RvX3R1cGxlX3IuaHRtbCI+Qk9PU1RfUFBfTElTVF9UT19UVVBMRV9SPC9hPjwvbGk+CgkJPC91bD4KCTxoND5SZXF1aXJlbWVudHM8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC90b190dXBsZS5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvdG9fdHVwbGUuaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC90b190dXBsZS5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC90b190dXBsZS5ocHA8L2E+Jmd0OwoKI2RlZmluZSBMSVNUICh3LCAoeCwgKHksICh6LCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKSkKCjxhIGhyZWY9Imxpc3RfdG9fdHVwbGUuaHRtbCI+Qk9PU1RfUFBfTElTVF9UT19UVVBMRTwvYT4oTElTVCkgLy8gZXhwYW5kcyB0byAodywgeCwgeSwgeikKPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=