PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5Qcm9ibOhtZXMgbGnpcyBhdSBETlMgYXZlYyBsZSBzZXJ2ZXVyIEhUVFAgQXBhY2hlIC0gU2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNTwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5QbGFuIGR1IHNpdGU8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5TZXJ2ZXVyIEFwYWNoZSBIVFRQIFZlcnNpb24gMi41PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPlNlcnZldXIgSFRUUDwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLyI+VmVyc2lvbiAyLjU8L2E+PC9kaXY+PGRpdiBpZD0icGFnZS1jb250ZW50Ij48ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPlByb2Js6G1lcyBsaelzIGF1IEROUyBhdmVjIGxlIHNlcnZldXIgSFRUUCBBcGFjaGU8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4vZW4vZG5zLWNhdmVhdHMuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvZG5zLWNhdmVhdHMuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL2Rucy1jYXZlYXRzLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9kbnMtY2F2ZWF0cy5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2Rucy1jYXZlYXRzLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+CgogICAgPHA+Q2V0dGUgcGFnZSBwb3VycmFpdCBzZSBy6XN1bWVyIGFpbnNpIDogY29uZmlndXJleiBsZQogICAgc2VydmV1ciBIVFRQIEFwYWNoZSBkZSBmYedvbgogICAg4CBjZSBxdSdpbCBuJ2FpdCBwYXMgYmVzb2luIGRlIHLpc29sdXRpb24gRE5TIHBvdXIgaW50ZXJwcul0ZXIgbGVzCiAgICBmaWNoaWVycyBkZSBjb25maWd1cmF0aW9uLiBTaSBodHRwZCBkb2l0IGVmZmVjdHVlciBkZXMgculzb2x1dGlvbnMKICAgIEROUyBwb3VyIGludGVycHLpdGVyIGxlcyBmaWNoaWVycyBkZSBjb25maWd1cmF0aW9uLCB2b3RyZSBzZXJ2ZXVyCiAgICBwb3VycmEgcHLpc2VudGVyIGRlcyBwcm9ibOhtZXMgZGUgZmlhYmlsaXTpIChlbiBkJ2F1dHJlcyB0ZXJtZXMsCiAgICBpbCBlc3QgcG9zc2libGUgcXUnaWwgcmVmdXNlIGRlIGTpbWFycmVyKSwgb3UgZCdhdHRhcXVlcyBwYXIgZOluaSBvdQogICAgdXN1cnBhdGlvbiBkZSBzZXJ2aWNlICh5IGNvbXByaXMgbCdhdHRyaWJ1dGlvbiBkZSByZXF16nRlcyDgIHVuCiAgICBzZXJ2ZXVyIHZpcnR1ZWwgYXV0cmUgcXVlIGxlIHNlcnZldXIgdmlydHVlbCB2b3VsdSkuPC9wPgogIDwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjx1bCBpZD0idG9jIj48bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2V4YW1wbGUiPlVuIGV4ZW1wbGUgc2ltcGxlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZGVuaWFsIj5E6W5pIGRlIHNlcnZpY2U8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNtYWluIj5MJ2FkcmVzc2UgZHUgInNlcnZldXIgcHJpbmNpcGFsIjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3RpcHMiPkNvbnNlaWxzIHBvdXIg6XZpdGVyIGNlIGdlbnJlIGRlIHByb2Js6G1lPC9hPjwvbGk+CjwvdWw+PGgzPlZvaXIgYXVzc2k8L2gzPjx1bCBjbGFzcz0ic2VlYWxzbyI+PGxpPjxhIGhyZWY9IiNjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImV4YW1wbGUiIGlkPSJleGFtcGxlIj5VbiBleGVtcGxlIHNpbXBsZTwvYT48L2gyPgogICAgCgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiMgQ2VjaSBlc3QgdW4gZXhlbXBsZSBkZSBtYXV2YWlzZSBjb25maWd1cmF0aW9uIDsgbmUgbCd1dGlsaXNleiBwYXMgY29tbWUgYmFzZQojIGRlIGNvbmZpZ3VyYXRpb24KJmx0O1ZpcnR1YWxIb3N0IHd3dy5leGFtcGxlLmRvbSZndDsKICBTZXJ2ZXJBZG1pbiB3ZWJnaXJsQGV4YW1wbGUuZG9tCiAgRG9jdW1lbnRSb290ICIvd3d3L2V4YW1wbGUiCiZsdDsvVmlydHVhbEhvc3QmZ3Q7PC9wcmU+CgoKICAgIDxwPlBvdXIgZm9uY3Rpb25uZXIgY29ycmVjdGVtZW50LCBsZSBzZXJ2ZXVyIGEgYWJzb2x1bWVudCBiZXNvaW4gZGUgZGV1eAogICAgaW5mb3JtYXRpb25zIOAgcHJvcG9zIGRlIGNoYXF1ZSBzZXJ2ZXVyIHZpcnR1ZWwgOiBsZSBub20gZHUgc2VydmV1cgogICAgZOlmaW5pIHBhciBsYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3NlcnZlcm5hbWUiPlNlcnZlck5hbWU8L2E+PC9jb2RlPiwgZXQgYXUgbW9pbnMgdW5lIGFkcmVzc2UgSVAg4AogICAgbGFxdWVsbGUgbGUgc2VydmV1ciB2YSBzZSByYXR0YWNoZXIgZXQgculwb25kcmUuIEwnZXhlbXBsZSBjaS1kZXNzdXMKICAgIG5lIGNvbXBvcnRlIHBhcyBkJ2FkcmVzc2UgSVAsIHNpIGJpZW4gcXVlIGh0dHBkIGRldnJhIHV0aWxpc2VyIGxlCiAgICBETlMgcG91ciB0cm91dmVyIGwnYWRyZXNzZSBJUCBkZSA8Y29kZT53d3cuZXhhbXBsZS5kb208L2NvZGU+LiBTaSBwb3VyCiAgICB1bmUgcmFpc29uIHF1ZWxjb25xdWUsIGxlIEROUyBuJ2VzdCBwYXMgZGlzcG9uaWJsZSBhdSBtb21lbnQgb/kKICAgIHZvdHJlIHNlcnZldXIgaW50ZXJwcuh0ZSBzb24gZmljaGllciBkZSBjb25maWd1cmF0aW9uLCBjZSBzZXJ2ZXVyCiAgICB2aXJ0dWVsIDxzdHJvbmc+bmUgc2VyYSBwYXMgcHJpcyBlbiBjb21wdGUgZGFucyBsYQogICAgY29uZmlndXJhdGlvbjwvc3Ryb25nPi4gSWwgc2VyYSBpbmNhcGFibGUgZGUKICAgIHLpcG9uZHJlIOAgdG91dGUgcmVxdep0ZSBwb3VyIGNlIHNlcnZldXIgdmlydHVlbC48L3A+CgogICAgPHA+U3VwcG9zb25zIHF1ZSBsJ2FkcmVzc2UgZGUgPGNvZGU+d3d3LmV4YW1wbGUuZG9tPC9jb2RlPiBzb2l0CiAgICAxOTIuMC4yLjEsIGV0IGV4YW1pbm9ucyBjZXQgZXh0cmFpdCBkZSBjb25maWd1cmF0aW9uIDo8L3A+CgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiMgQ2VjaSBlc3QgdW4gZXhlbXBsZSBkZSBtYXV2YWlzZSBjb25maWd1cmF0aW9uIDsgbmUgbCd1dGlsaXNleiBwYXMgY29tbWUgYmFzZQojIGRlIGNvbmZpZ3VyYXRpb24KJmx0O1ZpcnR1YWxIb3N0IDE5Mi4wLjIuMSZndDsKICBTZXJ2ZXJBZG1pbiB3ZWJnaXJsQGV4YW1wbGUuZG9tCiAgRG9jdW1lbnRSb290ICIvd3d3L2V4YW1wbGUiCiZsdDsvVmlydHVhbEhvc3QmZ3Q7PC9wcmU+CgoKICAgIDxwPkNldHRlIGZvaXMsIGh0dHBkIGRvaXQgZWZmZWN0dWVyIHVuZSByZWNoZXJjaGUgRE5TIGludmVyc2UgcG91cgogICAgdHJvdXZlciBsZSBub20gPGNvZGU+U2VydmVyTmFtZTwvY29kZT4gZGUgY2Ugc2VydmV1ciB2aXJ0dWVsLiBTaQogICAgY2V0dGUgcmVjaGVyY2hlIGludmVyc2Ug6WNob3VlLCBsZSBzZXJ2ZXVyIHZpcnR1ZWwgc2VyYQogICAgcGFydGllbGxlbWVudCBk6XNhY3RpdukuIFNpIGxlIHNlcnZldXIKICAgIHZpcnR1ZWwgZXN0IOAgYmFzZSBkZSBub20sIGlsIHNlcmEgZW4gZmFpdCB0b3RhbGVtZW50IGTpc2FjdGl26SwKICAgIG1haXMgcydpbCBlc3Qg4CBiYXNlIGQnYWRyZXNzZSBJUCwgaWwgZm9uY3Rpb25uZXJhIHByb2JhYmxlbWVudC4KICAgIENlcGVuZGFudCwgaHR0cGQg6WNob3VlcmEgcydpbCBkb2l0IGfpbulyZXIgdW5lIFVSTCBjb21wbOh0ZSBwb3VyCiAgICBsZSBzZXJ2ZXVyIHF1aSBpbmNsdXQgY2Ugbm9tIGRlIHNlcnZldXIgKGNvbW1lIGRhbnMgbGUgY2FzIGQndW5lCiAgICByZWRpcmVjdGlvbikuPC9wPgoKICAgIDxwPlZvaWNpIHVuIGV4dHJhaXQgZGUgY29uZmlndXJhdGlvbiBxdWkgcGVybWV0IGQn6XZpdGVyIGNlcyBkZXV4CiAgICB0eXBlcyBkZSBwcm9ibOhtZXMgOjwvcD4KCiAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O1ZpcnR1YWxIb3N0IDE5Mi4wLjIuMSZndDsKICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmRvbQogIFNlcnZlckFkbWluIHdlYmdpcmxAZXhhbXBsZS5kb20KICBEb2N1bWVudFJvb3QgIi93d3cvZXhhbXBsZSIKJmx0Oy9WaXJ0dWFsSG9zdCZndDs8L3ByZT4KCiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJkZW5pYWwiIGlkPSJkZW5pYWwiPkTpbmkgZGUgc2VydmljZTwvYT48L2gyPgogICAgCgogICAgPHA+Q29uc2lk6XJvbnMgY2V0IGV4dHJhaXQgZGUgY29uZmlndXJhdGlvbiA6PC9wPgoKICAgIDxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7VmlydHVhbEhvc3Qgd3d3LmV4YW1wbGUxLmRvbSZndDsKICBTZXJ2ZXJBZG1pbiB3ZWJnaXJsQGV4YW1wbGUxLmRvbQogIERvY3VtZW50Um9vdCAiL3d3dy9leGFtcGxlMSIKJmx0Oy9WaXJ0dWFsSG9zdCZndDsKJmx0O1ZpcnR1YWxIb3N0IHd3dy5leGFtcGxlMi5kb20mZ3Q7CiAgU2VydmVyQWRtaW4gd2ViZ3V5QGV4YW1wbGUyLmRvbQogIERvY3VtZW50Um9vdCAiL3d3dy9leGFtcGxlMiIKJmx0Oy9WaXJ0dWFsSG9zdCZndDs8L3ByZT4KCgogICAgPHA+U3VwcG9zb25zIHF1ZSB2b3VzIGF5ZXogYXNzaWdu6SAxOTIuMC4yLjEg4AogICAgPGNvZGU+d3d3LmV4YW1wbGUxLmRvbTwvY29kZT4gZXQgMTkyLjAuMi4yIOAgPGNvZGU+d3d3LmV4YW1wbGUyLmRvbTwvY29kZT4uIEVuCiAgICBvdXRyZSwgc3VwcG9zb25zIHF1ZSA8Y29kZT5leGFtcGxlMS5kb208L2NvZGU+IGfocmUgc29uIHByb3ByZSBETlMuIEF2ZWMKICAgIGNldHRlIGNvbmZpZ3VyYXRpb24sIDxjb2RlPmV4YW1wbGUxLmRvbTwvY29kZT4gc2VyYSBlbiBtZXN1cmUgZGUKICAgIGTpdG91cm5lciB0b3V0IHRyYWZpYyBkZXN0aW7pIOAgPGNvZGU+ZXhhbXBsZTIuZG9tPC9jb2RlPi4gUG91ciB5CiAgICBwYXJ2ZW5pciwgdG91dCBjZSBxdSdpbHMgb250IOAgZmFpcmUgY29uc2lzdGUg4AogICAgYXNzaWduZXIgMTkyLjAuMi4yIOAKICAgIDxjb2RlPnd3dy5leGFtcGxlMS5kb208L2NvZGU+LiBDb21tZSBpbHMgZ+hyZW50IGxldXIgcHJvcHJlIEROUywgdm91cyBuZQogICAgcG91dmV6IHBhcyBsZXMgZW1w6mNoZXIgZGUgZmFpcmUgcG9pbnRlciBsJ2VucmVnaXN0cmVtZW50CiAgICA8Y29kZT53d3cuZXhhbXBsZTEuZG9tPC9jb2RlPiB2ZXJzIGwnYWRyZXNzZSBxdSdpbHMgdmV1bGVudC48L3A+CgogICAgPHA+TGVzIHJlcXXqdGVzIOAgZGVzdGluYXRpb24gZGUgMTkyLjAuMi4yICh5IGNvbXByaXMgdG91dGVzIGNlbGxlcwogICAgb/kgbCd1dGlsaXNhdGV1ciDgIHRhcOkgdW5lIFVSTCBkZSBsYSBmb3JtZQogICAgPGNvZGU+aHR0cDovL3d3dy5leGFtcGxlMi5kb20vcXVlbHF1ZXBhcnQ8L2NvZGU+KSwgc2Vyb250IHRvdXRlcyBzZXJ2aWVzCiAgICBwYXIgbGUgc2VydmV1ciB2aXJ0dWVsIDxjb2RlPmV4YW1wbGUxLmRvbTwvY29kZT4uIFVuZSBtZWlsbGV1cgogICAgY29tcHLpaGVuc2lvbiBkZSBsYSByYWlzb24gcG91ciBsYXF1ZWxsZSBjZWNpIHBldXQgc2UgcHJvZHVpcmUKICAgIG7pY2Vzc2l0ZSB1bmUgZGlzY3Vzc2lvbiBwbHVzIGFwcHJvZm9uZGllIOAgcHJvcG9zIGRlIGxhIG1hbmnocmUKICAgIGRvbnQgaHR0cGQgYXNzb2NpZSBsZXMgcmVxdep0ZXMgZW50cmFudGVzIGF1eCBkaWZm6XJlbnRzIHNlcnZldXJzCiAgICB2aXJ0dWVscyBxdWkgdm9udCBsZXMgc2VydmlyLiBVbiBkb2N1bWVudCBkZSBiYXNlIGTpY3JpdmFudCBjZWNpIDxhIGhyZWY9InZob3N0cy9kZXRhaWxzLmh0bWwiPmVzdCBkaXNwb25pYmxlPC9hPi48L3A+CiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJtYWluIiBpZD0ibWFpbiI+TCdhZHJlc3NlIGR1ICJzZXJ2ZXVyIHByaW5jaXBhbCI8L2E+PC9oMj4KICAgIAoKICAgIDxwPjxhIGhyZWY9InZob3N0cy9uYW1lLWJhc2VkLmh0bWwiPkxlIHN1cHBvcnQgZGVzCiAgICBzZXJ2ZXVycyB2aXJ0dWVscyDgIGJhc2UgZGUgbm9tPC9hPiBvYmxpZ2UgaHR0cGQg4AogICAgY29ubmHudHJlIGxhL2xlcyBhZHJlc3NlKHMpIElQIGRlIGwnaPR0ZSBzdXIKICAgIGxlcXVlbCA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+IHMnZXjpY3V0ZS4gUG91ciBvYnRlbmlyIGNldHRlCiAgICBhZHJlc3NlLCBzb2l0IGlsIHV0aWxpc2UgbGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJuYW1lIj5TZXJ2ZXJOYW1lPC9hPjwvY29kZT4gZ2xvYmFsZSAoc2kgZWxsZSBlc3QgcHLpc2VudGUpLAogICAgc29pdCBpbCBmYWl0IGFwcGVsIOAgbGEgZm9uY3Rpb24gQyA8Y29kZT5nZXRob3N0bmFtZTwvY29kZT4gKHF1aQogICAgZG9pdCByZW52b3llciBsZSBt6m1lIG5vbSBxdWUgbGEgY29tbWFuZGUgc2hlbGwgImhvc3RuYW1lIikuIElsCiAgICBlZmZlY3R1ZSBlbnN1aXRlIHVuZSByZWNoZXJjaGUgRE5TIHN1ciBjZXR0ZSBhZHJlc3NlLiBQb3VyIGxlCiAgICBtb21lbnQsIGlsIG4nZXhpc3RlIGF1Y3VuIG1veWVuIGQn6XZpdGVyIGNldHRlIHJlY2hlcmNoZSBETlMuPC9wPgoKICAgIDxwPlNpIHZvdXMgY3JhaWduZXogcXVlIGNldHRlIHJlY2hlcmNoZSBETlMg6WNob3VlIHBhcmNlIHF1ZSB2b3RyZQogICAgc2VydmV1ciBETlMgZXN0IGFycup06Swgdm91cyBwb3V2ZXogaW5z6XJlciBsZSBub20gZCdo9HRlIGRhbnMgbGUKICAgIGZpY2hpZXIgPGNvZGU+L2V0Yy9ob3N0czwvY29kZT4gKG/5IGlsIGVzdCBwcm9iYWJsZW1lbnQgZOlq4AogICAgZW5yZWdpc3Ry6SBhZmluIHF1ZSBsYSBtYWNoaW5lIGTpbWFycmUgY29ycmVjdGVtZW50KS4gQXNzdXJlei12b3VzCiAgICBlbnN1aXRlIHF1ZSBsYSBtYWNoaW5lIGVzdCBjb25maWd1cullIHBvdXIgdXRpbGlzZXIKICAgIDxjb2RlPi9ldGMvaG9zdHM8L2NvZGU+IGRhbnMgbGUgY2FzIG/5IGxhIHJlY2hlcmNoZSBETlMg6WNob3VlLgogICAgU3VpdmFudCBsZSBzeXN06G1lIGQnZXhwbG9pdGF0aW9uIHF1ZSB2b3VzIHV0aWxpc2V6LCB2b3VzIHkKICAgIHBhcnZpZW5kcmV6IGVuIOlkaXRhbnQgPGNvZGU+L2V0Yy9yZXNvbHYuY29uZjwvY29kZT4sIG91CiAgICA8Y29kZT4vZXRjL25zc3dpdGNoLmNvbmY8L2NvZGU+LjwvcD4KCiAgICA8cD5TaSB2b3RyZSBzZXJ2ZXVyIG4nYSBhdWN1bmUgYXV0cmUgcmFpc29uIGQnZWZmZWN0dWVyIGRlcwogICAgcmVjaGVyY2hlcyBETlMsIHZvdXMgcG91dmV6IGTpZmluaXIgbGEgdmFyaWFibGUgZCdlbnZpcm9ubmVtZW50CiAgICA8Y29kZT5IT1NUUkVTT1JERVI8L2NvZGU+IOAgImxvY2FsIiwgZXQgdm91cyBzZXJleiBhbG9ycyBlbiBtZXN1cmUKICAgIGQnZXjpY3V0ZXIgaHR0cGQuIFRvdXQgZOlwZW5kIGR1IHN5c3TobWUgZCdleHBsb2l0YXRpb24gZXQgZGVzCiAgICBiaWJsaW90aOhxdWVzIGRlIHLpc29sdXRpb24gZGUgbm9tcyBxdWUgdm91cyB1dGlsaXNlei4gRWxsZSBhZmZlY3RlCiAgICBhdXNzaSBsZXMgcHJvZ3JhbW1lcyBDR0ksIOAgbW9pbnMgcXVlIHZvdXMgbid1dGlsaXNpZXoKICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9lbnYuaHRtbCI+bW9kX2VudjwvYT48L2NvZGU+IHBvdXIgY29udHL0bGVyIGwnZW52aXJvbm5lbWVudC4gSWwgZXN0CiAgICBjb25zZWlsbOkgZGUgY29uc3VsdGVyIGxlcyBwYWdlcyBkZSBtYW51ZWwgb3UgbGVzIEZBUXMgZGUgdm90cmUKICAgIHN5c3TobWUgZCdleHBsb2l0YXRpb24uPC9wPgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idGlwcyIgaWQ9InRpcHMiPkNvbnNlaWxzIHBvdXIg6XZpdGVyIGNlIGdlbnJlIGRlIHByb2Js6G1lPC9hPjwvaDI+CiAgICAKCiAgICA8dWw+CiAgICAgIDxsaT4KICAgICAgICB1dGlsaXNleiBkZXMgYWRyZXNzZXMgSVAgYXUgc2VpbiBkZXMgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3ZpcnR1YWxob3N0Ij5WaXJ0dWFsSG9zdDwvYT48L2NvZGU+CiAgICAgIDwvbGk+CgogICAgICA8bGk+CiAgICAgICAgdXRpbGlzZXogZGVzIGFkcmVzc2VzIElQIGF2ZWMgbGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+CiAgICAgIDwvbGk+CgogICAgICA8bGk+CiAgICAgICAgdulyaWZpZXogcXVlIHRvdXMgbGVzIHNlcnZldXJzIHZpcnR1ZWxzIHBvc3PoZGVudCB1biBub20KCTxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJuYW1lIj5TZXJ2ZXJOYW1lPC9hPjwvY29kZT4JZXhwbGljaXRlCiAgICAgIDwvbGk+CgogICAgICA8bGk+Y3LpZXogdW4gc2VydmV1ciB2aXJ0dWVsIDxjb2RlPiZsdDtWaXJ0dWFsSG9zdAogICAgICBfZGVmYXVsdF86KiZndDs8L2NvZGU+IHF1aSBuJ2EgYXVjdW5lIHBhZ2Ug4CBzZXJ2aXI8L2xpPgogICAgPC91bD4KICA8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2VuL2Rucy1jYXZlYXRzLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2Rucy1jYXZlYXRzLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9kbnMtY2F2ZWF0cy5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vZG5zLWNhdmVhdHMuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9kbnMtY2F2ZWF0cy5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy90cnVuay9kbnMtY2F2ZWF0cy5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+QXV0b3Jpc+kgc291cyA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==