PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5E6W1hcnJhZ2UgZCdBcGFjaGUgLSBTZXJ2ZXVyIEFwYWNoZSBIVFRQIFZlcnNpb24gMi41PC90aXRsZT4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FpcmU8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPlNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjU8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZmVhdGhlci5wbmciIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+U2VydmV1ciBIVFRQPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5WZXJzaW9uIDIuNTwvYT48L2Rpdj48ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPjxkaXYgaWQ9InByZWFtYmxlIj48aDE+ROltYXJyYWdlIGQnQXBhY2hlPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2RlL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJkZSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJEZXV0c2NoIj4mbmJzcDtkZSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VuL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VzL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJlcyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2ludm9raW5nLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9pbnZva2luZy5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vaW52b2tpbmcuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9pbnZva2luZy5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PgoKICAgIDxwPlNvdXMgV2luZG93cywgQXBhY2hlIGVzdCBoYWJpdHVlbGxlbWVudCBsYW5j6SBlbiB0YW50IHF1ZQogICAgc2VydmljZS4gUG91ciBwbHVzIGRlIGTpdGFpbHMsIHZvaXIgPGEgaHJlZj0icGxhdGZvcm0vd2luZG93cy5odG1sI3dpbnN2YyI+ROltYXJyZXIgQXBhY2hlIGVuIHRhbnQKICAgIHF1ZSBzZXJ2aWNlPC9hPi48L3A+CgogICAgPHA+U291cyBVbml4LCBsZSBwcm9ncmFtbWUgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+PC9jb2RlPgogICAgZXN0IGxhbmPpIGVuIG1vZGUgZOltb24gZXQgcydleOljdXRlIGRlIG1hbmnocmUgcGVybWFuZW50ZSBlbgogICAgYXJyaehyZS1wbGFuIHBvdXIgZ+lyZXIgbGVzIHJlcXXqdGVzLiAgQ2UgZG9jdW1lbnQgZOljcml0IGNvbW1lbnQgaW52b3F1ZXIKICAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+LjwvcD4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PHVsIGlkPSJ0b2MiPjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjc3RhcnR1cCI+Q29tbWVudCBBcGFjaGUgZOltYXJyZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2Vycm9ycyI+RXJyZXVycyBlbiBjb3VycyBkZSBk6W1hcnJhZ2U8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNib290Ij5MYW5jZW1lbnQgYXUgZOltYXJyYWdlIGR1IHN5c3TobWU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNpbmZvIj5JbmZvcm1hdGlvbnMgc3VwcGzpbWVudGFpcmVzPC9hPjwvbGk+CjwvdWw+PGgzPlZvaXIgYXVzc2k8L2gzPjx1bCBjbGFzcz0ic2VlYWxzbyI+PGxpPjxhIGhyZWY9InN0b3BwaW5nLmh0bWwiPkFycup0IGV0IHJlZOltYXJyYWdlPC9hPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCI+YXBhY2hlY3RsPC9hPjwvY29kZT48L2xpPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudGFpcmVzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzdGFydHVwIiBpZD0ic3RhcnR1cCI+Q29tbWVudCBBcGFjaGUgZOltYXJyZTwvYT48L2gyPgoKICAgIDxwPlNpIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPgogICAgc3DpY2lmaellIGRhbnMgbGUgZmljaGllciBkZSBjb25maWd1cmF0aW9uIGVzdCDgIHNhIHZhbGV1ciBwYXIgZOlmYXV0CiAgICBkZSA4MCAob3UgdG91dCBhdXRyZSBwb3J0IGluZulyaWV1ciDgIDEwMjQpLCBpbCBlc3QgbuljZXNzYWlyZSBkZQogICAgcG9zc+lkZXIgbGVzIHByaXZpbOhnZXMgcm9vdCBwb3VyIHBvdXZvaXIgZOltYXJyZXIgYXBhY2hlLCBldCBsdWkKICAgIHBlcm1ldHRyZSBkJ+p0cmUgYXNzb2Np6SDgIGNlIHBvcnQgcHJpdmls6Wdp6S4gTG9yc3F1ZSBsZSBzZXJ2ZXVyIGVzdAogICAgZOltYXJy6SwgaWwgZWZmZWN0dWUgcXVlbHF1ZXMgb3DpcmF0aW9ucyBwculsaW1pbmFpcmVzCiAgICBjb21tZSBvdXZyaXIgc2VzIGZpY2hpZXJzIGRlIGxvZywgcHVpcyBpbCBsYW5jZSBwbHVzaWV1cnMgcHJvY2Vzc3VzCiAgICA8ZW0+ZW5mYW50czwvZW0+IHF1aSBvbnQgcG91ciBy9GxlIGQn6WNvdXRlciBldCBkZSBy6XBvbmRyZSBhdXgKICAgIHJlcXXqdGVzIGRlcyBjbGllbnRzLiBMZSBwcm9jZXNzdXMgPGNvZGU+aHR0cGQ8L2NvZGU+IHByaW5jaXBhbAogICAgY29udGludWUg4CBzJ2V46WN1dGVyIHNvdXMgbCd1dGlsaXNhdGV1ciByb290LCB0YW5kaXMgcXVlIGxlcyBwcm9jZXNzdXMKICAgIGVuZmFudHMgcydleOljdXRlbnQgc291cyB1biB1dGlsaXNhdGV1ciBhdXggcHJpdmls6GdlcyByZXN0cmVpbnRzLgogICAgQ2VjaSBzJ2VmZmVjdHVlIHBhciBsYSB2b2llIGR1CiAgICA8YSBocmVmPSJtcG0uaHRtbCI+TW9kdWxlIE11bHRpLVByb2Nlc3N1cyAoTVBNKTwvYT4uPC9wPgoKICAgIDxwPklsIGVzdCByZWNvbW1hbmTpIGQndXRpbGlzZXIgbGUgc2NyaXB0IGRlIGNvbnRy9GxlCiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCI+YXBhY2hlY3RsPC9hPjwvY29kZT4gcG91ciBpbnZvcXVlciBsJ2V46WN1dGFibGUKICAgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4uIEEgY2V0IGVmZmV0LCBjZSBzY3JpcHQgZOlmaW5pdCBjZXJ0YWluZXMgdmFyaWFibGVzCiAgICBkJ2Vudmlyb25uZW1lbnQgbuljZXNzYWlyZXMgcG91ciBwZXJtZXR0cmUg4AogICAgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+PC9jb2RlPiBkZSBmb25jdGlvbm5lciBjb3JyZWN0ZW1lbnQgc291cyBjZXJ0YWlucyBzeXN06G1lcwogICAgZCdleHBsb2l0YXRpb24uCiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCI+YXBhY2hlY3RsPC9hPjwvY29kZT4gYWNjZXB0ZSBkZXMgYXJndW1lbnRzIGRlIGxpZ25lIGRlCiAgICBjb21tYW5kZSA7CiAgICBhaW5zaSB0b3V0ZSBvcHRpb24gZGUgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+PC9jb2RlPiBwZXV0IGF1c3NpIOp0cmUgdXRpbGlz6WUgYXZlYwogICAgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvYXBhY2hlY3RsLmh0bWwiPmFwYWNoZWN0bDwvYT48L2NvZGU+LiAgVm91cyBwb3V2ZXogYXVzc2kg6WRpdGVyIGRpcmVjdGVtZW50IGxlCiAgICBzY3JpcHQgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvYXBhY2hlY3RsLmh0bWwiPmFwYWNoZWN0bDwvYT48L2NvZGU+IGVuIG1vZGlmaWFudCBsYSB2YXJpYWJsZQogICAgPGNvZGU+SFRUUEQ8L2NvZGU+IHNpdHXpZSBlbiBk6WJ1dCBkZSBzY3JpcHQgcG91ciBzcOljaWZpZXIgbGEKICAgIGxvY2FsaXNhdGlvbiBkdSBiaW5haXJlIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4gZXQgdG91dCBhcmd1bWVudCBkZSBsaWduZQogICAgZGUgY29tbWFuZGUgcXVlIHZvdXMgc291aGFpdGV6IHZvaXIgPGVtPnN5c3TpbWF0aXF1ZW1lbnQ8L2VtPiBwculzZW50LjwvcD4KCiAgICA8cD5MYSBwcmVtaehyZSBjaG9zZSBxdSdlZmZlY3R1ZSA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+IHF1YW5kIGlsIGVzdAogICAgaW52b3F16SBlc3QgZGUgbG9jYWxpc2VyIGV0IGxpcmUgbGUgPGEgaHJlZj0iY29uZmlndXJpbmcuaHRtbCI+ZmljaGllciBkZSBjb25maWd1cmF0aW9uPC9hPgogICAgPGNvZGU+aHR0cGQuY29uZjwvY29kZT4uIExhIGxvY2FsaXNhdGlvbiBkZSBjZSBmaWNoaWVyIGVzdCBk6WZpbmllIOAgbGEKICAgIGNvbXBpbGF0aW9uLCBtYWlzIGlsIGVzdCBwb3NzaWJsZSBkJ2VuIHNw6WNpZmllciB1bmUgYXV0cmUg4AogICAgbCdleOljdXRpb24gZW4gdXRpbGlzYW50IGwnb3B0aW9uIGRlIGxpZ25lIGRlIGNvbW1hbmRlIDxjb2RlPi1mPC9jb2RlPiBjb21tZSBzdWl0OjwvcD4KCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPi91c3IvbG9jYWwvYXBhY2hlMi9iaW4vYXBhY2hlY3RsIC1mCiAgICAgIC91c3IvbG9jYWwvYXBhY2hlMi9jb25mL2h0dHBkLmNvbmY8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPlNpIHRvdXQgc2UgcGFzc2UgYmllbiBwZW5kYW50IGxlIGTpbWFycmFnZSwgbGUgc2VydmV1ciB2YSBzZSBkaXNzb2NpZXIKICAgIGR1IHRlcm1pbmFsIGV0IGwnaW52aXRlIGRlIGNvbW1hbmRlIHLpYXBwYXJh7nRyYSBwcmVzcXVlIGltbelkaWF0ZW1lbnQuCiAgICBDZWNpIGluZGlxdWUgcXVlIGxlIHNlcnZldXIgYSBk6W1hcnLpIGV0IGVzdCBlbiBjb3VycyBkJ2V46WN1dGlvbi4KICAgIMAgcGFydGlyIGRlIGNlIG1vbWVudCwgdm91cyBwb3V2ZXogdXRpbGlzZXIgdm90cmUgbmF2aWdhdGV1ciBwb3VyIHZvdXMgY29ubmVjdGVyCiAgICBhdSBzZXJ2ZXVyIGV0IGFmZmljaGVyIGxhIHBhZ2UgZGUgdGVzdCBzaXR16WUgZGFucyBsZSBy6XBlcnRvaXJlIGTpZmluaQogICAgcGFyIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZG9jdW1lbnRyb290Ij5Eb2N1bWVudFJvb3Q8L2E+PC9jb2RlPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJlcnJvcnMiIGlkPSJlcnJvcnMiPkVycmV1cnMgZW4gY291cnMgZGUgZOltYXJyYWdlPC9hPjwvaDI+CgogICAgPHA+U2kgdW4gcHJvYmzobWUgZmF0YWwgc3VydmllbnQgcGVuZGFudCBsZSBk6W1hcnJhZ2UKICAgIGQnQXBhY2hlLCBjZSBkZXJuaWVyIHZhCiAgICBhZmZpY2hlciB1biBtZXNzYWdlIGTpY3JpdmFudCBsZSBwcm9ibOhtZSBzdXIgbGEgY29uc29sZSBvdQogICAgZW5yZWdpc3RyZXIgY2VzIGluZm9ybWF0aW9ucyBkYW5zIGxlIGZpY2hpZXIgZOlmaW5pIHBhciBsYSBkaXJlY3RpdmUKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNlcnJvcmxvZyI+RXJyb3JMb2c8L2E+PC9jb2RlPiBhdmFudCBkZSBxdWl0dGVyLgogICAgVW4gZGVzIG1lc3NhZ2VzIGQnZXJyZXVyIGxlcyBwbHVzIGNvdXJhbnRzIGVzdCAiPGNvZGU+VW5hYmxlCiAgICB0byBiaW5kIHRvIFBvcnQgLi4uPC9jb2RlPiIuIENlIG1lc3NhZ2UgZCdlcnJldXIgZXN0IGhhYml0dWVsbGVtZW50CiAgICBwcm92b3F16SBwYXIgOjwvcD4KCiAgICA8dWw+CiAgICAgIDxsaT5VbmUgdGVudGF0aXZlIGRlIGTpbWFycmFnZSBkdSBzZXJ2ZXVyIGF2ZWMgdW4gcG9ydCBwcml2aWzpZ2npIHNhbnMKICAgICAg6nRyZSBjb25uZWN06SByb290PC9saT4KCiAgICAgIDxsaT5VbmUgdGVudGF0aXZlIGRlIGTpbWFycmFnZSBkdSBzZXJ2ZXVyIGFsb3JzIHF1J3VuZSBhdXRyZSBpbnN0YW5jZQogICAgICBkJ0FwYWNoZSBvdSB1biBhdXRyZSBzZXJ2ZXVyIHdlYiBlc3QgZOlq4CBhc3NvY2npIGF1IG3qbWUgcG9ydC48L2xpPgogICAgPC91bD4KCiAgICA8cD5Qb3VyIHBsdXMgZCdpbnN0cnVjdGlvbnMgZGUgZOlwYW5uYWdlLCBjb25zdWx0ZXogbGEKICAgIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IEFwYWNoZS48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iYm9vdCIgaWQ9ImJvb3QiPkxhbmNlbWVudCBhdSBk6W1hcnJhZ2UgZHUgc3lzdOhtZTwvYT48L2gyPgoKICAgIDxwPlNpIHZvdXMgc291aGFpdGV6IHF1ZSB2b3RyZSBzZXJ2ZXVyIHNvaXQgYXV0b21hdGlxdWVtZW50CiAgICBkaXNwb25pYmxlIGFwcuhzCiAgICB1biByZWTpbWFycmFnZSBkdSBzeXN06G1lLCB2b3VzIGRldmV6IGFqb3V0ZXIgdW4gYXBwZWwg4AogICAgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvYXBhY2hlY3RsLmh0bWwiPmFwYWNoZWN0bDwvYT48L2NvZGU+IOAgdm9zCiAgICBmaWNoaWVycyBkZSBk6W1hcnJhZ2Ugc3lzdOhtZSAoZW4gZ+lu6XJhbCA8Y29kZT5yYy5sb2NhbDwvY29kZT4gb3UgdW4KICAgIGZpY2hpZXIgZGFucyB1biBy6XBlcnRvaXJlIDxjb2RlPnJjLk48L2NvZGU+KSwgY2UgcXVpIGTpbWFycmVyYSBBcGFjaGUgc291cwogICAgbCd1dGlsaXNhdGV1ciByb290LiBBdmFudCBkZSBmYWlyZSBjZWNpLCBhc3N1cmV6LXZvdXMgcXVlIHZvdHJlIHNlcnZldXIKICAgIHNvaXQgY29ycmVjdGVtZW50IGNvbmZpZ3Vy6SBlbiBjZSBxdWkgY29uY2VybmUgbGEgc+ljdXJpdOkgZXQgbGVzCiAgICByZXN0cmljdGlvbnMgZCdhY2Pocy48L3A+CgogICAgPHA+TGUgc2NyaXB0IDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2FwYWNoZWN0bC5odG1sIj5hcGFjaGVjdGw8L2E+PC9jb2RlPiBlc3QgY29u53UgcG91ciBmb25jdGlvbm5lcgogICAgY29tbWUgdW4gc2NyaXB0IGQnaW5pdGlhbGlzYXRpb24gU3lzViBzdGFuZGFyZCA7IGlsIGFjY2VwdGUgbGVzIGFyZ3VtZW50cwogICAgPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5yZXN0YXJ0PC9jb2RlPiwgZXQgPGNvZGU+c3RvcDwvY29kZT4KICAgIGV0IGxlcyB0cmFkdWl0IGVuIHNpZ25hdXggYXBwcm9wcmnpcyBwb3VyCiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+LCBldCBpbCBzdWZmaXQgZW4gZ+lu6XJhbCBkJ2luc3RhbGxlcgogICAgdW4gbGllbiB2ZXJzCiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCI+YXBhY2hlY3RsPC9hPjwvY29kZT4gZGFucyBsZSBy6XBlcnRvaXJlIGQnaW5pdGlhbGlzYXRpb24gYXBwcm9wcmnpLgogICAgTWFpcyBwcmVuZXogc29pbiBkZSB26XJpZmllciBsZXMgYmVzb2lucyBleGFjdHMgZGUgdm90cmUgc3lzdOhtZQogICAgZW4gbGEgbWF0aehyZS48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iaW5mbyIgaWQ9ImluZm8iPkluZm9ybWF0aW9ucyBzdXBwbOltZW50YWlyZXM8L2E+PC9oMj4KCiAgICA8cD5EZXMgaW5mb3JtYXRpb25zIHN1cHBs6W1lbnRhaXJlcyDgIHByb3BvcyBkZXMgb3B0aW9ucyBlbiBsaWduZSBkZQogICAgY29tbWFuZGUgZGUgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+PC9jb2RlPiBldCA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCI+YXBhY2hlY3RsPC9hPjwvY29kZT4KICAgIGFpbnNpIHF1ZSBkJ2F1dHJlcyBwcm9ncmFtbWVzIHN1cHBvcnQgaW5jbHVzIGRhbnMgbGEgZGlzdHJpYnV0aW9uCiAgICBzb250IGRpc3BvbmlibGVzIHN1ciBsYSBwYWdlCiAgICA8YSBocmVmPSJwcm9ncmFtcy8iPkxlIHNlcnZldXIgZXQgc2VzIHByb2dyYW1tZXMgc3VwcG9ydDwvYT4uCiAgICBJbCBleGlzdGUgYXVzc2kgdW5lIGRvY3VtZW50YXRpb24gc3VyIHRvdXMgbGVzIDxhIGhyZWY9Im1vZC8iPm1vZHVsZXM8L2E+IGluY2x1cyBkYW5zIGxhIGRpc3RyaWJ1dGlvbiBBcGFjaGUKICAgIGV0IGxlcyA8YSBocmVmPSJtb2QvZGlyZWN0aXZlcy5odG1sIj5kaXJlY3RpdmVzPC9hPgogICAgcXUnaWxzIHN1cHBvcnRlbnQuPC9wPgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2RlL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJkZSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJEZXV0c2NoIj4mbmJzcDtkZSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VuL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VzL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJlcyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2ludm9raW5nLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9pbnZva2luZy5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vaW52b2tpbmcuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9pbnZva2luZy5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy90cnVuay9pbnZva2luZy5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+QXV0b3Jpc+kgc291cyA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==