PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2RfcHJveHlfYWpwIC0gU2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNDwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGUvY3NzL3ByZXR0aWZ5LmNzcyIgLz4KPHNjcmlwdCBzcmM9Ii4uL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4uL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPlNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjQ8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4uL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5TZXJ2ZXVyIEhUVFA8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuNDwvYT4gJmd0OyA8YSBocmVmPSIuLyI+TW9kdWxlczwvYT48L2Rpdj4KPGRpdiBpZD0icGFnZS1jb250ZW50Ij4KPGRpdiBpZD0icHJlYW1ibGUiPjxoMT5Nb2R1bGUgQXBhY2hlIG1vZF9wcm94eV9hanA8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfcHJveHlfYWpwLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9mci9tb2QvbW9kX3Byb3h5X2FqcC5odG1sIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2phL21vZC9tb2RfcHJveHlfYWpwLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJtb2R1bGUiPjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPk1vZHVsZSBkZSBzdXBwb3J0IEFKUCBwb3VyCjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfcHJveHkuaHRtbCI+bW9kX3Byb3h5PC9hPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1dDo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjTW9kdWxlSWRlbnRpZmllciI+SWRlbnRpZmljYXRldXKgZGWgTW9kdWxlOjwvYT48L3RoPjx0ZD5wcm94eV9hanBfbW9kdWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU291cmNlRmlsZSI+RmljaGllcqBTb3VyY2U6PC9hPjwvdGg+PHRkPm1vZF9wcm94eV9hanAuYzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI0NvbXBhdGliaWxpdHkiPkNvbXBhdGliaWxpdOk6PC9hPjwvdGg+PHRkPkRpc3BvbmlibGUgZGVwdWlzIGxhIHZlcnNpb24gMi4xIGQnQXBhY2hlPC90ZD48L3RyPjwvdGFibGU+CjxoMz5Tb21tYWlyZTwvaDM+CgogICAgPHA+Q2UgbW9kdWxlIG7pY2Vzc2l0ZSBsZSBjaGFyZ2VtZW50IGRlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfcHJveHkuaHRtbCI+bW9kX3Byb3h5PC9hPjwvY29kZT4uIElsIGZvdXJuaXQgbGUgc3VwcG9ydCBkdSA8Y29kZT5Qcm90b2NvbGUgQXBhY2hlCiAgICBKU2VydiB2ZXJzaW9uIDEuMzwvY29kZT4gKG5vbW3pIGRhbnMgbGEgc3VpdGUgZGUgY2UgZG9jdW1lbnQKICAgIDxlbT5BSlAxMzwvZW0+KS48L3A+CgogICAgPHA+UG91ciDqdHJlIGVuIG1lc3VyZSBkJ2V4cGxvaXRlciBsZSBwcm90b2NvbGUgPGNvZGU+QUpQMTM8L2NvZGU+LAogICAgaWwgZXN0IGRvbmMgbuljZXNzYWlyZSBkZSBjaGFyZ2VyIGxlcyBtb2R1bGVzCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+IGV0IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfcHJveHlfYWpwLmh0bWwiPm1vZF9wcm94eV9hanA8L2E+PC9jb2RlPi48L3A+CgogICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPkF2ZXJ0aXNzZW1lbnQ8L2gzPgogICAgICA8cD5OJ2FjdGl2ZXogcGFzIGxhIGZvbmN0aW9ubmFsaXTpIGRlIG1hbmRhdGFpcmUgYXZhbnQgZCdhdm9pciA8YSBocmVmPSJtb2RfcHJveHkuaHRtbCNhY2Nlc3MiPnPpY3VyaXPpIHZvdHJlIHNlcnZldXI8L2E+LiBMZXMKICAgICAgc2VydmV1cnMgbWFuZGF0YWlyZXMgb3V2ZXJ0cyBzb250IGRhbmdlcmV1eCBub24gc2V1bGVtZW50IHBvdXIKICAgICAgdm90cmUgculzZWF1LCBtYWlzIGF1c3NpIHBvdXIgbCdJbnRlcm5ldCBhdSBzZW5zIGxhcmdlLiA8L3A+CiAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzPlN1amV0czwvaDM+Cjx1bCBpZD0idG9waWNzIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdXNhZ2UiPlV0aWxpc2F0aW9uPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2VudiI+VmFyaWFibGVzIGQnZW52aXJvbm5lbWVudDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNvdmVydmlld3Byb3RvY29sIj5WdWUgZCdlbnNlbWJsZSBkdSBwcm90b2NvbGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYmFzcHBhY2tldHN0cnVjdCI+U3RydWN0dXJlIGRlIGJhc2UgZGVzIHBhcXVldHM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjcnBhY2V0c3RydWN0Ij5TdHJ1Y3R1cmUgZGVzIHBhcXVldHMgZGUKcmVxdep0ZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNyZXNwcGFja2V0c3RydWN0Ij5TdHJ1Y3R1cmUgZHUgcGFxdWV0IGRlIGxhCnLpcG9uc2U8L2E+PC9saT4KPC91bD48aDMgY2xhc3M9ImRpcmVjdGl2ZXMiPkRpcmVjdGl2ZXM8L2gzPgo8cD5DZSBtb2R1bGUgbmUgZm91cm5pdCBhdWN1bmUgZGlyZWN0aXZlLjwvcD4KPGgzPlRyYWl0ZW1lbnQgZGVzIGJ1Z3M8L2gzPjx1bCBjbGFzcz0ic2VlYWxzbyI+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9odHRwZC9DSEFOR0VTXzIuNCI+Sm91cm5hbCBkZXMgbW9kaWZpY2F0aW9ucyBkZSBodHRwZDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2J6LmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1fX29wZW5fXyZhbXA7bGlzdF9pZD0xNDQ1MzImYW1wO3Byb2R1Y3Q9QXBhY2hlJTIwaHR0cGQtMiZhbXA7cXVlcnlfZm9ybWF0PXNwZWNpZmljJmFtcDtvcmRlcj1jaGFuZ2VkZGF0ZSUyMERFU0MlMkNwcmlvcml0eSUyQ2J1Z19zZXZlcml0eSZhbXA7Y29tcG9uZW50PW1vZF9wcm94eV9hanAiPlByb2Js6G1lcyBjb25udXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9iei5hcGFjaGUub3JnL2J1Z3ppbGxhL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD1BcGFjaGUlMjBodHRwZC0yJmFtcDtjb21wb25lbnQ9bW9kX3Byb3h5X2FqcCI+U2lnbmFsZXIgdW4gYnVnPC9hPjwvbGk+PC91bD48aDM+Vm9pciBhdXNzaTwvaDM+Cjx1bCBjbGFzcz0ic2VlYWxzbyI+CjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+PC9saT4KPGxpPjxhIGhyZWY9Ii4uL2Vudi5odG1sIj5Eb2N1bWVudGF0aW9uIHN1ciBsZXMgdmFyaWFibGVzCmQnZW52aXJvbm5lbWVudDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InVzYWdlIiBpZD0idXNhZ2UiPlV0aWxpc2F0aW9uPC9hPjwvaDI+CiAgICA8cD5DZSBtb2R1bGUgcGVybWV0IGRlIG1hbmRhdGVyIGVuIGludmVyc2UgdW4gc2VydmV1ciBkJ2FwcGxpY2F0aW9uCiAgICBkJ2FycmnocmUtcGxhbiAoY29tbWUgQXBhY2hlIFRvbWNhdCkgcXVpIHV0aWxpc2UgbGUgcHJvdG9jb2xlIEFKUDEzLgogICAgU29uIHV0aWxpc2F0aW9uIGVzdCBzaW1pbGFpcmUg4CBjZWxsZSBkJ3VuIG1hbmRhdGFpcmUgaW52ZXJzZSBIVFRQLAogICAgbWFpcyBzJ2FwcHVpZSBzdXIgbGUgcHJlZml4ZSA8Y29kZT5hanA6Ly88L2NvZGU+IDo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPk1hbmRhdGFpcmUgaW52ZXJzZSBzaW1wbGU8L2gzPjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5Qcm94eVBhc3MgIi9hcHAiICJhanA6Ly9iYWNrZW5kLmV4YW1wbGUuY29tOjgwMDkvYXBwIjwvcHJlPgo8L2Rpdj4KCiAgICA8cD5PbiBwZXV0IGF1c3NpIGNvbmZpZ3VyZXIgdW4gculwYXJ0aXRldXIgZGUgY2hhcmdlIDo8L3A+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+TWFuZGF0YWlyZSBpbnZlcnNlIGF2ZWMgculwYXJ0aXRldXIgZGUgY2hhcmdlPC9oMz48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O1Byb3h5IGJhbGFuY2VyOi8vY2x1c3RlciZndDsKICAgIEJhbGFuY2VyTWVtYmVyICJhanA6Ly9hcHAxLmV4YW1wbGUuY29tOjgwMDkiIGxvYWRmYWN0b3I9MQogICAgQmFsYW5jZXJNZW1iZXIgImFqcDovL2FwcDIuZXhhbXBsZS5jb206ODAwOSIgbG9hZGZhY3Rvcj0yCiAgICBQcm94eVNldCBsYm1ldGhvZD1ieXRyYWZmaWMKJmx0Oy9Qcm94eSZndDsKUHJveHlQYXNzICIvYXBwIiAiYmFsYW5jZXI6Ly9jbHVzdGVyL2FwcCI8L3ByZT4KPC9kaXY+CgogICAgPHA+Tm90ZXogcXUnZW4gZ+lu6XJhbCwgbGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eXBhc3NyZXZlcnNlIj5Qcm94eVBhc3NSZXZlcnNlPC9hPjwvY29kZT4gbidlc3QgcGFzCiAgICBu6WNlc3NhaXJlLiBMYSByZXF16nRlIEFKUCBpbmNsdXQgbCdlbi106nRlIGhvc3Qgb3JpZ2luYWwgZm91cm5pCiAgICBhdSBtYW5kYXRhaXJlLCBldCBsZSBzZXJ2ZXVyIGQnYXBwbGljYXRpb24gZXN0IHNlbnPpIGfpbulyZXIgZGVzCiAgICBlbi106nRlcyBhdXRvLXLpZulyZW7nYW50cyByZWxhdGlmcyDgIGNldCBo9HRlIDsgYXVjdW5lIHLp6WNyaXR1cmUKICAgIG4nZXN0IGRvbmMgbuljZXNzYWlyZS48L3A+CgogICAgPHA+TGEgc2l0dWF0aW9uIGxhIHBsdXMgY291cmFudGUgZGFucyBsYXF1ZWxsZSBsYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9wcm94eS5odG1sI3Byb3h5cGFzc3JldmVyc2UiPlByb3h5UGFzc1JldmVyc2U8L2E+PC9jb2RlPiBlc3QgbuljZXNzYWlyZSBzZQogICAgcmVuY29udHJlIGxvcnNxdWUgbGUgY2hlbWluIGRlIGwnVVJMIGF1IG5pdmVhdSBkdSBtYW5kYXRhaXJlIGVzdAogICAgZGlmZulyZW50ZSBkZSBjZWxsZSBkdSBzZXJ2ZXVyIGQnYXJyaehyZS1wbGFuLiBEYW5zIGNlIGNhcywgdW4KICAgIGVuLXTqdGUgcmVkaXJlY3QgcGV1dCDqdHJlIHLp6WNyaXQgcmVsYXRpdmVtZW50IOAgbCdVUkwgZGUgbCdo9HRlCiAgICBvcmlnaW5hbCAoZXQgbm9uIGR1IHNlcnZldXIgZCdhcnJp6HJlLXBsYW4gPGNvZGU+YWpwOi8vPC9jb2RlPiBVUkwpCiAgICA7IHBhciBleGVtcGxlIDo8L3A+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+UunpY3JpdHVyZSBkJ3VuIGNoZW1pbiBtYW5kYXTpPC9oMz48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+UHJveHlQYXNzICIvYXBwcy9mb28iICJhanA6Ly9iYWNrZW5kLmV4YW1wbGUuY29tOjgwMDkvZm9vIgpQcm94eVBhc3NSZXZlcnNlICIvYXBwcy9mb28iICJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2ZvbyI8L3ByZT4KPC9kaXY+CiAgICA8cD5JbCBlc3QgY2VwZW5kYW50IHBy6WbpcmFibGUgZW4gZ+lu6XJhbCBkZSBk6XBsb3llciBsJ2FwcGxpY2F0aW9uCiAgICBzdXIgbGUgc2VydmV1ciBkJ2FycmnocmUtcGxhbiBhdmVjIGxlIG3qbWUgY2hlbWluIHF1ZSBzdXIgbGUKICAgIG1hbmRhdGFpcmUuCiAgICA8L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImVudiIgaWQ9ImVudiI+VmFyaWFibGVzIGQnZW52aXJvbm5lbWVudDwvYT48L2gyPgogICAgPHA+TGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZG9udCBsZSBub20gcG9zc+hkZSBsZSBwculmaXhlCiAgICA8Y29kZT5BSlBfPC9jb2RlPiBzb250IHRyYW5zbWlzZXMgYXUgc2VydmV1ciBvcmlnaW5hbCBlbiB0YW50CiAgICBxdSdhdHRyaWJ1dHMgZGUgcmVxdep0ZSBBSlAgKGxlIHBy6WZpeGUgQUpQXyDpdGFudCBzdXBwcmlt6SBkdSBub20KICAgIGRlIGxhIGNs6SkuPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJvdmVydmlld3Byb3RvY29sIiBpZD0ib3ZlcnZpZXdwcm90b2NvbCI+VnVlIGQnZW5zZW1ibGUgZHUgcHJvdG9jb2xlPC9hPjwvaDI+CiAgICA8cD5MZSBwcm90b2NvbGUgPGNvZGU+QUpQMTM8L2NvZGU+IGVzdCBvcmllbnTpIHBhcXVldC4gTGUgZm9ybWF0CiAgICBiaW5haXJlIGEg6XTpIHBy6WbpcuksIHByb2JhYmxlbWVudCBwb3VyIGRlcyByYWlzb25zIGRlCiAgICBwZXJmb3JtYW5jZXMsIGF1IGZvcm1hdCB0ZXh0ZSBwb3VydGFudCBwbHVzIGxpc2libGUuIExlIHNlcnZldXIgd2ViCiAgICBjb21tdW5pcXVlIGF2ZWMgbGUgY29udGVuZXVyIGRlIHNlcnZsZXRzIHN1ciB1bmUgY29ubmV4aW9uIFRDUC4gUG91cgogICAgZGltaW51ZXIgbGEgY2hhcmdlIGluZHVpdGUgcGFyIGxlIHByb2Nlc3N1cyBkZSBjculhdGlvbiBkZSBzb2NrZXQsCiAgICBsZSBzZXJ2ZXVyIHdlYiB2YSB0ZW50ZXIgZCd1dGlsaXNlciBkZXMgY29ubmV4aW9ucyBUQ1AgcGVyc2lzdGFudGVzCiAgICBhdmVjIGxlIGNvbnRlbmV1ciBkZSBzZXJ2bGV0cywgZXQgZGUgcul1dGlsaXNlciBsZXMgY29ubmV4aW9ucwogICAgcGVuZGFudCBwbHVzaWV1cnMgY3ljbGVzIHJlcXXqdGVzL3LpcG9uc2UuPC9wPgogICAgPHA+TG9yc3F1J3VuZSBjb25uZXhpb24gYSDpdOkgYXNzaWdu6WUg4CB1bmUgcmVxdep0ZSBwYXJ0aWN1bGnocmUsCiAgICBlbGxlIG5lIHNlcmEgdXRpbGlz6WUgcG91ciBhdWN1bmUgYXV0cmUganVzcXUn4CBjZSBxdWUgbGUgY3ljbGUgZGUKICAgIHRyYWl0ZW1lbnQgZGUgbGEgcmVxdep0ZSBzZSBzb2l0IHRlcm1pbukuIEVuIGQnYXV0cmVzIHRlcm1lcywgaWwgbid5CiAgICBhIHBhcyBkZSBtdWx0aXBsZXhhZ2UgZGVzIHJlcXXqdGVzIHN1ciB1bmUgY29ubmV4aW9uLiBDZWNpIHNlCiAgICB0cmFkdWl0IHBhciB1biBjb2RlIGJlYXVjb3VwIHBsdXMgc2ltcGxlIOAgY2hhcXVlIGV4dHLpbWl06SBkZSBsYQogICAgY29ubmV4aW9uLCB1biBub21icmUgcGx1cyBpbXBvcnRhbnQgZGUgY29ubmV4aW9ucyDpdGFudCBjZXBlbmRhbnQKICAgIG91dmVydGVzIGVuIG3qbWUgdGVtcHMuPC9wPgogICAgPHA+TG9yc3F1ZSBsZSBzZXJ2ZXVyIHdlYiBhIG91dmVydCB1bmUgY29ubmV4aW9uIHZlcnMgbGUgY29udGVuZXVyCiAgICBkZSBzZXJ2bGV0cywgY2VsbGUtY2kgcGV1dCBzZSB0cm91dmVyIGRhbnMgbCd1biBkZXMg6XRhdHMgc3VpdmFudHMKICAgIDo8L3A+CiAgICA8dWw+CiAgICA8bGk+IElkbGUgPGJyIC8+IEF1Y3VuZSByZXF16nRlIG4nZXN0IHRyYWl06WUgc3VyIGNldHRlCiAgICBjb25uZXhpb24uIDwvbGk+CiAgICA8bGk+IEFzc2lnbmVkIDxiciAvPiBMYSBjb25uZXhpb24gZmFpdCBsJ29iamV0IGQndW4gdHJhaXRlbWVudCBkZQogICAgcmVxdep0ZS48L2xpPgogICAgPC91bD4KICAgIDxwPkxvcnNxdSd1bmUgY29ubmV4aW9uIGVzdCBhc3NpZ27pZSBhdSB0cmFpdGVtZW50IGQndW5lIHJlcXXqdGUKICAgIHBhcnRpY3VsaehyZSwgbGVzIGluZm9ybWF0aW9ucyBkZSBiYXNlIGRlIGNldHRlIGRlcm5p6HJlIChjb21tZSBsZXMKICAgIGVuLXTqdGVzIEhUVFAsIGV0Yy4uLikgc29udCBlbnZveellcyBzdXIgbGEgY29ubmV4aW9uIHNvdXMgdW5lIGZvcm1lCiAgICB0cuhzIGNvbmRlbnPpZSAocGFyIGV4ZW1wbGUgbGVzIGNoYe5uZXMgY291cmFudGVzIHNvbnQgY29k6WVzIHNvdXMKICAgIGZvcm1lIGQnZW50aWVycykuIFZvdXMgdHJvdXZlcmV6IGRlcyBk6XRhaWxzIHN1ciBjZSBmb3JtYXQgcGx1cwogICAgbG9pbiBkYW5zIGxhIHN0cnVjdHVyZSBkZXMgcGFxdWV0cyBkZSByZXF16nRlLiBTaSBsYSByZXF16nRlIHBvc3PoZGUKICAgIHVuIGNvcnBzIDxjb2RlPihjb250ZW50LWxlbmd0aCAmZ3Q7IDApPC9jb2RlPiwgaWwgZXN0IGVudm956SBkYW5zIHVuCiAgICBwYXF1ZXQgc+lwYXLpIGltbelkaWF0ZW1lbnQgYXBy6HMuPC9wPgogICAgPHA+QSBjZSBtb21lbnQsIGxlIGNvbnRlbmV1ciBlc3QgcHJvYmFibGVtZW50IHBy6nQg4CB0cmFpdGVyIGxhCiAgICByZXF16nRlLiBBdSBjb3VycyBkZSBjZSB0cmFpdGVtZW50LCBpbCBwZXV0IHJlbnZveWVyIGxlcyBtZXNzYWdlcwogICAgc3VpdmFudHMgYXUgc2VydmV1ciB3ZWIgOjwvcD4KICAgIDx1bD4KICAgIDxsaT5TRU5EX0hFQURFUlMgPGJyIC8+UmVudm9pZSB1biBqZXUgZCdlbi106nRlcyBhdSBuYXZpZ2F0ZXVyLjwvbGk+CiAgICA8bGk+U0VORF9CT0RZX0NIVU5LIDxiciAvPlJlbnZvaWUgdW4gdHJvbudvbiBkZSBjb3JwcyBkZSByZXF16nRlIGF1CiAgICBuYXZpZ2F0ZXVyLgogICAgPC9saT4KICAgIDxsaT5HRVRfQk9EWV9DSFVOSyA8YnIgLz5SZedvaXQgdW4gYXV0cmUgdHJvbudvbiBkZSBkb25u6WVzIGRlIGxhCiAgICByZXF16nRlIHNpIGVsbGUgbidhIHBhcyBlbmNvcmUg6XTpIHRyYW5zbWlzZSBpbnTpZ3JhbGVtZW50LiBDZSB0eXBlCiAgICBkZSB0cmFuc21pc3Npb24gZXN0IG7pY2Vzc2FpcmUgY2FyIGxlcyBwYXF1ZXRzIHBvc3PoZGVudCB1bmUgdGFpbGxlCiAgICBtYXhpbWFsZSBmaXhlLCBldCBkZXMgcXVhbnRpdOlzIHF1ZWxjb25xdWVzIGRlIGRvbm7pZXMgcGV1dmVudCDqdHJlCiAgICBjb250ZW51ZXMgZGFucyBsZSBjb3JwcyBkZSBsYSByZXF16nRlIChwb3VyIHVuIGNoYXJnZW1lbnQgZGUKICAgIGZpY2hpZXIsIHBhciBleGVtcGxlKS4gTm90ZXogcXVlIGNlbGEgbidhIHJpZW4g4CB2b2lyIGF2ZWMgbGUKICAgIHRyYW5zZmVydCBIVFRQIGZyYWN0aW9ubukuPC9saT4KICAgIDxsaT5FTkRfUkVTUE9OU0UgPGJyIC8+IFRlcm1pbmUgbGUgY3ljbGUgZHUgdHJhaXRlbWVudCBkZSBsYQogICAgcmVxdep0ZS48L2xpPgogICAgPC91bD4KICAgIDxwPkNoYXF1ZSBtZXNzYWdlIGVzdCBhc3NvY2npIOAgdW4gcGFxdWV0IGRlIGRvbm7pZXMgZm9ybWF06QogICAgZGlmZulyZW1tZW50LiBWb2lyIHBsdXMgbG9pbiBsZXMgc3RydWN0dXJlcyBkZXMgcGFxdWV0cyBkZSBy6XBvbnNlcwogICAgcG91ciBwbHVzIGRlIGTpdGFpbHMuPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJiYXNwcGFja2V0c3RydWN0IiBpZD0iYmFzcHBhY2tldHN0cnVjdCI+U3RydWN0dXJlIGRlIGJhc2UgZGVzIHBhcXVldHM8L2E+PC9oMj4KICAgIDxwPkNlIHByb3RvY29sZSBo6XJpdGUgZW4gcGFydGllIGRlIFhEUiwgbWFpcyBpbCBkaWZm6HJlIHN1ciBkZQogICAgbm9tYnJldXggcG9pbnRzIChwYXMgZCdhbGlnbmVtZW50IHN1ciA0IGJpdHMsIHBhciBleGVtcGxlKS48L3A+CiAgICA8cD5BSlAxMyB1dGlsaXNlIGxlcyBvY3RldHMgc2Vsb24gbGV1ciBvcmRyZSBkJ2Fycml26WUgcGFyIGxlIHLpc2VhdQogICAgcG91ciB0b3VzIGxlcyB0eXBlcyBkZSBkb25u6WVzLjwvcD4KICAgIDxwPkxlIHByb3RvY29sZSBjb21wb3J0ZSBxdWF0cmUgdHlwZXMgZGUgZG9ubullcyA6IG9jdGV0cywgYm9vbOllbnMsCiAgICBlbnRpZXJzIGV0IGNoYe5uZXMgZGUgY2FyYWN06HJlcy48L3A+CiAgICA8ZGw+CiAgICA8ZHQ+PHN0cm9uZz5PY3RldDwvc3Ryb25nPjwvZHQ+PGRkPlVuIHNldWwgb2N0ZXQuPC9kZD4KICAgIDxkdD48c3Ryb25nPkJvb2zpZW48L3N0cm9uZz48L2R0PgogICAgICA8ZGQ+VW4gc2V1bCBvY3RldCwgPGNvZGU+MSA9IHZyYWk8L2NvZGU+LCA8Y29kZT4wID0gZmF1eDwvY29kZT4uCiAgICAgIEwndXRpbGlzYXRpb24gZCdhdXRyZXMgdmFsZXVycyBub24gbnVsbGVzIChkYW5zIGxlIHN0eWxlIEMpIHBldXQKICAgICAgZm9uY3Rpb25uZXIgZGFucyBjZXJ0YWlucyBjYXMsIG1haXMgcGFzIGRhbnMgY2VydGFpbnMgYXV0cmVzLi48L2RkPgogICAgPGR0PjxzdHJvbmc+RW50aWVyPC9zdHJvbmc+PC9kdD4KICAgICAgPGRkPlVuIG5vbWJyZSBjb21wcmlzIGVudHJlIDxjb2RlPjAgZXQgMl4xNiAoMzI3NjgpPC9jb2RlPiwgc3RvY2vpCiAgICAgIHN1ciAyIG9jdGV0cyBlbiBk6WJ1dGFudCBwYXIgbCdvY3RldCBkZSBwb2lkcyBmb3J0cy48L2RkPgogICAgPGR0PjxzdHJvbmc+Q2hh7m5lPC9zdHJvbmc+PC9kdD4KICAgICAgPGRkPlVuZSBjaGHubmUgZGUgdGFpbGxlIHZhcmlhYmxlIChsb25ndWV1ciBsaW1pdOllIOAgMl4xNikuIEVsbGUKICAgICAgZXN0IGNvZOllIGNvbW1lIHN1aXQgOiBsZXMgZGV1eCBwcmVtaWVycyBvY3RldHMgcmVwculzZW50ZW50IGxhCiAgICAgIGxvbmd1ZXVyIGRlIGxhIGNoYe5uZSwgbGVzIG9jdGV0cyBzdWl2YW50cyBjb25zdGl0dWVudCBsYSBjaGHubmUKICAgICAgcHJvcHJlbWVudCBkaXRlICh5IGNvbXByaXMgbGUgJ1wwJyBmaW5hbCkuIE5vdGV6IHF1ZSBsYSBsb25ndWV1cgogICAgICBlbmNvZOllIGRhbnMgbGVzIGRldXggcHJlbWllcnMgb2N0ZXRzIG5lIHByZW5kIHBhcyBlbiBjb21wdGUgbGUKICAgICAgJ1wwJyBmaW5hbCwgZGUgbGEgbeptZSBtYW5p6HJlIHF1ZSA8Y29kZT5zdHJsZW48L2NvZGU+LiBDZWxhIHBldXQKICAgICAgcHLqdGVyIOAgY29uZnVzaW9uIGR1IHBvaW50IGRlIHZ1ZSBkZSBKYXZhIHF1aSBlc3Qgc3VyY2hhcmfpIGRlCiAgICAgIGTpY2xhcmF0aW9ucyBkJ2F1dG9pbmNy6W1lbnRhdGlvbiDpdHJhbmdlcyBkZXN0aW7pZXMg4CB0cmFpdGVyCiAgICAgIGNlcyB0ZXJtaW5hdGV1cnMuIEplIHN1cHBvc2UgcXVlIGxlIGJ1dCBkYW5zIGxlcXVlbCBjZWxhIGEKICAgICAg6XTpIGNvbud1IGFpbnNpIOl0YWl0IGRlIHBlcm1ldHRyZSBhdSBjb2RlIEMgZCfqdHJlIHBsdXMgZWZmaWNhY2UKICAgICAgbG9ycyBkZSBsYSBsZWN0dXJlIGRlIGNoYe5uZXMgZW4gcHJvdmVuYW5jZSBkdSBjb250ZW5ldXIgZGUKICAgICAgc2VydmxldHMgLS0gYXZlYyBsZSBjYXJhY3TocmUgXDAgZmluYWwsIGxlIGNvZGUgQyBwZXV0IHRyYW5zbWV0dHJlCiAgICAgIGRlcyBy6WbpcmVuY2VzIGRhbnMgdW4gc2V1bCB0YW1wb24sIHNhbnMgYXZvaXIg4CBlZmZlY3R1ZXIgZGUKICAgICAgY29waWUuIEVuIGwnYWJzZW5jZSBkdSBjYXJhY3TocmUgXDAgZmluYWwsIGxlIGNvZGUgQyBkb2l0CiAgICAgIGVmZmVjdHVlciB1bmUgY29waWUgYWZpbiBkZSBwb3V2b2lyIHRlbmlyIGNvbXB0ZSBkZSBzYSBub3Rpb24gZGUKICAgICAgY2hh7m5lLjwvZGQ+CiAgICA8L2RsPgoKICA8aDM+VGFpbGxlIGR1IHBhcXVldDwvaDM+CiAgICA8cD5TZWxvbiBsYSBtYWpvcml06SBkdSBjb2RlLCBsYSB0YWlsbGUgbWF4aW1hbGUgZHUgcGFxdWV0IGVzdCBkZQogICAgPGNvZGU+OCAqIDEwMjQgYnl0ZXMgKDhLKTwvY29kZT4uIExhIHRhaWxsZSBy6WVsbGUgZHUgcGFxdWV0IGVzdAogICAgZW5jb2TpZSBkYW5zIGwnZW4tdOp0ZS48L3A+CiAgCiAgPGgzPkVuLXTqdGVzIGRlIHBhcXVldDwvaDM+CiAgICA8cD5MZXMgcGFxdWV0cyBlbnZveelzIHBhciBsZSBzZXJ2ZXVyIHZlcnMgbGUgY29udGVuZXVyIGNvbW1lbmNlbnQKICAgIHBhciA8Y29kZT4weDEyMzQ8L2NvZGU+LiBMZXMgcGFxdWV0cyBlbnZveelzIHBhciBsZSBjb250ZW5ldXIgdmVycwogICAgbGUgc2VydmV1ciBjb21tZW5jZW50IHBhciA8Y29kZT5BQjwvY29kZT4gKGMnZXN0IOAgZGlyZSBsZSBjb2RlCiAgICBBU0NJSSBkZSBBIHN1aXZpIGR1IGNvZGUgQVNDSUkgZGUgQikuIEVuc3VpdGUsIHZpZW50IHVuIGVudGllciAoY29k6QogICAgY29tbWUgY2ktZGVzc3VzKSByZXBy6XNlbnRhbnQgbGEgbG9uZ3VldXIgZGVzIGRvbm7pZXMgdHJhbnNtaXNlcy4KICAgIEJpZW4gcXVlIGNlY2kgcHVpc3NlIGZhaXJlIGNyb2lyZSBxdWUgbGEgdGFpbGxlIG1heGltYWxlIGRlcyBkb25u6WVzCiAgICBlc3QgZGUgMl4xNiwgbGUgY29kZSBk6WZpbml0IGVuIGZhaXQgY2UgbWF4aW11bSDgIDhLLjwvcD4KICAgIDx0YWJsZT4KICAgICAgICAgICAKICAgICAgPHRyPgogICAgICAgIDx0aCBjb2xzcGFuPSI2Ij48ZW0+Rm9ybWF0IGR1IHBhcXVldCAoU2VydmV1ci0mZ3Q7Q29udGVuZXVyKTwvZW0+PC90aD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0aD5PY3RldDwvdGg+CiAgICAgICAgPHRkPjA8L3RkPgogICAgICAgIDx0ZD4xPC90ZD4KICAgICAgICA8dGQ+MjwvdGQ+CiAgICAgICAgPHRkPjM8L3RkPgogICAgICAgIDx0ZD40Li4uKG4rMyk8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRoPkNvbnRlbnU8L3RoPgogICAgICAgIDx0ZD4weDEyPC90ZD4KICAgICAgICA8dGQ+MHgzNDwvdGQ+CiAgICAgICAgPHRkIGNvbHNwYW49IjIiPlRhaWxsZSBkZXMgZG9ubullcyAobik8L3RkPgogICAgICAgIDx0ZD5EYXRhPC90ZD4KICAgICAgPC90cj4KICAgIDwvdGFibGU+CiAgICA8dGFibGU+CiAgICAgICAKICAgICAgPHRyPgogICAgICAgIDx0aCBjb2xzcGFuPSI2Ij48ZW0+Rm9ybWF0IGR1IHBhcXVldAoJKENvbnRlbmV1ci0mZ3Q7U2VydmV1cik8L2VtPjwvdGg+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGg+T2N0ZXQ8L3RoPgogICAgICAgIDx0ZD4wPC90ZD4KICAgICAgICA8dGQ+MTwvdGQ+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICAgIDx0ZD4zPC90ZD4KICAgICAgICA8dGQ+NC4uLihuKzMpPC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0aD5Db250ZW51PC90aD4KICAgICAgICA8dGQ+QTwvdGQ+CiAgICAgICAgPHRkPkI8L3RkPgogICAgICAgIDx0ZCBjb2xzcGFuPSIyIj5UYWlsbGUgZGVzIGRvbm7pZXMgKG4pPC90ZD4KICAgICAgICA8dGQ+RGF0YTwvdGQ+CiAgICAgIDwvdHI+CiAgICA8L3RhYmxlPgogICAgPHA+UG91ciBsYSBwbHVwYXJ0IGRlcyBwYXF1ZXRzLCBsZSBwcmVtaWVyIG9jdGV0IGRlIGxhIGNoYXJnZSB1dGlsZQogICAgZW5jb2RlIGxlIHR5cGUgZGUgbWVzc2FnZSwg4CBsJ2V4Y2VwdGlvbiBkZXMgcGFxdWV0cyBjb250ZW5hbnQgdW4KICAgIGNvcnBzIGRlIHJlcXXqdGUgZW52b3npcyBkdSBzZXJ2ZXVyIHZlcnMgbGUgY29udGVuZXVyIC0tIGlscwogICAgY29tcG9ydGVudCB1biBlbi106nRlIHN0YW5kYXJkICg8Y29kZT4weDEyMzQ8L2NvZGU+IHN1aXZpIGRlIGxhIHRhaWxsZQogICAgZHUgcGFxdWV0KSwgbWFpcyBjZWx1aS1jaSBuJ2VzdCBzdWl2aSBkJ2F1Y3VuIHBy6WZpeGUuPC9wPgogICAgIDxwPkxlIHNlcnZldXIgd2ViIHBldXQgZW52b3llciBsZXMgbWVzc2FnZXMgc3VpdmFudHMgYXUgY29udGVuZXVyCiAgICAgZGUgc2VydmxldHMgOjwvcD4KICAgIDx0YWJsZT4KICAgICAgIAogICAgICA8dHI+CiAgICAgICAgPHRkPkNvZGU8L3RkPgogICAgICAgIDx0ZD5UeXBlIGRlIHBhcXVldDwvdGQ+CiAgICAgICAgPHRkPlNpZ25pZmljYXRpb248L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjI8L3RkPgogICAgICAgIDx0ZD5GYWl0IHN1aXZyZSBsYSByZXF16nRlPC90ZD4KICAgICAgICA8dGQ+ROlidXRlIGxlIGN5Y2xlIGRlIHRyYWl0ZW1lbnQgZGUgbGEgcmVxdep0ZSBhdmVjIGxlcyBkb25u6WVzCglxdWkgc3VpdmVudC48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjc8L3RkPgogICAgICAgIDx0ZD5BcnLqdDwvdGQ+CiAgICAgICAgPHRkPkxlIHNlcnZldXIgd2ViIGRlbWFuZGUgYXUgY29udGVuZXVyIGRlIHMnYXJy6nRlci48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjg8L3RkPgogICAgICAgIDx0ZD5QaW5nPC90ZD4KICAgICAgICA8dGQ+TGUgc2VydmV1ciB3ZWIgZGVtYW5kZSBhdSBjb250ZW5ldXIgZGUgcHJlbmRyZSBsZSBjb250cvRsZQoJKHBoYXNlIGRlIGNvbm5leGlvbiBz6WN1cmlz6WUpLjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+MTA8L3RkPgogICAgICAgIDx0ZD5DUGluZzwvdGQ+CiAgICAgICAgPHRkPkxlIHNlcnZldXIgd2ViIGRlbWFuZGUgYXUgY29udGVuZXVyIGRlIHLpcG9uZHJlIHJhcGlkZW1lbnQKCWF2ZWMgdW4gQ1BvbmcuCiAgICAgICAgPC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD5ub25lPC90ZD4KICAgICAgICA8dGQ+RG9ubullczwvdGQ+CiAgICAgICAgPHRkPlRhaWxsZSAoMiBvY3RldHMpIGV0IGxlcyBkb25u6WVzIGNvcnJlc3BvbmRhbnRlcy48L3RkPgogICAgICA8L3RyPgogICAgPC90YWJsZT4KICAgIDxwPsAgZGVzIGZpbnMgZGUgc+ljdXJpdOksIGxlIGNvbnRlbmV1ciBuJ2VmZmVjdHVlcmEgcullbGxlbWVudCBzb24KICAgIDxjb2RlPkFycup0PC9jb2RlPiBxdWUgc2kgbGEgZGVtYW5kZSBwcm92aWVudCBkZSBsYSBtYWNoaW5lIHBhcgogICAgbGFxdWVsbGUgaWwgZXN0IGjpYmVyZ+kuPC9wPgogICAgPHA+TGUgcHJlbWllciBwYXF1ZXQgPGNvZGU+RG9ubullczwvY29kZT4gZXN0IGVudm956SBpbW3pZGlhdGVtZW50CiAgICBhcHLocyBsZSBwYXF1ZXQgPGNvZGU+RmFpcmUgc3VpdnJlIGxhIHJlcXXqdGU8L2NvZGU+IHBhciBsZSBzZXJ2ZXVyCiAgICB3ZWIuPC9wPgogICAgPHA+TGUgY29udGVuZXVyIGRlIHNlcnZsZXRzIHBldXQgZW52b3llciBsZXMgdHlwZXMgZGUgbWVzc2FnZXMKICAgIHN1aXZhbnRzIGF1IHNlcnZldXIgd2ViIDo8L3A+CiAgICA8dGFibGU+CiAgICAgICAKICAgICAgPHRyPgogICAgICAgIDx0ZD5Db2RlPC90ZD4KICAgICAgICA8dGQ+VHlwZSBkZSBwYXF1ZXQ8L3RkPgogICAgICAgIDx0ZD5TaWduaWZpY2F0aW9uPC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD4zPC90ZD4KICAgICAgICA8dGQ+RW52b2kgZCd1biB0cm9u529uIGRlIGNvcnBzPC90ZD4KICAgICAgICA8dGQ+RW52b2kgZCd1biB0cm9u529uIGRlIGNvcnBzIGRlcHVpcyBsZSBjb250ZW5ldXIgZGUgc2VydmxldHMKCXZlcnMgbGUgc2VydmV1ciB3ZWIgKGV0IHByb2JhYmxlbWVudCB2ZXJzIGxlIG5hdmlnYXRldXIpLjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+NDwvdGQ+CiAgICAgICAgPHRkPkVudm9pZSBsZXMgZW4tdOp0ZXM8L3RkPgogICAgICAgIDx0ZD5FbnZvaSBkZXMgZW4tdOp0ZXMgZGUgculwb25zZSBkZXB1aXMgbGUgY29udGVuZXVyIGRlCglzZXJ2bGV0cyB2ZXJzIGxlIHNlcnZldXIgd2ViIChldCBwcm9iYWJsZW1lbnQgdmVycyBsZQoJbmF2aWdhdGV1cikuPC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD41PC90ZD4KICAgICAgICA8dGQ+RmluIGRlIGxhIHLpcG9uc2U8L3RkPgogICAgICAgIDx0ZD5NYXJxdWUgbGEgZmluIGRlIGxhIHLpcG9uc2UgKGV0IHBhciBjb25z6XF1ZW50IGR1IGN5Y2xlIGRlCgl0cmFpdGVtZW50IGRlIGxhIHJlcXXqdGUpLgogICAgICAgIDwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+NjwvdGQ+CiAgICAgICAgPHRkPlLpY2VwdGlvbiBkdSB0cm9u529uIGRlIGNvcnBzIHN1aXZhbnQ8L3RkPgogICAgICAgIDx0ZD5S6WNlcHRpb24gZGUgbGEgc3VpdGUgZGVzIGRvbm7pZXMgZGUgbGEgcmVxdep0ZSBzaSBlbGxlcwoJbidvbnQgcGFzIGVuY29yZSDpdOkgZW50aehyZW1lbnQgdHJhbnNtaXNlcy48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjk8L3RkPgogICAgICAgIDx0ZD5S6XBvbnNlIENQb25nPC90ZD4KICAgICAgICA8dGQ+TGEgculwb25zZSDgIHVuZSByZXF16nRlIENQaW5nPC90ZD4KICAgICAgPC90cj4KICAgIDwvdGFibGU+CiAgICA8cD5DaGFjdW4gZGVzIG1lc3NhZ2VzIGNpLWRlc3N1cyBwb3Nz6GRlIHVuZSBzdHJ1Y3R1cmUgaW50ZXJuZQogICAgZGlmZulyZW50ZSBkb250IHZvdXMgdHJvdXZlcmV6IGxlcyBk6XRhaWxzIGNpLWRlc3NvdXMuPC9wPgogIAo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJycGFjZXRzdHJ1Y3QiIGlkPSJycGFjZXRzdHJ1Y3QiPlN0cnVjdHVyZSBkZXMgcGFxdWV0cyBkZQpyZXF16nRlPC9hPjwvaDI+CiAgICA8cD5Qb3VyIGxlcyBtZXNzYWdlcyBkZSB0eXBlIDxlbT5GYWlyZSBzdWl2cmUgbGEgcmVxdep0ZTwvZW0+IGRlcHVpcwogICAgbGUgc2VydmV1ciB2ZXJzIGxlIGNvbnRlbmV1ciA6PC9wPgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHByZT5BSlAxM19GT1JXQVJEX1JFUVVFU1QgOj0KICAgIHByZWZpeF9jb2RlICAgICAgKGJ5dGUpIDB4MDIgPSBKS19BSlAxM19GT1JXQVJEX1JFUVVFU1QKICAgIG1ldGhvZCAgICAgICAgICAgKGJ5dGUpCiAgICBwcm90b2NvbCAgICAgICAgIChzdHJpbmcpCiAgICByZXFfdXJpICAgICAgICAgIChzdHJpbmcpCiAgICByZW1vdGVfYWRkciAgICAgIChzdHJpbmcpCiAgICByZW1vdGVfaG9zdCAgICAgIChzdHJpbmcpCiAgICBzZXJ2ZXJfbmFtZSAgICAgIChzdHJpbmcpCiAgICBzZXJ2ZXJfcG9ydCAgICAgIChpbnRlZ2VyKQogICAgaXNfc3NsICAgICAgICAgICAoYm9vbGVhbikKICAgIG51bV9oZWFkZXJzICAgICAgKGludGVnZXIpCiAgICByZXF1ZXN0X2hlYWRlcnMgKihyZXFfaGVhZGVyX25hbWUgcmVxX2hlYWRlcl92YWx1ZSkKICAgIGF0dHJpYnV0ZXMgICAgICAqKGF0dHJpYnV0X25hbWUgYXR0cmlidXRlX3ZhbHVlKQogICAgcmVxdWVzdF90ZXJtaW5hdG9yIChieXRlKSBPeEZGPC9wcmU+PC9kaXY+CiAgICA8cD5MZXMgPGNvZGU+cmVxdWVzdF9oZWFkZXJzPC9jb2RlPiBwb3Nz6GRlbnQgbGEgc3RydWN0dXJlIHN1aXZhbnRlCiAgICA6CiAgICA8L3A+PGRpdiBjbGFzcz0iZXhhbXBsZSI+PHByZT5yZXFfaGVhZGVyX25hbWUgOj0KICAgIHNjX3JlcV9oZWFkZXJfbmFtZSB8IChzdHJpbmcpICBbdm9pciBjaS1kZXNzb3VzIHBvdXIgbGEgbWFuaehyZSBkb250CiAgICBjZWNpIGVzdCBpbnRlcnBy6XTpXQoKc2NfcmVxX2hlYWRlcl9uYW1lIDo9IDB4QTB4eCAoaW50ZWdlcikKCnJlcV9oZWFkZXJfdmFsdWUgOj0gKHN0cmluZyk8L3ByZT48L2Rpdj4KICAgIDxwPkxlcyA8Y29kZT5hdHRyaWJ1dGVzPC9jb2RlPiBzb250IG9wdGlvbm5lbHMgZXQgcG9zc+hkZW50IGxhCiAgICBzdHJ1Y3R1cmUgc3VpdmFudGUgOjwvcD4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwcmU+YXR0cmlidXRlX25hbWUgOj0gc2NfYV9uYW1lIHwgKHNjX2FfcmVxX2F0dHJpYnV0ZSBzdHJpbmcpCgphdHRyaWJ1dGVfdmFsdWUgOj0gKHN0cmluZyk8L3ByZT48L2Rpdj4KICAgIDxwPlVuIGRlcyBlbi106nRlcyBsZXMgcGx1cyBpbXBvcnRhbnRzIGVzdAogICAgPGNvZGU+Y29udGVudC1sZW5ndGg8L2NvZGU+LCBjYXIgaWwgaW5kaXF1ZSBzaSBsZSBjb250ZW5ldXIgZG9pdCBvdQogICAgbm9uIGF0dGVuZHJlIHVuIGF1dHJlIHBhcXVldCBpbW3pZGlhdGVtZW50LjwvcD4KICA8aDM+RGVzY3JpcHRpb24gZOl0YWlsbOllIGRlIGxhIHJlcXXqdGUgcXVlIGxlIHNlcnZldXIKICBmYWl0IHN1aXZyZSB2ZXJzIGxlIGNvbnRlbmV1cgogIDwvaDM+CiAgPGgzPlBy6WZpeGUgZGUgbGEgcmVxdep0ZTwvaDM+CiAgICA8cD5Qb3VyIHRvdXRlcyBsZXMgcmVxdep0ZXMsIGNlIHBy6WZpeGUgZXN0IDIuIFZvaXIgY2ktZGVzc3VzIHBvdXIKICAgIGxlcyBk6XRhaWxzIGRlcyBhdXRyZXMgY29kZXMgZGUgcHLpZml4ZXMuPC9wPgogIAogIDxoMz5N6XRob2RlPC9oMz4KICAgIDxwPkxhIG3pdGhvZGUgSFRUUCwgZW5jb2TpZSBzb3VzIGxhIGZvcm1lIGQndW4gc2V1bCBvY3RldCA6PC9wPgogICAgPHRhYmxlPgogICAgICA8dHI+PHRkPk5vbSBjb21tYW5kZTwvdGQ+PHRkPkNvZGU8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+T1BUSU9OUzwvdGQ+PHRkPjE8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+R0VUPC90ZD48dGQ+MjwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5IRUFEPC90ZD48dGQ+MzwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5QT1NUPC90ZD48dGQ+NDwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5QVVQ8L3RkPjx0ZD41PC90ZD48L3RyPgogICAgICA8dHI+PHRkPkRFTEVURTwvdGQ+PHRkPjY8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+VFJBQ0U8L3RkPjx0ZD43PC90ZD48L3RyPgogICAgICA8dHI+PHRkPlBST1BGSU5EPC90ZD48dGQ+ODwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5QUk9QUEFUQ0g8L3RkPjx0ZD45PC90ZD48L3RyPgogICAgICA8dHI+PHRkPk1LQ09MPC90ZD48dGQ+MTA8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+Q09QWTwvdGQ+PHRkPjExPC90ZD48L3RyPgogICAgICA8dHI+PHRkPk1PVkU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5MT0NLPC90ZD48dGQ+MTM8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+VU5MT0NLPC90ZD48dGQ+MTQ8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+QUNMPC90ZD48dGQ+MTU8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+UkVQT1JUPC90ZD48dGQ+MTY8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+VkVSU0lPTi1DT05UUk9MPC90ZD48dGQ+MTc8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+Q0hFQ0tJTjwvdGQ+PHRkPjE4PC90ZD48L3RyPgogICAgICA8dHI+PHRkPkNIRUNLT1VUPC90ZD48dGQ+MTk8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+VU5DSEVDS09VVDwvdGQ+PHRkPjIwPC90ZD48L3RyPgogICAgICA8dHI+PHRkPlNFQVJDSDwvdGQ+PHRkPjIxPC90ZD48L3RyPgogICAgICA8dHI+PHRkPk1LV09SS1NQQUNFPC90ZD48dGQ+MjI8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+VVBEQVRFPC90ZD48dGQ+MjM8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+TEFCRUw8L3RkPjx0ZD4yNDwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5NRVJHRTwvdGQ+PHRkPjI1PC90ZD48L3RyPgogICAgICA8dHI+PHRkPkJBU0VMSU5FX0NPTlRST0w8L3RkPjx0ZD4yNjwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5NS0FDVElWSVRZPC90ZD48dGQ+Mjc8L3RkPjwvdHI+CiAgICA8L3RhYmxlPgogICAgPHA+TGVzIHZlcnNpb25zIGZ1dHVyZXMgZCdhanAxMyBwb3Vycm9udCB0cmFuc21ldHRyZSBkZXMgbel0aG9kZXMKICAgIHN1cHBs6W1lbnRhaXJlcywgbeptZSBzaSBlbGxlcyBuZSBmb250IHBhcyBwYXJ0aWUgZGUgY2V0dGUKICAgIGxpc3RlLjwvcD4KICAKICA8aDM+cHJvdG9jb2wsIHJlcV91cmksIHJlbW90ZV9hZGRyLCByZW1vdGVfaG9zdCwgc2VydmVyX25hbWUsCiAgc2VydmVyX3BvcnQsIGlzX3NzbDwvaDM+CiAgICA8cD5MZXMgc2lnbmlmaWNhdGlvbnMgZGUgY2VzIOls6W1lbnRzIHNvbnQgdHJpdmlhbGVzLiBJbHMgc29udCB0b3VzCiAgICBvYmxpZ2F0b2lyZXMgZXQgc2Vyb250IGVudm956XMgYXZlYyBjaGFxdWUgcmVxdep0ZS48L3A+CiAgCiAgPGgzPkVuLXTqdGVzPC9oMz4KICAgIDxwPkxhIHN0cnVjdHVyZSBkZSA8Y29kZT5yZXF1ZXN0X2hlYWRlcnM8L2NvZGU+IGVzdCBsYSBzdWl2YW50ZQogICAgOiB0b3V0IGQnYWJvcmQsIGxlIG5vbWJyZSBkJ2VuLXTqdGVzIDxjb2RlPm51bV9oZWFkZXJzPC9jb2RlPiBlc3QKICAgIGVuY29k6Swgc3VpdmkgZCd1bmUgbGlzdGUgZGUgcGFpcmVzIG5vbSBkJ2VuLXTqdGUKICAgIDxjb2RlPnJlcV9oZWFkZXJfbmFtZTwvY29kZT4gLyB2YWxldXIgPGNvZGU+cmVxX2hlYWRlcl92YWx1ZTwvY29kZT4uCiAgICBMZXMgbm9tcyBkJ2VuLXTqdGVzIGNvdXJhbnRzIHNvbnQgY29k6XMgc291cyBmb3JtZSBkJ2VudGllcnMgYWZpbiBkZQogICAgZ2FnbmVyIGRlIGxhIHBsYWNlLiBTaSBsZSBub20gZCdlbi106nRlIG5lIGZhaXQgcGFydGllIGRlIGxhIGxpc3RlCiAgICBkZXMgZW4tdOp0ZXMgY291cmFudHMsIGlsIGVzdCBlbmNvZOkgbm9ybWFsZW1lbnQgKHVuZSBjaGHubmUgZGUKICAgIGNhcmFjdOhyZXMgcHLpZml46WUgcGFyIGxhIHRhaWxsZSkuIExhIGxpc3RlIGRlcyBlbi106nRlcyBjb3VyYW50cwogICAgPGNvZGU+c2NfcmVxX2hlYWRlcl9uYW1lPC9jb2RlPiBhdmVjIGxldXJzIGNvZGVzIHNlIHBy6XNlbnRlIGNvbW1lCiAgICBzdWl0IChpbCBzb250IHRvdXMgc2Vuc2libGVzIOAgbGEgY2Fzc2UpIDo8L3A+CiAgICA8dGFibGU+CiAgICAgIDx0cj48dGQ+Tm9tPC90ZD48dGQ+VmFsZXVyIGR1IGNvZGU8L3RkPjx0ZD5Ob20gZHUgY29kZTwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5hY2NlcHQ8L3RkPjx0ZD4weEEwMDE8L3RkPjx0ZD5TQ19SRVFfQUNDRVBUPC90ZD48L3RyPgogICAgICA8dHI+PHRkPmFjY2VwdC1jaGFyc2V0PC90ZD48dGQ+MHhBMDAyPC90ZD48dGQ+U0NfUkVRX0FDQ0VQVF9DSEFSU0VUCiAgICAgIDwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5hY2NlcHQtZW5jb2Rpbmc8L3RkPjx0ZD4weEEwMDM8L3RkPjx0ZD5TQ19SRVFfQUNDRVBUX0VOQ09ESU5HCiAgICAgIDwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5hY2NlcHQtbGFuZ3VhZ2U8L3RkPjx0ZD4weEEwMDQ8L3RkPjx0ZD5TQ19SRVFfQUNDRVBUX0xBTkdVQUdFCiAgICAgIDwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5hdXRob3JpemF0aW9uPC90ZD48dGQ+MHhBMDA1PC90ZD48dGQ+U0NfUkVRX0FVVEhPUklaQVRJT048L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+PHRkPmNvbm5lY3Rpb248L3RkPjx0ZD4weEEwMDY8L3RkPjx0ZD5TQ19SRVFfQ09OTkVDVElPTjwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5jb250ZW50LXR5cGU8L3RkPjx0ZD4weEEwMDc8L3RkPjx0ZD5TQ19SRVFfQ09OVEVOVF9UWVBFPC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPjx0ZD5jb250ZW50LWxlbmd0aDwvdGQ+PHRkPjB4QTAwODwvdGQ+PHRkPlNDX1JFUV9DT05URU5UX0xFTkdUSDwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj48dGQ+Y29va2llPC90ZD48dGQ+MHhBMDA5PC90ZD48dGQ+U0NfUkVRX0NPT0tJRTwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5jb29raWUyPC90ZD48dGQ+MHhBMDBBPC90ZD48dGQ+U0NfUkVRX0NPT0tJRTI8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+aG9zdDwvdGQ+PHRkPjB4QTAwQjwvdGQ+PHRkPlNDX1JFUV9IT1NUPC90ZD48L3RyPgogICAgICA8dHI+PHRkPnByYWdtYTwvdGQ+PHRkPjB4QTAwQzwvdGQ+PHRkPlNDX1JFUV9QUkFHTUE8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+cmVmZXJlcjwvdGQ+PHRkPjB4QTAwRDwvdGQ+PHRkPlNDX1JFUV9SRUZFUkVSPC90ZD48L3RyPgogICAgICA8dHI+PHRkPnVzZXItYWdlbnQ8L3RkPjx0ZD4weEEwMEU8L3RkPjx0ZD5TQ19SRVFfVVNFUl9BR0VOVDwvdGQ+PC90cj4KICAgIDwvdGFibGU+CiAgICA8cD5MZSBjb2RlIEphdmEgcXVpIGxpdCBjZWNpIGV4dHJhaXQgbCdlbnRpZXIgcmVwculzZW506SBwYXIgbGVzCiAgICBkZXV4IHByZW1pZXJzIG9jdGV0cywgZXQgc2kgbGUgcHJlbWllciBvY3RldCBlc3QKICAgIDxjb2RlPicweEEwJzwvY29kZT4sIGlsIHV0aWxpc2UgbCdlbnRpZXIgcmVwculzZW506SBwYXIgbGUgZGV1eGnobWUKICAgIG9jdGV0IGNvbW1lIGluZGV4IGQndW4gdGFibGVhdSBkZSBub21zIGQnZW4tdOp0ZXMuIFNpIGxlIHByZW1pZXIKICAgIG9jdGV0IG4nZXN0IHBhcyA8Y29kZT4weEEwPC9jb2RlPiwgbCdlbnRpZXIgcmVwculzZW506SBwYXIgbGVzIGRldXgKICAgIG9jdGV0cyBlc3QgY29uc2lk6XLpIGNvbW1lIGxhIGxvbmd1ZXVyIGQndW5lIGNoYe5uZSBxdWkgZXN0IGFsb3JzCiAgICBsdWUuPC9wPgogICAgPHA+Q2VjaSBuZSBwZXV0IGZvbmN0aW9ubmVyIHF1ZSBzaSBhdWN1biBub20gZCdlbi106nRlIG5lIHBvc3PoZGUKICAgIHVuZSB0YWlsbGUgc3Vw6XJpZXVyZSDgIDxjb2RlPjB4OUZGRiAoPT0weEEwMDAgLSAxKTwvY29kZT4sIGNlIHF1aQogICAgZXN0IHZyYWlzZW1ibGFibGUsIGJpZW4gcXUndW4gcGV1IGFyYml0cmFpcmUuPC9wPgogICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPk5vdGU6PC9oMz4KICAgIEwnZW4tdOp0ZSA8Y29kZT5jb250ZW50LWxlbmd0aDwvY29kZT4gZXN0IGV4dHLqbWVtZW50IGltcG9ydGFudC4KICAgIFMnaWwgZXN0IHBy6XNlbnQgZXQgbm9uIG51bCwgbGUgY29udGVuZXVyIGNvbnNpZOhyZSBxdWUgbGEgcmVxdep0ZQogICAgcG9zc+hkZSB1biBjb3JwcyAodW5lIHJlcXXqdGUgUE9TVCwgcGFyIGV4ZW1wbGUpLCBldCBsaXQKICAgIGltbelkaWF0ZW1lbnQgbGUgcGFxdWV0IHN1aXZhbnQgZGFucyBsZSBmbHV4IGQnZW50cullIHBvdXIgZXh0cmFpcmUKICAgIGNlIGNvcnBzLgogICAgPC9kaXY+CiAgCiAgPGgzPkF0dHJpYnV0czwvaDM+CiAgICA8cD5MZXMgYXR0cmlidXRzIHBy6WZpeOlzIHBhciA8Y29kZT4/PC9jb2RlPiAocGFyIGV4ZW1wbGUKICAgIDxjb2RlPj9jb250ZXh0PC9jb2RlPikgc29udCB0b3VzIG9wdGlvbm5lbHMuIENoYWN1biBkJ2V1eCBlc3QKICAgIHJlcHLpc2VudOkgcGFyIHVuIG9jdGV0IGNvcnJlc3BvbmRhbnQgYXUgdHlwZSBkZSBsJ2F0dHJpYnV0IGV0IHBhcgogICAgc2EgdmFsZXVyIChjaGHubmUgb3UgZW50aWVyKS4gSWxzIHBldXZlbnQg6nRyZSBlbnZveelzIGRhbnMgdW4gb3JkcmUKICAgIHF1ZWxjb25xdWUgKGJpZW4gcXVlIGxlIGNvZGUgQyBsZXMgZW52b2llIGRhbnMgbCdvcmRyZSBjaS1kZXNzb3VzKS4KICAgIFVuIGNvZGUgZGUgdGVybWluYWlzb24gc3DpY2lhbCBlc3QgZW52b3npIHBvdXIgc2lnbmFsZXIgbGEgZmluIGRlIGxhCiAgICBsaXN0ZSBkZXMgYXR0cmlidXRzIG9wdGlvbm5lbHMuIExhIGxpc3RlIGRlcyBjb2RlcyBlc3QgbGEgc3VpdmFudGUKICAgIDo8L3A+CiAgICA8dGFibGU+CiAgICAgIDx0cj48dGQ+SW5mb3JtYXRpb248L3RkPjx0ZD5WYWxldXIgY29kZTwvdGQ+PHRkPlR5cGUgZGUgdmFsZXVyPC90ZD48dGQ+Tm90ZTwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD4/Y29udGV4dDwvdGQ+PHRkPjB4MDE8L3RkPjx0ZD4tPC90ZD48dGQ+Tm9uIGltcGzpbWVudOkKICAgICAgYWN0dWVsbGVtZW50CiAgICAgIDwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD4/c2VydmxldF9wYXRoPC90ZD48dGQ+MHgwMjwvdGQ+PHRkPi08L3RkPjx0ZD5Ob24gaW1wbOltZW506QogICAgICBhY3R1ZWxsZW1lbnQKICAgICAgPC90ZD48L3RyPgogICAgICA8dHI+PHRkPj9yZW1vdGVfdXNlcjwvdGQ+PHRkPjB4MDM8L3RkPjx0ZD5TdHJpbmc8L3RkPjx0ZCAvPjwvdHI+CiAgICAgIDx0cj48dGQ+P2F1dGhfdHlwZTwvdGQ+PHRkPjB4MDQ8L3RkPjx0ZD5TdHJpbmc8L3RkPjx0ZCAvPjwvdHI+CiAgICAgIDx0cj48dGQ+P3F1ZXJ5X3N0cmluZzwvdGQ+PHRkPjB4MDU8L3RkPjx0ZD5TdHJpbmc8L3RkPjx0ZCAvPjwvdHI+CiAgICAgIDx0cj48dGQ+P2p2bV9yb3V0ZTwvdGQ+PHRkPjB4MDY8L3RkPjx0ZD5TdHJpbmc8L3RkPjx0ZCAvPjwvdHI+CiAgICAgIDx0cj48dGQ+P3NzbF9jZXJ0PC90ZD48dGQ+MHgwNzwvdGQ+PHRkPlN0cmluZzwvdGQ+PHRkIC8+PC90cj4KICAgICAgPHRyPjx0ZD4/c3NsX2NpcGhlcjwvdGQ+PHRkPjB4MDg8L3RkPjx0ZD5TdHJpbmc8L3RkPjx0ZCAvPjwvdHI+CiAgICAgIDx0cj48dGQ+P3NzbF9zZXNzaW9uPC90ZD48dGQ+MHgwOTwvdGQ+PHRkPlN0cmluZzwvdGQ+PHRkIC8+PC90cj4KICAgICAgPHRyPjx0ZD4/cmVxX2F0dHJpYnV0ZTwvdGQ+PHRkPjB4MEE8L3RkPjx0ZD5TdHJpbmc8L3RkPjx0ZD5Ob20gKGxlCiAgICAgIG5vbSBkZSBsJ2F0dHJpYnV0IHZpZW50IGVuc3VpdGUpPC90ZD48L3RyPgogICAgICA8dHI+PHRkPj9zc2xfa2V5X3NpemU8L3RkPjx0ZD4weDBCPC90ZD48dGQ+SW50ZWdlcjwvdGQ+PHRkIC8+PC90cj4KICAgICAgPHRyPjx0ZD5hcmVfZG9uZTwvdGQ+PHRkPjB4RkY8L3RkPjx0ZD4tPC90ZD48dGQ+cmVxdWVzdF90ZXJtaW5hdG9yPC90ZD48L3RyPgogICAgPC90YWJsZT4KICAgIDxwPjxjb2RlPmNvbnRleHQ8L2NvZGU+IGV0IDxjb2RlPnNlcnZsZXRfcGF0aDwvY29kZT4gbmUgc29udCBwYXMKICAgIGTpZmluaXMgYWN0dWVsbGVtZW50IHBhciBsZSBjb2RlIEMsIGV0IGxhIG1ham9yaXTpIGR1IGNvZGUgSmF2YQogICAgaWdub3JlIGNvbXBs6HRlbWVudCBjZSBxdWkgZXN0IGVudm956SBwYXIgbCdpbnRlcm3pZGlhaXJlIGRlIGNlcwogICAgY2hhbXBzIChpbCB2YSBt6m1lIHBhcmZvaXMgcydpbnRlcnJvbXByZSBzaSB1bmUgY2hh7m5lIGVzdAogICAgZW52b3npZSBhcHLocyB1biBkZSBjZXMgY29kZXMpLiBKZSBuZSBzYWlzIHBhcyBzaSBjJ2VzdCB1bmUgYm9ndWUgb3UKICAgIHVuZSBmb25jdGlvbm5hbGl06SBub24gaW1wbOltZW506WUsIG91IHRvdXQgc2ltcGxlbWVudCBkdSBjb2RlCiAgICBvYnNvbOh0ZSwgbWFpcyBlbiB0b3V0IGNhcywgaWwgbidlc3QgcHJpcyBlbiBjaGFyZ2UgcGFyIGF1Y3VuZSBkZXMKICAgIGRldXggZXh0cultaXTpcyBkZSBsYSBjb25uZXhpb24uPC9wPgogICAgPHA+PGNvZGU+cmVtb3RlX3VzZXI8L2NvZGU+IGV0IDxjb2RlPmF1dGhfdHlwZTwvY29kZT4gY29uY2VybmVudAogICAgcHJvYmFibGVtZW50IGwnYXV0aGVudGlmaWNhdGlvbiBhdSBuaXZlYXUgSFRUUCwgZXQgY29udGllbm5lbnQgbGUKICAgIG5vbSBkZSBsJ3V0aWxpc2F0ZXVyIGRpc3RhbnQgYWluc2kgcXVlIGxlIHR5cGUgZCdhdXRoZW50aWZpY2F0aW9uCiAgICB1dGlsaXPpZSBwb3VyIOl0YWJsaXIgc29uIGlkZW50aXTpICjgIHNhdm9pciBCYXNpYywgRGlnZXN0KS48L3A+CiAgICA8cD48Y29kZT5xdWVyeV9zdHJpbmc8L2NvZGU+LCA8Y29kZT5zc2xfY2VydDwvY29kZT4sCiAgICA8Y29kZT5zc2xfY2lwaGVyPC9jb2RlPiBldCA8Y29kZT5zc2xfc2Vzc2lvbjwvY29kZT4gY29udGllbm5lbnQgbGVzCiAgICDpbOltZW50cyBIVFRQIGV0IEhUVFBTIGNvcnJlc3BvbmRhbnRzLjwvcD4KICAgIDxwPjxjb2RlPmp2bV9yb3V0ZTwvY29kZT4gZXN0IHV0aWxpc+kgZGFucyBsZSBjYWRyZSBkZXMgc2Vzc2lvbnMKICAgIHBlcnNpc3RhbnRlcywgZW4gYXNzb2NpYW50IHVuZSBzZXNzaW9uIHV0aWxpc2F0ZXVyIOAgdW5lIGluc3RhbmNlCiAgICBUb21jYXQgcGFydGljdWxp6HJlIGVuIHBy6XNlbmNlIGRlIHBsdXNpZXVycyBy6XBhcnRpdGV1cnMgZGUKICAgIGNoYXJnZS48L3A+CiAgICA8cD5BdSBkZWzgIGRlIGNldHRlIGxpc3RlIGRlIGJhc2UsIHRvdXQgYXV0cmUgYXR0cmlidXQKICAgIHN1cHBs6W1lbnRhaXJlIHBldXQg6nRyZSBlbnZveekgdmlhIGxlIGNvZGUKICAgIDxjb2RlPnJlcV9hdHRyaWJ1dGU8L2NvZGU+IDxjb2RlPjB4MEE8L2NvZGU+LiBVbmUgcGFpcmUgZGUgY2hh7m5lcwogICAgcmVwculzZW50YW50IGxlIG5vbSBldCBsYSB2YWxldXIgZGUgbCdhdHRyaWJ1dCBlc3QgZW52b3npZQogICAgaW1t6WRpYXRlbWVudCBhcHLocyBjaGFxdWUgaW5zdGFuY2UgZGUgY2UgY29kZS4gTGVzIHZhcmlhYmxlcwogICAgZCdlbnZpcm9ubmVtZW50IHNvbnQgdHJhbnNtaXNlcyBwYXIgY2V0dGUgbel0aG9kZS48L3A+CiAgICA8cD5FbmZpbiwgbG9yc3F1ZSB0b3VzIGxlcyBhdHRyaWJ1dHMgb250IOl06SB0cmFuc21pcywgbGUKICAgIHRlcm1pbmF0ZXVyIGQnYXR0cmlidXRzLCA8Y29kZT4weEZGPC9jb2RlPiwgZXN0IGVudm956S4gQ2UgZGVybmllcgogICAgaW5kaXF1ZSDgIGxhIGZvaXMgbGEgZmluIGRlIGxhIGxpc3RlIGQnYXR0cmlidXRzIGV0IGxhIGZpbiBkdSBwYXF1ZXQKICAgIGRlIGxhIHJlcXXqdGU8L3A+CiAgCjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InJlc3BwYWNrZXRzdHJ1Y3QiIGlkPSJyZXNwcGFja2V0c3RydWN0Ij5TdHJ1Y3R1cmUgZHUgcGFxdWV0IGRlIGxhCnLpcG9uc2U8L2E+PC9oMj4KICAgIDxwPlBvdXIgbGVzIG1lc3NhZ2VzIHF1ZSBsZSBjb250ZW5ldXIgcGV1dCByZW52b3llciBhdQogICAgc2VydmV1ci48L3A+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlPkFKUDEzX1NFTkRfQk9EWV9DSFVOSyA6PQogIHByZWZpeF9jb2RlICAgMwogIGNodW5rX2xlbmd0aCAgKGludGVnZXIpCiAgY2h1bmsgICAgICAgICooYnl0ZSkKICBjaHVua190ZXJtaW5hdG9yIChieXRlKSBPeDAwCgoKQUpQMTNfU0VORF9IRUFERVJTIDo9CiAgcHJlZml4X2NvZGUgICAgICAgNAogIGh0dHBfc3RhdHVzX2NvZGUgIChpbnRlZ2VyKQogIGh0dHBfc3RhdHVzX21zZyAgIChzdHJpbmcpCiAgbnVtX2hlYWRlcnMgICAgICAgKGludGVnZXIpCiAgcmVzcG9uc2VfaGVhZGVycyAqKHJlc19oZWFkZXJfbmFtZSBoZWFkZXJfdmFsdWUpCgpyZXNfaGVhZGVyX25hbWUgOj0KICAgIHNjX3Jlc19oZWFkZXJfbmFtZSB8IChzdHJpbmcpICAgW3ZvaXIgY2ktZGVzc291cyBwb3VyIGxhIG1hbmnocmUKICAgIGRvbnQgY2VjaSBlc3QgaW50ZXJwcul06V0KCnNjX3Jlc19oZWFkZXJfbmFtZSA6PSAweEEwIChieXRlKQoKaGVhZGVyX3ZhbHVlIDo9IChzdHJpbmcpCgpBSlAxM19FTkRfUkVTUE9OU0UgOj0KICBwcmVmaXhfY29kZSAgICAgICA1CiAgcmV1c2UgICAgICAgICAgICAgKGJvb2xlYW4pCgoKQUpQMTNfR0VUX0JPRFlfQ0hVTksgOj0KICBwcmVmaXhfY29kZSAgICAgICA2CiAgcmVxdWVzdGVkX2xlbmd0aCAgKGludGVnZXIpPC9wcmU+PC9kaXY+CiAgPGgzPkTpdGFpbHM6PC9oMz4KICA8aDM+RW52b2kgZCd1biB0cm9u529uIGRlIGNvcnBzPC9oMz4KICAgIDxwPkxlIHRyb27nb24gc2UgY29tcG9zZSBlc3NlbnRpZWxsZW1lbnQgZGUgZG9ubullcyBiaW5haXJlcyBldCBlc3QKICAgIHJlbnZveekgZGlyZWN0ZW1lbnQgYXUgbmF2aWdhdGV1ci48L3A+CiAgCiAgPGgzPkVudm9pIGRlcyBlbi106nRlczwvaDM+CiAgICA8cD5MZXMgY29kZSBldCBtZXNzYWdlIGQn6XRhdCBjb3JyZXNwb25kZW50IGF1eCBjb2RlIGV0IG1lc3NhZ2UgSFRUUAogICAgaGFiaXR1ZWxzIChwYXIgZXhlbXBsZSA8Y29kZT4yMDA8L2NvZGU+IGV0IDxjb2RlPk9LPC9jb2RlPikuIExlcwogICAgbm9tcyBkJ2VuLXTqdGVzIGRlIHLpcG9uc2VzIHNvbnQgY29k6XMgZGUgbGEgbeptZSBmYedvbiBxdWUgbGVzIG5vbXMKICAgIGQnZW4tdOp0ZXMgZGUgcmVxdep0ZXMuIFZvaXIgY2ktZGVzc3VzIGxlIGNvZGFnZSBkZXMgZW4tdOp0ZXMgcG91cgogICAgcGx1cyBkZSBk6XRhaWxzIOAgcHJvcG9zIGRlIGxhIG1hbmnocmUgZG9udCBsZXMgY29kZXMgc2UgZGlzdGluZ3VlbnQKICAgIGRlcyBjaGHubmVzLjxiciAvPgogICAgTGVzIGNvZGVzIGRlcyBlbi106nRlcyBjb3VyYW50cyBzb250IDo6PC9wPgogICAgPHRhYmxlPgogICAgICA8dHI+PHRkPk5vbTwvdGQ+PHRkPlZhbGV1ciBjb2RlPC90ZD48L3RyPgogICAgICA8dHI+PHRkPkNvbnRlbnQtVHlwZTwvdGQ+PHRkPjB4QTAwMTwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5Db250ZW50LUxhbmd1YWdlPC90ZD48dGQ+MHhBMDAyPC90ZD48L3RyPgogICAgICA8dHI+PHRkPkNvbnRlbnQtTGVuZ3RoPC90ZD48dGQ+MHhBMDAzPC90ZD48L3RyPgogICAgICA8dHI+PHRkPkRhdGU8L3RkPjx0ZD4weEEwMDQ8L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+TGFzdC1Nb2RpZmllZDwvdGQ+PHRkPjB4QTAwNTwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5Mb2NhdGlvbjwvdGQ+PHRkPjB4QTAwNjwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5TZXQtQ29va2llPC90ZD48dGQ+MHhBMDA3PC90ZD48L3RyPgogICAgICA8dHI+PHRkPlNldC1Db29raWUyPC90ZD48dGQ+MHhBMDA4PC90ZD48L3RyPgogICAgICA8dHI+PHRkPlNlcnZsZXQtRW5naW5lPC90ZD48dGQ+MHhBMDA5PC90ZD48L3RyPgogICAgICA8dHI+PHRkPlN0YXR1czwvdGQ+PHRkPjB4QTAwQTwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD5XV1ctQXV0aGVudGljYXRlPC90ZD48dGQ+MHhBMDBCPC90ZD48L3RyPgogICAgPC90YWJsZT4KICAgIDxwPkxhIHZhbGV1ciBkZSBsJ2VuLXTqdGUgZXN0IGNvZOllIGltbelkaWF0ZW1lbnQgYXBy6HMgbGUgY29kZSBvdQogICAgbGEgY2hh7m5lIGR1IG5vbSBkJ2VuLXTqdGUuPC9wPgogIAogIDxoMz5GaW4gZGUgbGEgculwb25zZTwvaDM+CiAgICA8cD5TaWduYWxlIGxhIGZpbiBkZSBjZSBjeWNsZSBkZSB0cmFpdGVtZW50IGRlIHJlcXXqdGUuIFNpIGxlCiAgICBkcmFwZWF1IDxjb2RlPnJldXNlPC9jb2RlPiBlc3Qg4CB0cnVlIDxjb2RlPih0b3V0ZSB2YWxldXIgYXV0cmUgcXVlCiAgICAwIGVuIGxhbmdhZ2UgQyBwdXIpPC9jb2RlPiwgY2V0dGUKICAgIGNvbm5leGlvbiBUQ1AgcGV1dCDqdHJlIHLpdXRpbGlz6WUgcG91ciB0cmFpdGVyIGRlIG5vdXZlbGxlcwogICAgcmVxdep0ZXMgZW50cmFudGVzLiBTaSA8Y29kZT5yZXVzZTwvY29kZT4gZXN0IOAgZmFsc2UKICAgICg9PTApLCBsYSBjb25uZXhpb24gc2VyYSBmZXJt6WUuPC9wPgogIAogIDxoMz5S6WNlcHRpb24gZCd1biB0cm9u529uIGRlIGNvcnBzPC9oMz4KICAgIDxwPkxlIGNvbnRlbmV1ciBy6WNsYW1lIGxhIHN1aXRlIGRlcyBkb25u6WVzIGRlIGxhIHJlcXXqdGUgKGRhbnMgbGUKICAgIGNhcyBv+SBsYSB0YWlsbGUgZHUgY29ycHMg6XRhaXQgdHJvcCBpbXBvcnRhbnRlIHBvdXIgcG91dm9pciDqdHJlCiAgICBjb250ZW51ZSBkYW5zIGxlIHByZW1pZXIgcGFxdWV0IGVudm956Swgb/kgbG9yc3F1ZSBsYSByZXF16nRlIGVzdAogICAgZnJhY3Rpb25u6WUpLiBMZSBzZXJ2ZXVyIHZhIGFsb3JzIGVudm95ZXIgdW4gcGFxdWV0IGNvbnRlbmFudCB1bmUKICAgIHF1YW50aXTpIGRlIGRvbm7pZXMgY29ycmVzcG9uZGFudCBhdSBtaW5pbXVtIGRlIGxhCiAgICA8Y29kZT5yZXF1ZXN0X2xlbmd0aDwvY29kZT4sIGxhIHRhaWxsZSBtYXhpbWFsZSBkZSBjb3JwcyBlbnZveellCiAgICA8Y29kZT4oODE4NiAoOCBLb2N0ZXRzIC0gNikpPC9jb2RlPiwgZXQgbGUgbm9tYnJlIHLpZWwgZCdvY3RldHMKICAgIHJlc3RhbnRzIOAgZW52b3llciBwb3VyIGNlIGNvcnBzIGRlIHJlcXXqdGUuPGJyIC8+CiAgICBTJ2lsIG5lIHJlc3RlIHBsdXMgZGUgZG9ubullcyDgIHRyYW5zbWV0dHJlIHBvdXIgY2UgY29ycHMgZGUgcmVxdep0ZQogICAgKGMnZXN0IOAgZGlyZSBzaSBsZSBjb250ZW5ldXIgZGUgc2VydmxldHMgdGVudGUgZGUgbGlyZSBhdSBkZWzgIGRlCiAgICBsYSBmaW4gZHUgY29ycHMpLCBsZSBzZXJ2ZXVyIHZhIHJlbnZveWVyIHVuIHBhcXVldCA8ZW0+dmlkZTwvZW0+CiAgICBkb250IGxhIGNoYXJnZSB1dGlsZSBlc3QgZGUgbG9uZ3VldXIgMCBldCBzZSBwculzZW50YW50IHNvdXMgbGEKICAgIGZvcm1lIDxjb2RlPigweDEyLDB4MzQsMHgwMCwweDAwKTwvY29kZT4uPC9wPgogIAo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9wcm94eV9hanAuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2ZyL21vZC9tb2RfcHJveHlfYWpwLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vamEvbW9kL21vZF9wcm94eV9hanAuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudGFpcmVzPC9hPjwvaDI+PGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+PGJyIC8+VGhpcyBpcyBub3QgYSBRJmFtcDtBIHNlY3Rpb24uIENvbW1lbnRzIHBsYWNlZCBoZXJlIHNob3VsZCBiZSBwb2ludGVkIHRvd2FyZHMgc3VnZ2VzdGlvbnMgb24gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9yIHNlcnZlciwgYW5kIG1heSBiZSByZW1vdmVkIGFnYWluIGJ5IG91ciBtb2RlcmF0b3JzIGlmIHRoZXkgYXJlIGVpdGhlciBpbXBsZW1lbnRlZCBvciBjb25zaWRlcmVkIGludmFsaWQvb2ZmLXRvcGljLiBRdWVzdGlvbnMgb24gaG93IHRvIG1hbmFnZSB0aGUgQXBhY2hlIEhUVFAgU2VydmVyIHNob3VsZCBiZSBkaXJlY3RlZCBhdCBlaXRoZXIgb3VyIElSQyBjaGFubmVsLCAjaHR0cGQsIG9uIEZyZWVub2RlLCBvciBzZW50IHRvIG91ciA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9saXN0cy5odG1sIj5tYWlsaW5nIGxpc3RzPC9hPi48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KdmFyIGNvbW1lbnRzX3Nob3J0bmFtZSA9ICdodHRwZCc7CnZhciBjb21tZW50c19pZGVudGlmaWVyID0gJ2h0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvMi40L21vZC9tb2RfcHJveHlfYWpwLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsgCiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+QXV0b3Jpc+kgc291cyA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==