PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0lJRjwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0lJRjwvYj4gbWFjcm8gY2hvb3NlcyBiZXR3ZWVuIHRvIHZhbHVlcyBiYXNlZCBvbiBhIGJpdHdpc2UgY29uZGl0aW9uLgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9JSUY8L2I+KDxpPmJpdDwvaT4sIDxpPnQ8L2k+LCA8aT5mPC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0PmJpdDwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBjb25kaXRpb24gdGhhdCBkZXRlcm1pbmVzIGlmIHRoZSByZXN1bHQgaXMgPGk+ZXhwcjwvaT4gb3Igbm90aGluZy4mbmJzcDsKCQkJCVRoaXMgdmFsdWUgbXVzdCBleHBhbmQgdG8gPGk+MDwvaT4gb3IgPGk+MTwvaT4uCgkJCTwvZGQ+CgkJCTxkdD50PC9kdD4KCQkJPGRkPgoJCQkJVGhlIHJlc3VsdCBvZiB0aGUgZXhwYW5zaW9uIGlmIDxpPmJpdDwvaT4gaXMgPGk+MTwvaT4uCgkJCTwvZGQ+CgkJCTxkdD5mPC9kdD4KCQkJPGRkPgoJCQkJVGhlIHJlc3VsdCBvZiB0aGUgZXhwYW5zaW9uIGlmIDxpPmJpdDwvaT4gaXMgPGk+MDwvaT4uCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlUaGlzIG1hY3JvIDxpPmRvZXMgbm90PC9pPiBwZXJmb3JtIGEgYm9vbGVhbiBjb252ZXJzaW9uIG9uIGl0cyBmaXJzdCBhcmd1bWVudC4mbmJzcDsKCQkJSWYgdGhhdCBjb252ZXJzaW9uIGlzIG5lY2Vzc2FyeSwgdXNlIDxiPkJPT1NUX1BQX0lGPC9iPiBpbnN0ZWFkLgoJCTwvZGl2PgoJPGg0PlNlZSBBbHNvPC9oND4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJpZi5odG1sIj5CT09TVF9QUF9JRjwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0ibGltaXRfbWFnLmh0bWwiPkJPT1NUX1BQX0xJTUlUX01BRzwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL2NvbnRyb2wvaWlmLmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvY29udHJvbC9paWYuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWlmLmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2xvZ2ljYWwvb3IuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvb3IuaHBwPC9hPgoKI2RlZmluZSBPUl9JRihwLCBxLCB0LCBmKSA8YSBocmVmPSJpaWYuaHRtbCI+Qk9PU1RfUFBfSUlGPC9hPig8YSBocmVmPSJvci5odG1sIj5CT09TVF9QUF9PUjwvYT4ocCwgcSksIHQsIGYpCgpPUl9JRigxLCAwLCBhYmMsIHh5eikgLy8gZXhwYW5kcyB0byBhYmMKT1JfSUYoMCwgMCwgYWJjLCB4eXopIC8vIGV4cGFuZHMgdG8geHl6CjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K