PGh0bWwgZGlyPSJMVFIiPg0KICA8aGVhZD4NCiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1XaW5kb3dzLTEyNTIiIC8+DQogICAgPG1ldGEgbmFtZT0idnNfdGFyZ2V0U2NoZW1hIiBjb250ZW50PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2ludGVsbGlzZW5zZS9pZTUiIC8+DQogICAgPHRpdGxlPlNlZ21lbnRSZWFkZXIuR2V0VGVybUZyZXFWZWN0b3JzIE1ldGhvZDwvdGl0bGU+DQogICAgPHhtbD4NCiAgICA8L3htbD4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJNU0ROLmNzcyIgLz4NCiAgPC9oZWFkPg0KICA8Ym9keSBpZD0iYm9keUlEIiBjbGFzcz0iZHRCT0RZIj4NCiAgICA8ZGl2IGlkPSJuc2Jhbm5lciI+DQogICAgICA8ZGl2IGlkPSJiYW5uZXJyb3cxIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJiYW5uZXJwYXJ0aGVhZCIgY2VsbHNwYWNpbmc9IjAiPg0KICAgICAgICAgIDx0ciBpZD0iaGRyIj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0icnVubmluZ2hlYWQiPkFwYWNoZSBMdWNlbmUuTmV0IDIuNC4wIENsYXNzIExpYnJhcnkgQVBJPC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0icHJvZHVjdCI+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgaWQ9IlRpdGxlUm93Ij4NCiAgICAgICAgPGgxIGNsYXNzPSJkdEgxIj5TZWdtZW50UmVhZGVyLkdldFRlcm1GcmVxVmVjdG9yc6BNZXRob2SgPC9oMT4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9Im5zdGV4dCI+DQogICAgICA8cD5SZXR1cm4gYW4gYXJyYXkgb2YgdGVybSBmcmVxdWVuY3kgdmVjdG9ycyBmb3IgdGhlIHNwZWNpZmllZCBkb2N1bWVudC4gVGhlIGFycmF5IGNvbnRhaW5zIGEgdmVjdG9yIGZvciBlYWNoIHZlY3Rvcml6ZWQgZmllbGQgaW4gdGhlIGRvY3VtZW50LiBFYWNoIHZlY3RvciB2ZWN0b3IgY29udGFpbnMgdGVybSBudW1iZXJzIGFuZCBmcmVxdWVuY2llcyBmb3IgYWxsIHRlcm1zIGluIGEgZ2l2ZW4gdmVjdG9yaXplZCBmaWVsZC4gSWYgbm8gc3VjaCBmaWVsZHMgZXhpc3RlZCwgdGhlIG1ldGhvZCByZXR1cm5zIG51bGwuIDwvcD4NCiAgICAgIDxkaXYgY2xhc3M9InN5bnRheCI+cHVibGljoG92ZXJyaWRloDxhIGhyZWY9Ikx1Y2VuZS5OZXQuSW5kZXguVGVybUZyZXFWZWN0b3IuaHRtbCI+VGVybUZyZXFWZWN0b3JbXTwvYT6gR2V0VGVybUZyZXFWZWN0b3JzKDxiciAvPqCgoDxhIGhyZWY9Im1zLWhlbHA6Ly9NUy5ORVRGcmFtZXdvcmtTREt2MS4xL2NwcmVmL2h0bWwvZnJscmZTeXN0ZW1JbnQzMkNsYXNzVG9waWMuaHRtIj5pbnQ8L2E+oDxpPmRvY051bWJlcjwvaT48YnIgLz4pOzwvZGl2Pg0KICAgICAgPGg0IGNsYXNzPSJkdEg0Ij5TZWUgQWxzbzwvaDQ+DQogICAgICA8cD4NCiAgICAgICAgPGEgaHJlZj0iTHVjZW5lLk5ldC5JbmRleC5TZWdtZW50UmVhZGVyLmh0bWwiPlNlZ21lbnRSZWFkZXIgQ2xhc3M8L2E+IHwgPGEgaHJlZj0iTHVjZW5lLk5ldC5JbmRleC5odG1sIj5MdWNlbmUuTmV0LkluZGV4IE5hbWVzcGFjZTwvYT48L3A+DQogICAgICA8b2JqZWN0IHR5cGU9ImFwcGxpY2F0aW9uL3gtb2xlb2JqZWN0IiBjbGFzc2lkPSJjbHNpZDoxZTJhN2JkMC1kYWI5LTExZDAtYjkzYS0wMGMwNGZjOTlmOWUiIHZpZXdhc3RleHQ9InRydWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+DQogICAgICAgIDxwYXJhbSBuYW1lPSJLZXl3b3JkIiB2YWx1ZT0iR2V0VGVybUZyZXFWZWN0b3JzIG1ldGhvZCI+DQogICAgICAgIDwvcGFyYW0+DQogICAgICAgIDxwYXJhbSBuYW1lPSJLZXl3b3JkIiB2YWx1ZT0iR2V0VGVybUZyZXFWZWN0b3JzIG1ldGhvZCwgU2VnbWVudFJlYWRlciBjbGFzcyI+DQogICAgICAgIDwvcGFyYW0+DQogICAgICAgIDxwYXJhbSBuYW1lPSJLZXl3b3JkIiB2YWx1ZT0iU2VnbWVudFJlYWRlci5HZXRUZXJtRnJlcVZlY3RvcnMgbWV0aG9kIj4NCiAgICAgICAgPC9wYXJhbT4NCiAgICAgIDwvb2JqZWN0Pg0KICAgICAgPGhyIC8+DQogICAgICA8ZGl2IGlkPSJmb290ZXIiPg0KICAgICAgICA8cD4NCiAgICAgICAgPC9wPg0KICAgICAgICA8cD5HZW5lcmF0ZWQgZnJvbSBhc3NlbWJseSBMdWNlbmUuTmV0IFsyLjQuMC4yXTwvcD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2JvZHk+DQo8L2h0bWw+