PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5BcnLqdCBldCByZWTpbWFycmFnZSBkdSBzZXJ2ZXVyIEhUVFAgQXBhY2hlIC0gU2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNTwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5QbGFuIGR1IHNpdGU8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5TZXJ2ZXVyIEFwYWNoZSBIVFRQIFZlcnNpb24gMi41PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPlNlcnZldXIgSFRUUDwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLyI+VmVyc2lvbiAyLjU8L2E+PC9kaXY+PGRpdiBpZD0icGFnZS1jb250ZW50Ij48ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPkFycup0IGV0IHJlZOltYXJyYWdlIGR1IHNlcnZldXIgSFRUUCBBcGFjaGU8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4vZGUvc3RvcHBpbmcuaHRtbCIgaHJlZmxhbmc9ImRlIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkRldXRzY2giPiZuYnNwO2RlJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZW4vc3RvcHBpbmcuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZXMvc3RvcHBpbmcuaHRtbCIgaHJlZmxhbmc9ImVzIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvc3RvcHBpbmcuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL3N0b3BwaW5nLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9zdG9wcGluZy5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL3N0b3BwaW5nLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+CgogICAgPHA+Q2UgZG9jdW1lbnQgY291dnJlIGwnYXJy6nQgZXQgbGUgcmVk6W1hcnJhZ2UgZHUKICAgIHNlcnZldXIgSFRUUCBBcGFjaGUgc3VyCiAgICBsZXMgc3lzdOhtZXMgVW5peCBldCBzaW1pbGFpcmVzLiBMZXMgdXRpbGlzYXRldXJzIGRlIFdpbmRvd3MgTlQsIDIwMDAKICAgIGFuZCBYUCBkb2l2ZW50IGNvbnN1bHRlcgogICAgPGEgaHJlZj0icGxhdGZvcm0vd2luZG93cy5odG1sI3dpbnN2YyI+RXjpY3V0ZXIgaHR0cGQgZW4gdGFudCBxdWUKICAgIHNlcnZpY2U8L2E+IGV0IGxlcyB1dGlsaXNhdGV1cnMgZGUgV2luZG93cyA5eCBldCBNRSBkb2l2ZW50IGNvbnN1bHRlcgogICAgPGEgaHJlZj0icGxhdGZvcm0vd2luZG93cy5odG1sI3dpbmNvbnMiPkV46WN1dGVyIGh0dHBkIGNvbW1lIHVuZQogICAgYXBwbGljYXRpb24gZGUgdHlwZSBjb25zb2xlPC9hPiBwb3VyIHBsdXMgZCdpbmZvcm1hdGlvbnMgc3VyIGxlIGNvbnRy9GxlCiAgICBkZSBodHRwZCDgIHBhcnRpciBkZSBjZXMgcGxhdGVmb3JtZXMuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNpbnRyb2R1Y3Rpb24iPkludHJvZHVjdGlvbjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3Rlcm0iPkFycup0ZXIgaW1t6WRpYXRlbWVudDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2dyYWNlZnVsIj5SZWTpbWFycmFnZSBlbiBkb3VjZXVyPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjaHVwIj5SZWTpbWFycmVyIGltbelkaWF0ZW1lbnQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNncmFjZWZ1bHN0b3AiPkFycup0IGVuIGRvdWNldXI8L2E+PC9saT4KPC91bD48aDM+Vm9pciBhdXNzaTwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2FwYWNoZWN0bC5odG1sIj5hcGFjaGVjdGw8L2E+PC9jb2RlPjwvbGk+PGxpPjxhIGhyZWY9Imludm9raW5nLmh0bWwiPkTpbWFycmFnZTwvYT48L2xpPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudGFpcmVzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJpbnRyb2R1Y3Rpb24iIGlkPSJpbnRyb2R1Y3Rpb24iPkludHJvZHVjdGlvbjwvYT48L2gyPgoKICAgIDxwPkFmaW4gZCdhcnLqdGVyIG91IHJlZOltYXJyZXIgbGUgc2VydmV1ciBIVFRQIEFwYWNoZSwgdm91cyBkZXZleiBlbnZveWVyIHVuIHNpZ25hbCBhdXgKICAgIHByb2Nlc3N1cyA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+IGVuIGNvdXJzIGQnZXjpY3V0aW9uLiAgTGVzIHNpZ25hdXgKICAgIHBldXZlbnQg6nRyZSBlbnZveelzIGRlIGRldXggbWFuaehyZXMuIExhCiAgICBwcmVtaehyZSBt6XRob2RlIGNvbnNpc3RlIOAKICAgIHV0aWxpc2VyIGxhIGNvbW1hbmRlIHVuaXggPGNvZGU+a2lsbDwvY29kZT4KICAgIHBvdXIgZW52b3llciBkaXJlY3RlbWVudCBkZXMgc2lnbmF1eCBhdXggcHJvY2Vzc3VzLiBWb3VzIHBvdXZleiByZW1hcnF1ZXIKICAgIHF1ZSBwbHVzaWV1cnMgcHJvY2Vzc3VzIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4gcydleOljdXRlbnQgc3VyIHZvdHJlCiAgICBzeXN06G1lLCBtYWlzIGlsIHZvdXMgc3VmZml0IGQnZW52b3llciBsZXMgc2lnbmF1eCBhdSBwcm9jZXNzdXMgcGFyZW50LAogICAgZG9udCBsZSBQSUQgZXN0IGVucmVnaXN0cukgZGFucyBsZSBmaWNoaWVyIHBy6WNpc+kgcGFyIGxhIGRpcmVjdGl2ZQogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI3BpZGZpbGUiPlBpZEZpbGU8L2E+PC9jb2RlPi4gQXV0cmVtZW50IGRpdCwgdm91cwogICAgbidhdXJleiBqYW1haXMgYmVzb2luIGQnZW52b3llciBkZXMgc2lnbmF1eCDgIGF1Y3VuIGRlcwogICAgcHJvY2Vzc3VzIGVuZmFudHMsIG1haXMgc2V1bGVtZW50IGF1IHByb2Nlc3N1cyBwYXJlbnQuIFF1YXRyZSB0eXBlcwogICAgZGUgc2lnbmF1eCBwZXV2ZW50IOp0cmUgZW52b3npcyBhdSBwcm9jZXNzdXMgcGFyZW50IDoKICAgIDxjb2RlPjxhIGhyZWY9IiN0ZXJtIj5URVJNPC9hPjwvY29kZT4sCiAgICA8Y29kZT48YSBocmVmPSIjZ3JhY2VmdWwiPlVTUjE8L2E+PC9jb2RlPiwKICAgIDxjb2RlPjxhIGhyZWY9IiNodXAiPkhVUDwvYT48L2NvZGU+LCBldAogICAgPGNvZGU+PGEgaHJlZj0iI2dyYWNlZnVsc3RvcCI+V0lOQ0g8L2E+PC9jb2RlPiwgcXVpCiAgICBzZXJvbnQgZOljcml0IHBsdXMgbG9pbi48L3A+CgogICAgPHA+UG91ciBlbnZveWVyIHVuIHNpZ25hbCBhdSBwcm9jZXNzdXMgcGFyZW50LCB2b3VzIGRldmV6IGVudHJlciB1bmUgY29tbWFuZGUKICAgIGR1IHN0eWxlIDo8L3A+Cgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT5raWxsIC1URVJNIGBjYXQgL3Vzci9sb2NhbC9hcGFjaGUyL2xvZ3MvaHR0cGQucGlkYDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+TGEgc2Vjb25kZSBt6XRob2RlIHBlcm1ldHRhbnQgZCdlbnZveWVyIGRlcyBzaWduYXV4IGF1eCBwcm9jZXNzdXMKICAgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4KICAgIGNvbnNpc3RlIOAgdXRpbGlzZXIgbGVzIG9wdGlvbnMgPGNvZGU+c3RvcDwvY29kZT4sCiAgICA8Y29kZT5yZXN0YXJ0PC9jb2RlPiwgPGNvZGU+Z3JhY2VmdWw8L2NvZGU+IGV0CiAgICA8Y29kZT5ncmFjZWZ1bC1zdG9wPC9jb2RlPiBkdSBjb21tdXRhdGV1ciA8Y29kZT4tazwvY29kZT4gZGUgbGEgbGlnbmUKICAgIGRlIGNvbW1hbmRlIGNvbW1lIGTpY3JpdCBjaS1kZXNzb3VzLiAgQ2Ugc29udCBkZXMgYXJndW1lbnRzIGR1IGJpbmFpcmUKICAgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4sIG1haXMgaWwgZXN0IHJlY29tbWFuZOkgZGUgbGVzIHV0aWxpc2VyCiAgICBhdmVjIGxlIHNjcmlwdCBkZSBjb250cvRsZSA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCI+YXBhY2hlY3RsPC9hPjwvY29kZT4sIHF1aSBzZQogICAgY2hhcmdlcmEgZGUgbGVzIHBhc3NlciDgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4uPC9wPgoKICAgIDxwPkFwcuhzIGF2b2lyIGVudm956SB1biBzaWduYWwg4CA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+LCB2b3VzIHBvdXZlegogICAgc3VpdnJlIGxlIGNvdXJzIGRlIHNvbiBhY3Rpb24gZW4gZW50cmFudCA6PC9wPgoKPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+dGFpbCAtZiAvdXNyL2xvY2FsL2FwYWNoZTIvbG9ncy9lcnJvcl9sb2c8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPkFkYXB0ZXogY2VzIGV4ZW1wbGVzIGVuIGZvbmN0aW9uIGRlIGxhIGTpZmluaXRpb24gZGUgdm9zIGRpcmVjdGl2ZXMKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJyb290Ij5TZXJ2ZXJSb290PC9hPjwvY29kZT4gZXQKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNwaWRmaWxlIj5QaWRGaWxlPC9hPjwvY29kZT4uPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InRlcm0iIGlkPSJ0ZXJtIj5BcnLqdGVyIGltbelkaWF0ZW1lbnQ8L2E+PC9oMj4KCjxkbD48ZHQ+U2lnbmFsOiBURVJNPC9kdD4KPGRkPjxjb2RlPmFwYWNoZWN0bCAtayBzdG9wPC9jb2RlPjwvZGQ+CjwvZGw+CgogICAgPHA+QSBsYSBy6WNlcHRpb24gZHUgc2lnbmFsIDxjb2RlPlRFUk08L2NvZGU+IG91IDxjb2RlPnN0b3A8L2NvZGU+LAogICAgbGUgcHJvY2Vzc3VzIHBhcmVudCB0ZW50ZSBpbW3pZGlhdGVtZW50CiAgICBkZSB0dWVyIHRvdXMgc2VzIHByb2Nlc3N1cyBlbmZhbnRzLiBDZWxhIHBldXQgZHVyZXIgcGx1c2lldXJzIHNlY29uZGVzLgogICAgQXBy6HMgY2VsYSwgbGUgcHJvY2Vzc3VzIHBhcmVudCBsdWktbeptZSBzZSB0ZXJtaW5lLiBUb3V0ZXMgbGVzIHJlcXXqdGVzCiAgICBlbiBjb3VycyBzb250IHRlcm1pbullcywgZXQgcGx1cyBhdWN1bmUgYXV0cmUgbidlc3QgdHJhaXTpZS48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZ3JhY2VmdWwiIGlkPSJncmFjZWZ1bCI+UmVk6W1hcnJhZ2UgZW4gZG91Y2V1cjwvYT48L2gyPgoKPGRsPjxkdD5TaWduYWw6IFVTUjE8L2R0Pgo8ZGQ+PGNvZGU+YXBhY2hlY3RsIC1rIGdyYWNlZnVsPC9jb2RlPjwvZGQ+CjwvZGw+CgogICAgPHA+QSBsYSBy6WNlcHRpb24gZHUgc2lnbmFsIDxjb2RlPlVTUjE8L2NvZGU+IG91CiAgICA8Y29kZT5ncmFjZWZ1bDwvY29kZT4sIGxlCiAgICBwcm9jZXNzdXMgcGFyZW50IGVudm9pZSBhdXggcHJvY2Vzc3VzIGVuZmFudHMKICAgIDxlbT5sJ29yZHJlPC9lbT4gZGUgc2UgdGVybWluZXIgdW5lIGZvaXMgbGV1ciByZXF16nRlIGNvdXJhbnRlCiAgICB0cmFpdOllIChvdSBkZSBzZSB0ZXJtaW5lciBpbW3pZGlhdGVtZW50IHMnaWxzIG4nb250IHBsdXMgcmllbiDgIHRyYWl0ZXIpLgogICAgTGUgcHJvY2Vzc3VzIHBhcmVudCByZWxpdCBzZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbiBldAogICAgculvdXZyZSBzZXMgZmljaGllcnMgZGUgbG9nLiBDaGFxdWUgZm9pcyBxdSd1biBlbmZhbnQgcyfpdGVpbnQsIGxlCiAgICBwcm9jZXNzdXMgcGFyZW50IGxlIHJlbXBsYWNlIHBhciB1biBwcm9jZXNzdXMKICAgIGVuZmFudCBkZSBsYSBub3V2ZWxsZSA8ZW0+Z+lu6XJhdGlvbjwvZW0+IGRlIGxhCiAgICBjb25maWd1cmF0aW9uLCBldCBjZWx1aS1jaSBjb21tZW5jZSBpbW3pZGlhdGVtZW50IOAgdHJhaXRlciBsZXMKICAgIG5vdXZlbGxlcyByZXF16nRlcy48L3A+CgogICAgPHA+Q2UgY29kZSBlc3QgY29u53UgcG91ciB0b3Vqb3VycyByZXNwZWN0ZXIgbGEgZGlyZWN0aXZlIGRlIGNvbnRy9GxlCiAgICBkZSBwcm9jZXNzdXMgZGVzIG1vZHVsZXMgTVBNcywgYWZpbiBxdWUgbGVzIG5vbWJyZXMgZGUgcHJvY2Vzc3VzIGV0IGRlCiAgICB0aHJlYWRzCiAgICBkaXNwb25pYmxlcyBwb3VyIHRyYWl0ZXIgbGVzIGRlbWFuZGVzIGRlcyBjbGllbnRzIHNvaWVudCBtYWludGVudXMg4AogICAgZGVzIHZhbGV1cnMgYXBwcm9wcmnpZXMgdG91dCBhdSBsb25nIGR1IHByb2Nlc3N1cyBkZSBk6W1hcnJhZ2UuCiAgICBFbiBvdXRyZSwgaWwgcmVzcGVjdGUgbGEgZGlyZWN0aXZlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjc3RhcnRzZXJ2ZXJzIj5TdGFydFNlcnZlcnM8L2E+PC9jb2RlPiBkZSBsYSBtYW5p6HJlCiAgICBzdWl2YW50ZSA6IHNpIGFwcuhzIHVuZSBzZWNvbmRlIGF1IG1vaW5zIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNzdGFydHNlcnZlcnMiPlN0YXJ0U2VydmVyczwvYT48L2NvZGU+IG5vdXZlYXV4IHByb2Nlc3N1cwogICAgZW5mYW50cyBuJ29udCBwYXMg6XTpIGNy6elzLCB1biBub21icmUgc3VmZmlzYW50IGRlIHByb2Nlc3N1cwogICAgc3VwcGzpbWVudGFpcmVzIGVzdCBjcunpIHBvdXIgY29tYmxlciBsZSBtYW5xdWUuIEFpbnNpIGxlIGNvZGUKICAgIHRlbnRlIGRlIG1haW50ZW5pciDgIGxhIGZvaXMgbGUgbm9tYnJlIGFwcHJvcHJp6SBkZSBwcm9jZXNzdXMgZW5mYW50cwogICAgZW4gZm9uY3Rpb24gZGUgbGEgY2hhcmdlIGR1IHNlcnZldXIsIGV0IGxlIG5vbWJyZSBkZSBwcm9jZXNzdXMgZOlmaW5pIHBhciBsYQogICAgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNzdGFydHNlcnZlcnMiPlN0YXJ0U2VydmVyczwvYT48L2NvZGU+LjwvcD4KCiAgICA8cD5MZXMgdXRpbGlzYXRldXJzIGR1IG1vZHVsZSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2Rfc3RhdHVzLmh0bWwiPm1vZF9zdGF0dXM8L2E+PC9jb2RlPgogICAgbm90ZXJvbnQgcXVlIGxlcyBzdGF0aXN0aXF1ZXMgZHUgc2VydmV1ciBuZSBzb250IDxzdHJvbmc+cGFzPC9zdHJvbmc+CiAgICByZW1pc2VzIOAgeulybyBxdWFuZCB1biBzaWduYWwgPGNvZGU+VVNSMTwvY29kZT4gZXN0IGVudm956S4gTGUgY29kZQogICAgYSDpdOkgY29u53Ug4CBsYSBmb2lzIHBvdXIgbWluaW1pc2VyIGxhIGR1cullIGR1cmFudCBsYXF1ZWxsZSBsZQogICAgc2VydmV1ciBuZSBwZXV0IHBhcyB0cmFpdGVyIGRlIG5vdXZlbGxlcyByZXF16nRlcyAoZWxsZSBzb250IG1pc2VzIGVuCiAgICBmaWxlIGQnYXR0ZW50ZSBwYXIgbGUgc3lzdOhtZSBkJ2V4cGxvaXRhdGlvbiwgZXQgbmUgc29udCBhaW5zaSBqYW1haXMKICAgIHBlcmR1ZXMpIGV0IHBvdXIgcmVzcGVjdGVyIHZvcyBwYXJhbeh0cmVzIGRlIHBlcnNvbm5hbGlzYXRpb24uCiAgICBQb3VyIHkgcGFydmVuaXIsIGlsIGRvaXQgY29uc2VydmVyIGxlCiAgICA8ZW0+dGFibGVhdTwvZW0+IHV0aWxpc+kgcG91ciBnYXJkZXIgbGEgdHJhY2UgZGUgdG91cyBsZXMgcHJvY2Vzc3VzCiAgICBlbmZhbnRzIGF1IGNvdXJzIGRlcyBkaWZm6XJlbnRlcyBn6W7pcmF0aW9ucy48L3A+CgogICAgPHA+RGFucyBzb24g6XRhdCBkZXMgcHJvY2Vzc3VzLAogICAgbGUgbW9kdWxlIHN0YXR1cyB1dGlsaXNlIGF1c3NpIHVuIGNhcmFjdOhyZSA8Y29kZT5HPC9jb2RlPiBhZmluIGQnaW5kaXF1ZXIKICAgIHF1ZWxzIHByb2Nlc3N1cyBlbmZhbnRzIG9udCBlbmNvcmUgZGVzIHRyYWl0ZW1lbnRzIGRlIHJlcXXqdGVzIGVuIGNvdXJzCiAgICBk6WJ1dOlzIGF2YW50IHF1ZSBsJ29yZHJlIGdyYWNlZnVsIHJlc3RhcnQgbmUgc29pdCBkb25u6S48L3A+CgogICAgPHA+UG91ciBsJ2luc3RhbnQsIGlsIGVzdCBpbXBvc3NpYmxlIHBvdXIgdW4gc2NyaXB0IGRlIHJvdGF0aW9uCiAgICBkZXMgbG9ncyB1dGlsaXNhbnQKICAgIDxjb2RlPlVTUjE8L2NvZGU+IGRlIHNhdm9pciBkZSBtYW5p6HJlIGNlcnRhaW5lIHNpIHRvdXMgbGVzIHByb2Nlc3N1cwogICAgZW5mYW50cyBpbnNjcml2YW50IGRlcyB0cmFjZXMgZGUgcHLpLXJlZOltYXJyYWdlIHNvbnQgdGVybWlu6XMuCiAgICBOb3VzIHZvdXMgc3VnZ+lyb25zIGQnYXR0ZW5kcmUgdW4gZOlsYWkgc3VmZmlzYW50IGFwcuhzIGwnZW52b2kgZHUKICAgIHNpZ25hbCA8Y29kZT5VU1IxPC9jb2RlPgogICAgYXZhbnQgZGUgZmFpcmUgcXVvaSBxdWUgY2Ugc29pdCBhdmVjIGxlcyBhbmNpZW5zIGxvZ3MuIFBhciBleGVtcGxlLAogICAgc2kgbGEgcGx1cGFydCBkZSB2b3MgdHJhaXRlbWVudHMgZHVyZW50IG1vaW5zIGRlIDEwIG1pbnV0ZXMgcG91ciBkZXMKICAgIHV0aWxpc2F0ZXVycyBlbXBydW50YW50IGRlcyBsaWFpc29ucyDgIGZhaWJsZSBiYW5kZSBwYXNzYW50ZSwgYWxvcnMgdm91cwogICAgZGV2cmlleiBhdHRlbmRyZSAxNSBtaW51dGVzIGF2YW50IGRlIGZhaXJlIHF1b2kgcXVlIGNlIHNvaXQKICAgIGF2ZWMgbGVzIGFuY2llbnMgbG9ncy48L3A+CgogICAgPGRpdiBjbGFzcz0ibm90ZSI+CiAgICA8cD5Mb3JzcXVlIHZvdXMgaW5pdGlleiB1biByZWTpbWFycmFnZSwgdW5lIHbpcmlmaWNhdGlvbiBkZQogICAgbGEgc3ludGF4ZSBlc3QgdG91dCBkJ2Fib3JkIGVmZmVjdHXpZSwgYWZpbiBkZSBzJ2Fzc3VyZXIgcXUnaWwgbid5IGEKICAgIHBhcyBkJ2VycmV1cnMgZGFucyBsZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbi4gU2kgdm90cmUgZmljaGllciBkZQogICAgY29uZmlndXJhdGlvbiBjb21wb3J0ZSBkZXMgZXJyZXVycyBkZSBzeW50YXhlLCB2b3VzIHJlY2V2cmV6IHVuIG1lc3NhZ2UKICAgIGQnZXJyZXVyIGxlcyBjb25jZXJuYW50LCBldCBsZSBzZXJ2ZXVyIHJlZnVzZXJhIGRlIHJlZOltYXJyZXIuIENlY2kKICAgIHBlcm1ldCBkJ+l2aXRlciBsYSBzaXR1YXRpb24gb/kgdW4gc2VydmV1ciBhCiAgICDpdOkgYXJy6nTpIGV0IG5lIHBldXQgcGx1cyByZWTpbWFycmVyLAogICAgZXQgb/kgdm91cyB2b3VzIHJldHJvdXZleiBhdmVjIHVuIHNlcnZldXIgaG9ycy1zZXJ2aWNlLjwvcD4KCiAgICA8cD5DZWNpIG5lIGdhcmFudGl0IHBhcyBlbmNvcmUgcXVlIGxlIHNlcnZldXIgdmEgcmVk6W1hcnJlcgogICAgY29ycmVjdGVtZW50LiBQb3VyIHbpcmlmaWVyIGxhIHPpbWFudGlxdWUgZGVzIGZpY2hpZXJzIGRlIGNvbmZpZ3VyYXRpb24KICAgIGVuIHBsdXMgZGUgbGV1ciBzeW50YXhlLCB2b3VzIHBvdXZleiBlc3NheWVyIGRlIGTpbWFycmVyCiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+IHNvdXMgdW4gdXRpbGlzYXRldXIgbm9uIHJvb3QuCiAgICBTJ2lsIG4neSBhIHBhcyBkJ2VycmV1ciwgaWwgdGVudGVyYSBkJ291dnJpciBzZXMgc29ja2V0cyBldCBzZXMgZmljaGllcnMKICAgIGRlIGxvZyBldCDpY2hvdWVyYSBjYXIgaWwgbidhIHBhcyBsZXMgcHJpdmls6GdlcyByb290IChvdSBwYXJjZSBxdWUKICAgIGwnaW5zdGFuY2UgYWN0dWVsbGUgZGUKICAgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4gZXN0IGTpauAgYXNzb2Np6WUg4CBjZXMgcG9ydHMpLiBTJ2lsIOljaG91ZQogICAgcG91ciB0b3V0ZSBhdXRyZSByYWlzb24sIGlsIHkgYSBwcm9iYWJsZW1lbnQgdW5lIGVycmV1ciBkYW5zIGxlCiAgICBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gZXQgY2VsbGUtY2kgZG9pdCDqdHJlIGNvcnJpZ+llIGF2YW50IGRlIGxhbmNlcgogICAgbGUgcmVk6W1hcnJhZ2UgZW4gZG91Y2V1ci48L3A+PC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iaHVwIiBpZD0iaHVwIj5SZWTpbWFycmVyIGltbelkaWF0ZW1lbnQ8L2E+PC9oMj4KCjxkbD48ZHQ+U2lnbmFsOiBIVVA8L2R0Pgo8ZGQ+PGNvZGU+YXBhY2hlY3RsIC1rIHJlc3RhcnQ8L2NvZGU+PC9kZD4KPC9kbD4KCiAgICA8cD5BIGxhIHLpY2VwdGlvbiBkdSBzaWduYWwgPGNvZGU+SFVQPC9jb2RlPiBvdQogICAgPGNvZGU+cmVzdGFydDwvY29kZT4sIGxlCiAgICBwcm9jZXNzdXMgcGFyZW50IHR1ZSBzZXMgcHJvY2Vzc3VzIGVuZmFudHMgY29tbWUgcG91ciBsZSBzaWduYWwKICAgIDxjb2RlPlRFUk08L2NvZGU+LCBtYWlzIGxlIHByb2Nlc3N1cyBwYXJlbnQgbmUgc2UgdGVybWluZSBwYXMuCiAgICBJbCByZWxpdCBzZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbiwgZXQgculvdXZyZSBzZXMgZmljaGllcnMgZGUgbG9nLgogICAgUHVpcyBpbCBkb25uZSBuYWlzc2FuY2Ug4CB1biBub3V2ZWF1IGpldSBkZSBwcm9jZXNzdXMgZW5mYW50cwogICAgZXQgY29udGludWUgZGUgdHJhaXRlciBsZXMgcmVxdep0ZXMuPC9wPgoKICAgIDxwPkxlcyB1dGlsaXNhdGV1cnMgZHUgbW9kdWxlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zdGF0dXMuaHRtbCI+bW9kX3N0YXR1czwvYT48L2NvZGU+CiAgICBub3Rlcm9udCBxdWUgbGVzIHN0YXRpc3RpcXVlcyBkdSBzZXJ2ZXVyIHNvbnQgcmVtaXNlcyDgIHrpcm8gcXVhbmQgdW4KICAgIHNpZ25hbCA8Y29kZT5IVVA8L2NvZGU+IGVzdCBlbnZveekuPC9wPgoKPGRpdiBjbGFzcz0ibm90ZSI+Q29tbWUgZGFucyBsZSBjYXMgZCd1biByZWTpbWFycmFnZSAiZ3JhY2VmdWwiLCB1bmUKdulyaWZpY2F0aW9uIGRlIGxhIHN5bnRheGUgZXN0IGVmZmVjdHXpZSBhdmFudCBxdWUgbGUKcmVk6W1hcnJhZ2UgbmUgc29pdCB0ZW506S4gU2kgdm90cmUgZmljaGllciBkZSBjb25maWd1cmF0aW9uIGNvbXBvcnRlCmRlcyBlcnJldXJzIGRlIHN5bnRheGUsIGxlIHJlZOltYXJyYWdlIG5lIHNlcmEgcGFzIGVmZmVjdHXpLCBldAp2b3VzIHJlY2V2cmV6IHVuIG1lc3NhZ2UgY29uY2VybmFudCBjZXMgZXJyZXVycy48L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJncmFjZWZ1bHN0b3AiIGlkPSJncmFjZWZ1bHN0b3AiPkFycup0IGVuIGRvdWNldXI8L2E+PC9oMj4KCjxkbD48ZHQ+U2lnbmFsIDogV0lOQ0g8L2R0Pgo8ZGQ+PGNvZGU+YXBhY2hlY3RsIC1rIGdyYWNlZnVsLXN0b3A8L2NvZGU+PC9kZD4KPC9kbD4KCiAgICA8cD5BIGxhIHLpY2VwdGlvbiBkdSBzaWduYWwgPGNvZGU+V0lOQ0g8L2NvZGU+IG91CiAgICA8Y29kZT5ncmFjZWZ1bC1zdG9wPC9jb2RlPiwgbGUKICAgIHByb2Nlc3N1cyBwYXJlbnQgPGVtPm9yZG9ubmU8L2VtPiDgIHNlcyBwcm9jZXNzdXMgZW5mYW50cwogICAgZGUgcydhcnLqdGVyIGFwcuhzIGxlIHRyYWl0ZW1lbnQgZGUgbGV1ciByZXF16nRlIGVuIGNvdXJzCiAgICAob3UgZGUgcydhcnLqdGVyIGltbelkaWF0ZW1lbnQgcydpbHMgbidvbnQgcGx1cyBkZSByZXF16nRlIOAgdHJhaXRlcikuCiAgICBMZSBwcm9jZXNzdXMgcGFyZW50IHZhIGFsb3JzIHN1cHByaW1lciBzb24gZmljaGllcgogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI3BpZGZpbGUiPlBpZEZpbGU8L2E+PC9jb2RlPiBldCBjZXNzZXIgbCfpY291dGUKICAgIGRlIHRvdXMgc2VzIHBvcnRzLiBMZSBwcm9jZXNzdXMgcGFyZW50IHZhIGNvbnRpbnVlciDgIHMnZXjpY3V0ZXIsCiAgICBldCB2YSBzdXJ2ZWlsbGVyIGxlcyBwcm9jZXNzdXMgZW5mYW50cwogICAgcXVpIG9udCBlbmNvcmUgZGVzIHJlcXXqdGVzIOAgdHJhaXRlci4gTG9yc3F1ZSB0b3VzIGxlcyBwcm9jZXNzdXMgZW5mYW50cwogICAgb250IHRlcm1pbukgbGV1cnMgdHJhaXRlbWVudHMgZXQgc2Ugc29udCBhcnLqdOlzIG91IGxvcnNxdWUgbGUgZOlsYWkKICAgIHNw6WNpZmnpIHBhciBsYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2dyYWNlZnVsc2h1dGRvd250aW1lb3V0Ij5HcmFjZWZ1bFNodXRkb3duVGltZW91dDwvYT48L2NvZGU+IGEg6XTpIGF0dGVpbnQsCiAgICBsZSBwcm9jZXNzdXMgcGFyZW50IHMnYXJy6nRlcmEg4CBzb24gdG91ci4gIFNpIGNlIGTpbGFpIGVzdCBhdHRlaW50LAogICAgdG91dCBwcm9jZXNzdXMgZW5mYW50IGVuY29yZSBlbiBjb3VycyBkJ2V46WN1dGlvbiBzZSB2ZXJyYSBlbnZveWVyCiAgICBsZSBzaWduYWwgPGNvZGU+VEVSTTwvY29kZT4KICAgIGFmaW4gZGUgbGUgZm9yY2VyIOAgcydhcnLqdGVyLjwvcD4KCiAgICA8cD5MJ2Vudm9pIGR1IHNpZ25hbCA8Y29kZT5URVJNPC9jb2RlPiB2YSBhcnLqdGVyIGltbelkaWF0ZW1lbnQKICAgIGxlcyBwcm9jZXNzdXMgcGFyZW50IGV0IGVuZmFudHMgZW4g6XRhdCAiZ3JhY2VmdWwiLiBDZXBlbmRhbnQsCiAgICBjb21tZSBsZSBmaWNoaWVyIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNwaWRmaWxlIj5QaWRGaWxlPC9hPjwvY29kZT4KICAgIGF1cmEg6XTpIHN1cHByaW3pLCB2b3VzIG5lIHBvdXJyZXogcGFzIHV0aWxpc2VyCiAgICA8Y29kZT5hcGFjaGVjdGw8L2NvZGU+IG91IDxjb2RlPmh0dHBkPC9jb2RlPiBwb3VyIGVudm95ZXIgY2Ugc2lnbmFsLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJub3RlIj48cD5MZSBzaWduYWwgPGNvZGU+Z3JhY2VmdWwtc3RvcDwvY29kZT4gdm91cyBwZXJtZXQgZCdleOljdXRlcgogICAgc2ltdWx0YW7pbWVudCBwbHVzaWV1cnMgaW5zdGFuY2VzIGRlIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4KICAgIGF2ZWMgZGVzIGNvbmZpZ3VyYXRpb25zIGlkZW50aXF1ZXMuIENlY2kgcydhduhyZSB1bmUgZm9uY3Rpb25uYWxpdOkKICAgIHB1aXNzYW50ZSBxdWFuZCB2b3VzIGVmZmVjdHVleiBkZXMgbWlzZXMg4CBqb3VyICJlbiBkb3VjZXVyIgogICAgZGUgaHR0cGQgOyBjZXBlbmRhbnQsIGNlbGEgcGV1dCBhdXNzaSBjYXVzZXIgZGVzIGJsb2NhZ2VzIGZhdGFscyBldCBkZXMKICAgIHNpdHVhdGlvbnMgZGUgY29tcOl0aXRpb24gKHJhY2UgY29uZGl0aW9ucykKICAgIGF2ZWMgY2VydGFpbmVzIGNvbmZpZ3VyYXRpb25zLjwvcD4KCiAgICA8cD5PbiBhIHByaXMgc29pbiBkZSBzJ2Fzc3VyZXIgcXVlIGxlcyBmaWNoaWVycyBzdXIgZGlzcXVlCiAgICBjb21tZSBsZXMgZmljaGllcnMgdmVycm91ICg8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbXV0ZXgiPk11dGV4PC9hPjwvY29kZT4pIGV0IGxlcyBmaWNoaWVycyBzb2NrZXQgVW5peAogICAgKDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9jZ2lkLmh0bWwjc2NyaXB0c29jayI+U2NyaXB0U29jazwvYT48L2NvZGU+KSBjb250aWVubmVudCBsZSBQSUQKICAgIGR1IHNlcnZldXIsIGV0IGNvZXhpc3RlbnQgc2FucyBwcm9ibOhtZS4gQ2VwZW5kYW50LCBzaSB1bmUgZGlyZWN0aXZlIGRlCiAgICBjb25maWd1cmF0aW9uLCB1biBtb2R1bGUgdGllcnMgb3UgdW5lIENHSSBy6XNpZGVudGUgdXRpbGlzZSB1biBhdXRyZQogICAgdmVycm91IG91IGZpY2hpZXIgZCfpdGF0IHN1ciBkaXNxdWUsIGlsIGZhdXQgcHJlbmRyZSBzb2luIGRlIHMnYXNzdXJlcgogICAgcXVlIGNoYXF1ZSBpbnN0YW5jZSBkZSA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+IHF1aSBzJ2V46WN1dGUKICAgIG4n6WNyYXNlIHBhcyBsZXMgZmljaGllcnMgZGVzIGF1dHJlcyBpbnN0YW5jZXMuPC9wPgoKICAgIDxwPlZvdXMgZGV2ZXogYXVzc2kgcHJlbmRyZSBnYXJkZSBhdXggYXV0cmVzIHNpdHVhdGlvbnMgZGUgY29tcOl0aXRpb24sCiAgICBjb21tZSBsJ2VucmVnaXN0cmVtZW50IGRlcyBsb2dzIGF2ZWMgdW4gdHJhbnNmZXJ0IGRlIGNldXgtY2kKICAgIHZpYSB1biBwaXBlIHZlcnMgbGUgcHJvZ3JhbW1lIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL3JvdGF0ZWxvZ3MuaHRtbCI+cm90YXRlbG9nczwvYT48L2NvZGU+LiBQbHVzaWV1cnMgaW5zdGFuY2VzCiAgICBkdSBwcm9ncmFtbWUgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvcm90YXRlbG9ncy5odG1sIj5yb3RhdGVsb2dzPC9hPjwvY29kZT4gcXVpIHRlbnRlbnQgZCdlZmZlY3R1ZXIKICAgIHVuZSByb3RhdGlvbiBkZXMgbeptZXMgZmljaGllcnMgZGUgbG9nIGVuIG3qbWUgdGVtcHMgcGV1dmVudCBk6XRydWlyZQogICAgbXV0dWVsbGVtZW50IGxldXJzIHByb3ByZXMgZmljaGllcnMgZGUgbG9nLjwvcD48L2Rpdj4KPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi9kZS9zdG9wcGluZy5odG1sIiBocmVmbGFuZz0iZGUiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRGV1dHNjaCI+Jm5ic3A7ZGUmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lbi9zdG9wcGluZy5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9zdG9wcGluZy5odG1sIiBocmVmbGFuZz0iZXMiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRXNwYfFvbCI+Jm5ic3A7ZXMmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9mci9zdG9wcGluZy5odG1sIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvc3RvcHBpbmcuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL3N0b3BwaW5nLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvc3RvcHBpbmcuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudGFpcmVzPC9hPjwvaDI+PGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+PGJyIC8+VGhpcyBpcyBub3QgYSBRJmFtcDtBIHNlY3Rpb24uIENvbW1lbnRzIHBsYWNlZCBoZXJlIHNob3VsZCBiZSBwb2ludGVkIHRvd2FyZHMgc3VnZ2VzdGlvbnMgb24gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9yIHNlcnZlciwgYW5kIG1heSBiZSByZW1vdmVkIGFnYWluIGJ5IG91ciBtb2RlcmF0b3JzIGlmIHRoZXkgYXJlIGVpdGhlciBpbXBsZW1lbnRlZCBvciBjb25zaWRlcmVkIGludmFsaWQvb2ZmLXRvcGljLiBRdWVzdGlvbnMgb24gaG93IHRvIG1hbmFnZSB0aGUgQXBhY2hlIEhUVFAgU2VydmVyIHNob3VsZCBiZSBkaXJlY3RlZCBhdCBlaXRoZXIgb3VyIElSQyBjaGFubmVsLCAjaHR0cGQsIG9uIEZyZWVub2RlLCBvciBzZW50IHRvIG91ciA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9saXN0cy5odG1sIj5tYWlsaW5nIGxpc3RzPC9hPi48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KdmFyIGNvbW1lbnRzX3Nob3J0bmFtZSA9ICdodHRwZCc7CnZhciBjb21tZW50c19pZGVudGlmaWVyID0gJ2h0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvdHJ1bmsvc3RvcHBpbmcuaHRtbCc7CihmdW5jdGlvbih3LCBkKSB7CiAgICBpZiAody5sb2NhdGlvbi5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpID09ICJodHRwZC5hcGFjaGUub3JnIikgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+PFwvZGl2PicpOwogICAgICAgIHZhciBzID0gZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsKICAgICAgICBzLnNyYyA9ICdodHRwczovL2NvbW1lbnRzLmFwYWNoZS5vcmcvc2hvd19jb21tZW50cy5sdWE/c2l0ZT0nICsgY29tbWVudHNfc2hvcnRuYW1lICsgJyZwYWdlPScgKyBjb21tZW50c19pZGVudGlmaWVyOwogICAgICAgIChkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0gfHwgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZChzKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkF1dG9yaXPpIHNvdXMgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FpcmU8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=