PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vY29tLmlibS5oZWxwLmRvYy9zd2dfaW5mb19jb21tb24uY3NzIiAvPgo8dGl0bGU+Q29uZmlndXJpbmcgV2ViIGFwcGxpY2F0aW9ucyB1c2luZyB0aGUgV2ViIGRlcGxveW1lbnQgZGVzY3JpcHRvciBlZGl0b3I8L3RpdGxlPgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KICAgIGZ1bmN0aW9uIHBvcHVwX3dpbmRvdyggdXJsLCBpZCwgd2lkdGgsIGhlaWdodCApCiAgICB7CiAgICAgIHBvcHVwID0gd2luZG93Lm9wZW4oIHVybCwgaWQsICd0b29sYmFyPW5vLHNjcm9sbGJhcnM9bm8sbG9jYXRpb249bm8sc3RhdHVzYmFyPW5vLG1lbnViYXI9bm8scmVzaXphYmxlPW5vLHdpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLGxlZnQ9LHRvcD0nICk7CiAgICAgIHBvcHVwLmZvY3VzKCk7CiAgICB9Cjwvc2NyaXB0PjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0iaGVscC9saXZlSGVscC5qcyI+PC9zY3JpcHQ+PC9oZWFkPgo8Ym9keSBpZD0idHdlZHR3YngiPjxhIG5hbWU9InR3ZWR0d2J4Ij48IS0tIC0tPjwvYT4KCjxoMSBjbGFzcz0idG9waWN0aXRsZTEiPkNvbmZpZ3VyaW5nIFdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIFdlYiBkZXBsb3ltZW50IGRlc2NyaXB0b3IgZWRpdG9yPC9oMT4KPGRpdj48ZGl2IGNsYXNzPSJza2lwc3BhY2UiPiA8cD5XaGVuIHlvdSBjcmVhdGUgYSBXZWIgcHJvamVjdCwgdGhlIE5ldyBXZWIgUHJvamVjdCB3aXphcmQgcGxhY2VzCgogYSB3ZWIueG1sIGZpbGUgaW4gdGhlIHByb2plY3QncyBXRUItSU5GIGRpcmVjdG9yeS4gVGhpcyBmaWxlIGlzIHVzZWQgdG8gc3BlY2lmeQoKZGVwbG95bWVudCBpbmZvcm1hdGlvbiBmb3IgbW9kdWxlcyBjcmVhdGVkIGluIHRoZSBXZWIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQKClRvIG9wZW4gdGhlIHdlYi54bWwgZmlsZSwgIGRvdWJsZS1jbGljayBpdCAob3IgZG91YmxlLWNsaWNrIHRoZSBEZXBsb3ltZW50CgpEZXNjcmlwdG9yIGljb24gaW4gdGhlIFByb2plY3QgIEV4cGxvcmVyIHZpZXcpLiBUaGUgV2ViIGRlcGxveW1lbnQgZGVzY3JpcHRvcgoKZWRpdG9yIG9wZW5zIGluIHRoZSBlZGl0aW5nICBwYW5lLjwvcD4KICA8cD5JdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSB1c2UKCnRoZSB0YWJiZWQgcGFnZXMgKHZpZXdzKSB0byBjb25zdHJ1Y3QgIHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IgZm9yIHlvdXIKCldlYiBhcHBsaWNhdGlvbi4gRXZlbiB0aG91Z2ggdGhlIFdlYiBkZXBsb3ltZW50ICBkZXNjcmlwdG9yIGVkaXRvciBkb2VzIHByb3ZpZGVzCgphIHNvdXJjZSBwYWdlIG9mIHRoZSB3ZWIueG1sIGZpbGUgKGZyb20gdGhlIDxzcGFuPlNvdXJjZTwvc3Bhbj4gdGFiKSwgIHVzaW5nIHRoZQoKdGFiYmVkIHBhZ2VzIGlzIGVhc2llciBhbmQgaW50cm9kdWNlcyBmZXdlciBlcnJvcnMuIEFzIHlvdSBtYWtlIGNoYW5nZXMgb24KCnRoZXNlIHRhYmJlZCBwYWdlcywgdGhlIHdlYi54bWwgZmlsZSBpcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkuICBGb3IgaW5zdGFuY2UsCgp3aGVuIHlvdSB1c2UgdGhlIE5ldyBTZXJ2bGV0IHdpemFyZCB0byBjcmVhdGUgYSBzZXJ2bGV0IGluIGEgIFdlYiBwcm9qZWN0LAoKdGhlIGFwcHJvcHJpYXRlIHNlcnZsZXQgZW50cnkgaXMgYXV0b21hdGljYWxseSBpbnNlcnRlZCBpbnRvICB0aGUgd2ViLnhtbAoKZmlsZS48L3A+CiAgPHA+SW4gYWRkaXRpb24gdG8gdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaW4gIHRoZSB3ZWIueG1sCgpmaWxlLCB5b3UgY2FuIGFsc28gdXNlIHRoaXMgZWRpdG9yIHRvIGVkaXQgb3RoZXIgZGVwbG95bWVudCBkZXNjcmlwdG9ycyAgaW4KCnRoZSBXZWIgcHJvamVjdCwgaW5jbHVkaW5nIGluZm9ybWF0aW9uIG9uIGJpbmRpbmdzIGFuZCBJQk08c3VwPq48L3N1cD4gZXh0ZW5zaW9ucyAoaWJtLXdlYi1ibmQueG1pCgogYW5kIGlibS13ZWItZXh0LnhtaSBmaWxlcykuPC9wPgo8cD5UbyBlZGl0IHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IsIGNsaWNrCgogdGhlIHRhYmJlZCBwYWdlcyB0byBsb2NhdGUgYXR0cmlidXRlcyB0aGF0IHlvdSB3aXNoIHRvIGFkZCwgZWRpdCBvciByZW1vdmUuCgogSW4gYWRkaXRpb24sIHRoZSBzZWN0aW9ucyBpbiB0aGUgT3ZlcnZpZXcgcGFnZSBjb250YWluIGxpbmtzIHRvIGV4aXN0aW5nCgplbGVtZW50cyBvZiB0aGUgZGVwbG95bWVudCBkZXNjcmlwdG9yLiBDbGljayB0aGUgbGlua3MgdG8gb3BlbiB0aGUgYXBwcm9wcmlhdGUKCmVkaXRvciAgcGFnZSB0byBtYWtlIHVwZGF0ZXMgb3IgYWRkaXRpb25zLjwvcD4KIDwvZGl2Pgo8L2Rpdj4KPGRpdj48cD48YiBjbGFzcz0icmVsY29uY2VwdHNoZCI+UmVsYXRlZCBjb25jZXB0czwvYj48YnIgLz4KPGEgaHJlZj0iY2N3ZWJ4bWwuaHRtbCIgdGl0bGU9IiI+VGhlIFdlYiBkZXBsb3ltZW50IGRlc2NyaXB0b3IgZWRpdG9yPC9hPjxiciAvPgo8L3A+CjxwPjxiIGNsYXNzPSJyZWx0YXNrc2hkIj5SZWxhdGVkIHRhc2tzPC9iPjxiciAvPgo8YSBocmVmPSJ0d2VkdHdieDEuaHRtbCIgdGl0bGU9IiI+V29ya2luZyBpbiB0aGUgT3ZlcnZpZXcgcGFnZTwvYT48YnIgLz4KPGEgaHJlZj0idHdlZHR3YngyLmh0bWwiIHRpdGxlPSIiPldvcmtpbmcgaW4gdGhlIFNlcnZsZXRzIHBhZ2U8L2E+PGJyIC8+CjxhIGhyZWY9InR3ZWR0d2J4Zi5odG1sIiB0aXRsZT0iIj5Xb3JraW5nIGluIHRoZSBGaWx0ZXJzIFBhZ2U8L2E+PGJyIC8+CjxhIGhyZWY9InR3ZWR0d2J4My5odG1sIiB0aXRsZT0iIj5Xb3JraW5nIGluIHRoZSBTZWN1cml0eSBwYWdlPC9hPjxiciAvPgo8YSBocmVmPSJ0d2VkdHdieDQuaHRtbCIgdGl0bGU9IiI+V29ya2luZyBpbiB0aGUgUmVmZXJlbmNlcyBQYWdlPC9hPjxiciAvPgo8IS0tIDxhIGhyZWY9InR3ZWR0d2J4d3NoLmh0bWwiIHRpdGxlPSIiPldvcmtpbmcgaW4gdGhlIFdTIEhhbmRsZXIgcGFnZTwvYT48YnIgLz4tLT4KPGEgaHJlZj0idHdlZHR3YnhwLmh0bWwiIHRpdGxlPSIiPldvcmtpbmcgaW4gdGhlIFBhZ2VzIHBhZ2U8L2E+PGJyIC8+CjxhIGhyZWY9InR3ZWR0d2J4di5odG1sIiB0aXRsZT0iIj5Xb3JraW5nIGluIHRoZSBWYXJpYWJsZXMgUGFnZTwvYT48YnIgLz4KPCEtLSA8YSBocmVmPSJ0d2VkdHdieHdzZS5odG1sIiB0aXRsZT0iIj5Xb3JraW5nIGluIHRoZSBXUyBFeHRlbnNpb25zIFBhZ2U8L2E+PGJyIC8+CjxhIGhyZWY9InR3ZWR0d2J4d3NiLmh0bWwiIHRpdGxlPSIiPldvcmtpbmcgaW4gdGhlIFdTIEJpbmRpbmcgUGFnZTwvYT48YnIgLz4tLT4KPGEgaHJlZj0idHdlZHR3YnhlLmh0bWwiIHRpdGxlPSIiPldvcmtpbmcgaW4gdGhlIEV4dGVuc2lvbnMgUGFnZTwvYT48YnIgLz4KPC9wPgo8L2Rpdj48cD4KCQkoQykgQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAyMDAwLCAyMDA1LiBBbGwgUmlnaHRzIFJlc2VydmVkLgo8L3A+CjwvYm9keT4KPC9odG1sPg==