PGh0bWw+Cgk8aGVhZD4KCQk8dGl0bGU+Qk9PU1RfUFBfU0VRX1JFU1RfTjwvdGl0bGU+CgkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCQlUaGUgPGI+Qk9PU1RfUFBfU0VRX1JFU1RfTjwvYj4gbWFjcm8gZXhwYW5kcyB0byBhIDxpPnNlcTwvaT4gb2YgYWxsIGJ1dCB0aGUgCgkJCWZpcnN0IDxpPm48L2k+IGVsZW1lbnRzIG9mIGEgPGk+c2VxPC9pPi4KCQk8L2Rpdj4KCQk8aDQ+CgkJCVVzYWdlCgkJPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfU0VRX1JFU1RfTjwvYj4oPGk+bjwvaT4sIDxpPmxpc3Q8L2k+KQoJCTwvZGl2PgoJCTxoND4KCQkJQXJndW1lbnRzCgkJPC9oND4KCQk8ZGw+CgkJCTxkdD5uPC9kdD4KCQkJPGRkPgoJCQkJVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byByZW1vdmUuCgkJCTwvZGQ+CgkJCTxkdD5saXN0PC9kdD4KCQkJPGRkPgoJCQkJVGhlIDxpPnNlcTwvaT4gZnJvbSB3aGljaCB0aGUgZWxlbWVudHMgYXJlIHRvIGJlIHJlbW92ZWQuCgkJCTwvZGQ+CgkJPC9kbD4KCQk8aDQ+CgkJCVJlbWFya3MKCQk8L2g0PgoJCTxkaXY+CgkJCVRoaXMgbWFjcm8gZXh0cmFjdHMgPGk+bjwvaT4gZWxlbWVudHMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIDxpPnNlcTwvaT4gYW5kIAoJCQlyZXR1cm5zIHRoZSByZW1haW5kZXIgb2YgPGk+c2VxPC9pPiBhcyBhIG5ldyA8aT5zZXE8L2k+CgkJPC9kaXY+CgkJPGg0PgoJCQlTZWUgQWxzbwoJCTwvaDQ+CgkJPHVsPgoJCQk8bGk+CgkJCQk8YSBocmVmPSJzZXFfZmlyc3Rfbi5odG1sIj5CT09TVF9QUF9TRVFfRklSU1RfTjwvYT48L2xpPgoJCTwvdWw+CgkJPGg0PgoJCQlSZXF1aXJlbWVudHMKCQk8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvc2VxL3Jlc3Rfbi5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL3NlcS9yZXN0X24uaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCQk8aDQ+CgkJCVNhbXBsZSBDb2RlCgkJPC9oND4KCQk8ZGl2PgoJCQk8cHJlPgojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9hcml0aG1ldGljL2luYy5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvc2VxL2VsZW0uaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbGVtLmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL3NlcS9maXJzdF9uLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZmlyc3Rfbi5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9zZXEvcmVzdF9uLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvcmVzdF9uLmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL3NlcS9zaXplLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvc2l6ZS5ocHA8L2E+Jmd0OwoKI2RlZmluZSBOVU1CRVJTIFwKICAgKDApKDEpKDIpKDMpKDQpKDUpKDYpKDcpKDgpKDkpIFwKICAgKDEwKSgxMSkoMTIpKDEzKSgxNCkoMTUpKDE2KSgxNykoMTgpKDE5KSBcCiAgICgyMCkoMjEpKDIyKSgyMykoMjQpKDI1KSgyNikoMjcpKDI4KSgyOSkgXAogICAoMzApKDMxKSgzMikoMzMpKDM0KSgzNSkoMzYpKDM3KSgzOCkoMzkpIFwKICAgKDQwKSg0MSkoNDIpKDQzKSg0NCkoNDUpKDQ2KSg0NykoNDgpKDQ5KSBcCiAgICg1MCkoNTEpKDUyKSg1MykoNTQpKDU1KSg1NikoNTcpKDU4KSg1OSkgXAogICAoNjApKDYxKSg2MikoNjMpKDY0KSg2NSkoNjYpKDY3KSg2OCkoNjkpIFwKICAgKDcwKSg3MSkoNzIpKDczKSg3NCkoNzUpKDc2KSg3NykoNzgpKDc5KSBcCiAgICg4MCkoODEpKDgyKSg4MykoODQpKDg1KSg4NikoODcpKDg4KSg4OSkgXAogICAoOTApKDkxKSg5MikoOTMpKDk0KSg5NSkoOTYpKDk3KSg5OCkoOTkpIFwKICAgKDEwMCkoMTAxKSgxMDIpKDEwMykoMTA0KSgxMDUpKDEwNikoMTA3KSgxMDgpKDEwOSkgXAogICAoMTEwKSgxMTEpKDExMikoMTEzKSgxMTQpKDExNSkoMTE2KSgxMTcpKDExOCkoMTE5KSBcCiAgICgxMjApKDEyMSkoMTIyKSgxMjMpKDEyNCkoMTI1KSgxMjYpKDEyNykoMTI4KSgxMjkpIFwKICAgKDEzMCkoMTMxKSgxMzIpKDEzMykoMTM0KSgxMzUpKDEzNikoMTM3KSgxMzgpKDEzOSkgXAogICAoMTQwKSgxNDEpKDE0MikoMTQzKSgxNDQpKDE0NSkoMTQ2KSgxNDcpKDE0OCkoMTQ5KSBcCiAgICgxNTApKDE1MSkoMTUyKSgxNTMpKDE1NCkoMTU1KSgxNTYpKDE1NykoMTU4KSgxNTkpIFwKICAgKDE2MCkoMTYxKSgxNjIpKDE2MykoMTY0KSgxNjUpKDE2NikoMTY3KSgxNjgpKDE2OSkgXAogICAoMTcwKSgxNzEpKDE3MikoMTczKSgxNzQpKDE3NSkoMTc2KSgxNzcpKDE3OCkoMTc5KSBcCiAgICgxODApKDE4MSkoMTgyKSgxODMpKDE4NCkoMTg1KSgxODYpKDE4NykoMTg4KSgxODkpIFwKICAgKDE5MCkoMTkxKSgxOTIpKDE5MykoMTk0KSgxOTUpKDE5NikoMTk3KSgxOTgpKDE5OSkgXAogICAoMjAwKSgyMDEpKDIwMikoMjAzKSgyMDQpKDIwNSkoMjA2KSgyMDcpKDIwOCkoMjA5KSBcCiAgICgyMTApKDIxMSkoMjEyKSgyMTMpKDIxNCkoMjE1KSgyMTYpKDIxNykoMjE4KSgyMTkpIFwKICAgKDIyMCkoMjIxKSgyMjIpKDIyMykoMjI0KSgyMjUpKDIyNikoMjI3KSgyMjgpKDIyOSkgXAogICAoMjMwKSgyMzEpKDIzMikoMjMzKSgyMzQpKDIzNSkoMjM2KSgyMzcpKDIzOCkoMjM5KSBcCiAgICgyNDApKDI0MSkoMjQyKSgyNDMpKDI0NCkoMjQ1KSgyNDYpKDI0NykoMjQ4KSgyNDkpIFwKICAgKDI1MCkoMjUxKSgyNTIpKDI1MykoMjU0KSgyNTUpKDI1NikgXAogICAvKiovCgojZGVmaW5lIFNVUEVSX0FERCh4LCB5KSA8YSBocmVmPSJzZXFfZWxlbS5odG1sIj5CT09TVF9QUF9TRVFfRUxFTTwvYT4oeSwgPGEgaHJlZj0ic2VxX3Jlc3Rfbi5odG1sIj5CT09TVF9QUF9TRVFfUkVTVF9OPC9hPih4LCBOVU1CRVJTKSkKClNVUEVSX0FERCgxMDAsIDEwMCkgLy8gZXhwYW5kcyB0byAyMDAKCiNkZWZpbmUgU1VQRVJfU1VCKHgsIHkpIFwKICAgPGEgaHJlZj0ic2VxX3NpemUuaHRtbCI+Qk9PU1RfUFBfU0VRX1NJWkU8L2E+KCBcCiAgICAgIDxhIGhyZWY9InNlcV9yZXN0X24uaHRtbCI+Qk9PU1RfUFBfU0VRX1JFU1RfTjwvYT4oIFwKICAgICAgICAgPGEgaHJlZj0iaW5jLmh0bWwiPkJPT1NUX1BQX0lOQzwvYT4oeSksIFwKICAgICAgICAgPGEgaHJlZj0ic2VxX2ZpcnN0X24uaHRtbCI+Qk9PU1RfUFBfU0VRX0ZJUlNUX048L2E+KCBcCiAgICAgICAgICAgIDxhIGhyZWY9ImluYy5odG1sIj5CT09TVF9QUF9JTkM8L2E+KHgpLCBOVU1CRVJTIFwKICAgICAgICAgKSBcCiAgICAgICkgXAogICApIFwKICAgLyoqLwoKU1VQRVJfU1VCKDY3LCAyNSkgLy8gZXhwYW5kcyB0byA0Mgo8L3ByZT4KCQk8L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPgo=