PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfRklSU1Q8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCVRoZSA8Yj5CT09TVF9QUF9MSVNUX0ZJUlNUPC9iPiBtYWNybyBleHBhbmRzIHRvIHRoZSBoZWFkIG9mIGEgPGk+bGlzdDwvaT4uCgk8L2Rpdj4KCTxoND5Vc2FnZTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCTxiPkJPT1NUX1BQX0xJU1RfRklSU1Q8L2I+KDxpPmxpc3Q8L2k+KQoJCTwvZGl2PgoJPGg0PkFyZ3VtZW50czwvaDQ+CgkJPGRsPgoJCQk8ZHQ+bGlzdDwvZHQ+CgkJCTxkZD4KCQkJCUEgbm9uLW5pbCA8aT5saXN0PC9pPi4KCQkJPC9kZD4KCQk8L2RsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2FkdC5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvYWR0LmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2xpc3QvYWR0Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FkdC5ocHA8L2E+Jmd0OwoKI2RlZmluZSBPTEQgXAogICA8YSBocmVmPSJsaXN0X2NvbnMuaHRtbCI+Qk9PU1RfUFBfTElTVF9DT05TPC9hPiggXAogICAgICBhLCBcCiAgICAgIDxhIGhyZWY9Imxpc3RfY29ucy5odG1sIj5CT09TVF9QUF9MSVNUX0NPTlM8L2E+KCBcCiAgICAgICAgIGIsIFwKICAgICAgICAgPGEgaHJlZj0ibGlzdF9jb25zLmh0bWwiPkJPT1NUX1BQX0xJU1RfQ09OUzwvYT4oIFwKICAgICAgICAgICAgYywgXAogICAgICAgICAgICA8YSBocmVmPSJsaXN0X25pbC5odG1sIj5CT09TVF9QUF9MSVNUX05JTDwvYT4gXAogICAgICAgICApIFwKICAgICAgKSBcCiAgICkgXAogICAvKiovCgojZGVmaW5lIE5FVyAoYSwgKGIsIChjLCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKQoKPGEgaHJlZj0ibGlzdF9maXJzdC5odG1sIj5CT09TVF9QUF9MSVNUX0ZJUlNUPC9hPihPTEQpID09IDxhIGhyZWY9Imxpc3RfZmlyc3QuaHRtbCI+Qk9PU1RfUFBfTElTVF9GSVJTVDwvYT4oTkVXKQogICAvLyBleHBhbmRzIHRvIGEgPT0gYQoKPGEgaHJlZj0ibGlzdF9yZXN0Lmh0bWwiPkJPT1NUX1BQX0xJU1RfUkVTVDwvYT4oT0xEKSA9PSA8YSBocmVmPSJsaXN0X3Jlc3QuaHRtbCI+Qk9PU1RfUFBfTElTVF9SRVNUPC9hPihORVcpCiAgIC8vIGV4cGFuZHMgdG8gKGIsIChjLCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpID09IChiLCAoYywgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKQo8L3ByZT48L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==