PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0VOVU1fU0hJRlRFRDwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0VOVU1fU0hJRlRFRDwvYj4gbWFjcm8gZ2VuZXJhdGVzIGEgY29tbWEtc2VwYXJhdGVkLCBzaGlmdGVkIGxpc3QuCgk8L2Rpdj4KCTxoND5Vc2FnZTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCTxiPkJPT1NUX1BQX0VOVU1fU0hJRlRFRDwvYj4oPGk+Y291bnQ8L2k+LCA8aT5tYWNybzwvaT4sIDxpPmRhdGE8L2k+KQoJCTwvZGl2PgoJPGg0PkFyZ3VtZW50czwvaDQ+CgkJPGRsPgoJCQk8ZHQ+Y291bnQ8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgbnVtYmVyIG9mIHJlcGV0aXRpb3VzIGNhbGxzIHRvIDxpPm1hY3JvPC9pPi4mbmJzcDsKCQkJCVZhbGlkIHZhbHVlcyByYW5nZSBmcm9tIDxpPjA8L2k+IHRvIDxiPkJPT1NUX1BQX0xJTUlUX1JFUEVBVDwvYj4uCgkJCTwvZGQ+CgkJCTxkdD5tYWNybzwvZHQ+CgkJCTxkZD4KCQkJCUEgdGVybmFyeSBvcGVyYXRpb24gb2YgdGhlIGZvcm0gPGk+bWFjcm88L2k+KDxpPno8L2k+LCA8aT5uPC9pPiwgPGk+ZGF0YTwvaT4pLiZuYnNwOwoJCQkJVGhpcyBtYWNybyBpcyBleHBhbmRlZCBieSA8Yj5CT09TVF9QUF9FTlVNX1NISUZURUQ8L2I+IHdpdGggdGhlIG5leHQgYXZhaWxhYmxlIHJlcGV0aXRpb24gZGVwdGgsCgkJCQl0aGUgY3VycmVudCByZXBldGl0aW9uIG51bWJlciwgYW5kIHRoZSBhdXhpbGlhcnkgPGk+ZGF0YTwvaT4gYXJndW1lbnQuJm5ic3A7CgkJCTwvZGQ+CgkJCTxkdD5kYXRhPC9kdD4KCQkJPGRkPgoJCQkJQXV4aWxpYXJ5IGRhdGEgcGFzc2VkIHRvIDxpPm1hY3JvPC9pPi4KCQkJPC9kZD4KCQk8L2RsPgoJPGg0PlJlbWFya3M8L2g0PgoJCTxkaXY+CgkJCVRoaXMgbWFjcm8gZXhwYW5kcyB0byB0aGUgY29tbWEtc2VwYXJhdGVkIHNlcXVlbmNlOgoJCQk8ZGl2PgoJCQkJPGk+bWFjcm88L2k+KDxpPno8L2k+LCA8aT4xPC9pPiwgPGk+ZGF0YTwvaT4pLCAuLi4gPGk+bWFjcm88L2k+KDxpPno8L2k+LCA8aT5jb3VudDwvaT4gLSA8aT4xPC9pPiwgPGk+ZGF0YTwvaT4pCgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXY+CgkJCVRoZSA8aT56PC9pPiB2YWx1ZSB0aGF0IGlzIHBhc3NlZCB0byA8aT5tYWNybzwvaT4gcmVwcmVzZW50cyB0aGUgbmV4dCBhdmFpbGFibGUgcmVwZXRpdGlvbiBkaW1lbnNpb24uJm5ic3A7CgkJCU90aGVyIG1hY3JvcyB0aGF0IGhhdmUgPGI+X1o8L2I+IHN1ZmZpeCB2YXJpYW50cyBpbnRlcm5hbGx5IHVzZSA8Yj5CT09TVF9QUF9SRVBFQVQ8L2I+LS1mb3IgZXhhbXBsZSwgPGI+Qk9PU1RfUFBfRU5VTV9QQVJBTVM8L2I+IGFuZCA8Yj5CT09TVF9QUF9FTlVNX1BBUkFNU19aPC9iPi4mbmJzcDsKCQkJVXNpbmcgdGhlc2UgPGI+X1o8L2I+IHZlcnNpb25zIGlzIG5vdCBzdHJpY3RseSBuZWNlc3NhcnksIGJ1dCBwYXNzaW5nIHRoZSA8aT56PC9pPiB2YWx1ZSAodGhhdCBpcyBwYXNzZWQgdG8gPGk+bWFjcm88L2k+KSB0byB0aGVzZSBtYWNyb3MgYWxsb3dzIHRoZW0gdG8gcmVlbnRlciA8Yj5CT09TVF9QUF9SRVBFQVQ8L2I+IHdpdGggbWF4aW11bSBlZmZpY2llbmN5LgoJCTwvZGl2PgoJCTxkaXY+CgkJCVRvIGRpcmVjdGx5IHVzZSB0aGlzIDxpPno8L2k+IHZhbHVlLCByYXRoZXIgdGhhbiBzaW1wbHkgcGFzc2luZyBpdCB0byBhbm90aGVyIG1hY3JvLCBzZWUgPGI+Qk9PU1RfUFBfRU5VTV9TSElGVEVEXzxpPno8L2k+PC9iPi4KCQk8L2Rpdj4KCQk8ZGl2PgoJCQlQcmV2aW91c2x5LCB0aGlzIG1hY3JvIGNvdWxkIG5vdCBiZSB1c2VkIHJlY3Vyc2l2ZWx5IGluc2lkZSA8Yj5CT09TVF9QUF9SRVBFQVQ8L2I+LiZuYnNwOwoJCQlUaGlzIGxpbWl0YXRpb24gbm8gbG9uZ2VyIGV4aXN0cywgYXMgdGhlIGxpYnJhcnkgY2FuIGF1dG9tYXRpY2FsbHkgZGV0ZWN0IHRoZSBuZXh0IGF2YWlsYWJsZSByZXBldGl0aW9uIGRlcHRoLgoJCTwvZGl2PgoJPGg0PlNlZSBBbHNvPC9oND4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJlbnVtX3NoaWZ0ZWRfei5odG1sIj5CT09TVF9QUF9FTlVNX1NISUZURURfPGk+ejwvaT48L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9ImxpbWl0X3JlcGVhdC5odG1sIj5CT09TVF9QUF9MSU1JVF9SRVBFQVQ8L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9yZXBldGl0aW9uL2VudW1fc2hpZnRlZC5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9zaGlmdGVkLmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL3JlcGV0aXRpb24vZW51bS5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtLmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL3JlcGV0aXRpb24vZW51bV9zaGlmdGVkLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fc2hpZnRlZC5ocHA8L2E+Jmd0OwoKI2RlZmluZSBUWVBFKHosIG4sIHR5cGUpIHR5cGUKCjxhIGhyZWY9ImVudW0uaHRtbCI+Qk9PU1RfUFBfRU5VTTwvYT4oNSwgVFlQRSwgaW50KSAvLyBleHBhbmRzIHRvIGludCwgaW50LCBpbnQsIGludCwgaW50CjxhIGhyZWY9ImVudW1fc2hpZnRlZC5odG1sIj5CT09TVF9QUF9FTlVNX1NISUZURUQ8L2E+KDUsIFRZUEUsIGludCkgLy8gZXhwYW5kcyB0byBpbnQsIGludCwgaW50LCBpbnQKPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=