PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPm1vZF9sZGFwIC0gQXBhY2hlIEhUVFAgU2VydmVyPC90aXRsZT4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KPGxpbmsgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keT4KPGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Ii4uL2ZhcS8iPkZBUTwvYT4gfCA8YSBocmVmPSIuLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5BcGFjaGUgSFRUUCBTZXJ2ZXIgVmVyc2lvbiAyLjM8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2ZlYXRoZXIuZ2lmIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4uL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5IVFRQIFNlcnZlcjwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLi8iPlZlcnNpb24gMi4zPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5Nb2R1bGVzPC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPgo8ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPkFwYWNoZSBNb2R1bGUgbW9kX2xkYXA8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfbGRhcC5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJtb2R1bGUiPjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkxEQVAgY29ubmVjdGlvbiBwb29saW5nIGFuZCByZXN1bHQgY2FjaGluZyBzZXJ2aWNlcyBmb3IgdXNlCmJ5IG90aGVyIExEQVAgbW9kdWxlczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5Nb2R1bGWgSWRlbnRpZmllcjo8L2E+PC90aD48dGQ+bGRhcF9tb2R1bGU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTb3VyY2VGaWxlIj5Tb3VyY2WgRmlsZTo8L2E+PC90aD48dGQ+dXRpbF9sZGFwLmM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNDb21wYXRpYmlsaXR5Ij5Db21wYXRpYmlsaXR5OjwvYT48L3RoPjx0ZD5BdmFpbGFibGUgaW4gdmVyc2lvbiAyLjAuNDEgYW5kIGxhdGVyPC90ZD48L3RyPjwvdGFibGU+CjxoMz5TdW1tYXJ5PC9oMz4KCiAgICA8cD5UaGlzIG1vZHVsZSB3YXMgY3JlYXRlZCB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZgogICAgd2Vic2l0ZXMgcmVseWluZyBvbiBiYWNrZW5kIGNvbm5lY3Rpb25zIHRvIExEQVAgc2VydmVycy4gSW4KICAgIGFkZGl0aW9uIHRvIHRoZSBmdW5jdGlvbnMgcHJvdmlkZWQgYnkgdGhlIHN0YW5kYXJkIExEQVAKICAgIGxpYnJhcmllcywgdGhpcyBtb2R1bGUgYWRkcyBhbiBMREFQIGNvbm5lY3Rpb24gcG9vbCBhbmQgYW4gTERBUAogICAgc2hhcmVkIG1lbW9yeSBjYWNoZS48L3A+CgogICAgPHA+VG8gZW5hYmxlIHRoaXMgbW9kdWxlLCBMREFQIHN1cHBvcnQgbXVzdCBiZSBjb21waWxlZCBpbnRvCiAgICBhcHItdXRpbC4gVGhpcyBpcyBhY2hpZXZlZCBieSBhZGRpbmcgdGhlIDxjb2RlPi0td2l0aC1sZGFwPC9jb2RlPgogICAgZmxhZyB0byB0aGUgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4uL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBzY3JpcHQgd2hlbiBidWlsZGluZwogICAgQXBhY2hlLjwvcD4KCiAgICA8cD5TU0wvVExTIHN1cHBvcnQgaXMgZGVwZW5kYW50IG9uIHdoaWNoIExEQVAgdG9vbGtpdCBoYXMgYmVlbgogICAgbGlua2VkIHRvIDxhIGNsYXNzPSJnbG9zc2FyeWxpbmsiIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwjYXByIiB0aXRsZT0ic2VlIGdsb3NzYXJ5Ij5BUFI8L2E+LiBBcyBvZiB0aGlzIHdyaXRpbmcsIEFQUi11dGlsIHN1cHBvcnRzOgogICAgPGEgaHJlZj0iaHR0cDovL3d3dy5vcGVubGRhcC5vcmcvIj5PcGVuTERBUCBTREs8L2E+ICgyLnggb3IgbGF0ZXIpLAogICAgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci5ub3ZlbGwuY29tL25kay9jbGRhcC5odG0iPk5vdmVsbCBMREFQCiAgICBTREs8L2E+LCA8YSBocmVmPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL2RpcmVjdG9yeS9jc2RrLmh0bWwiPgogICAgTW96aWxsYSBMREFQIFNESzwvYT4sIG5hdGl2ZSBTb2xhcmlzIExEQVAgU0RLIChNb3ppbGxhIGJhc2VkKSwKICAgIG5hdGl2ZSBNaWNyb3NvZnQgTERBUCBTREssIG9yIHRoZQogICAgPGEgaHJlZj0iaHR0cDovL3d3dy5pcGxhbmV0LmNvbS9kb3dubG9hZHMvZGV2ZWxvcGVyLyI+aVBsYW5ldAogICAgKE5ldHNjYXBlKTwvYT4gU0RLLiBTZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly9hcHIuYXBhY2hlLm9yZyI+QVBSPC9hPgogICAgd2Vic2l0ZSBmb3IgZGV0YWlscy48L3A+Cgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48aDMgY2xhc3M9ImRpcmVjdGl2ZXMiPkRpcmVjdGl2ZXM8L2gzPgo8dWwgaWQ9InRvYyI+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2xkYXBjYWNoZWVudHJpZXMiPkxEQVBDYWNoZUVudHJpZXM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbGRhcGNhY2hldHRsIj5MREFQQ2FjaGVUVEw8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbGRhcGNvbm5lY3Rpb250aW1lb3V0Ij5MREFQQ29ubmVjdGlvblRpbWVvdXQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbGRhcG9wY2FjaGVlbnRyaWVzIj5MREFQT3BDYWNoZUVudHJpZXM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbGRhcG9wY2FjaGV0dGwiPkxEQVBPcENhY2hlVFRMPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2xkYXBzaGFyZWRjYWNoZWZpbGUiPkxEQVBTaGFyZWRDYWNoZUZpbGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbGRhcHNoYXJlZGNhY2hlc2l6ZSI+TERBUFNoYXJlZENhY2hlU2l6ZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNsZGFwdHJ1c3RlZGNsaWVudGNlcnQiPkxEQVBUcnVzdGVkQ2xpZW50Q2VydDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNsZGFwdHJ1c3RlZGdsb2JhbGNlcnQiPkxEQVBUcnVzdGVkR2xvYmFsQ2VydDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNsZGFwdHJ1c3RlZG1vZGUiPkxEQVBUcnVzdGVkTW9kZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNsZGFwdmVyaWZ5c2VydmVyY2VydCI+TERBUFZlcmlmeVNlcnZlckNlcnQ8L2E+PC9saT4KPC91bD4KPGgzPlRvcGljczwvaDM+Cjx1bCBpZD0idG9waWNzIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZXhhbXBsZWNvbmZpZyI+RXhhbXBsZSBDb25maWd1cmF0aW9uPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3Bvb2wiPkxEQVAgQ29ubmVjdGlvbiBQb29sPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2NhY2hlIj5MREFQIENhY2hlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3VzaW5nc3NsdGxzIj5Vc2luZyBTU0wvVExTPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3NldHRpbmdjZXJ0cyI+U1NML1RMUyBDZXJ0aWZpY2F0ZXM8L2E+PC9saT4KPC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZXhhbXBsZWNvbmZpZyIgaWQ9ImV4YW1wbGVjb25maWciPkV4YW1wbGUgQ29uZmlndXJhdGlvbjwvYT48L2gyPgogICAgPHA+VGhlIGZvbGxvd2luZyBpcyBhbiBleGFtcGxlIGNvbmZpZ3VyYXRpb24gdGhhdCB1c2VzCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2xkYXAuaHRtbCI+bW9kX2xkYXA8L2E+PC9jb2RlPiB0byBpbmNyZWFzZSB0aGUgcGVyZm9ybWFuY2Ugb2YgSFRUUCBCYXNpYwogICAgYXV0aGVudGljYXRpb24gcHJvdmlkZWQgYnkgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPi48L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICMgRW5hYmxlIHRoZSBMREFQIGNvbm5lY3Rpb24gcG9vbCBhbmQgc2hhcmVkPGJyIC8+CiAgICAgICMgbWVtb3J5IGNhY2hlLiBFbmFibGUgdGhlIExEQVAgY2FjaGUgc3RhdHVzPGJyIC8+CiAgICAgICMgaGFuZGxlci4gUmVxdWlyZXMgdGhhdCBtb2RfbGRhcCBhbmQgbW9kX2F1dGhuel9sZGFwPGJyIC8+CiAgICAgICMgYmUgbG9hZGVkLiBDaGFuZ2UgdGhlICJ5b3VyZG9tYWluLmV4YW1wbGUuY29tIiB0bzxiciAvPgogICAgICAjIG1hdGNoIHlvdXIgZG9tYWluLjxiciAvPgogICAgICA8YnIgLz4KICAgICAgTERBUFNoYXJlZENhY2hlU2l6ZSAyMDAwMDA8YnIgLz4KICAgICAgTERBUENhY2hlRW50cmllcyAxMDI0PGJyIC8+CiAgICAgIExEQVBDYWNoZVRUTCA2MDA8YnIgLz4KICAgICAgTERBUE9wQ2FjaGVFbnRyaWVzIDEwMjQ8YnIgLz4KICAgICAgTERBUE9wQ2FjaGVUVEwgNjAwPGJyIC8+CiAgICAgIDxiciAvPgogICAgICAmbHQ7TG9jYXRpb24gL2xkYXAtc3RhdHVzJmd0OzxiciAvPgogICAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBTZXRIYW5kbGVyIGxkYXAtc3RhdHVzPGJyIC8+CiAgICAgICAgT3JkZXIgZGVueSxhbGxvdzxiciAvPgogICAgICAgIERlbnkgZnJvbSBhbGw8YnIgLz4KICAgICAgICBBbGxvdyBmcm9tIHlvdXJkb21haW4uZXhhbXBsZS5jb208YnIgLz4KICAgICAgICBBdXRoTERBUFVSTCBsZGFwOi8vMTI3LjAuMC4xL2RjPWV4YW1wbGUsZGM9Y29tP3VpZD9vbmU8YnIgLz4KICAgICAgICBBdXRoekxEQVBBdXRob3JpdGF0aXZlIG9mZjxiciAvPgogICAgICAgIHJlcXVpcmUgdmFsaWQtdXNlcjxiciAvPgogICAgICA8L3NwYW4+CiAgICAgICZsdDsvTG9jYXRpb24mZ3Q7CiAgICA8L2NvZGU+PC9wPjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJwb29sIiBpZD0icG9vbCI+TERBUCBDb25uZWN0aW9uIFBvb2w8L2E+PC9oMj4KCiAgICA8cD5MREFQIGNvbm5lY3Rpb25zIGFyZSBwb29sZWQgZnJvbSByZXF1ZXN0IHRvIHJlcXVlc3QuIFRoaXMKICAgIGFsbG93cyB0aGUgTERBUCBzZXJ2ZXIgdG8gcmVtYWluIGNvbm5lY3RlZCBhbmQgYm91bmQgcmVhZHkgZm9yCiAgICB0aGUgbmV4dCByZXF1ZXN0LCB3aXRob3V0IHRoZSBuZWVkIHRvIHVuYmluZC9jb25uZWN0L3JlYmluZC4KICAgIFRoZSBwZXJmb3JtYW5jZSBhZHZhbnRhZ2VzIGFyZSBzaW1pbGFyIHRvIHRoZSBlZmZlY3Qgb2YgSFRUUAogICAga2VlcGFsaXZlcy48L3A+CgogICAgPHA+T24gYSBidXN5IHNlcnZlciBpdCBpcyBwb3NzaWJsZSB0aGF0IG1hbnkgcmVxdWVzdHMgd2lsbCB0cnkKICAgIGFuZCBhY2Nlc3MgdGhlIHNhbWUgTERBUCBzZXJ2ZXIgY29ubmVjdGlvbiBzaW11bHRhbmVvdXNseS4KICAgIFdoZXJlIGFuIExEQVAgY29ubmVjdGlvbiBpcyBpbiB1c2UsIEFwYWNoZSB3aWxsIGNyZWF0ZSBhIG5ldwogICAgY29ubmVjdGlvbiBhbG9uZ3NpZGUgdGhlIG9yaWdpbmFsIG9uZS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlCiAgICBjb25uZWN0aW9uIHBvb2wgZG9lcyBub3QgYmVjb21lIGEgYm90dGxlbmVjay48L3A+CgogICAgPHA+VGhlcmUgaXMgbm8gbmVlZCB0byBtYW51YWxseSBlbmFibGUgY29ubmVjdGlvbiBwb29saW5nIGluCiAgICB0aGUgQXBhY2hlIGNvbmZpZ3VyYXRpb24uIEFueSBtb2R1bGUgdXNpbmcgdGhpcyBtb2R1bGUgZm9yCiAgICBhY2Nlc3MgdG8gTERBUCBzZXJ2aWNlcyB3aWxsIHNoYXJlIHRoZSBjb25uZWN0aW9uIHBvb2wuPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJjYWNoZSIgaWQ9ImNhY2hlIj5MREFQIENhY2hlPC9hPjwvaDI+CgogICAgPHA+Rm9yIGltcHJvdmVkIHBlcmZvcm1hbmNlLCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2xkYXAuaHRtbCI+bW9kX2xkYXA8L2E+PC9jb2RlPiB1c2VzIGFuIGFnZ3Jlc3NpdmUKICAgIGNhY2hpbmcgc3RyYXRlZ3kgdG8gbWluaW1pemUgdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IHRoZSBMREFQCiAgICBzZXJ2ZXIgbXVzdCBiZSBjb250YWN0ZWQuIENhY2hpbmcgY2FuIGVhc2lseSBkb3VibGUgb3IgdHJpcGxlCiAgICB0aGUgdGhyb3VnaHB1dCBvZiBBcGFjaGUgd2hlbiBpdCBpcyBzZXJ2aW5nIHBhZ2VzIHByb3RlY3RlZAogICAgd2l0aCBtb2RfYXV0aG56X2xkYXAuIEluIGFkZGl0aW9uLCB0aGUgbG9hZCBvbiB0aGUgTERBUCBzZXJ2ZXIKICAgIHdpbGwgYmUgc2lnbmlmaWNhbnRseSBkZWNyZWFzZWQuPC9wPgoKICAgIDxwPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+IHN1cHBvcnRzIHR3byB0eXBlcyBvZiBMREFQIGNhY2hpbmcgZHVyaW5nCiAgICB0aGUgc2VhcmNoL2JpbmQgcGhhc2Ugd2l0aCBhIDxlbT5zZWFyY2gvYmluZCBjYWNoZTwvZW0+IGFuZAogICAgZHVyaW5nIHRoZSBjb21wYXJlIHBoYXNlIHdpdGggdHdvIDxlbT5vcGVyYXRpb24KICAgIGNhY2hlczwvZW0+LiBFYWNoIExEQVAgVVJMIHRoYXQgaXMgdXNlZCBieSB0aGUgc2VydmVyIGhhcwogICAgaXRzIG93biBzZXQgb2YgdGhlc2UgdGhyZWUgY2FjaGVzLjwvcD4KCiAgICA8aDM+PGEgbmFtZT0ic2VhcmNoLWJpbmQiIGlkPSJzZWFyY2gtYmluZCI+VGhlIFNlYXJjaC9CaW5kIENhY2hlPC9hPjwvaDM+CiAgICAgIDxwPlRoZSBwcm9jZXNzIG9mIGRvaW5nIGEgc2VhcmNoIGFuZCB0aGVuIGEgYmluZCBpcyB0aGUKICAgICAgbW9zdCB0aW1lLWNvbnN1bWluZyBhc3BlY3Qgb2YgTERBUCBvcGVyYXRpb24sIGVzcGVjaWFsbHkgaWYKICAgICAgdGhlIGRpcmVjdG9yeSBpcyBsYXJnZS4gVGhlIHNlYXJjaC9iaW5kIGNhY2hlIGlzIHVzZWQgdG8KICAgICAgY2FjaGUgYWxsIHNlYXJjaGVzIHRoYXQgcmVzdWx0ZWQgaW4gc3VjY2Vzc2Z1bCBiaW5kcy4KICAgICAgTmVnYXRpdmUgcmVzdWx0cyAoPGVtPmkuZS48L2VtPiwgdW5zdWNjZXNzZnVsIHNlYXJjaGVzLCBvciBzZWFyY2hlcwogICAgICB0aGF0IGRpZCBub3QgcmVzdWx0IGluIGEgc3VjY2Vzc2Z1bCBiaW5kKSBhcmUgbm90IGNhY2hlZC4KICAgICAgVGhlIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBkZWNpc2lvbiBpcyB0aGF0IGNvbm5lY3Rpb25zIHdpdGgKICAgICAgaW52YWxpZCBjcmVkZW50aWFscyBhcmUgb25seSBhIHRpbnkgcGVyY2VudGFnZSBvZiB0aGUgdG90YWwKICAgICAgbnVtYmVyIG9mIGNvbm5lY3Rpb25zLCBzbyBieSBub3QgY2FjaGluZyBpbnZhbGlkCiAgICAgIGNyZWRlbnRpYWxzLCB0aGUgc2l6ZSBvZiB0aGUgY2FjaGUgaXMgcmVkdWNlZC48L3A+CgogICAgICA8cD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2xkYXAuaHRtbCI+bW9kX2xkYXA8L2E+PC9jb2RlPiBzdG9yZXMgdGhlIHVzZXJuYW1lLCB0aGUgRE4KICAgICAgcmV0cmlldmVkLCB0aGUgcGFzc3dvcmQgdXNlZCB0byBiaW5kLCBhbmQgdGhlIHRpbWUgb2YgdGhlIGJpbmQKICAgICAgaW4gdGhlIGNhY2hlLiBXaGVuZXZlciBhIG5ldyBjb25uZWN0aW9uIGlzIGluaXRpYXRlZCB3aXRoIHRoZQogICAgICBzYW1lIHVzZXJuYW1lLCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2xkYXAuaHRtbCI+bW9kX2xkYXA8L2E+PC9jb2RlPiBjb21wYXJlcyB0aGUgcGFzc3dvcmQKICAgICAgb2YgdGhlIG5ldyBjb25uZWN0aW9uIHdpdGggdGhlIHBhc3N3b3JkIGluIHRoZSBjYWNoZS4gSWYgdGhlCiAgICAgIHBhc3N3b3JkcyBtYXRjaCwgYW5kIGlmIHRoZSBjYWNoZWQgZW50cnkgaXMgbm90IHRvbyBvbGQsCiAgICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+IGJ5cGFzc2VzIHRoZSBzZWFyY2gvYmluZCBwaGFzZS48L3A+CgogICAgICA8cD5UaGUgc2VhcmNoIGFuZCBiaW5kIGNhY2hlIGlzIGNvbnRyb2xsZWQgd2l0aCB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2xkYXBjYWNoZWVudHJpZXMiPkxEQVBDYWNoZUVudHJpZXM8L2E+PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2xkYXBjYWNoZXR0bCI+TERBUENhY2hlVFRMPC9hPjwvY29kZT4gZGlyZWN0aXZlcy48L3A+CiAgICAKCiAgICA8aDM+PGEgbmFtZT0ib3BjYWNoZXMiIGlkPSJvcGNhY2hlcyI+T3BlcmF0aW9uIENhY2hlczwvYT48L2gzPgogICAgICA8cD5EdXJpbmcgYXR0cmlidXRlIGFuZCBkaXN0aW5ndWlzaGVkIG5hbWUgY29tcGFyaXNvbgogICAgICBmdW5jdGlvbnMsIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+IHVzZXMgdHdvIG9wZXJhdGlvbiBjYWNoZXMKICAgICAgdG8gY2FjaGUgdGhlIGNvbXBhcmUgb3BlcmF0aW9ucy4gVGhlIGZpcnN0IGNvbXBhcmUgY2FjaGUgaXMKICAgICAgdXNlZCB0byBjYWNoZSB0aGUgcmVzdWx0cyBvZiBjb21wYXJlcyBkb25lIHRvIHRlc3QgZm9yIExEQVAKICAgICAgZ3JvdXAgbWVtYmVyc2hpcC4gVGhlIHNlY29uZCBjb21wYXJlIGNhY2hlIGlzIHVzZWQgdG8gY2FjaGUKICAgICAgdGhlIHJlc3VsdHMgb2YgY29tcGFyaXNvbnMgZG9uZSBiZXR3ZWVuIGRpc3Rpbmd1aXNoZWQKICAgICAgbmFtZXMuPC9wPgoKICAgICAgPHA+VGhlIGJlaGF2aW9yIG9mIGJvdGggb2YgdGhlc2UgY2FjaGVzIGlzIGNvbnRyb2xsZWQgd2l0aAogICAgICB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2xkYXBvcGNhY2hlZW50cmllcyI+TERBUE9wQ2FjaGVFbnRyaWVzPC9hPjwvY29kZT4KICAgICAgYW5kIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNsZGFwb3BjYWNoZXR0bCI+TERBUE9wQ2FjaGVUVEw8L2E+PC9jb2RlPgogICAgICBkaXJlY3RpdmVzLjwvcD4KICAgIAoKICAgIDxoMz48YSBuYW1lPSJtb25pdG9yaW5nIiBpZD0ibW9uaXRvcmluZyI+TW9uaXRvcmluZyB0aGUgQ2FjaGU8L2E+PC9oMz4KICAgICAgPHA+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9sZGFwLmh0bWwiPm1vZF9sZGFwPC9hPjwvY29kZT4gaGFzIGEgY29udGVudCBoYW5kbGVyIHRoYXQgYWxsb3dzCiAgICAgIGFkbWluaXN0cmF0b3JzIHRvIG1vbml0b3IgdGhlIGNhY2hlIHBlcmZvcm1hbmNlLiBUaGUgbmFtZSBvZgogICAgICB0aGUgY29udGVudCBoYW5kbGVyIGlzIDxjb2RlPmxkYXAtc3RhdHVzPC9jb2RlPiwgc28gdGhlCiAgICAgIGZvbGxvd2luZyBkaXJlY3RpdmVzIGNvdWxkIGJlIHVzZWQgdG8gYWNjZXNzIHRoZQogICAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2xkYXAuaHRtbCI+bW9kX2xkYXA8L2E+PC9jb2RlPiBjYWNoZSBpbmZvcm1hdGlvbjo8L3A+CgogICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgICAmbHQ7TG9jYXRpb24gL3NlcnZlci9jYWNoZS1pbmZvJmd0OzxiciAvPgogICAgICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgICAgU2V0SGFuZGxlciBsZGFwLXN0YXR1czxiciAvPgogICAgICAgIDwvc3Bhbj4KICAgICAgICAmbHQ7L0xvY2F0aW9uJmd0OwogICAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgICAgPHA+QnkgZmV0Y2hpbmcgdGhlIFVSTCA8Y29kZT5odHRwOi8vc2VydmVybmFtZS9jYWNoZS1pbmZvPC9jb2RlPiwKICAgICAgdGhlIGFkbWluaXN0cmF0b3IgY2FuIGdldCBhIHN0YXR1cyByZXBvcnQgb2YgZXZlcnkgY2FjaGUgdGhhdCBpcyB1c2VkCiAgICAgIGJ5IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+IGNhY2hlLiBOb3RlIHRoYXQgaWYgQXBhY2hlIGRvZXMgbm90CiAgICAgIHN1cHBvcnQgc2hhcmVkIG1lbW9yeSwgdGhlbiBlYWNoIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+IGluc3RhbmNlIGhhcyBpdHMKICAgICAgb3duIGNhY2hlLCBzbyByZWxvYWRpbmcgdGhlIFVSTCB3aWxsIHJlc3VsdCBpbiBkaWZmZXJlbnQKICAgICAgaW5mb3JtYXRpb24gZWFjaCB0aW1lLCBkZXBlbmRpbmcgb24gd2hpY2ggPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4uL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4KICAgICAgaW5zdGFuY2UgcHJvY2Vzc2VzIHRoZSByZXF1ZXN0LjwvcD4KICAgIAo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJ1c2luZ3NzbHRscyIgaWQ9InVzaW5nc3NsdGxzIj5Vc2luZyBTU0wvVExTPC9hPjwvaDI+CgogICAgPHA+VGhlIGFiaWxpdHkgdG8gY3JlYXRlIGFuIFNTTCBhbmQgVExTIGNvbm5lY3Rpb25zIHRvIGFuIExEQVAgc2VydmVyIAogICAgaXMgZGVmaW5lZCBieSB0aGUgZGlyZWN0aXZlcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjJiMxMDsgICAgbGRhcHRydXN0ZWRnbG9iYWxjZXJ0Ij4KICAgIExEQVBUcnVzdGVkR2xvYmFsQ2VydDwvYT48L2NvZGU+LCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjJiMxMDsgICAgbGRhcHRydXN0ZWRjbGllbnRjZXJ0Ij4KICAgIExEQVBUcnVzdGVkQ2xpZW50Q2VydDwvYT48L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjJiMxMDsgICAgbGRhcHRydXN0ZWRtb2RlIj4KICAgIExEQVBUcnVzdGVkTW9kZTwvYT48L2NvZGU+LiBUaGVzZSBkaXJlY3RpdmVzIHNwZWNpZnkgdGhlIENBIGFuZAogICAgb3B0aW9uYWwgY2xpZW50IGNlcnRpZmljYXRlcyB0byBiZSB1c2VkLCBhcyB3ZWxsIGFzIHRoZSB0eXBlIG9mCiAgICBlbmNyeXB0aW9uIHRvIGJlIHVzZWQgb24gdGhlIGNvbm5lY3Rpb24gKG5vbmUsIFNTTCBvciBUTFMvU1RBUlRUTFMpLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgIyBFc3RhYmxpc2ggYW4gU1NMIExEQVAgY29ubmVjdGlvbiBvbiBwb3J0IDYzNi4gUmVxdWlyZXMgdGhhdCA8YnIgLz4KICAgICAgIyBtb2RfbGRhcCBhbmQgbW9kX2F1dGhuel9sZGFwIGJlIGxvYWRlZC4gQ2hhbmdlIHRoZSA8YnIgLz4KICAgICAgIyAieW91cmRvbWFpbi5leGFtcGxlLmNvbSIgdG8gbWF0Y2ggeW91ciBkb21haW4uPGJyIC8+CiAgICAgIDxiciAvPgogICAgICBMREFQVHJ1c3RlZEdsb2JhbENlcnQgQ0FfREVSIC9jZXJ0cy9jZXJ0ZmlsZS5kZXI8YnIgLz4KICAgICAgPGJyIC8+CiAgICAgICZsdDtMb2NhdGlvbiAvbGRhcC1zdGF0dXMmZ3Q7PGJyIC8+CiAgICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIFNldEhhbmRsZXIgbGRhcC1zdGF0dXM8YnIgLz4KICAgICAgICBPcmRlciBkZW55LGFsbG93PGJyIC8+CiAgICAgICAgRGVueSBmcm9tIGFsbDxiciAvPgogICAgICAgIEFsbG93IGZyb20geW91cmRvbWFpbi5leGFtcGxlLmNvbTxiciAvPgogICAgICAgIEF1dGhMREFQVVJMIGxkYXBzOi8vMTI3LjAuMC4xL2RjPWV4YW1wbGUsZGM9Y29tP3VpZD9vbmU8YnIgLz4KICAgICAgICBBdXRoekxEQVBBdXRob3JpdGF0aXZlIG9mZjxiciAvPgogICAgICAgIHJlcXVpcmUgdmFsaWQtdXNlcjxiciAvPgogICAgICA8L3NwYW4+CiAgICAgICZsdDsvTG9jYXRpb24mZ3Q7CiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAjIEVzdGFibGlzaCBhIFRMUyBMREFQIGNvbm5lY3Rpb24gb24gcG9ydCAzODkuIFJlcXVpcmVzIHRoYXQgPGJyIC8+CiAgICAgICMgbW9kX2xkYXAgYW5kIG1vZF9hdXRobnpfbGRhcCBiZSBsb2FkZWQuIENoYW5nZSB0aGUgPGJyIC8+CiAgICAgICMgInlvdXJkb21haW4uZXhhbXBsZS5jb20iIHRvIG1hdGNoIHlvdXIgZG9tYWluLjxiciAvPgogICAgICA8YnIgLz4KICAgICAgTERBUFRydXN0ZWRHbG9iYWxDZXJ0IENBX0RFUiAvY2VydHMvY2VydGZpbGUuZGVyPGJyIC8+CiAgICAgIDxiciAvPgogICAgICAmbHQ7TG9jYXRpb24gL2xkYXAtc3RhdHVzJmd0OzxiciAvPgogICAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBTZXRIYW5kbGVyIGxkYXAtc3RhdHVzPGJyIC8+CiAgICAgICAgT3JkZXIgZGVueSxhbGxvdzxiciAvPgogICAgICAgIERlbnkgZnJvbSBhbGw8YnIgLz4KICAgICAgICBBbGxvdyBmcm9tIHlvdXJkb21haW4uZXhhbXBsZS5jb208YnIgLz4KICAgICAgICBBdXRoTERBUFVSTCBsZGFwOi8vMTI3LjAuMC4xL2RjPWV4YW1wbGUsZGM9Y29tP3VpZD9vbmUgVExTPGJyIC8+CiAgICAgICAgQXV0aHpMREFQQXV0aG9yaXRhdGl2ZSBvZmY8YnIgLz4KICAgICAgICByZXF1aXJlIHZhbGlkLXVzZXI8YnIgLz4KICAgICAgPC9zcGFuPgogICAgICAmbHQ7L0xvY2F0aW9uJmd0OwogICAgPC9jb2RlPjwvcD48L2Rpdj4KCjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InNldHRpbmdjZXJ0cyIgaWQ9InNldHRpbmdjZXJ0cyI+U1NML1RMUyBDZXJ0aWZpY2F0ZXM8L2E+PC9oMj4KCiAgICA8cD5UaGUgZGlmZmVyZW50IExEQVAgU0RLcyBoYXZlIHdpZGVseSBkaWZmZXJlbnQgbWV0aG9kcyBvZiBzZXR0aW5nCiAgICBhbmQgaGFuZGxpbmcgYm90aCBDQSBhbmQgY2xpZW50IHNpZGUgY2VydGlmaWNhdGVzLjwvcD4KCiAgICA8cD5JZiB5b3UgaW50ZW5kIHRvIHVzZSBTU0wgb3IgVExTLCByZWFkIHRoaXMgc2VjdGlvbiBDQVJFRlVMTFkgc28gYXMgdG8KICAgIHVuZGVyc3RhbmQgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gY29uZmlndXJhdGlvbnMgb24gdGhlIGRpZmZlcmVudCBMREFQCiAgICB0b29sa2l0cyBzdXBwb3J0ZWQuPC9wPgoKICAgIDxoMz48YSBuYW1lPSJzZXR0aW5nY2VydHMtbmV0c2NhcGUiIGlkPSJzZXR0aW5nY2VydHMtbmV0c2NhcGUiPk5ldHNjYXBlL01vemlsbGEvaVBsYW5ldCBTREs8L2E+PC9oMz4KICAgICAgICA8cD5DQSBjZXJ0aWZpY2F0ZXMgYXJlIHNwZWNpZmllZCB3aXRoaW4gYSBmaWxlIGNhbGxlZCBjZXJ0Ny5kYi4KICAgICAgICBUaGUgU0RLIHdpbGwgbm90IHRhbGsgdG8gYW55IExEQVAgc2VydmVyIHdob3NlIGNlcnRpZmljYXRlIHdhcwogICAgICAgIG5vdCBzaWduZWQgYnkgYSBDQSBzcGVjaWZpZWQgaW4gdGhpcyBmaWxlLiBJZgogICAgICAgIGNsaWVudCBjZXJ0aWZpY2F0ZXMgYXJlIHJlcXVpcmVkLCBhbiBvcHRpb25hbCBrZXkzLmRiIGZpbGUgbWF5CiAgICAgICAgYmUgc3BlY2lmaWVkIHdpdGggYW4gb3B0aW9uYWwgcGFzc3dvcmQuIFRoZSBzZWNtb2QgZmlsZSBjYW4gYmUKICAgICAgICBzcGVjaWZpZWQgaWYgcmVxdWlyZWQuIFRoZXNlIGZpbGVzIGFyZSBpbiB0aGUgc2FtZSBmb3JtYXQgYXMKICAgICAgICB1c2VkIGJ5IHRoZSBOZXRzY2FwZSBDb21tdW5pY2F0b3Igb3IgTW96aWxsYSB3ZWIgYnJvd3NlcnMuIFRoZSBlYXNpZXN0CiAgICAgICAgd2F5IHRvIG9idGFpbiB0aGVzZSBmaWxlcyBpcyB0byBncmFiIHRoZW0gZnJvbSB5b3VyIGJyb3dzZXIKICAgICAgICBpbnN0YWxsYXRpb24uPC9wPgoKICAgICAgICA8cD5DbGllbnQgY2VydGlmaWNhdGVzIGFyZSBzcGVjaWZpZWQgcGVyIGNvbm5lY3Rpb24gdXNpbmcgdGhlCiAgICAgICAgTERBUFRydXN0ZWRDbGllbnRDZXJ0IGRpcmVjdGl2ZSBieSByZWZlcnJpbmcKICAgICAgICB0byB0aGUgY2VydGlmaWNhdGUgIm5pY2tuYW1lIi4gQW4gb3B0aW9uYWwgcGFzc3dvcmQgbWF5IGJlCiAgICAgICAgc3BlY2lmaWVkIHRvIHVubG9jayB0aGUgY2VydGlmaWNhdGUncyBwcml2YXRlIGtleS48L3A+CgogICAgICAgIDxwPlRoZSBTREsgc3VwcG9ydHMgU1NMIG9ubHkuIEFuIGF0dGVtcHQgdG8gdXNlIFNUQVJUVExTIHdpbGwgY2F1c2UKICAgICAgICBhbiBlcnJvciB3aGVuIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBjb250YWN0IHRoZSBMREFQIHNlcnZlciBhdAogICAgICAgIHJ1bnRpbWUuPC9wPgoKICAgICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgICAgICAgIyBTcGVjaWZ5IGEgTmV0c2NhcGUgQ0EgY2VydGlmaWNhdGUgZmlsZTxiciAvPgogICAgICAgICAgICBMREFQVHJ1c3RlZEdsb2JhbENlcnQgQ0FfQ0VSVDdfREIgL2NlcnRzL2NlcnQ3LmRiPGJyIC8+CiAgICAgICAgICAgICMgU3BlY2lmeSBhbiBvcHRpb25hbCBrZXkzLmRiIGZpbGUgZm9yIGNsaWVudCBjZXJ0aWZpY2F0ZSBzdXBwb3J0PGJyIC8+CiAgICAgICAgICAgIExEQVBUcnVzdGVkR2xvYmFsQ2VydCBDRVJUX0tFWTNfREIgL2NlcnRzL2tleTMuZGI8YnIgLz4KICAgICAgICAgICAgIyBTcGVjaWZ5IHRoZSBzZWNtb2QgZmlsZSBpZiByZXF1aXJlZDxiciAvPgogICAgICAgICAgICBMREFQVHJ1c3RlZEdsb2JhbENlcnQgQ0FfU0VDTU9EIC9jZXJ0cy9zZWNtb2Q8YnIgLz4KICAgICAgICAgICAgJmx0O0xvY2F0aW9uIC9sZGFwLXN0YXR1cyZndDs8YnIgLz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgICAgICAgICBTZXRIYW5kbGVyIGxkYXAtc3RhdHVzPGJyIC8+CiAgICAgICAgICAgICAgICBPcmRlciBkZW55LGFsbG93PGJyIC8+CiAgICAgICAgICAgICAgICBEZW55IGZyb20gYWxsPGJyIC8+CiAgICAgICAgICAgICAgICBBbGxvdyBmcm9tIHlvdXJkb21haW4uZXhhbXBsZS5jb208YnIgLz4KICAgICAgICAgICAgICAgIExEQVBUcnVzdGVkQ2xpZW50Q2VydCBDRVJUX05JQ0tOQU1FICZsdDtuaWNrbmFtZSZndDsgW3Bhc3N3b3JkXTxiciAvPgogICAgICAgICAgICAgICAgQXV0aExEQVBVUkwgbGRhcHM6Ly8xMjcuMC4wLjEvZGM9ZXhhbXBsZSxkYz1jb20/dWlkP29uZTxiciAvPgogICAgICAgICAgICAgICAgQXV0aHpMREFQQXV0aG9yaXRhdGl2ZSBvZmY8YnIgLz4KICAgICAgICAgICAgICAgIHJlcXVpcmUgdmFsaWQtdXNlcjxiciAvPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICZsdDsvTG9jYXRpb24mZ3Q7CiAgICAgICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAKCiAgICA8aDM+PGEgbmFtZT0ic2V0dGluZ2NlcnRzLW5vdmVsbCIgaWQ9InNldHRpbmdjZXJ0cy1ub3ZlbGwiPk5vdmVsbCBTREs8L2E+PC9oMz4KCiAgICAgICAgPHA+T25lIG9yIG1vcmUgQ0EgY2VydGlmaWNhdGVzIG11c3QgYmUgc3BlY2lmaWVkIGZvciB0aGUgTm92ZWxsCiAgICAgICAgU0RLIHRvIHdvcmsgY29ycmVjdGx5LiBUaGVzZSBjZXJ0aWZpY2F0ZXMgY2FuIGJlIHNwZWNpZmllZCBhcwogICAgICAgIGJpbmFyeSBERVIgb3IgQmFzZTY0IChQRU0pIGVuY29kZWQgZmlsZXMuPC9wPgoKICAgICAgICA8cD5Ob3RlOiBDbGllbnQgY2VydGlmaWNhdGVzIGFyZSBzcGVjaWZpZWQgZ2xvYmFsbHkgcmF0aGVyIHRoYW4gcGVyCiAgICAgICAgY29ubmVjdGlvbiwgYW5kIHNvIG11c3QgYmUgc3BlY2lmaWVkIHdpdGggdGhlIExEQVBUcnVzdGVkR2xvYmFsQ2VydAogICAgICAgIGRpcmVjdGl2ZSBhcyBiZWxvdy4gVHJ5aW5nIHRvIHNldCBjbGllbnQgY2VydGlmaWNhdGVzIHZpYSB0aGUKICAgICAgICBMREFQVHJ1c3RlZENsaWVudENlcnQgZGlyZWN0aXZlIHdpbGwgY2F1c2UgYW4gZXJyb3IgdG8gYmUgbG9nZ2VkCiAgICAgICAgd2hlbiBhbiBhdHRlbXB0IGlzIG1hZGUgdG8gY29ubmVjdCB0byB0aGUgTERBUCBzZXJ2ZXIuLjwvcD4KCiAgICAgICAgPHA+VGhlIFNESyBzdXBwb3J0cyBib3RoIFNTTCBhbmQgU1RBUlRUTFMsIHNldCB1c2luZyB0aGUKICAgICAgICBMREFQVHJ1c3RlZE1vZGUgcGFyYW1ldGVyLiBJZiBhbiBsZGFwczovLyBVUkwgaXMgc3BlY2lmaWVkLAogICAgICAgIFNTTCBtb2RlIGlzIGZvcmNlZCwgb3ZlcnJpZGUgdGhpcyBkaXJlY3RpdmUuPC9wPgoKICAgICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgICAgICAgICMgU3BlY2lmeSB0d28gQ0EgY2VydGlmaWNhdGUgZmlsZXM8YnIgLz4KICAgICAgICAgICAgIExEQVBUcnVzdGVkR2xvYmFsQ2VydCBDQV9ERVIgL2NlcnRzL2NhY2VydDEuZGVyPGJyIC8+CiAgICAgICAgICAgICBMREFQVHJ1c3RlZEdsb2JhbENlcnQgQ0FfQkFTRTY0IC9jZXJ0cy9jYWNlcnQyLnBlbTxiciAvPgogICAgICAgICAgICAgIyBTcGVjaWZ5IGEgY2xpZW50IGNlcnRpZmljYXRlIGZpbGUgYW5kIGtleTxiciAvPgogICAgICAgICAgICAgTERBUFRydXN0ZWRHbG9iYWxDZXJ0IENFUlRfQkFTRTY0IC9jZXJ0cy9jZXJ0MS5wZW08YnIgLz4KICAgICAgICAgICAgIExEQVBUcnVzdGVkR2xvYmFsQ2VydCBLRVlfQkFTRTY0IC9jZXJ0cy9rZXkxLnBlbSBbcGFzc3dvcmRdPGJyIC8+CiAgICAgICAgICAgICAjIERvIG5vdCB1c2UgdGhpcyBkaXJlY3RpdmUsIGFzIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3I8YnIgLz4KICAgICAgICAgICAgICNMREFQVHJ1c3RlZENsaWVudENlcnQgQ0VSVF9CQVNFNjQgL2NlcnRzL2NlcnQxLnBlbTxiciAvPgogICAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgCgogICAgPGgzPjxhIG5hbWU9InNldHRpbmdjZXJ0cy1vcGVubGRhcCIgaWQ9InNldHRpbmdjZXJ0cy1vcGVubGRhcCI+T3BlbkxEQVAgU0RLPC9hPjwvaDM+CgogICAgICAgIDxwPk9uZSBvciBtb3JlIENBIGNlcnRpZmljYXRlcyBtdXN0IGJlIHNwZWNpZmllZCBmb3IgdGhlIE9wZW5MREFQCiAgICAgICAgU0RLIHRvIHdvcmsgY29ycmVjdGx5LiBUaGVzZSBjZXJ0aWZpY2F0ZXMgY2FuIGJlIHNwZWNpZmllZCBhcwogICAgICAgIGJpbmFyeSBERVIgb3IgQmFzZTY0IChQRU0pIGVuY29kZWQgZmlsZXMuPC9wPgoKICAgICAgICA8cD5DbGllbnQgY2VydGlmaWNhdGVzIGFyZSBzcGVjaWZpZWQgcGVyIGNvbm5lY3Rpb24gdXNpbmcgdGhlCiAgICAgICAgTERBUFRydXN0ZWRDbGllbnRDZXJ0IGRpcmVjdGl2ZS48L3A+CgogICAgICAgIDxwPlRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgU0RLIGNsYWltcyB0byBzdXBwb3J0IGJvdGggU1NMIGFuZAogICAgICAgIFNUQVJUVExTLCBob3dldmVyIFNUQVJUVExTIGRvZXMgbm90IHNlZW0gdG8gd29yayBvbiBhbGwgdmVyc2lvbnMKICAgICAgICBvZiB0aGUgU0RLLiBUaGUgU1NML1RMUyBtb2RlIGNhbiBiZSBzZXQgdXNpbmcgdGhlCiAgICAgICAgTERBUFRydXN0ZWRNb2RlIHBhcmFtZXRlci4gSWYgYW4gbGRhcHM6Ly8gVVJMIGlzIHNwZWNpZmllZCwKICAgICAgICBTU0wgbW9kZSBpcyBmb3JjZWQuIFRoZSBPcGVuTERBUCBkb2N1bWVudGF0aW9uIG5vdGVzIHRoYXQgU1NMCiAgICAgICAgKGxkYXBzOi8vKSBzdXBwb3J0IGhhcyBiZWVuIGRlcHJlY2F0ZWQgdG8gYmUgcmVwbGFjZWQgd2l0aCBUTFMsCiAgICAgICAgYWx0aG91Z2ggdGhlIFNTTCBmdW5jdGlvbmFsaXR5IHN0aWxsIHdvcmtzLjwvcD4KCiAgICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICAgICAgICAjIFNwZWNpZnkgdHdvIENBIGNlcnRpZmljYXRlIGZpbGVzPGJyIC8+CiAgICAgICAgICAgICBMREFQVHJ1c3RlZEdsb2JhbENlcnQgQ0FfREVSIC9jZXJ0cy9jYWNlcnQxLmRlcjxiciAvPgogICAgICAgICAgICAgTERBUFRydXN0ZWRHbG9iYWxDZXJ0IENBX0JBU0U2NCAvY2VydHMvY2FjZXJ0Mi5wZW08YnIgLz4KICAgICAgICAgICAgJmx0O0xvY2F0aW9uIC9sZGFwLXN0YXR1cyZndDs8YnIgLz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgICAgICAgICBTZXRIYW5kbGVyIGxkYXAtc3RhdHVzPGJyIC8+CiAgICAgICAgICAgICAgICBPcmRlciBkZW55LGFsbG93PGJyIC8+CiAgICAgICAgICAgICAgICBEZW55IGZyb20gYWxsPGJyIC8+CiAgICAgICAgICAgICAgICBBbGxvdyBmcm9tIHlvdXJkb21haW4uZXhhbXBsZS5jb208YnIgLz4KICAgICAgICAgICAgICAgIExEQVBUcnVzdGVkQ2xpZW50Q2VydCBDRVJUX0JBU0U2NCAvY2VydHMvY2VydDEucGVtPGJyIC8+CiAgICAgICAgICAgICAgICBMREFQVHJ1c3RlZENsaWVudENlcnQgS0VZX0JBU0U2NCAvY2VydHMva2V5MS5wZW08YnIgLz4KICAgICAgICAgICAgICAgIEF1dGhMREFQVVJMIGxkYXBzOi8vMTI3LjAuMC4xL2RjPWV4YW1wbGUsZGM9Y29tP3VpZD9vbmU8YnIgLz4KICAgICAgICAgICAgICAgIEF1dGh6TERBUEF1dGhvcml0YXRpdmUgb2ZmPGJyIC8+CiAgICAgICAgICAgICAgICByZXF1aXJlIHZhbGlkLXVzZXI8YnIgLz4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAmbHQ7L0xvY2F0aW9uJmd0OwogICAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgCgogICAgPGgzPjxhIG5hbWU9InNldHRpbmdjZXJ0cy1zb2xhcmlzIiBpZD0ic2V0dGluZ2NlcnRzLXNvbGFyaXMiPlNvbGFyaXMgU0RLPC9hPjwvaDM+CgogICAgICAgIDxwPlNTTC9UTFMgZm9yIHRoZSBuYXRpdmUgU29sYXJpcyBMREFQIGxpYnJhcmllcyBpcyBub3QgeWV0CiAgICAgICAgc3VwcG9ydGVkLiBJZiByZXF1aXJlZCwgaW5zdGFsbCBhbmQgdXNlIHRoZSBPcGVuTERBUCBsaWJyYXJpZXMKICAgICAgICBpbnN0ZWFkLjwvcD4KCiAgICAKCiAgICA8aDM+PGEgbmFtZT0ic2V0dGluZ2NlcnRzLW1pY3Jvc29mdCIgaWQ9InNldHRpbmdjZXJ0cy1taWNyb3NvZnQiPk1pY3Jvc29mdCBTREs8L2E+PC9oMz4KCiAgICAgICAgPHA+U1NML1RMUyBjZXJ0aWZpY2F0ZSBjb25maWd1cmF0aW9uIGZvciB0aGUgbmF0aXZlIE1pY3Jvc29mdAogICAgICAgIExEQVAgbGlicmFyaWVzIGlzIGRvbmUgaW5zaWRlIHRoZSBzeXN0ZW0gcmVnaXN0cnksIGFuZCBubwogICAgICAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBhcmUgcmVxdWlyZWQuPC9wPgoKICAgICAgICA8cD5Cb3RoIFNTTCBhbmQgVExTIGFyZSBzdXBwb3J0ZWQgYnkgdXNpbmcgdGhlIGxkYXBzOi8vIFVSTAogICAgICAgIGZvcm1hdCwgb3IgYnkgdXNpbmcgdGhlIExEQVBUcnVzdGVkTW9kZSBkaXJlY3RpdmUgYWNjb3JkaW5nbHkuPC9wPgoKICAgICAgICA8cD5Ob3RlOiBUaGUgc3RhdHVzIG9mIHN1cHBvcnQgZm9yIGNsaWVudCBjZXJ0aWZpY2F0ZXMgaXMgbm90IHlldCBrbm93bgogICAgICAgIGZvciB0aGlzIHRvb2xraXQuPC9wPgoKICAgIAoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkxEQVBDYWNoZUVudHJpZXMiIGlkPSJMREFQQ2FjaGVFbnRyaWVzIj5MREFQQ2FjaGVFbnRyaWVzPC9hPiA8YSBuYW1lPSJsZGFwY2FjaGVlbnRyaWVzIiBpZD0ibGRhcGNhY2hlZW50cmllcyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+TWF4aW11bSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgcHJpbWFyeSBMREFQIGNhY2hlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkxEQVBDYWNoZUVudHJpZXMgPHZhcj5udW1iZXI8L3Zhcj48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUENhY2hlRW50cmllcyAxMDI0PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+U3BlY2lmaWVzIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIHByaW1hcnkgTERBUCBjYWNoZS4gVGhpcwogICAgY2FjaGUgY29udGFpbnMgc3VjY2Vzc2Z1bCBzZWFyY2gvYmluZHMuIFNldCBpdCB0byAwIHRvIHR1cm4gb2ZmCiAgICBzZWFyY2gvYmluZCBjYWNoaW5nLiBUaGUgZGVmYXVsdCBzaXplIGlzIDEwMjQgY2FjaGVkCiAgICBzZWFyY2hlcy48L3A+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iTERBUENhY2hlVFRMIiBpZD0iTERBUENhY2hlVFRMIj5MREFQQ2FjaGVUVEw8L2E+IDxhIG5hbWU9ImxkYXBjYWNoZXR0bCIgaWQ9ImxkYXBjYWNoZXR0bCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+VGltZSB0aGF0IGNhY2hlZCBpdGVtcyByZW1haW4gdmFsaWQ8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUENhY2hlVFRMIDx2YXI+c2Vjb25kczwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5MREFQQ2FjaGVUVEwgNjAwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+U3BlY2lmaWVzIHRoZSB0aW1lIChpbiBzZWNvbmRzKSB0aGF0IGFuIGl0ZW0gaW4gdGhlCiAgICBzZWFyY2gvYmluZCBjYWNoZSByZW1haW5zIHZhbGlkLiBUaGUgZGVmYXVsdCBpcyA2MDAgc2Vjb25kcyAoMTAKICAgIG1pbnV0ZXMpLjwvcD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJMREFQQ29ubmVjdGlvblRpbWVvdXQiIGlkPSJMREFQQ29ubmVjdGlvblRpbWVvdXQiPkxEQVBDb25uZWN0aW9uVGltZW91dDwvYT4gPGEgbmFtZT0ibGRhcGNvbm5lY3Rpb250aW1lb3V0IiBpZD0ibGRhcGNvbm5lY3Rpb250aW1lb3V0Ij5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TcGVjaWZpZXMgdGhlIHNvY2tldCBjb25uZWN0aW9uIHRpbWVvdXQgaW4gc2Vjb25kczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5MREFQQ29ubmVjdGlvblRpbWVvdXQgPHZhcj5zZWNvbmRzPC92YXI+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+U3BlY2lmaWVzIHRoZSB0aW1lb3V0IHZhbHVlIChpbiBzZWNvbmRzKSBpbiB3aGljaCB0aGUgbW9kdWxlIHdpbGwKICAgIGF0dGVtcHQgdG8gY29ubmVjdCB0byB0aGUgTERBUCBzZXJ2ZXIuICBJZiBhIGNvbm5lY3Rpb24gaXMgbm90CiAgICBzdWNjZXNzZnVsIHdpdGggdGhlIHRpbWVvdXQgcGVyaW9kLCBlaXRoZXIgYW4gZXJyb3Igd2lsbCBiZSAKICAgIHJldHVybmVkIG9yIHRoZSBtb2R1bGUgd2lsbCBhdHRlbXB0IHRvIGNvbm5lY3QgdG8gYSBzZWNvbmRhcnkgTERBUCAKICAgIHNlcnZlciBpZiBvbmUgaXMgc3BlY2lmaWVkLiBUaGUgZGVmYXVsdCBpcyAxMCBzZWNvbmRzLjwvcD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJMREFQT3BDYWNoZUVudHJpZXMiIGlkPSJMREFQT3BDYWNoZUVudHJpZXMiPkxEQVBPcENhY2hlRW50cmllczwvYT4gPGEgbmFtZT0ibGRhcG9wY2FjaGVlbnRyaWVzIiBpZD0ibGRhcG9wY2FjaGVlbnRyaWVzIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5OdW1iZXIgb2YgZW50cmllcyB1c2VkIHRvIGNhY2hlIExEQVAgY29tcGFyZSAKb3BlcmF0aW9uczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5MREFQT3BDYWNoZUVudHJpZXMgPHZhcj5udW1iZXI8L3Zhcj48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUE9wQ2FjaGVFbnRyaWVzIDEwMjQ8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2xkYXA8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5UaGlzIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9sZGFwLmh0bWwiPm1vZF9sZGFwPC9hPjwvY29kZT4KICAgIHdpbGwgdXNlIHRvIGNhY2hlIExEQVAgY29tcGFyZSBvcGVyYXRpb25zLiBUaGUgZGVmYXVsdCBpcyAxMDI0CiAgICBlbnRyaWVzLiAgU2V0dGluZyBpdCB0byAwIGRpc2FibGVzIG9wZXJhdGlvbiBjYWNoaW5nLjwvcD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJMREFQT3BDYWNoZVRUTCIgaWQ9IkxEQVBPcENhY2hlVFRMIj5MREFQT3BDYWNoZVRUTDwvYT4gPGEgbmFtZT0ibGRhcG9wY2FjaGV0dGwiIGlkPSJsZGFwb3BjYWNoZXR0bCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+VGltZSB0aGF0IGVudHJpZXMgaW4gdGhlIG9wZXJhdGlvbiBjYWNoZSByZW1haW4KdmFsaWQ8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUE9wQ2FjaGVUVEwgPHZhcj5zZWNvbmRzPC92YXI+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkxEQVBPcENhY2hlVFRMIDYwMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfbGRhcDwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlNwZWNpZmllcyB0aGUgdGltZSAoaW4gc2Vjb25kcykgdGhhdCBlbnRyaWVzIGluIHRoZQogICAgb3BlcmF0aW9uIGNhY2hlIHJlbWFpbiB2YWxpZC4gVGhlIGRlZmF1bHQgaXMgNjAwIHNlY29uZHMuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkxEQVBTaGFyZWRDYWNoZUZpbGUiIGlkPSJMREFQU2hhcmVkQ2FjaGVGaWxlIj5MREFQU2hhcmVkQ2FjaGVGaWxlPC9hPiA8YSBuYW1lPSJsZGFwc2hhcmVkY2FjaGVmaWxlIiBpZD0ibGRhcHNoYXJlZGNhY2hlZmlsZSI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+U2V0cyB0aGUgc2hhcmVkIG1lbW9yeSBjYWNoZSBmaWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkxEQVBTaGFyZWRDYWNoZUZpbGUgPHZhcj5kaXJlY3RvcnktcGF0aC9maWxlbmFtZTwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfbGRhcDwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlNwZWNpZmllcyB0aGUgZGlyZWN0b3J5IHBhdGggYW5kIGZpbGUgbmFtZSBvZiB0aGUgc2hhcmVkIG1lbW9yeQogICAgY2FjaGUgZmlsZS4gSWYgbm90IHNldCwgYW5vbnltb3VzIHNoYXJlZCBtZW1vcnkgd2lsbCBiZSB1c2VkIGlmIHRoZQogICAgcGxhdGZvcm0gc3VwcG9ydHMgaXQuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkxEQVBTaGFyZWRDYWNoZVNpemUiIGlkPSJMREFQU2hhcmVkQ2FjaGVTaXplIj5MREFQU2hhcmVkQ2FjaGVTaXplPC9hPiA8YSBuYW1lPSJsZGFwc2hhcmVkY2FjaGVzaXplIiBpZD0ibGRhcHNoYXJlZGNhY2hlc2l6ZSI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+U2l6ZSBpbiBieXRlcyBvZiB0aGUgc2hhcmVkLW1lbW9yeSBjYWNoZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5MREFQU2hhcmVkQ2FjaGVTaXplIDx2YXI+Ynl0ZXM8L3Zhcj48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUFNoYXJlZENhY2hlU2l6ZSAxMDI0MDA8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2xkYXA8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5TcGVjaWZpZXMgdGhlIG51bWJlciBvZiBieXRlcyB0byBhbGxvY2F0ZSBmb3IgdGhlIHNoYXJlZAogICAgbWVtb3J5IGNhY2hlLiBUaGUgZGVmYXVsdCBpcyAxMDBrYi4gSWYgc2V0IHRvIDAsIHNoYXJlZCBtZW1vcnkKICAgIGNhY2hpbmcgd2lsbCBub3QgYmUgdXNlZC48L3A+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iTERBUFRydXN0ZWRDbGllbnRDZXJ0IiBpZD0iTERBUFRydXN0ZWRDbGllbnRDZXJ0Ij5MREFQVHJ1c3RlZENsaWVudENlcnQ8L2E+IDxhIG5hbWU9ImxkYXB0cnVzdGVkY2xpZW50Y2VydCIgaWQ9ImxkYXB0cnVzdGVkY2xpZW50Y2VydCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+U2V0cyB0aGUgZmlsZSBjb250YWluaW5nIG9yIG5pY2tuYW1lIHJlZmVycmluZyB0byBhIHBlcgpjb25uZWN0aW9uIGNsaWVudCBjZXJ0aWZpY2F0ZS4gTm90IGFsbCBMREFQIHRvb2xraXRzIHN1cHBvcnQgcGVyCmNvbm5lY3Rpb24gY2xpZW50IGNlcnRpZmljYXRlcy48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUFRydXN0ZWRDbGllbnRDZXJ0IDx2YXI+dHlwZTwvdmFyPiA8dmFyPmRpcmVjdG9yeS1wYXRoL2ZpbGVuYW1lL25pY2tuYW1lPC92YXI+IDx2YXI+W3Bhc3N3b3JkXTwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3QsIGRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfbGRhcDwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPkl0IHNwZWNpZmllcyB0aGUgZGlyZWN0b3J5IHBhdGgsIGZpbGUgbmFtZSBvciBuaWNrbmFtZSBvZiBhCiAgICBwZXIgY29ubmVjdGlvbiBjbGllbnQgY2VydGlmaWNhdGUgdXNlZCB3aGVuIGVzdGFibGlzaGluZyBhbiBTU0wKICAgIG9yIFRMUyBjb25uZWN0aW9uIHRvIGFuIExEQVAgc2VydmVyLiBEaWZmZXJlbnQgbG9jYXRpb25zIG9yCiAgICBkaXJlY3RvcmllcyBtYXkgaGF2ZSB0aGVpciBvd24gaW5kZXBlbmRhbnQgY2xpZW50IGNlcnRpZmljYXRlCiAgICBzZXR0aW5ncy4gU29tZSBMREFQIHRvb2xraXRzIChub3RhYmx5IE5vdmVsbCkKICAgIGRvIG5vdCBzdXBwb3J0IHBlciBjb25uZWN0aW9uIGNsaWVudCBjZXJ0aWZpY2F0ZXMsIGFuZCB3aWxsIHRocm93IGFuCiAgICBlcnJvciBvbiBMREFQIHNlcnZlciBjb25uZWN0aW9uIGlmIHlvdSB0cnkgdG8gdXNlIHRoaXMgZGlyZWN0aXZlCiAgICAoVXNlIHRoZSBMREFQVHJ1c3RlZEdsb2JhbENlcnQgZGlyZWN0aXZlIGluc3RlYWQgZm9yIE5vdmVsbCBjbGllbnQKICAgIGNlcnRpZmljYXRlcyAtIFNlZSB0aGUgU1NML1RMUyBjZXJ0aWZpY2F0ZSBndWlkZSBhYm92ZSBmb3IgZGV0YWlscykuCiAgICBUaGUgdHlwZSBzcGVjaWZpZXMgdGhlIGtpbmQgb2YgY2VydGlmaWNhdGUgcGFyYW1ldGVyIGJlaW5nCiAgICBzZXQsIGRlcGVuZGluZyBvbiB0aGUgTERBUCB0b29sa2l0IGJlaW5nIHVzZWQuIFN1cHBvcnRlZCB0eXBlcyBhcmU6PC9wPgogICAgPHVsPgogICAgICA8bGk+Q0VSVF9ERVIgLSBiaW5hcnkgREVSIGVuY29kZWQgY2xpZW50IGNlcnRpZmljYXRlPC9saT4KICAgICAgPGxpPkNFUlRfQkFTRTY0IC0gUEVNIGVuY29kZWQgY2xpZW50IGNlcnRpZmljYXRlPC9saT4KICAgICAgPGxpPkNFUlRfTklDS05BTUUgLSBDbGllbnQgY2VydGlmaWNhdGUgIm5pY2tuYW1lIiAoTmV0c2NhcGUgU0RLKTwvbGk+CiAgICAgIDxsaT5LRVlfREVSIC0gYmluYXJ5IERFUiBlbmNvZGVkIHByaXZhdGUga2V5PC9saT4KICAgICAgPGxpPktFWV9CQVNFNjQgLSBQRU0gZW5jb2RlZCBwcml2YXRlIGtleTwvbGk+CiAgICA8L3VsPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkxEQVBUcnVzdGVkR2xvYmFsQ2VydCIgaWQ9IkxEQVBUcnVzdGVkR2xvYmFsQ2VydCI+TERBUFRydXN0ZWRHbG9iYWxDZXJ0PC9hPiA8YSBuYW1lPSJsZGFwdHJ1c3RlZGdsb2JhbGNlcnQiIGlkPSJsZGFwdHJ1c3RlZGdsb2JhbGNlcnQiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNldHMgdGhlIGZpbGUgb3IgZGF0YWJhc2UgY29udGFpbmluZyBnbG9iYWwgdHJ1c3RlZApDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgb3IgZ2xvYmFsIGNsaWVudCBjZXJ0aWZpY2F0ZXM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUFRydXN0ZWRHbG9iYWxDZXJ0IDx2YXI+dHlwZTwvdmFyPiA8dmFyPmRpcmVjdG9yeS1wYXRoL2ZpbGVuYW1lPC92YXI+IDx2YXI+W3Bhc3N3b3JkXTwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfbGRhcDwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPkl0IHNwZWNpZmllcyB0aGUgZGlyZWN0b3J5IHBhdGggYW5kIGZpbGUgbmFtZSBvZiB0aGUgdHJ1c3RlZCBDQQogICAgY2VydGlmaWNhdGVzIGFuZC9vciBzeXN0ZW0gd2lkZSBjbGllbnQgY2VydGlmaWNhdGVzIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+CiAgICBzaG91bGQgdXNlIHdoZW4gZXN0YWJsaXNoaW5nIGFuIFNTTCBvciBUTFMgY29ubmVjdGlvbiB0byBhbiBMREFQCiAgICBzZXJ2ZXIuIE5vdGUgdGhhdCBhbGwgY2VydGlmaWNhdGUgaW5mb3JtYXRpb24gc3BlY2lmaWVkIHVzaW5nIHRoaXMgZGlyZWN0aXZlCiAgICBpcyBhcHBsaWVkIGdsb2JhbGx5IHRvIHRoZSBlbnRpcmUgc2VydmVyIGluc3RhbGxhdGlvbi4gU29tZSBMREFQIHRvb2xraXRzCiAgICAobm90YWJseSBOb3ZlbGwpIHJlcXVpcmUgYWxsIGNsaWVudCBjZXJ0aWZpY2F0ZXMgdG8gYmUgc2V0IGdsb2JhbGx5IHVzaW5nCiAgICB0aGlzIGRpcmVjdGl2ZS4gTW9zdCBvdGhlciB0b29sa2l0cyByZXF1aXJlIGNsaWVudHMgY2VydGlmaWNhdGVzIHRvIGJlIHNldAogICAgcGVyIERpcmVjdG9yeSBvciBwZXIgTG9jYXRpb24gdXNpbmcgTERBUFRydXN0ZWRDbGllbnRDZXJ0LiBJZiB5b3UgZ2V0IHRoaXMKICAgIHdyb25nLCBhbiBlcnJvciBtYXkgYmUgbG9nZ2VkIHdoZW4gYW4gYXR0ZW1wdCBpcyBtYWRlIHRvIGNvbnRhY3QgdGhlIExEQVAKICAgIHNlcnZlciwgb3IgdGhlIGNvbm5lY3Rpb24gbWF5IHNpbGVudGx5IGZhaWwgKFNlZSB0aGUgU1NML1RMUyBjZXJ0aWZpY2F0ZQogICAgZ3VpZGUgYWJvdmUgZm9yIGRldGFpbHMpLgogICAgVGhlIHR5cGUgc3BlY2lmaWVzIHRoZSBraW5kIG9mIGNlcnRpZmljYXRlIHBhcmFtZXRlciBiZWluZwogICAgc2V0LCBkZXBlbmRpbmcgb24gdGhlIExEQVAgdG9vbGtpdCBiZWluZyB1c2VkLiBTdXBwb3J0ZWQgdHlwZXMgYXJlOjwvcD4KICAgIDx1bD4KICAgICAgPGxpPkNBX0RFUiAtIGJpbmFyeSBERVIgZW5jb2RlZCBDQSBjZXJ0aWZpY2F0ZTwvbGk+CiAgICAgIDxsaT5DQV9CQVNFNjQgLSBQRU0gZW5jb2RlZCBDQSBjZXJ0aWZpY2F0ZTwvbGk+CiAgICAgIDxsaT5DQV9DRVJUN19EQiAtIE5ldHNjYXBlIGNlcnQ3LmRiIENBIGNlcnRpZmljYXRlIGRhdGFiYXNlIGZpbGU8L2xpPgogICAgICA8bGk+Q0FfU0VDTU9EIC0gTmV0c2NhcGUgc2VjbW9kIGRhdGFiYXNlIGZpbGU8L2xpPgogICAgICA8bGk+Q0VSVF9ERVIgLSBiaW5hcnkgREVSIGVuY29kZWQgY2xpZW50IGNlcnRpZmljYXRlPC9saT4KICAgICAgPGxpPkNFUlRfQkFTRTY0IC0gUEVNIGVuY29kZWQgY2xpZW50IGNlcnRpZmljYXRlPC9saT4KICAgICAgPGxpPkNFUlRfS0VZM19EQiAtIE5ldHNjYXBlIGtleTMuZGIgY2xpZW50IGNlcnRpZmljYXRlIGRhdGFiYXNlIGZpbGU8L2xpPgogICAgICA8bGk+Q0VSVF9OSUNLTkFNRSAtIENsaWVudCBjZXJ0aWZpY2F0ZSAibmlja25hbWUiIChOZXRzY2FwZSBTREspPC9saT4KICAgICAgPGxpPkNFUlRfUEZYIC0gUEtDUyMxMiBlbmNvZGVkIGNsaWVudCBjZXJ0aWZpY2F0ZSAoTm92ZWxsIFNESyk8L2xpPgogICAgICA8bGk+S0VZX0RFUiAtIGJpbmFyeSBERVIgZW5jb2RlZCBwcml2YXRlIGtleTwvbGk+CiAgICAgIDxsaT5LRVlfQkFTRTY0IC0gUEVNIGVuY29kZWQgcHJpdmF0ZSBrZXk8L2xpPgogICAgICA8bGk+S0VZX1BGWCAtIFBLQ1MjMTIgZW5jb2RlZCBwcml2YXRlIGtleSAoTm92ZWxsIFNESyk8L2xpPgogICAgPC91bD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJMREFQVHJ1c3RlZE1vZGUiIGlkPSJMREFQVHJ1c3RlZE1vZGUiPkxEQVBUcnVzdGVkTW9kZTwvYT4gPGEgbmFtZT0ibGRhcHRydXN0ZWRtb2RlIiBpZD0ibGRhcHRydXN0ZWRtb2RlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TcGVjaWZpZXMgdGhlIFNTTC9UTFMgbW9kZSB0byBiZSB1c2VkIHdoZW4gY29ubmVjdGluZyB0byBhbiBMREFQIHNlcnZlci48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUFRydXN0ZWRNb2RlIDx2YXI+dHlwZTwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+VGhlIGZvbGxvd2luZyBtb2RlcyBhcmUgc3VwcG9ydGVkOjwvcD4KICAgIDx1bD4KICAgICAgPGxpPk5PTkUgLSBubyBlbmNyeXB0aW9uPC9saT4KICAgICAgPGxpPlNTTCAtIGxkYXBzOi8vIGVuY3J5cHRpb24gb24gZGVmYXVsdCBwb3J0IDYzNjwvbGk+CiAgICAgIDxsaT5UTFMgLSBTVEFSVFRMUyBlbmNyeXB0aW9uIG9uIGRlZmF1bHQgcG9ydCAzODk8L2xpPgogICAgPC91bD4KCiAgICA8cD5Ob3QgYWxsIExEQVAgdG9vbGtpdHMgc3VwcG9ydCBhbGwgdGhlIGFib3ZlIG1vZGVzLiBBbiBlcnJvciBtZXNzYWdlCiAgICB3aWxsIGJlIGxvZ2dlZCBhdCBydW50aW1lIGlmIGEgbW9kZSBpcyBub3Qgc3VwcG9ydGVkLCBhbmQgdGhlCiAgICBjb25uZWN0aW9uIHRvIHRoZSBMREFQIHNlcnZlciB3aWxsIGZhaWwuCiAgICA8L3A+CgogICAgPHA+SWYgYW4gbGRhcHM6Ly8gVVJMIGlzIHNwZWNpZmllZCwgdGhlIG1vZGUgYmVjb21lcyBTU0wgYW5kIHRoZSBzZXR0aW5nCiAgICBvZiBMREFQVHJ1c3RlZE1vZGUgaXMgaWdub3JlZC48L3A+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iTERBUFZlcmlmeVNlcnZlckNlcnQiIGlkPSJMREFQVmVyaWZ5U2VydmVyQ2VydCI+TERBUFZlcmlmeVNlcnZlckNlcnQ8L2E+IDxhIG5hbWU9ImxkYXB2ZXJpZnlzZXJ2ZXJjZXJ0IiBpZD0ibGRhcHZlcmlmeXNlcnZlcmNlcnQiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkZvcmNlIHNlcnZlciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUFZlcmlmeVNlcnZlckNlcnQgPHZhcj5PbnxPZmY8L3Zhcj48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+TERBUFZlcmlmeVNlcnZlckNlcnQgT248L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2xkYXA8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5TcGVjaWZpZXMgd2hldGhlciB0byBmb3JjZSB0aGUgdmVyaWZpY2F0aW9uIG9mIGEgCiAgICAgc2VydmVyIGNlcnRpZmljYXRlIHdoZW4gZXN0YWJsaXNoaW5nIGFuIFNTTCBjb25uZWN0aW9uIHRvIHRoZSAKICAgICBMREFQIHNlcnZlci48L3A+Cgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9sZGFwLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAyMDA2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5MaWNlbnNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSIuLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD48L2Rpdj4KPC9ib2R5PjwvaHRtbD4=