PGh0bWw+Cgk8aGVhZD4KCQk8dGl0bGU+Qk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0k8L3RpdGxlPgoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQkJVGhlIDxiPkJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JPC9iPiBtYWNybyByZXBlYXRzIGEgbWFjcm8gZm9yIGVhY2ggZWxlbWVudCBpbiBhIDxpPnNlcTwvaT4uCgkJPC9kaXY+CgkJPGg0PgoJCQlVc2FnZQoJCTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCTxiPkJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JPC9iPig8aT5tYWNybzwvaT4sIDxpPmRhdGE8L2k+LCA8aT5zZXE8L2k+KQoJCTwvZGl2PgoJCTxoND4KCQkJQXJndW1lbnRzCgkJPC9oND4KCQk8ZGw+CgkJCTxkdD5tYWNybzwvZHQ+CgkJCTxkZD4KCQkJCUEgbWFjcm8gb2YgdGhlIGZvcm0gPGk+bWFjcm88L2k+KDxpPnI8L2k+LCA8aT5kYXRhPC9pPiwgPGk+aTwvaT4sIDxpPmVsZW08L2k+KS4mbmJzcDsgCgkJCQlUaGlzIG1hY3JvIGlzIGV4cGFuZGVkIGJ5IDxiPkJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JPC9iPiB3aXRoIGVhY2ggZWxlbWVudCBpbiA8aT5zZXE8L2k+LiZuYnNwOyAKCQkJCUl0IGlzIGV4cGFuZGVkIHdpdGggdGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX0ZPUjwvYj4gcmVwZXRpdGlvbiwgdGhlIAoJCQkJYXV4aWxpYXJ5IDxpPmRhdGE8L2k+LCB0aGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudCwgYW5kIHRoZSBjdXJyZW50IAoJCQkJZWxlbWVudC4KCQkJPC9kZD4KCQkJPGR0PmRhdGE8L2R0PgoJCQk8ZGQ+CgkJCQlBdXhpbGlhcnkgZGF0YSBwYXNzZWQgdG8gPGk+bWFjcm88L2k+LgoJCQk8L2RkPgoJCQk8ZHQ+c2VxPC9kdD4KCQkJPGRkPgoJCQkJVGhlIDxpPnNlcTwvaT4gZm9yIHdoaWNoIDxpPm1hY3JvPC9pPiB3aWxsIGJlIGludm9rZWQgb24gZWFjaCBlbGVtZW50LgoJCQk8L2RkPgoJCTwvZGw+CgkJPGg0PgoJCQlSZW1hcmtzCgkJPC9oND4KCQk8ZGl2PgoJCQlUaGlzIG1hY3JvIGlzIGEgcmVwZXRpdGlvbiBjb25zdHJ1Y3QuJm5ic3A7IElmIDxpPnNlcTwvaT4gaXMgKDxpPmE8L2k+KSg8aT5iPC9pPikoPGk+YzwvaT4pLCAKCQkJaXQgZXhwYW5kcyB0byB0aGUgc2VxdWVuY2U6CgkJCTxkaXY+CgkJCQk8aT5tYWNybzwvaT4oPGk+cjwvaT4sIDxpPmRhdGE8L2k+LCA8aT4wPC9pPiwgPGk+YTwvaT4pIDxpPm1hY3JvPC9pPig8aT5yPC9pPiwgPGk+ZGF0YTwvaT4sCgkJCQk8aT4xPC9pPiwgPGk+YjwvaT4pIDxpPm1hY3JvPC9pPig8aT5yPC9pPiwgPGk+ZGF0YTwvaT4sIDxpPjI8L2k+LCA8aT5jPC9pPikKCQkJPC9kaXY+CgkJPC9kaXY+CgkJPGRpdj4KCQkJRm9yIG1heGltdW0gZWZmaWNpZW5jeSwgdXNlIDxiPkJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX1I8L2E+PC9saT4KCQk8L2Rpdj4KCQk8aDQ+CgkJCVNlZSBBbHNvCgkJPC9oND4KCQk8dWw+CgkJCTxsaT4KCQkJCTxhIGhyZWY9InNlcV9mb3JfZWFjaF9pX3IuaHRtbCI+Qk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfUjwvYT48L2xpPgoJCTwvdWw+CgkJPGg0PgoJCQlSZXF1aXJlbWVudHMKCQk8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvc2VxL2Zvcl9lYWNoX2kuaHRtbCI+Jmx0O2Jvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9yX2VhY2hfaS5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJCTxoND4KCQkJU2FtcGxlIENvZGUKCQk8L2g0PgoJCTxkaXY+CgkJCTxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2NhdC5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL3NlcS9mb3JfZWFjaF9pLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9yX2VhY2hfaS5ocHA8L2E+Jmd0OwoKI2RlZmluZSBTRVEgKGEpKGIpKGMpKGQpCgojZGVmaW5lIE1BQ1JPKHIsIGRhdGEsIGksIGVsZW0pIDxhIGhyZWY9ImNhdC5odG1sIj5CT09TVF9QUF9DQVQ8L2E+KGVsZW0sIDxhIGhyZWY9ImNhdC5odG1sIj5CT09TVF9QUF9DQVQ8L2E+KGRhdGEsIGkpKQoKPGEgaHJlZj0ic2VxX2Zvcl9lYWNoX2kuaHRtbCI+Qk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0k8L2E+KE1BQ1JPLCBfLCBTRVEpIC8vIGV4cGFuZHMgdG8gYV8wIGJfMSBjXzIgZF8zCjwvcHJlPgoJCTwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+Cg==