PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KPGh0bWw+Cgk8aGVhZD4KCQk8dGl0bGU+Qm9vc3Q6IGFzc2VydC5ocHAgZG9jdW1lbnRhdGlvbjwvdGl0bGU+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Cgk8L2hlYWQ+Cgk8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgc3R5bGU9Ik1BUkdJTi1MRUZUOiA1JTsgTUFSR0lOLVJJR0hUOiA1JSI+CgkJPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgoJCQk8dHI+CgkJCQk8dGQgd2lkdGg9IjI3NyI+PEEgaHJlZj0iLi4vLi4vaW5kZXguaHRtIj4gPGltZyBzcmM9Ii4uLy4uL2Jvb3N0LnBuZyIgYWx0PSJib29zdC5wbmcgKDY4OTcgYnl0ZXMpIiB3aWR0aD0iMjc3IiBoZWlnaHQ9Ijg2IiBib3JkZXI9IjAiPjwvQT4KCQkJCTwvdGQ+CgkJCQk8dGQgYWxpZ249ImNlbnRlciI+CgkJCQkJPGgxPmFzc2VydC5ocHA8L2gxPgoJCQkJPC90ZD4KCQkJPC90cj4KCQkJPHRyPgoJCQkJPHRkIGNvbHNwYW49IjIiIGhlaWdodD0iNjQiPiZuYnNwOzwvdGQ+CgkJCTwvdHI+CgkJPC90YWJsZT4KCQk8cD4KCQkJVGhlIGhlYWRlciA8U1RST05HPiZsdDtib29zdC9hc3NlcnQuaHBwJmd0OzwvU1RST05HPiBkZWZpbmVzIHRoZSBtYWNybyA8Yj5CT09TVF9BU1NFUlQ8L2I+LCAKCQkJd2hpY2ggaXMgc2ltaWxhciB0byB0aGUgc3RhbmRhcmQgPFNUUk9ORz5hc3NlcnQ8L1NUUk9ORz4gbWFjcm8gZGVmaW5lZCBpbiA8U1RST05HPiZsdDtjYXNzZXJ0Jmd0OzwvU1RST05HPi4gCgkJCVRoZSBtYWNybyBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGluIEJvb3N0IGxpYnJhcmllcy4KCQk8L3A+CgkJPFA+QnkgZGVmYXVsdCwgPHR0PkJPT1NUX0FTU0VSVChleHByKTwvdHQ+IGlzIGVxdWl2YWxlbnQgdG8gPHR0PmFzc2VydChleHByKTwvdHQ+LjwvUD4KCQk8UD5XaGVuIHRoZSBtYWNybyA8U1RST05HPkJPT1NUX0RJU0FCTEVfQVNTRVJUUzwvU1RST05HPiBpcyBkZWZpbmVkIHdoZW4gPFNUUk9ORz4mbHQ7Ym9vc3QvYXNzZXJ0LmhwcCZndDs8L1NUUk9ORz4KCQkJaXMgaW5jbHVkZWQsIDx0dD5CT09TVF9BU1NFUlQoZXhwcik8L3R0PiBpcyBkZWZpbmVkIGFzIDx0dD4oKHZvaWQpMCk8L3R0Pi4gVGhpcyAKCQkJYWxsb3dzIHVzZXJzIHRvIHNlbGVjdGl2ZWx5IGRpc2FibGUgPFNUUk9ORz5CT09TVF9BU1NFUlQ8L1NUUk9ORz4gd2l0aG91dCAKCQkJYWZmZWN0aW5nIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzdGFuZGFyZCA8U1RST05HPmFzc2VydDwvU1RST05HPi48L1A+CgkJPFA+V2hlbiB0aGUgbWFjcm8gPFNUUk9ORz5CT09TVF9FTkFCTEVfQVNTRVJUX0hBTkRMRVI8L1NUUk9ORz4gaXMgZGVmaW5lZCB3aGVuIDxTVFJPTkc+Jmx0O2Jvb3N0L2Fzc2VydC5ocHAmZ3Q7PC9TVFJPTkc+CgkJCWlzIGluY2x1ZGVkLCA8dHQ+Qk9PU1RfQVNTRVJUKGV4cHIpPC90dD4gZXZhbHVhdGVzIDxiPmV4cHI8L2I+IGFuZCwgaWYgdGhlIAoJCQlyZXN1bHQgaXMgZmFsc2UsIGV2YWx1YXRlcyB0aGUgZXhwcmVzc2lvbjwvUD4KCQk8UD48dHQ+Ojpib29zdDo6YXNzZXJ0aW9uX2ZhaWxlZCgjZXhwciwgPGEgaHJlZj0iY3VycmVudF9mdW5jdGlvbi5odG1sIj5CT09TVF9DVVJSRU5UX0ZVTkNUSU9OPC9hPiwgCgkJCQlfX0ZJTEVfXywgX19MSU5FX18pPC90dD48L1A+CgkJPFA+PFNUUk9ORz5hc3NlcnRpb25fZmFpbGVkPC9TVFJPTkc+IGlzIGRlY2xhcmVkIGluIDxTVFJPTkc+Jmx0O2Jvb3N0L2Fzc2VydC5ocHAmZ3Q7PC9TVFJPTkc+CgkJCWFzPC9QPgoJCTxwcmU+Cm5hbWVzcGFjZSBib29zdAp7Cgp2b2lkIGFzc2VydGlvbl9mYWlsZWQoY2hhciBjb25zdCAqIGV4cHIsIGNoYXIgY29uc3QgKiBmdW5jdGlvbiwgY2hhciBjb25zdCAqIGZpbGUsIGxvbmcgbGluZSk7Cgp9CjwvcHJlPgoJCTxwPmJ1dCBpdCBpcyBuZXZlciBkZWZpbmVkLiBUaGUgdXNlciBpcyBleHBlY3RlZCB0byBzdXBwbHkgYW4gYXBwcm9wcmlhdGUgCgkJCWRlZmluaXRpb24uPC9wPgoJCTxQPkFzIGlzIHRoZSBjYXNlIHdpdGggPFNUUk9ORz4mbHQ7Y2Fzc2VydCZndDs8L1NUUk9ORz4sIDxTVFJPTkc+Jmx0O2Jvb3N0L2Fzc2VydC5ocHAmZ3Q7PC9TVFJPTkc+CgkJCWNhbiBiZSBpbmNsdWRlZCBtdWx0aXBsZSB0aW1lcyBpbiBhIHNpbmdsZSB0cmFuc2xhdGlvbiB1bml0LiA8U1RST05HPkJPT1NUX0FTU0VSVDwvU1RST05HPgoJCQl3aWxsIGJlIHJlZGVmaW5lZCBlYWNoIHRpbWUgYXMgc3BlY2lmaWVkIGFib3ZlLjwvUD4KCQk8cD48U1RST05HPiZsdDtib29zdC9hc3NlcnQuaHBwJmd0OzwvU1RST05HPiBhbHNvIGRlZmluZXMgdGhlIG1hY3JvIDxTVFJPTkc+Qk9PU1RfVkVSSUZZPC9TVFJPTkc+LiAKCQkJSXQgaGFzIGV4YWN0bHkgdGhlIHNhbWUgYmVoYXZpb3IgYXMgPFNUUk9ORz5CT09TVF9BU1NFUlQ8L1NUUk9ORz4sIGV4Y2VwdCB0aGF0IAoJCQl0aGUgZXhwcmVzc2lvbiB0aGF0IGlzIHBhc3NlZCB0byA8U1RST05HPkJPT1NUX1ZFUklGWTwvU1RST05HPiBpcyBhbHdheXMgCgkJCWV2YWx1YXRlZC4gVGhpcyBpcyB1c2VmdWwgd2hlbiB0aGUgYXNzZXJ0ZWQgZXhwcmVzc2lvbiBoYXMgZGVzaXJhYmxlIHNpZGUgCgkJCWVmZmVjdHM7IGl0IGNhbiBhbHNvIGhlbHAgc3VwcHJlc3Mgd2FybmluZ3MgYWJvdXQgdW51c2VkIHZhcmlhYmxlcyB3aGVuIHRoZSAKCQkJb25seSB1c2Ugb2YgdGhlIHZhcmlhYmxlIGlzIGluc2lkZSBhbiBhc3NlcnRpb24uPC9wPgoJCTxwPjxicj4KCQkJPHNtYWxsPkNvcHlyaWdodCCpIDIwMDIsIDIwMDcgYnkgUGV0ZXIgRGltb3YuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSAKCQkJCUxpY2Vuc2UsIFZlcnNpb24gMS4wLiBTZWUgYWNjb21wYW55aW5nIGZpbGUgPEEgaHJlZj0iLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L0E+CgkJCQlvciBjb3B5IGF0IDxBIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9BPi48L3NtYWxsPjwvcD4KCTwvYm9keT4KPC9odG1sPgo=