PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0Q8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCVRoZSA8Yj5CT09TVF9QUF9MSVNUX1RSQU5TRk9STV9EPC9iPiBtYWNybyB0cmFuc2Zvcm1zIGVhY2ggZWxlbWVudCBpbiBhIDxpPmxpc3Q8L2k+IGFjY29yZGluZyB0byBhIHN1cHBsaWVkIHRyYW5zZm9ybWF0aW9uLiZuYnNwOwoJCUl0IHJlZW50ZXJzIDxiPkJPT1NUX1BQX1dISUxFPC9iPiB3aXRoIG1heGltdW0gZWZmaWNpZW5jeS4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fRDwvYj4oPGk+ZDwvaT4sIDxpPm9wPC9pPiwgPGk+ZGF0YTwvaT4sIDxpPmxpc3Q8L2k+KQoJCTwvZGl2PgoJPGg0PkFyZ3VtZW50czwvaDQ+CgkJPGRsPgoJCQk8ZHQ+ZDwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBuZXh0IGF2YWlsYWJsZSA8Yj5CT09TVF9QUF9XSElMRTwvYj4gaXRlcmF0aW9uLgoJCQk8L2RkPgoJCQk8ZHQ+b3A8L2R0PgoJCQk8ZGQ+CgkJCQlBIHRlcm5hcnkgcHJlZGljYXRlIG9mIHRoZSBmb3JtIDxpPm9wPC9pPig8aT5kPC9pPiwgPGk+ZGF0YTwvaT4sIDxpPmVsZW08L2k+KS4mbmJzcDsKCQkJCVRoaXMgdHJhbnNmb3JtYXRpb24gaXMgZXhwYW5kZWQgYnkgPGI+Qk9PU1RfUFBfTElTVF9UUkFOU0ZPUk08L2I+IGZvciBlYWNoIGVsZW1lbnQgaW4gPGk+bGlzdDwvaT4gd2l0aCB0aGUgbmV4dCBhdmFpbGFibGUgPGI+Qk9PU1RfUFBfV0hJTEU8L2I+IGl0ZXJhdGlvbiwKCQkJCXRoZSBhdXhpbGlhcnkgPGk+ZGF0YTwvaT4sIGFuZCB0aGUgY3VycmVudCBlbGVtZW50IGluIDxpPmxpc3Q8L2k+LiZuYnNwOwoJCQk8L2RkPgoJCQk8ZHQ+ZGF0YTwvZHQ+CgkJCTxkZD4KCQkJCUF1eGlsaWFyeSBkYXRhIHBhc3NlZCB0byA8aT5wcmVkPC9pPi4KCQkJPC9kZD4KCQkJPGR0Pmxpc3Q8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgPGk+bGlzdDwvaT4gdG8gYmUgdHJhbnNmb3JtZWQuCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlUaGlzIG1hY3JvIGV4cGFuZHMgPGk+b3A8L2k+IGZvciBlYWNoIGVsZW1lbnQgaW4gPGk+bGlzdDwvaT4uJm5ic3A7CgkJCUl0IGJ1aWxkcyBhIG5ldyA8aT5saXN0PC9pPiBvdXQgb2YgdGhlIHJlc3VsdHMgb2YgZWFjaCBjYWxsLiZuYnNwOwoJCQlJZiwgZm9yIGV4YW1wbGUsIDxpPmxpc3Q8L2k+IGlzICg8aT5hPC9pPiwgKDxpPmI8L2k+LCAoPGk+YzwvaT4sIDxiPkJPT1NUX1BQX05JTDwvYj4pKSksCgkJCXRoaXMgbWFjcm8gZXhwYW5kcyB0by4uLgoJCQk8ZGl2PgoJCQkJKDxpPm9wPC9pPig8aT5kPC9pPiwgPGk+ZGF0YTwvaT4sIDxpPmE8L2k+KSwgKDxpPm9wPC9pPig8aT5kPC9pPiwgPGk+ZGF0YTwvaT4sIDxpPmI8L2k+KSwgKDxpPm9wPC9pPig8aT5kPC9pPiwgPGk+ZGF0YTwvaT4sIDxpPmM8L2k+KSwgPGI+Qk9PU1RfUFBfTklMPC9iPikpKQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0ibGlzdF90cmFuc2Zvcm0uaHRtbCI+Qk9PU1RfUFBfTElTVF9UUkFOU0ZPUk08L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L3RyYW5zZm9ybS5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvdHJhbnNmb3JtLmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2FyaXRobWV0aWMvaW5jLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2luYy5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2ZvbGRfcmlnaHQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L3RyYW5zZm9ybS5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC90cmFuc2Zvcm0uaHBwPC9hPiZndDsKCiNkZWZpbmUgQSAoMSwgKDIsICgzLCAoNCwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkpCiNkZWZpbmUgQiAoQSwgKEEsIChBLCAoQSwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkpCgojZGVmaW5lIE9QX1QoZCwgZGF0YSwgeCkgPGEgaHJlZj0iaW5jLmh0bWwiPkJPT1NUX1BQX0lOQzwvYT4oeCkKI2RlZmluZSBPUChkLCBzdGF0ZSwgeCkgKDxhIGhyZWY9Imxpc3RfdHJhbnNmb3JtX2QuaHRtbCI+Qk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fRDwvYT4oZCwgT1BfVCwgMiwgeCksIHN0YXRlKQoKPGEgaHJlZj0ibGlzdF9mb2xkX3JpZ2h0Lmh0bWwiPkJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVDwvYT4oT1AsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+LCBCKQovKgogICBleHBhbmRzIHRvOgogICAoKDIsICgzLCAoNCwgKDUsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpKSwgKCgyLCAoMywgKDQsICg1LCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKSksCiAgICgoMiwgKDMsICg0LCAoNSwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkpLCAoKDIsICgzLCAoNCwgKDUsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpKSwKICAgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkpCiovCjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K