PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+CjxodG1sPgoJPGhlYWQ+CgkJPHRpdGxlPlhtbFJwYysrIExpYnJhcnk8L3RpdGxlPgoJCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgoJCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9ImVuLVVTIj4KCQk8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IkNocmlzIE1vcmxleSI+CgkJPG1ldGEgbmFtZT0iY29weXJpZ2h0IiBjb250ZW50PSJDb3B5cmlnaHQgqSAyMDAzIGJ5IENocmlzIE1vcmxleSI+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8SDM+WG1sUnBjKysgTGlicmFyeTwvSDM+CgkJPFA+VGhpcyBpcyB2ZXJzaW9uIDAuNyBvZiBYbWxScGMrKywgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIDxBIEhSRUY9Imh0dHA6Ly93d3cueG1scnBjLm9yZyI+CgkJCQlYbWxScGMgcHJvdG9jb2w8L0E+IHdyaXR0ZW4gaW4gQysrLCBiYXNlZCB1cG9uIFNoaWxhZCBTZW4ncyBleGNlbGxlbnQgPEEgSFJFRj0iaHR0cDovL3B5LXhtbHJwYy5zb3VyY2Vmb3JnZS5uZXQiPgoJCQkJcHkteG1scnBjIGxpYnJhcnk8L0E+LiBYbWxScGMrKyBpcyBkZXNpZ25lZCB0byBtYWtlIGl0IGVhc3kgdG8gaW5jb3Jwb3JhdGUgCgkJCVhtbFJwYyBjbGllbnQgYW5kIHNlcnZlciBzdXBwb3J0IGludG8gQysrIGFwcGxpY2F0aW9ucy4gT3IgdXNlIGJvdGggY2xpZW50IGFuZCAKCQkJc2VydmVyIG9iamVjdHMgaW4geW91ciBhcHAgZm9yIGVhc3kgcGVlci10by1wZWVyIHN1cHBvcnQuCgkJPC9QPgoJCTxIMz5GZWF0dXJlczwvSDM+CgkJPFVMPgoJCQk8bGk+CgkJCQk8U1RST05HPkVhc3k8L1NUUk9ORz4gJm5ic3A7IFRoaXMgbGlicmFyeSBpcyBlYXN5IHRvIGluY29ycG9yYXRlIGludG8gQysrIAoJCQkJYXBwbGljYXRpb25zLiBObyBvdGhlciBsaWJyYXJpZXMgYXJlIHJlcXVpcmVkLCBvdGhlciB0aGFuIHlvdXIgc3lzdGVtJ3Mgc29ja2V0IAoJCQkJbGlicmFyaWVzLiBTaW1wbGUgWE1MIHBhcnNpbmcgYW5kIEhUVFAgc3VwcG9ydCBhcmUgYnVpbHQgaW4uPGJyPgoJCQk8bGk+CgkJCQk8U1RST05HPkZhc3Q8L1NUUk9ORz4gJm5ic3A7IEFsbCBJTyBpcyBub24tYmxvY2tpbmcsIHNvIGEgc2xvdyBjbGllbnQgb3IgCgkJCQluZXR3b3JrIHdpbGwgbm90IHNsb3cgZG93biB0aGUgc2VydmVyLjxicj4KCQkJPGxpPgoJCQkJPFNUUk9ORz5Qb3J0YWJsZTwvU1RST05HPiBXcml0dGVuIGluIHN0YW5kYXJkIEMrKyB0byB0aGUgUE9TSVggYW5kIFdpbmRvd3MgCgkJCQlzb2NrZXRzIEFQSXMuIFlvdSBkbyBuZWVkIGEgZmFpcmx5IHJlY2VudCBjb21waWxlciAoZysrIDMuMSBvciBNU1ZDKysgLk5ldCBvciAKCQkJCU1TVkMrKyA2IHdpdGggdGhlIDxBIGhyZWY9Imh0dHA6Ly93d3cuZGlua3Vtd2FyZS5jb20vdmNfZml4ZXMuaHRtbCI+U1RMIHBhdGNoZXM8L0E+LikKCQkJPC9saT4KCQkJPGxpPgoJCQkJPFNUUk9ORz5GcmVlPC9TVFJPTkc+ICZuYnNwOyBUaGlzIGxpYnJhcnkgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy8iPgoJCQkJCUdOVTwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sIj5MR1BMPC9hPi48YnI+CgkJCQk8YnI+CgkJCTwvbGk+CgkJPC9VTD4KCQk8UD4mbmJzcDs8L1A+CgkJPGgzPkNoYW5nZXM8L2gzPgoJCTxVTD4KCQkJPGxpPgoJCQkJQmV0dGVyIGhhbmRsaW5nIG9mIGZhdWx0IHJlc3BvbnNlczogc2VydmVyIG1ldGhvZHMgY2FuIHRocm93IGFuIAoJCQkJWG1sUnBjRXhjZXB0aW9uIHRvIHJldHVybiBhIGZhdWx0IGFuZCBYbWxScGNDbGllbnQgaGFzIGEgbmV3IG1ldGhvZCB0byAKCQkJCXRlc3Qgd2hldGhlciB0aGUgbGFzdCByZXNwb25zZSB3YXMgYSBmYXVsdC48L2xpPgoJCQk8bGk+CgkJCQlTdXBwb3J0IGZvciBzeXN0ZW0ubGlzdE1ldGhvZHMgYW5kIHN5c3RlbS5tZXRob2RIZWxwIGZyb20gdGhlIGludHJvc3BlY3Rpb24gCgkJCQlBUEkuPC9saT4KCQkJPGxpPgoJCQkJU3VwcG9ydCBmb3Igc3lzdGVtLm11bHRpY2FsbCB0byBwcm9jZXNzIG11bHRpcGxlIHJlcXVlc3RzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uLjwvbGk+CgkJCTxsaT4KCQkJCUZpeGVkIGEgcHJvYmxlbSBpbiB0aGUgWG1sUnBjU2VydmVyIGRlc3RydWN0b3IgKGl0IHNob3VsZCBub3QgaGF2ZSBiZWVuIGRlbGV0aW5nIHRoZSBtZXRob2RzKS48L2xpPgoJCQk8bGk+CgkJCQlUaGUgc2VydmVyIGVuc3VyZXMgYSB2YWxpZCByZXN1bHQgdmFsdWUgaXMgcmV0dXJuZWQgZXZlbiBpZiB0aGUgbWV0aG9kIGRvZXMgbm90CgkJCQlzZXQgdGhlIHJlc3VsdC4gVGhlIGRlZmF1bHQgcmVzdWx0IGlzIGFuIGVtcHR5IHN0cmluZy48L2xpPgoJCQk8bGk+CgkJCQlEb3h5Z2VuIGNvbW1lbnRzIGluIGhlYWRlciBmaWxlcyBhbmQgYSBkb2MgdGFyZ2V0IGluIHRoZSBtYWtlZmlsZS48L2xpPgoJCTwvVUw+CgkJPFA+CgkJPFA+Jm5ic3A7PC9QPgoJCTxoMz5JbnN0YWxsYXRpb248L2gzPgoJCTxQPgoJCQlUaGVyZSBhcmUgVkMrKyA2IGFuZCBWQysrIC5OZXQgcHJvamVjdCBmaWxlcyBidWlsZGluZyBvbiBXaW5kb3dzLiBJZiB5b3UgYXJlIAoJCQl1c2luZyBWQysrIDYsIHlvdSBzaG91bGQgYXBwbHkgU1AzIGFuZCB0aGUgZml4ZXMgYXQgPEEgaHJlZj0iaHR0cDovL3d3dy5kaW5rdW13YXJlLmNvbS92Y19maXhlcy5odG1sIj4KCQkJCWh0dHA6Ly93d3cuZGlua3Vtd2FyZS5jb20vdmNfZml4ZXMuaHRtbDwvQT4uIEJlIHN1cmUgdG8gc2V0IHRoZSBhcHByb3ByaWF0ZSAKCQkJY29kZSBnZW5lcmF0aW9uIHN3aXRjaGVzLiBJbiBwYXJ0aWN1bGFyLCBlbnN1cmUgdGhhdCB0aGUgcnVudGltZSBsaWJyYXJ5IAoJCQkoc2luZ2xlL211bHRpLXRocmVhZGVkLCBzdGF0aWMgbGlicmFyeS9ETEwpIHVzZWQgaXMgdGhlIHNhbWUgZm9yIHRoZSBYbWxScGMrKyAKCQkJY29kZSBhbmQgd2hhdGV2ZXIgYXBwbGljYXRpb24gaXQgd2lsbCBiZSBsaW5rZWQgdG8uPC9QPgoJCTxQPgoJCQlGb3IgTGludXgsIFNvbGFyaXMsIGFuZCBvdGhlciBVbml4LWxpa2UgcGxhdGZvcm1zIHRoZXJlIGlzIGEgR05VIE1ha2VmaWxlIHdoaWNoIAoJCQljYW4gYmUgZWRpdGVkIHRvIHN1aXQgeW91ciBzeXN0ZW0uIFNwZWNpZnkgeW91ciBDKysgY29tcGlsZXIsIGNvbXBpbGVyIGZsYWdzLCAKCQkJYW5kIHlvdXIgc3lzdGVtJ3Mgc29ja2V0IGxpYnJhcmllcy4KCQk8L1A+CgkJPHA+SW4gdGhlIHRlc3QgZGlyZWN0b3J5IHRoZXJlIGFyZSB2YXJpb3VzIHRlc3QgcHJvZ3JhbXMgdGhhdCBhcmUgYnVpbHQgYnkgZGVmYXVsdC4gCgkJCVRvIHZlcmlmeSB0aGF0IHRoZSBsaWJyYXJ5IGJ1aWx0IGNvcnJlY3RseSwgeW91IGNhbiBzdGFydCB0aGUgSGVsbG9TZXJ2ZXIgCgkJCWV4YW1wbGU6PGJyPgoJCQk8cHJlPkhlbGxvU2VydmVyIDgwMDAKCQkJPC9wcmU+CgkJCWFuZCB0aGUgSGVsbG9DbGllbnQgZXhhbXBsZSBpbiBhbm90aGVyIHRlcm1pbmFsIHdpbmRvdzo8YnI+CgkJCTxwcmU+SGVsbG9DbGllbnQgbG9jYWxob3N0IDgwMDAKCQkJPC9wcmU+CgkJPFA+CgkJCVlvdSBzaG91bGQgc2VlIHR3byBIZWxsbyBtZXNzYWdlcyBhbmQgYSBzdW0gZGlzcGxheWVkIChhbW9uZ3N0IGEgYnVuY2ggb2YgZGVidWcgCgkJCW91dHB1dCkuIFlvdSBjYW4gYWxzbyB0cnkgdGhlIFhNTCBzZXJ2ZXIgdmFsaWRhdG9yIHByb2dyYW0gKGVnLCAiVmFsaWRhdG9yIDgwIikgCgkJCWFuZCB0aGVuIGF0dGVtcHQgdG8gY29ubmVjdCB0byBpdCBmcm9tIDxBIGhyZWY9Imh0dHA6Ly92YWxpZGF0b3IueG1scnBjLmNvbSI+aHR0cDovL3ZhbGlkYXRvci54bWxycGMuY29tPC9BPgoJCQkoaWYgeW91IGhhdmUgYWNjZXNzIHRvIHRoZSBpbnRlcm5ldCBhbmQgYXJlIG5vdCBiZWhpbmQgYSBmaXJld2FsbCBldGMpLgoJCTwvUD4KCQk8SDM+QXV0aG9yPC9IMz4KCQk8UD48QSBocmVmPSJtYWlsdG86Y21vcmxleUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQiPkNocmlzIE1vcmxleTwvQT4KCQk8L1A+CgkJPFA+QWx0aG91Z2ggbm8gY29kZSB3YXMgcmUtdXNlZCwgdGhlIGRlc2lnbiBhbmQgc3RydWN0dXJlIG9mIHRoZSBsaWJyYXJ5IGlzIGJhc2VkIAoJCQl1cG9uIHRoZSBweS14bWxycGMgbGlicmFyeSBpbXBsZW1lbnRhdGlvbi48QlI+CgkJCVRoZSBiYXNlNjQgZGVjb2Rlci9lbmNvZGVyIGlzIGJ5IDxBIGhyZWY9Im1haWx0bzpsb3N0ZEB1a3IubmV0Ij5Lb25zdGFudGluIAoJCQkJUGlsaXBjaHVrPC9BPi48L1A+CgkJPFA+PC9QPgoJCTxIMz5MaWNlbnNlPC9IMz4KCQk8cD5BIGZ1bGwgY29weSBvZiB0aGUgTEdQTCBsaWNlbnNlIGlzIGluY2x1ZGVkIGluIHRoZSBmaWxlIENPUFlJTkcuIFRoZSBzb3VyY2UgY29kZSAKCQkJaXMgQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMgYnkgQ2hyaXMgTW9ybGV5LiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IAoJCQljYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgCgkJCVB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgCgkJCW9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiBUaGlzIGxpYnJhcnkgaXMgCgkJCWRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgCgkJCXdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSAKCQkJUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAKCQkJWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIAoJCQl3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSAKCQkJVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKCQk8L3A+Cgk8L2JvZHk+CjwvaHRtbD4K