PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX2Q8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCVRoZSA8Yj5CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF88aT5kPC9pPjwvYj4gbWFjcm8gZm9sZHMgKG9yIGFjY3VtdWxhdGVzKSB0aGUgZWxlbWVudHMgb2YgYSA8aT5saXN0PC9pPiBsZWZ0LXRvLXJpZ2h0LiZuYnNwOwoJCUl0IHJlZW50ZXJzIDxiPkJPT1NUX1BQX1dISUxFPC9iPiB3aXRoIG1heGltdW0gZWZmaWNpZW5jeS4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfPC9iPiAjIyA8aT5kPC9pPig8aT5vcDwvaT4sIDxpPnN0YXRlPC9pPiwgPGk+bGlzdDwvaT4pCgkJPC9kaXY+Cgk8aDQ+QXJndW1lbnRzPC9oND4KCQk8ZGw+CgkJCTxkdD5kPC9kdD4KCQkJPGRkPgoJCQkJVGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX1dISUxFPC9iPiBpdGVyYXRpb24uCgkJCTwvZGQ+CgkJCTxkdD5vcDwvZHQ+CgkJCTxkZD4KCQkJCUEgdGVybmFyeSBvcGVyYXRpb24gb2YgdGhlIGZvcm0gPGk+b3A8L2k+KDxpPmQ8L2k+LCA8aT5zdGF0ZTwvaT4sIDxpPmVsZW08L2k+KS4mbmJzcDsKCQkJCVRoaXMgbWFjcm8gaXMgY2FsbGVkIGZvciBlYWNoIGVsZW1lbnQgaW4gPGk+bGlzdDwvaT4tLWVhY2ggdGltZSByZXR1cm5pbmcgYSBuZXcgPGk+c3RhdGU8L2k+LiZuYnNwOwoJCQkJVGhpcyBvcGVyYXRpb24gaXMgZXhwYW5kZWQgYnkgPGI+Qk9PU1RfUFBfTElTVF9GT0xEX0xFRlQ8L2I+IHdpdGggdGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX1dISUxFPC9iPiBpdGVyYXRpb24sCgkJCQl0aGUgY3VycmVudCA8aT5zdGF0ZTwvaT4sIGFuZCB0aGUgY3VycmVudCBlbGVtZW50LgoJCQk8L2RkPgoJCQk8ZHQ+c3RhdGU8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgZm9sZC4KCQkJPC9kZD4KCQkJPGR0Pmxpc3Q8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgPGk+bGlzdDwvaT4gdG8gYmUgZm9sZGVkLgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJRm9yIHRoZSA8aT5saXN0PC9pPiwgKDxpPjA8L2k+LCAoPGk+MTwvaT4sICg8aT4yPC9pPiwgPGI+Qk9PU1RfUFBfTklMPC9iPikpKSwgdGhpcyBtYWNybyBleHBhbmRzIHRvOgoJCQk8ZGl2PgoJCQkJPGk+b3A8L2k+KDxpPmQ8L2k+LCA8aT5vcDwvaT4oPGk+ZDwvaT4sIDxpPm9wPC9pPig8aT5kPC9pPiwgPGk+c3RhdGU8L2k+LCA8aT4wPC9pPiksIDxpPjE8L2k+KSwgPGk+MjwvaT4pCgkJCTwvZGl2PgoJCTwvZGl2PgoJPGg0PlNlZSBBbHNvPC9oND4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJsaXN0X2ZvbGRfbGVmdC5odG1sIj5CT09TVF9QUF9MSVNUX0ZPTERfTEVGVDwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL2xpc3QvZm9sZF9sZWZ0Lmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX2xlZnQuaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvY2F0Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9mb2xkX2xlZnQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9sZWZ0LmhwcDwvYT4mZ3Q7CgojZGVmaW5lIEwxIChhLCAoYiwgKGMsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpCiNkZWZpbmUgTDIgKEwxLCAoTDEsIChMMSwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkKCiNkZWZpbmUgT1AoZCwgc3RhdGUsIHgpICg8YSBocmVmPSJsaXN0X2ZvbGRfbGVmdF9kLmh0bWwiPkJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzwvYT4gIyMgZChPUF8yLCBfLCB4KSwgc3RhdGUpCiNkZWZpbmUgT1BfMihkLCBzdGF0ZSwgeCkgPGEgaHJlZj0iY2F0Lmh0bWwiPkJPT1NUX1BQX0NBVDwvYT4oc3RhdGUsIHgpCgo8YSBocmVmPSJsaXN0X2ZvbGRfbGVmdC5odG1sIj5CT09TVF9QUF9MSVNUX0ZPTERfTEVGVDwvYT4oT1AsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+LCBMMikKLyoKICAgZXhwYW5kcyB0bzoKICAgKF9hYmMsIChfYWJjLCAoX2FiYywgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkKKi8KPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=