PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPlN0YXJ0aW5nIEFwYWNoZSAtIEFwYWNoZSBIVFRQIFNlcnZlcjwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+CjxsaW5rIGhyZWY9Ii4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuMTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9mZWF0aGVyLmdpZiIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5IVFRQIFNlcnZlcjwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLXByb2plY3QvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5WZXJzaW9uIDIuMTwvYT48L2Rpdj48ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPjxkaXYgaWQ9InByZWFtYmxlIj48aDE+U3RhcnRpbmcgQXBhY2hlPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuL2RlL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJkZSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJEZXV0c2NoIj4mbmJzcDtkZSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VuL2ludm9raW5nLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VzL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJlcyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL2ludm9raW5nLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9pbnZva2luZy5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT48L3A+CjwvZGl2PgoKICAgIDxwPk9uIFdpbmRvd3MsIEFwYWNoZSBpcyBub3JtYWxseSBydW4gYXMgYSBzZXJ2aWNlIG9uIFdpbmRvd3MKICAgIE5ULCAyMDAwIGFuZCBYUCwgb3IgYXMgYSBjb25zb2xlIGFwcGxpY2F0aW9uIG9uIFdpbmRvd3MgOXggYW5kCiAgICBNRS4gRm9yIGRldGFpbHMsIHNlZSA8YSBocmVmPSJwbGF0Zm9ybS93aW5kb3dzLmh0bWwjd2luc3ZjIj5SdW5uaW5nIEFwYWNoZSBhcyBhIFNlcnZpY2U8L2E+CiAgICBhbmQgPGEgaHJlZj0icGxhdGZvcm0vd2luZG93cy5odG1sI3dpbmNvbnMiPlJ1bm5pbmcgQXBhY2hlIGFzIGEKICAgIENvbnNvbGUgQXBwbGljYXRpb248L2E+LjwvcD4KCiAgICA8cD5PbiBVbml4LCB0aGUgPGEgaHJlZj0icHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+IHByb2dyYW0KICAgIGlzIHJ1biBhcyBhIGRhZW1vbiB0aGF0IGV4ZWN1dGVzIGNvbnRpbnVvdXNseSBpbiB0aGUKICAgIGJhY2tncm91bmQgdG8gaGFuZGxlIHJlcXVlc3RzLiAgVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgaG93CiAgICB0byBpbnZva2UgPGNvZGU+aHR0cGQ8L2NvZGU+LjwvcD4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PHVsIGlkPSJ0b2MiPjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjc3RhcnR1cCI+SG93IEFwYWNoZSBTdGFydHM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNlcnJvcnMiPkVycm9ycyBEdXJpbmcgU3RhcnQtdXA8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNib290Ij5TdGFydGluZyBhdCBCb290LVRpbWU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNpbmZvIj5BZGRpdGlvbmFsIEluZm9ybWF0aW9uPC9hPjwvbGk+CjwvdWw+PGgzPlNlZSBhbHNvPC9oMz48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSJzdG9wcGluZy5odG1sIj5TdG9wcGluZyBhbmQgUmVzdGFydGluZzwvYT48L2xpPjxsaT48YSBocmVmPSJwcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2xpPjxsaT48YSBocmVmPSJwcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCI+YXBhY2hlY3RsPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzdGFydHVwIiBpZD0ic3RhcnR1cCI+SG93IEFwYWNoZSBTdGFydHM8L2E+PC9oMj4KCiAgICA8cD5JZiB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2xpc3RlbiI+TGlzdGVuPC9hPjwvY29kZT4KICAgIHNwZWNpZmllZCBpbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGRlZmF1bHQgb2YgODAgKG9yIGFueSBvdGhlcgogICAgcG9ydCBiZWxvdyAxMDI0KSwgdGhlbiBpdCBpcyBuZWNlc3NhcnkgdG8gaGF2ZSByb290IHByaXZpbGVnZXMgaW4KICAgIG9yZGVyIHRvIHN0YXJ0IGFwYWNoZSwgc28gdGhhdCBpdCBjYW4gYmluZCB0byB0aGlzIHByaXZpbGVnZWQKICAgIHBvcnQuIE9uY2UgdGhlIHNlcnZlciBoYXMgc3RhcnRlZCBhbmQgcGVyZm9ybWVkIGEgZmV3IHByZWxpbWluYXJ5CiAgICBhY3Rpdml0aWVzIHN1Y2ggYXMgb3BlbmluZyBpdHMgbG9nIGZpbGVzLCBpdCB3aWxsIGxhdW5jaCBzZXZlcmFsCiAgICA8ZW0+Y2hpbGQ8L2VtPiBwcm9jZXNzZXMgd2hpY2ggZG8gdGhlIHdvcmsgb2YgbGlzdGVuaW5nIGZvciBhbmQKICAgIGFuc3dlcmluZyByZXF1ZXN0cyBmcm9tIGNsaWVudHMuIFRoZSBtYWluIDxjb2RlPmh0dHBkPC9jb2RlPgogICAgcHJvY2VzcyBjb250aW51ZXMgdG8gcnVuIGFzIHRoZSByb290IHVzZXIsIGJ1dCB0aGUgY2hpbGQgcHJvY2Vzc2VzCiAgICBydW4gYXMgYSBsZXNzIHByaXZpbGVnZWQgdXNlci4gVGhpcyBpcyBjb250cm9sbGVkIGJ5IHRoZSBzZWxlY3RlZAogICAgPGEgaHJlZj0ibXBtLmh0bWwiPk11bHRpLVByb2Nlc3NpbmcgTW9kdWxlPC9hPi48L3A+CgogICAgPHA+VGhlIHJlY29tbWVuZGVkIG1ldGhvZCBvZiBpbnZva2luZyB0aGUgPGNvZGU+aHR0cGQ8L2NvZGU+CiAgICBleGVjdXRhYmxlIGlzIHRvIHVzZSB0aGUgPGEgaHJlZj0icHJvZ3JhbXMvYXBhY2hlY3RsLmh0bWwiPmFwYWNoZWN0bDwvYT4gY29udHJvbCBzY3JpcHQuICBUaGlzCiAgICBzY3JpcHQgc2V0cyBjZXJ0YWluIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBuZWNlc3NhcnkgZm9yCiAgICA8Y29kZT5odHRwZDwvY29kZT4gdG8gZnVuY3Rpb24gY29ycmVjdGx5IHVuZGVyIHNvbWUgb3BlcmF0aW5nCiAgICBzeXN0ZW1zLCBhbmQgdGhlbiBpbnZva2VzIHRoZSA8Y29kZT5odHRwZDwvY29kZT4gYmluYXJ5LgogICAgPGNvZGU+YXBhY2hlY3RsPC9jb2RlPiB3aWxsIHBhc3MgdGhyb3VnaCBhbnkgY29tbWFuZCBsaW5lCiAgICBhcmd1bWVudHMsIHNvIGFueSA8Y29kZT5odHRwZDwvY29kZT4gb3B0aW9ucyBtYXkgYWxzbyBiZSB1c2VkIHdpdGgKICAgIDxjb2RlPmFwYWNoZWN0bDwvY29kZT4uICBZb3UgbWF5IGFsc28gZGlyZWN0bHkgZWRpdCB0aGUKICAgIDxjb2RlPmFwYWNoZWN0bDwvY29kZT4gc2NyaXB0IGJ5IGNoYW5naW5nIHRoZSA8Y29kZT5IVFRQRDwvY29kZT4KICAgIHZhcmlhYmxlIG5lYXIgdGhlIHRvcCB0byBzcGVjaWZ5IHRoZSBjb3JyZWN0IGxvY2F0aW9uIG9mIHRoZQogICAgPGNvZGU+aHR0cGQ8L2NvZGU+IGJpbmFyeSBhbmQgYW55IGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdGhhdCB5b3UKICAgIHdpc2ggdG8gYmUgPGVtPmFsd2F5czwvZW0+IHByZXNlbnQuPC9wPgoKICAgIDxwPlRoZSBmaXJzdCB0aGluZyB0aGF0IDxjb2RlPmh0dHBkPC9jb2RlPiBkb2VzIHdoZW4gaXQgaXMKICAgIGludm9rZWQgaXMgdG8gbG9jYXRlIGFuZCByZWFkIHRoZSA8YSBocmVmPSJjb25maWd1cmluZy5odG1sIj5jb25maWd1cmF0aW9uIGZpbGU8L2E+CiAgICA8Y29kZT5odHRwZC5jb25mPC9jb2RlPi4gVGhlIGxvY2F0aW9uIG9mIHRoaXMgZmlsZSBpcyBzZXQgYXQKICAgIGNvbXBpbGUtdGltZSwgYnV0IGl0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgaXRzIGxvY2F0aW9uIGF0IHJ1bgogICAgdGltZSB1c2luZyB0aGUgPGNvZGU+LWY8L2NvZGU+IGNvbW1hbmQtbGluZSBvcHRpb24gYXMgaW48L3A+Cgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4vdXNyL2xvY2FsL2FwYWNoZTIvYmluL2FwYWNoZWN0bCAtZgogICAgICAvdXNyL2xvY2FsL2FwYWNoZTIvY29uZi9odHRwZC5jb25mPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5JZiBhbGwgZ29lcyB3ZWxsIGR1cmluZyBzdGFydHVwLCB0aGUgc2VydmVyIHdpbGwgZGV0YWNoIGZyb20KICAgIHRoZSB0ZXJtaW5hbCBhbmQgdGhlIGNvbW1hbmQgcHJvbXB0IHdpbGwgcmV0dXJuIGFsbW9zdAogICAgaW1tZWRpYXRlbHkuIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZy4KICAgIFlvdSBjYW4gdGhlbiB1c2UgeW91ciBicm93c2VyIHRvIGNvbm5lY3QgdG8gdGhlIHNlcnZlciBhbmQgdmlldwogICAgdGhlIHRlc3QgcGFnZSBpbiB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RvY3VtZW50cm9vdCI+RG9jdW1lbnRSb290PC9hPjwvY29kZT4gZGlyZWN0b3J5CiAgICBhbmQgdGhlIGxvY2FsIGNvcHkgb2YgdGhlIGRvY3VtZW50YXRpb24gbGlua2VkIGZyb20gdGhhdAogICAgcGFnZS48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZXJyb3JzIiBpZD0iZXJyb3JzIj5FcnJvcnMgRHVyaW5nIFN0YXJ0LXVwPC9hPjwvaDI+CgogICAgPHA+SWYgQXBhY2hlIHN1ZmZlcnMgYSBmYXRhbCBwcm9ibGVtIGR1cmluZyBzdGFydHVwLCBpdCB3aWxsCiAgICB3cml0ZSBhIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgcHJvYmxlbSBlaXRoZXIgdG8gdGhlIGNvbnNvbGUgb3IKICAgIHRvIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZXJyb3Jsb2ciPkVycm9yTG9nPC9hPjwvY29kZT4gYmVmb3JlCiAgICBleGl0aW5nLiBPbmUgb2YgdGhlIG1vc3QgY29tbW9uIGVycm9yIG1lc3NhZ2VzIGlzICI8Y29kZT5VbmFibGUKICAgIHRvIGJpbmQgdG8gUG9ydCAuLi48L2NvZGU+Ii4gVGhpcyBtZXNzYWdlIGlzIHVzdWFsbHkgY2F1c2VkIGJ5CiAgICBlaXRoZXI6PC9wPgoKICAgIDx1bD4KICAgICAgPGxpPlRyeWluZyB0byBzdGFydCB0aGUgc2VydmVyIG9uIGEgcHJpdmlsZWdlZCBwb3J0IHdoZW4gbm90CiAgICAgIGxvZ2dlZCBpbiBhcyB0aGUgcm9vdCB1c2VyOyBvcjwvbGk+CgogICAgICA8bGk+VHJ5aW5nIHRvIHN0YXJ0IHRoZSBzZXJ2ZXIgd2hlbiB0aGVyZSBpcyBhbm90aGVyIGluc3RhbmNlCiAgICAgIG9mIEFwYWNoZSBvciBzb21lIG90aGVyIHdlYiBzZXJ2ZXIgYWxyZWFkeSBib3VuZCB0byB0aGUgc2FtZQogICAgICBQb3J0LjwvbGk+CiAgICA8L3VsPgoKICAgIDxwPkZvciBmdXJ0aGVyIHRyb3VibGUtc2hvb3RpbmcgaW5zdHJ1Y3Rpb25zLCBjb25zdWx0IHRoZQogICAgQXBhY2hlIDxhIGhyZWY9ImZhcS8iPkZBUTwvYT4uPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImJvb3QiIGlkPSJib290Ij5TdGFydGluZyBhdCBCb290LVRpbWU8L2E+PC9oMj4KCiAgICA8cD5JZiB5b3Ugd2FudCB5b3VyIHNlcnZlciB0byBjb250aW51ZSBydW5uaW5nIGFmdGVyIGEgc3lzdGVtCiAgICByZWJvb3QsIHlvdSBzaG91bGQgYWRkIGEgY2FsbCB0byA8Y29kZT5hcGFjaGVjdGw8L2NvZGU+IHRvIHlvdXIKICAgIHN5c3RlbSBzdGFydHVwIGZpbGVzICh0eXBpY2FsbHkgPGNvZGU+cmMubG9jYWw8L2NvZGU+IG9yIGEgZmlsZSBpbgogICAgYW4gPGNvZGU+cmMuTjwvY29kZT4gZGlyZWN0b3J5KS4gVGhpcyB3aWxsIHN0YXJ0IEFwYWNoZSBhcwogICAgcm9vdC4gQmVmb3JlIGRvaW5nIHRoaXMgZW5zdXJlIHRoYXQgeW91ciBzZXJ2ZXIgaXMgcHJvcGVybHkKICAgIGNvbmZpZ3VyZWQgZm9yIHNlY3VyaXR5IGFuZCBhY2Nlc3MgcmVzdHJpY3Rpb25zLjwvcD4KCiAgICA8cD5UaGUgPGNvZGU+YXBhY2hlY3RsPC9jb2RlPiBzY3JpcHQgaXMgZGVzaWduZWQgdG8gYWN0IGxpa2UgYQogICAgc3RhbmRhcmQgU3lzViBpbml0IHNjcmlwdDsgaXQgY2FuIHRha2UgdGhlIGFyZ3VtZW50cwogICAgPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5yZXN0YXJ0PC9jb2RlPiwgYW5kIDxjb2RlPnN0b3A8L2NvZGU+CiAgICBhbmQgdHJhbnNsYXRlIHRoZW0gaW50byB0aGUgYXBwcm9wcmlhdGUgc2lnbmFscyB0bwogICAgPGNvZGU+aHR0cGQ8L2NvZGU+LiAgU28geW91IGNhbiBvZnRlbiBzaW1wbHkgbGluawogICAgPGNvZGU+YXBhY2hlY3RsPC9jb2RlPiBpbnRvIHRoZSBhcHByb3ByaWF0ZSBpbml0IGRpcmVjdG9yeS4gQnV0IGJlCiAgICBzdXJlIHRvIGNoZWNrIHRoZSBleGFjdCByZXF1aXJlbWVudHMgb2YgeW91ciBzeXN0ZW0uPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImluZm8iIGlkPSJpbmZvIj5BZGRpdGlvbmFsIEluZm9ybWF0aW9uPC9hPjwvaDI+CgogICAgPHA+QWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgb2YgPGEgaHJlZj0icHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+IGFuZCA8YSBocmVmPSJwcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCI+YXBhY2hlY3RsPC9hPiBhcyB3ZWxsIGFzIG90aGVyCiAgICBzdXBwb3J0IHByb2dyYW1zIGluY2x1ZGVkIHdpdGggdGhlIHNlcnZlciBpcyBhdmFpbGFibGUgb24gdGhlCiAgICA8YSBocmVmPSJwcm9ncmFtcy8iPlNlcnZlciBhbmQgU3VwcG9ydGluZyBQcm9ncmFtczwvYT4gcGFnZS4KICAgIFRoZXJlIGlzIGFsc28gZG9jdW1lbnRhdGlvbiBvbiBhbGwgdGhlIDxhIGhyZWY9Im1vZC8iPm1vZHVsZXM8L2E+IGluY2x1ZGVkIHdpdGggdGhlIEFwYWNoZSBkaXN0cmlidXRpb24KICAgIGFuZCB0aGUgPGEgaHJlZj0ibW9kL2RpcmVjdGl2ZXMuaHRtbCI+ZGlyZWN0aXZlczwvYT4gdGhhdCB0aGV5CiAgICBwcm92aWRlLjwvcD4KPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi9kZS9pbnZva2luZy5odG1sIiBocmVmbGFuZz0iZGUiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRGV1dHNjaCI+Jm5ic3A7ZGUmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lbi9pbnZva2luZy5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9pbnZva2luZy5odG1sIiBocmVmbGFuZz0iZXMiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRXNwYfFvbCI+Jm5ic3A7ZXMmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9pbnZva2luZy5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vaW52b2tpbmcuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5MaWNlbnNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+CjwvYm9keT48L2h0bWw+