PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vY29tLmlibS5oZWxwLmRvYy9zd2dfaW5mb19jb21tb24uY3NzIiAvPgo8dGl0bGU+V2ViIGRldmVsb3BtZW50IHRvb2xzPC90aXRsZT4KPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+CiAgICBmdW5jdGlvbiBwb3B1cF93aW5kb3coIHVybCwgaWQsIHdpZHRoLCBoZWlnaHQgKQogICAgewogICAgICBwb3B1cCA9IHdpbmRvdy5vcGVuKCB1cmwsIGlkLCAndG9vbGJhcj1ubyxzY3JvbGxiYXJzPW5vLGxvY2F0aW9uPW5vLHN0YXR1c2Jhcj1ubyxtZW51YmFyPW5vLHJlc2l6YWJsZT1ubyx3aWR0aD0nICsgd2lkdGggKyAnLGhlaWdodD0nICsgaGVpZ2h0ICsgJyxsZWZ0PSx0b3A9JyApOwogICAgICBwb3B1cC5mb2N1cygpOwogICAgfQo8L3NjcmlwdD48c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiBzcmM9ImhlbHAvbGl2ZUhlbHAuanMiPjwvc2NyaXB0PjwvaGVhZD4KPGJvZHkgaWQ9ImN3ZWJkZXZlbG9wbWVudHRvb2xzIj48YSBuYW1lPSJjd2ViZGV2ZWxvcG1lbnR0b29scyI+PCEtLSAtLT48L2E+Cgo8aDEgY2xhc3M9InRvcGljdGl0bGUxIj5XZWIgZGV2ZWxvcG1lbnQgdG9vbHM8L2gxPgo8ZGl2PjxwPlRoZSBXZWIgZGV2ZWxvcG1lbnQgdG9vbHMgZW5hYmxlIHlvdSB0byBjcmVhdGUgV2ViIGFwcGxpY2F0aW9ucwoKdGhhdCByYW5nZSBmcm9tIHNpbXBsZSBzdGF0aWMgc2l0ZXMgdG8gZHluYW1pYyBXZWIgYXBwbGljYXRpb25zIHRoYXQgdXNlIHRoZSBsYXRlc3QgV2ViIHRlY2hub2xvZ2llcy48L3A+CjxwPlRoZSBXZWIgcGVyc3BlY3RpdmUgY29udGFpbnMgYSBzZWxlY3Rpb24gb2Ygdmlld3MgYW5kIGVkaXRvcnMgdGhhdCBhcmUKY3VzdG9taXplZCB0byBiZSBtb3N0IHVzZWZ1bCB0byBhIFdlYiBkZXZlbG9wZXIuPC9wPgo8dWw+CjxsaT4KVGhlIGVkaXRvcnMgaW5jbHVkZSBzdGFuZGFyZCBzb3VyY2UgZWRpdG9ycyB3aXRoIDxhIGhyZWY9Ii4uLy4uL29yZy5lY2xpcGUud3N0LnNzZS5kb2MudXNlci90b3BpY3MvdHNyY2VkdDAwNS5odG1sIj5jb250ZW50IGFzc2lzdDwvYT4gZmVhdHVyZXMuCgogVG8gZXh0ZW5kCgp0aGVzZSBwYWdlcywgeW91IGNhbiBpbmNsdWRlIGZvcm0gZWxlbWVudHMsIEphdmGZIGFwcGxldHMsIGVtYmVkZGVkIHNjcmlwdHMsIGR5bmFtaWMKCmNvbnRyb2xzLCBhbmQgPGEgaHJlZj0iY3BkanNwcy5odG1sIj4gSmF2YVNlcnZlciBQYWdlczwvYT4gKEpTUCkKCnRhZ3MuPHA+PC9wPgo8L2xpPgoKPGxpPiA8YSBocmVmPSIuLi8uLi9vcmcuZWNsaXBzZS53c3Qud2VidG9vbHMuZG9jLnVzZXIvdG9waWNzL2Njd2VieG1sLmh0bWwiPiBXZWIgRGVwbG95bWVudCBEZXNjcmlwdG9yIEVkaXRvcjwvYT4gaGVscHMgeW91IGRlZmluZSBhbnkgb2YgdGhlIGRlcGxveW1lbnQKCmluZm9ybWF0aW9uIHRoYXQgY2FuIGV4aXN0IGluIHRoZSBXZWIgYXBwbGljYXRpb24gZGVwbG95bWVudCBkZXNjcmlwdG9yIGluY2x1ZGVkCgppbiBhIFdBUiBmaWxlLiBQYWdlcyBpbiB0aGlzIGdyYXBoaWNhbCBlZGl0b3IgcHJvdmlkZSBjb250cm9scyB0byBzZXQgbnVtZXJvdXMKCldlYiBhcHBsaWNhdGlvbiBwYXJhbWV0ZXJzIGFzc29jaWF0ZWQgd2l0aCBzZXJ2bGV0cywgZmlsdGVycywgbGlmZS1jeWNsZSBsaXN0ZW5lcnMsCgptaW1lIG1hcHBpbmdzLCBwYXJhbWV0ZXJzLCByZWZlcmVuY2VzLCBzZWN1cml0eSwgYW5kIG90aGVyIGdlbmVyYWwgZGVwbG95bWVudAoKc2V0dGluZ3MuIFRoZSBXZWIgZGVwbG95bWVudCBkZXNjcmlwdG9yIGVkaXRvciBhbHNvIGVuYWJsZXMgeW91IHRvIGNvbmZpZ3VyZSBXZWJTcGhlcmU8c3VwPq48L3N1cD4gQXBwbGljYXRpb24KClNlcnZlci1zcGVjaWZpYyBiaW5kaW5ncyBhbmQgZXh0ZW5zaW9ucy4gPC9saT4KPC91bD4KIDwvZGl2Pgo8cD48YiBjbGFzcz0icmVsY29uY2VwdHNoZCI+UmVsYXRlZCBjb25jZXB0czwvYj48YnIgLz4KPGEgaHJlZj0iY2N3ZWJwZXIuaHRtbCIgdGl0bGU9IiI+VGhlIFdlYiBwZXJzcGVjdGl2ZTwvYT48YnIgLz4KPGEgaHJlZj0iLi4vLi4vb3JnLmVjbGlwc2Uud3N0LndlYnRvb2xzLmRvYy51c2VyL3RvcGljcy9jY3dlYnhtbC5odG1sIj5XZWIgRGVwbG95bWVudCBEZXNjcmlwdG9yIEVkaXRvcjwvYT48YnIgLz4KPGEgaHJlZj0iY3d3YXJvdnIuaHRtbCIgdGl0bGU9IiI+V2ViIGFyY2hpdmUgKFdBUikgZmlsZXM8L2E+PGJyIC8+CjxhIGhyZWY9ImNjd2VicHJqLmh0bWwiIHRpdGxlPSIiPkR5bmFtaWMgV2ViIHByb2plY3RzIGFuZCBhcHBsaWNhdGlvbnM8L2E+PGJyIC8+CjxhIGhyZWY9ImNjc3RhdGljLmh0bWwiIHRpdGxlPSIiPlN0YXRpYyBXZWIgcHJvamVjdHM8L2E+PGJyIC8+CjxhIGhyZWY9ImN3ZWJwcm9qZWN0cy5odG1sIiB0aXRsZT0iIj5XZWIgcHJvamVjdHM8L2E+PGJyIC8+CjxhIGhyZWY9ImN3ZWJwYWdlZGVzaWduLmh0bWwiIHRpdGxlPSIiPldlYiBwYWdlIGRlc2lnbjwvYT48YnIgLz4KPGEgaHJlZj0iY3dlYnRlY2hub2xvZ2llcy5odG1sIiB0aXRsZT0iIj5XZWIgdGVjaG5vbG9naWVzPC9hPjxiciAvPgo8L3A+CjxwPjxiIGNsYXNzPSJyZWx0YXNrc2hkIj5SZWxhdGVkIHRhc2tzPC9iPjxiciAvPgo8YSBocmVmPSIuLi8uLi9vcmcuZWNsaXBzZS53c3Qud2VidG9vbHMuZG9jLnVzZXIvdG9waWNzL3R3Y3JlcHJqLmh0bWwiPkNyZWF0aW5nIGEgZHluYW1pYyBXZWIgcHJvamVjdDwvYT48YnIgLz4KPGEgaHJlZj0iLi4vLi4vb3JnLmVjbGlwc2Uud3N0LndlYnRvb2xzLmRvYy51c2VyL3RvcGljcy90d2NyZXN0YS5odG1sIj5DcmVhdGluZyBhIHN0YXRpYyBXZWIgcHJvamVjdDwvYT48YnIgLz4KPGEgaHJlZj0iLi4vLi4vb3JnLmVjbGlwc2Uud3N0LndlYnRvb2xzLmRvYy51c2VyL3RvcGljcy90amNyZWpzcC5odG1sIj5DcmVhdGluZyBKYXZhU2VydmVyIFBhZ2VzIChKU1ApIGZpbGVzPC9hPjxiciAvPgo8L3A+CgkJPHA+CgkJKEMpIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24gMjAwMCwgMjAwNS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48L3A+CjwvYm9keT4KPC9odG1sPg==