PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlcyIgeG1sOmxhbmc9ImVzIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5Vc28gZGUgbG9zIEhhbmRsZXJzIGVuIEFwYWNoZSAtIFNlcnZpZG9yIEhUVFAgQXBhY2hlIFZlcnNp824gMi41PC90aXRsZT4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TfNkdWxvczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmFzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5QcmVndW50YXMgRnJlY3VlbnRlczwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NhcmlvPC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5NYXBhIGRlbCBzaXRpbyB3ZWI8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5WZXJzafNuIDIuNSBkZWwgU2Vydmlkb3IgSFRUUCBBcGFjaGU8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZmVhdGhlci5wbmciIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+U2Vydmlkb3IgSFRUUDwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhY2nzbjwvYT4gJmd0OyA8YSBocmVmPSIuLyI+VmVyc2nzbiAyLjU8L2E+PC9kaXY+PGRpdiBpZD0icGFnZS1jb250ZW50Ij48ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPlVzbyBkZSBsb3MgSGFuZGxlcnMgZW4gQXBhY2hlPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPklkaW9tYXMgZGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2VuL2hhbmRsZXIuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZXMvaGFuZGxlci5odG1sIiB0aXRsZT0iRXNwYfFvbCI+Jm5ic3A7ZXMmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9mci9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvaGFuZGxlci5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3poLWNuL2hhbmRsZXIuaHRtbCIgaHJlZmxhbmc9InpoLWNuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlNpbXBsaWZpZWQgQ2hpbmVzZSI+Jm5ic3A7emgtY24mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KCiAgICA8cD5Fc3RlIGRvY3VtZW50byBkZXNjcmliZSBlbCB1c28gZGUgbG9zIEhhbmRsZXJzIGVuIEFwYWNoZS48L3A+CiAgPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PHVsIGlkPSJ0b2MiPjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZGVmaW5pdGlvbiI+v1F16SBlcyB1biBIYW5kbGVyPzwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2V4YW1wbGVzIj5FamVtcGxvczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3Byb2dyYW1tZXIiPk5vdGEgcGFyYSBwcm9ncmFtYWRvcmVzPC9hPjwvbGk+CjwvdWw+PGgzPkNvbnN1bHRlIHRhbWJp6W48L2gzPjx1bCBjbGFzcz0ic2VlYWxzbyI+PGxpPjxhIGhyZWY9IiNjb21tZW50c19zZWN0aW9uIj5Db21lbnRhcmlvczwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZGVmaW5pdGlvbiIgaWQ9ImRlZmluaXRpb24iPr9RdekgZXMgdW4gSGFuZGxlcj88L2E+PC9oMj4KICAgIAogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPk3zZHVsb3MgUmVsYWNpb25hZG9zPC90aD48dGg+RGlyZWN0aXZhcyBSZWxhY2lvbmFkYXM8L3RoPjwvdHI+PHRyPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9hY3Rpb25zLmh0bWwiPm1vZF9hY3Rpb25zPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfYXNpcy5odG1sIj5tb2RfYXNpczwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2NnaS5odG1sIj5tb2RfY2dpPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaW1hZ2VtYXAuaHRtbCI+bW9kX2ltYWdlbWFwPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaW5mby5odG1sIj5tb2RfaW5mbzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX21pbWUuaHRtbCI+bW9kX21pbWU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9uZWdvdGlhdGlvbi5odG1sIj5tb2RfbmVnb3RpYXRpb248L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zdGF0dXMuaHRtbCI+bW9kX3N0YXR1czwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2FjdGlvbnMuaHRtbCNhY3Rpb24iPkFjdGlvbjwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX21pbWUuaHRtbCNhZGRoYW5kbGVyIj5BZGRIYW5kbGVyPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbWltZS5odG1sI3JlbW92ZWhhbmRsZXIiPlJlbW92ZUhhbmRsZXI8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXRoYW5kbGVyIj5TZXRIYW5kbGVyPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgoKICAgIDxwPlVuICJoYW5kbGVyIiBlcyB1bmEgcmVwcmVzZW50YWNp824gaW50ZXJuYSBkZSBBcGFjaGUgZGUKICAgIHVuYSBhY2Np824gcXVlIHNlIHZhIGEgZWplY3V0YXIgY3VhbmRvIGhheSB1bmEgbGxhbWFkYSBhIHVuCiAgICBmaWNoZXJvLiBHZW5lcmFsbWVudGUsIGxvcyBmaWNoZXJvcyB0aWVuZW4gaGFuZGxlcnMKICAgIGltcGztY2l0b3MsIGJhc2Fkb3MgZW4gZWwgdGlwbyBkZSBmaWNoZXJvIGRlIHF1ZSBzZQogICAgdHJhdGEuIE5vcm1hbG1lbnRlLCB0b2RvcyBsb3MgZmljaGVyb3Mgc29uIHNpbXBsZW1lbnRlIHNlcnZpZG9zCiAgICBwb3IgZWwgc2Vydmlkb3IsIHBlcm8gYWxndW5vcyB0aXBvcyBkZSBmaWNoZXJvcyBzZSB0cmF0YW4gZGUgZm9ybWEKICAgIGRpZmVyZW50ZS48L3A+CgogICAgPHA+SGFuZGxlcnMgcHVlZGVuIHNlciB1c2Fkb3MgZGUgbWFuZXJhIGV4cGxpY2l0YSwKICAgICBiYXPhbmRvc2UgZW4gbGEgZXh0ZW5zafNuIGRlbCBmaWNoZXJvIG8gZW4KICAgIGxhIHViaWNhY2nzbiBlbiBsYSBxdWUgZXN06Swgc2UgcHVlZGVuIGVzcGVjaWZpY2FyIGhhbmRsZXJzCiAgICBzaW4gdGVuZXIgZW4gY3VlbnRhIGVsIHRpcG8gZGUgZmljaGVybyBxdWUgc2UgdHJhdGUuIEVzdG8gZXMKICAgIHVuYSB2ZW50YWphIHBvciBkb3MgcmF6b25lcy4gUHJpbWVybywgZXMgdW5hIHNvbHVjafNuCiAgICBt4XMgZWxlZ2FudGUuIFNlZ3VuZG8sIHBvcnF1ZSBhIHVuIGZpY2hlcm8gc2UgbGUgcHVlZGVuCiAgICBhc2lnbmFyIHRhbnRvIHVuIHRpcG8gPHN0cm9uZz5jb21vPC9zdHJvbmc+IHVuIGhhbmRsZXIuIChDb25zdWx0ZQogICAgdGFtYmnpbiBsYSBzZWNjafNuIDxhIGhyZWY9Im1vZC9tb2RfbWltZS5odG1sI211bHRpcGxlZXh0Ij5GaWNoZXJvcyB5IGV4dGVuc2lvbmVzCiAgICBt+mx0aXBsZXM8L2E+Lik8L3A+CgogICAgPHA+TG9zIEhhbmRsZXJzIHB1ZWRlbiB0YW50byBzZXIgY29tcGlsYWRvcyBjb24gZWwgc2Vydmlkb3IKICAgIGNvbW8gaW5jbHVpZG9zIGVuIHVuIG3zZHVsbywgbyBh8WFkaWRvcyBjb24gbGEKICAgIGRpcmVjdGl2YSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfYWN0aW9ucy5odG1sI2FjdGlvbiI+QWN0aW9uPC9hPjwvY29kZT4uIExvcwogICAgaGFuZGxlcnMgcXVlIHZpZW5lbiBpbmNsdWlkb3MgZW4gZWwgY29yZSBjb24gZWwgc2Vydmlkb3IgZGUgbGEgZGlzdHJpYnVjafNuCiAgICBlc3ThbmRhciBkZSBBcGFjaGUgc29uOjwvcD4KCiAgICA8dWw+CiAgICAgIDxsaT48c3Ryb25nPmRlZmF1bHQtaGFuZGxlcjwvc3Ryb25nPjogRW527WEgZWwgZmljaGVybwogICAgICB1c2FuZG8gZWwgPGNvZGU+ZGVmYXVsdF9oYW5kbGVyKCk8L2NvZGU+LCBxdWUgZXMgZWwgaGFuZGxlcgogICAgICB1c2FkbyBwb3IgZGVmZWN0byBwYXJhIHRyYXRhciBjb250ZW5pZG8KICAgICAgZXN04XRpY28uIChjb3JlKTwvbGk+CgogICAgICA8bGk+PHN0cm9uZz5zZW5kLWFzLWlzPC9zdHJvbmc+OiBFbnbtYSBlbCBmaWNoZXJvIGNvbgogICAgICBjYWJlY2VyYXMgSFRUUCB0YWwgeSBjb21vIGVzLiAoPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2FzaXMuaHRtbCI+bW9kX2FzaXM8L2E+PC9jb2RlPik8L2xpPgoKICAgICAgPGxpPjxzdHJvbmc+Y2dpLXNjcmlwdDwvc3Ryb25nPjogVHJhdGEgZWwgZmljaGVybyBjb21vIHVuIHNyaXB0CiAgICAgIENHSS4gKDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2NvZGU+KTwvbGk+CgogICAgICA8bGk+PHN0cm9uZz5pbWFwLWZpbGU8L3N0cm9uZz46IFRyYXRhIGVsIGZpY2hlcm8gY29tbyB1biBtYXBhIGRlCiAgICAgIGlt4WdlbmVzLiAoPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2ltYWdlbWFwLmh0bWwiPm1vZF9pbWFnZW1hcDwvYT48L2NvZGU+KTwvbGk+CgogICAgICA8bGk+PHN0cm9uZz5zZXJ2ZXItaW5mbzwvc3Ryb25nPjogRXh0cmFlIGxhIGluZm9ybWFjafNuIGRlCiAgICAgIGNvbmZpZ3VyYWNp824gZGVsCiAgICAgIHNlcnZpZG9yLiAoPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2luZm8uaHRtbCI+bW9kX2luZm88L2E+PC9jb2RlPik8L2xpPgoKICAgICAgPGxpPjxzdHJvbmc+c2VydmVyLXN0YXR1czwvc3Ryb25nPjogRXh0cmFlIGVsIGluZm9ybWUgZGVsIGVzdGFkbwogICAgICBkZWwgc2Vydmlkb3IuICg8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2Rfc3RhdHVzLmh0bWwiPm1vZF9zdGF0dXM8L2E+PC9jb2RlPik8L2xpPgoKICAgICAgPGxpPjxzdHJvbmc+dHlwZS1tYXA8L3N0cm9uZz46IFRyYXRhIGVsIGZpY2hlcm8gY29tbyB1bmEKICAgICAgY29ycmVzcG9uZGVuY2lhIGRlIHRpcG9zIHBhcmEgbGEgbmVnb2NpYWNp824gZGUgY29udGVuaWRvcy4KICAgICAgKDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9uZWdvdGlhdGlvbi5odG1sIj5tb2RfbmVnb3RpYXRpb248L2E+PC9jb2RlPik8L2xpPiAKICAgIDwvdWw+IAogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZXhhbXBsZXMiIGlkPSJleGFtcGxlcyI+RWplbXBsb3M8L2E+PC9oMj4gCiAgICAgIAoKICAgICAgPGgzPjxhIG5hbWU9ImV4YW1wbGUxIiBpZD0iZXhhbXBsZTEiPk1vZGlmaWNhciBjb250ZW5pZG8gZXN04XRpY28gdXNhbmRvIHVuIHNjcmlwdAogICAgICBDR0k8L2E+PC9oMz4KICAgICAgCgogICAgICA8cD5MYXMgc2lndWllbnRlcyBkaXJlY3RpdmFzIGhhY2VuIHF1ZSBjdWFuZG8gaGF5YSB1bmEKICAgICAgcGV0aWNp824gZGUgZmljaGVyb3MgY29uIGxhIGV4dGVuc2nzbgogICAgICA8Y29kZT5odG1sPC9jb2RlPiBzZSBsYW5jZSBlbCBzY3JpcHQgQ0dJCiAgICAgIDxjb2RlPmZvb3Rlci5wbDwvY29kZT4uPC9wPgoKICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICAgQWN0aW9uIGFkZC1mb290ZXIgL2NnaS1iaW4vZm9vdGVyLnBsPGJyIC8+CiAgICAgICAgQWRkSGFuZGxlciBhZGQtZm9vdGVyIC5odG1sCiAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgICA8cD5FbiBlc3RlIGNhc28sIGVsIHNjcmlwdCBDR0kgZXMgZWwgcmVzcG9uc2FibGUgZGUgZW52aWFyIGVsCiAgICAgIGRvY3VtZW50byBvcmlnaW5hbG1lbnRlIHNvbGljaXRhZG8gKGNvbnRlbmlkbyBlbiBsYSB2YXJpYWJsZSBkZQogICAgICBlbnRvcm5vIDxjb2RlPlBBVEhfVFJBTlNMQVRFRDwvY29kZT4pIHkgZGUgaGFjZXIgY3VhbHF1aWVyCiAgICAgIG1vZGlmaWNhY2nzbiBvIGHxYWRpZG8gZGVzZWFkby48L3A+CgogICAgCiAgICA8aDM+PGEgbmFtZT0iZXhhbXBsZTIiIGlkPSJleGFtcGxlMiI+QXJjaGl2b3MgY29uIGNhYmVjZXJhcyBIVFRQPC9hPjwvaDM+CiAgICAgIAoKICAgICAgPHA+TGFzIHNpZ3VpZW50ZXMgZGlyZWN0aXZhcyBhY3RpdmFuIGVsIGhhbmRsZXIKICAgICAgPGNvZGU+c2VuZC1hcy1pczwvY29kZT4sIHF1ZSBzZSB1c2EgcGFyYSBmaWNoZXJvcyBxdWUgY29udGllbmVuCiAgICAgIHN1cyBwcm9waWFzIGNhYmVjZXJhcyBIVFRQLiBUb2RvcyBsb3MgYXJjaGl2b3MgZW4gZWwgZGlyZWN0b3JpbwogICAgICA8Y29kZT4vd2ViL2h0ZG9jcy9hc2lzLzwvY29kZT4gc2Vy4W4gcHJvY2VzYWRvcyBwb3IgZWwKICAgICAgaGFuZGxlciA8Y29kZT5zZW5kLWFzLWlzPC9jb2RlPiwgc2luIHRlbmVyIGVuIGN1ZW50YSBzdQogICAgICBleHRlbnNpb24uPC9wPgoKICAgICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtEaXJlY3RvcnkgIi93ZWIvaHRkb2NzL2FzaXMiJmd0OwogICAgU2V0SGFuZGxlciBzZW5kLWFzLWlzCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCiAgICAKICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InByb2dyYW1tZXIiIGlkPSJwcm9ncmFtbWVyIj5Ob3RhIHBhcmEgcHJvZ3JhbWFkb3JlczwvYT48L2gyPgogICAgCgogICAgPHA+UGFyYSBpbXBsZW1lbnRhciBsYXMgZnVuY2lvbmFsaWRhZGVzIGRlIGxvcyBoYW5kbGVycywgc2UgaGEKICAgIGhlY2hvIHVuIGHxYWRpZG8gYSBsYSA8YSBocmVmPSJkZXZlbG9wZXIvQVBJLmh0bWwiPkFQSSBkZQogICAgQXBhY2hlPC9hPiBxdWUgcHVlZGUgcXVlIHF1aWVyYSB1c2FyLiBQYXJhIHNlciBt4XMKICAgIGVzcGVj7WZpY29zLCBzZSBoYSBh8WFkaWRvIHVuIG51ZXZvIHJlZ2lzdHJvIGEgbGEKICAgIGVzdHJ1Y3R1cmEgPGNvZGU+cmVxdWVzdF9yZWM8L2NvZGU+OjwvcD4KCiAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWMiPmNoYXIgKmhhbmRsZXI8L3ByZT4KCgogICAgPHA+U2kgcXVpZXJlIHF1ZSBzdSBt82R1bG8gbGxhbWUgYSB1biBoYW5kbGVyICwgc29sbyB0aWVuZQogICAgcXVlIGHxYWRpciA8Y29kZT5yLSZndDtoYW5kbGVyPC9jb2RlPiBhbCBub21icmUgZGVsIGhhbmRsZXIKICAgIGVuIGN1YWxxdWllciBtb21lbnRvIGFudGVzIGRlIGxhIGZhc2UgPGNvZGU+aW52b2tlX2hhbmRsZXI8L2NvZGU+CiAgICBkZSBsYSBwZXRpY2nzbi4gTG9zIGhhbmRsZXJzIHNlIGltcGxlbWVudGFuIHNpZW1wcmUgY29tbyBzZQogICAgaGFj7WEgYW50ZXMsIGF1bnF1ZSB1c2FuZG8gZWwgbm9tYnJlIGRlbCBoYW5kbGVyIGVuIHZleiBkZSB1bgogICAgdGlwbyBkZSBjb250ZW5pZG8uIEF1bnF1ZSBubyBlcyBkZSBvYmxpZ2FkbyBjdW1wbGltaWVudG8sIGxhCiAgICBjb252ZW5jafNuIGRlIG5vbWJyZXMgcGFyYSBsb3MgaGFuZGxlcnMgZXMgcXVlIHNlIHVzZW4KICAgIHBhbGFicmFzIHNlcGFyYWRhcyBwb3IgZ3Vpb25lcywgc2luIGJhcnJhcywgZGUgbWFuZXJhIHF1ZSBubyBzZQogICAgaW52YWRhIGVsIG1lZGlhIHR5cGUgbmFtZS1zcGFjZS48L3A+CiAgPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5JZGlvbWFzIGRpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi9lbi9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VzL2hhbmRsZXIuaHRtbCIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvaGFuZGxlci5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvaGFuZGxlci5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vaGFuZGxlci5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2hhbmRsZXIuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi96aC1jbi9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJ6aC1jbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJTaW1wbGlmaWVkIENoaW5lc2UiPiZuYnNwO3poLWNuJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgc3JjPSIuL2ltYWdlcy91cC5naWYiIGFsdD0idG9wIiAvPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDI+PGEgaWQ9ImNvbW1lbnRzX3NlY3Rpb24iIG5hbWU9ImNvbW1lbnRzX3NlY3Rpb24iPkNvbWVudGFyaW9zPC9hPjwvaDI+PGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+PGJyIC8+VGhpcyBpcyBub3QgYSBRJmFtcDtBIHNlY3Rpb24uIENvbW1lbnRzIHBsYWNlZCBoZXJlIHNob3VsZCBiZSBwb2ludGVkIHRvd2FyZHMgc3VnZ2VzdGlvbnMgb24gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9yIHNlcnZlciwgYW5kIG1heSBiZSByZW1vdmVkIGFnYWluIGJ5IG91ciBtb2RlcmF0b3JzIGlmIHRoZXkgYXJlIGVpdGhlciBpbXBsZW1lbnRlZCBvciBjb25zaWRlcmVkIGludmFsaWQvb2ZmLXRvcGljLiBRdWVzdGlvbnMgb24gaG93IHRvIG1hbmFnZSB0aGUgQXBhY2hlIEhUVFAgU2VydmVyIHNob3VsZCBiZSBkaXJlY3RlZCBhdCBlaXRoZXIgb3VyIElSQyBjaGFubmVsLCAjaHR0cGQsIG9uIEZyZWVub2RlLCBvciBzZW50IHRvIG91ciA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9saXN0cy5odG1sIj5tYWlsaW5nIGxpc3RzPC9hPi48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KdmFyIGNvbW1lbnRzX3Nob3J0bmFtZSA9ICdodHRwZCc7CnZhciBjb21tZW50c19pZGVudGlmaWVyID0gJ2h0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvdHJ1bmsvaGFuZGxlci5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5jaWEgYmFqbyBsb3MgdOlybWlub3MgZGUgbGEgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TfNkdWxvczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmFzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5QcmVndW50YXMgRnJlY3VlbnRlczwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NhcmlvPC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5NYXBhIGRlbCBzaXRpbyB3ZWI8L2E+PC9wPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCmlmICh0eXBlb2YocHJldHR5UHJpbnQpICE9PSAndW5kZWZpbmVkJykgewogICAgcHJldHR5UHJpbnQoKTsKfQovLy0tPjwhXV0+PC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+