CTw/cGhwICAJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQlyZXF1aXJlX29uY2UoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICIvZWNsaXBzZS5vcmctY29tbW9uL3N5c3RlbS9hcHAuY2xhc3MucGhwIik7CXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL25hdi5jbGFzcy5waHAiKTsgCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL21lbnUuY2xhc3MucGhwIik7IAkkQXBwIAk9IG5ldyBBcHAoKTsJJE5hdgk9IG5ldyBOYXYoKTsJJE1lbnUgCT0gbmV3IE1lbnUoKTsJCWluY2x1ZGUoIl9wcm9qZWN0Q29tbW9uLnBocCIpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgoJCgkjCgkjIEJlZ2luOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzLiAgQ2hhbmdlIHRoZXNlLiAKCSRwYWdlVGl0bGUgCQk9ICJFY2xpcHNlIEFubm91bmNlcyBOZXcgVG9vbHMgZm9yIFBIUCBEZXZlbG9wZXJzIjsKCSRwYWdlS2V5d29yZHMJPSAiZWNsaXBzZSwgcGR0LCBwaHAgZGV2ZWxvcGVycywgMjAwNywgcHJlc3MgcmVsZWFzZSI7CgkkcGFnZUF1dGhvcgkJPSAiTmF0aGFuIEdlcnZhaXMiOwoJCgkjIEFkZCBwYWdlLXNwZWNpZmljIE5hdiBiYXJzIGhlcmUKCSMgRm9ybWF0IGlzIExpbmsgdGV4dCwgbGluayBVUkwgKGNhbiBiZSBodHRwOi8vd3d3LnNvbWVvdGhlcnNpdGUuY29tLyksIHRhcmdldCAoX3NlbGYsIF9ibGFuaykKCSMgJE5hdi0+YWRkQ3VzdG9tTmF2KCJNeSBMaW5rIiwgIm15cGFnZS5waHAiLCAiX3NlbGYiKTsKCSMgJE5hdi0+YWRkQ3VzdG9tTmF2KCJHb29nbGUiLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIsICJfYmxhbmsiKTsKCSMgRW5kOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzCgkjCgkKCSMgUGFzdGUgeW91ciBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgRU9IVE1MIG1hcmtlcnMhCQoJJGh0bWwgPSA8PDxFT0hUTUwKCTxzdHlsZT4KCQkucGFkZGVkbGlzdCBsaSB7CXBhZGRpbmctYm90dG9tOjdweDsJfQoJPC9zdHlsZT4KPGRpdiBpZD0ibWFpbmNvbnRlbnQiPgoJPGRpdiBpZD0ibWlkY29sdW1uIj4KCQk8aDEgYWxpZ249ImNlbnRlciI+JHBhZ2VUaXRsZTwvaDE+CgkJCgkJPGgyIEFMSUdOPSJDRU5URVIiPjxzdHJvbmc+UERUIDEuMCByZWxlYXNlIC0gdGhlIGZpcnN0IEVjbGlwc2UgcHJvamVjdCB0YXJnZXRpbmcgUEhQIC0tIGlzIG5vdyBhdmFpbGFibGUgZm9yIGRvd25sb2FkPC9zdHJvbmc+PC9oMj4KCQk8aDI+UHJlc3MgUmVsZWFzZTwvaDI+CgkJPHA+PHN0cm9uZz5PVFRBV0EgLSBTZXB0ZW1iZXIgMTgsIDIwMDc8L3N0cm9uZz4gLSBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIHRvZGF5IGFubm91bmNlZCB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSAxLjAgcmVsZWFzZSBvZiB0aGUgRWNsaXBzZSBQSFAgRGV2ZWxvcG1lbnQgVG9vbHMgKFBEVCkgcHJvamVjdC4gIEVjbGlwc2UgUERUIGlzIGEgc2V0IG9mIHRvb2xzIGFuZCBmcmFtZXdvcmtzIHRoYXQgZW5oYW5jZSB0aGUgcHJvZHVjdGl2aXR5IG9mIGRldmVsb3BlcnMgdXNpbmcgUEhQLCBhIHBvcHVsYXIsIGdlbmVyYWwtcHVycG9zZSBkeW5hbWljIGxhbmd1YWdlIHRoYXQgaXMgZXNwZWNpYWxseSBzdWl0ZWQgZm9yIGRldmVsb3BtZW50IG9mIHdlYiBhcHBsaWNhdGlvbnMgYW5kIHdlYiBzZXJ2aWNlcy4gVGhpcyBpcyB0aGUgZmlyc3QgRWNsaXBzZSBwcm9qZWN0IHRoYXQgdGFyZ2V0cyB0aGUgbGFyZ2UgUEhQIGRldmVsb3BlciBjb21tdW5pdHkuPC9wPiAgCgkJPHA+kydFY2xpcHNlIGhhcyBsb25nIGJlZW4gZW5yaWNoZWQgYnkgdGhlIHdpZGUgbnVtYmVyIG9mIHByb2dyYW1taW5nIGxhbmd1YWdlcyBzdXBwb3J0ZWSUIHNheXMgTWlrZSBNaWxpbmtvdmljaCwgZ2VuZXJhbCBkaXJlY3RvciBvZiB0aGUgRWNsaXBzZSBvcmdhbml6YXRpb24uICAgIJNUaGUgcmVsZWFzZSBvZiBQRFQgMS4wIGlzIGdyZWF0IG5ld3MgYXMgaXQgd2lsbCBhbGxvdyB0aGUgZXN0aW1hdGVkIDQuNSBtaWxsaW9uIFBIUCBkZXZlbG9wZXJzIHRvIGJlZ2luIHVzaW5nIEVjbGlwc2UtYmFzZWQgdG9vbHMgYW5kIGdyZWF0bHkgZXhwYW5kIHRoZSBlbnRpcmUgRWNsaXBzZSBjb21tdW5pdHkulDwvcD4KCQk8cD5QSFAgZGV2ZWxvcGVycyB1c2luZyBQRFQgd2lsbCBub3cgYmUgYWJsZSB0byBsZXZlcmFnZSB0aGUgbGFyZ2UgZWNvc3lzdGVtIG9mIG92ZXIgMSw0MDAgRWNsaXBzZSBwbHVnaW5zLiAgIE1hbnkgUEhQIGRldmVsb3BlcnMgdXNlIGEgbnVtYmVyIG9mIGRpZmZlcmVudCBkZXZlbG9wbWVudCBsYW5ndWFnZXMsIHN1Y2ggYXMgSmF2YSBhbmQgQy9DKysuIFRoZXkgYWxzbyB1c2UgZGV2ZWxvcG1lbnQgdG9vbHMgZm9yIHRhc2tzIGxpa2Ugc291cmNlIGNvZGUgbWFuYWdlbWVudCAoU0NNKSwgdGVzdGluZywgYW5kIHByb2ZpbGluZyB3aGVuIGJ1aWxkaW5nIHJpY2ggaW50ZXJuZXQgYXBwbGljYXRpb25zLiAgUERUIGVuYWJsZXMgdGhlbSB0byB1c2UgRWNsaXBzZSB0byBpbnRlZ3JhdGUgYWxsIG9mIHRoZXNlIHRvb2xzIGludG8gb25lIHNpbmdsZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC48L3A+CgkJPHA+k1dlIGhhdmUgcmVjZWl2ZWQgZ3JlYXQgcmVzcG9uc2VzIHRvIFBEVCBmcm9tIFBIUCBkZXZlbG9wZXJzLJQgZXhwbGFpbnMgWW9zc2kgTGVvbiwgRWNsaXBzZSBQRFQgcHJvamVjdCBsZWFkZXIgYW5kIFByb2R1Y3QgTWFuYWdlciBmb3IgWmVuZCBTdHVkaW8gYXQgWmVuZCBUZWNobm9sb2dpZXMuICCTVG8gZGF0ZSB3ZSBoYXZlIGhhZCBvdmVyIDMwMCwwMDAgZG93bmxvYWRzIG9mIFBEVCBhbmQgdGhlIGZlZWRiYWNrIGhhcyBiZWVuIHZlcnkgcG9zaXRpdmUulDwvcD4KCQk8cD5LZXkgZmVhdHVyZXMgaW4gUERUIDEuMCBpbmNsdWRlOjwvcD4KCQk8dWwgY2xhc3M9InBhZGRlZGxpc3QiPgoJCQk8bGk+Q29udGV4dCBzZW5zaXRpdmUgZWRpdG9ycyB0aGF0IHByb3ZpZGUgY2FwYWJpbGl0aWVzIHN1Y2ggYXMgc3ludGF4IGhpZ2hsaWdodGluZywgY29kZSBhc3Npc3QgYW5kIGNvZGUgZm9sZGluZy48L2xpPgoJCQk8bGk+SW50ZWdyYXRpb24gd2l0aCB0aGUgRWNsaXBzZSBwcm9qZWN0IG1vZGVsIHRoYXQgYWxsb3dzIGZvciBpbnNwZWN0aW9uIHVzaW5nIHRoZSBGaWxlIGFuZCBQcm9qZWN0IE91dGxpbmUgVmlld3MgYW5kIGEgbmV3IFBIUCBFeHBsb3JlciBWaWV3LjwvbGk+CgkJCTxsaT5TdXBwb3J0IGZvciBpbmNyZW1lbnRhbCBkZWJ1Z2dpbmcgb2YgUEhQIGNvZGU8L2xpPgoJCQk8bGk+RXh0ZW5zaXZlIGZyYW1ld29ya3MgYW5kIEFQSZJzIHRoYXQgYWxsb3cgZGV2ZWxvcGVycyBhbmQgSVNWcyB0byBlYXNpbHkgZXh0ZW5kIFBEVCB0byBjcmVhdGUgbmV3IGFuZCBpbnRlcmVzdGluZyBQSFAgb3JpZW50ZWQgZGV2ZWxvcGVyIHRvb2xzLjwvbGk+CgkJPC91bD4KCQk8cD6TUERUIGhhcyBldm9sdmVkIHRvIGEgbWF0dXJlIGFuZCBoaWdoLXF1YWxpdHkgRWNsaXBzZSB0b29sc2V0IGZvciBQSFAgZGV2ZWxvcGVycyyUIHNheXMgUGV0ZXIgTWFjSW50eXJlLCBwcmluY2lwYWwgYXQgUGFsYWRpbiBCdXNpbmVzcyBTb2x1dGlvbnMgaW4gQ2hhcmxvdHRldG93biwgUEUgaW4gQ2FuYWRhLiCTSXRzIHN0cmVuZ3RoIGFzIGEgZnJhbWV3b3JrIGZvciBjcmVhdGluZyBQSFAgc3lzdGVtcyBhbmQgYXBwbGljYXRpb25zIGlzIGNlcnRhaW5seSBldmlkZW50LCBhbmQgaXQgaXMgZXhjaXRpbmcgdG8gdGhpbmsgb2YgdGhlIGNvbW1lcmNpYWwgcHJvZHVjdHMgdGhhdCBjYW4gbm93IGJlIGRlbGl2ZXJlZCBsZXZlcmFnaW5nIHRoZSBQRFQgZnJhbWV3b3JrLpQ8L3A+CgkJPHA+k1dlIGxpa2UgZmVhdHVyZXMgbGlrZSBjb2RlIGV4cGFuc2lvbiwgbGlua2VkIHJlZmVyZW5jZXMgdG8gbGlicmFyaWVzLCBtYW51YWxzIGFuZCBjb2RlLJQgc2F5IEplcm9lbiBTZXJwaWV0ZXJzIGFuZCBNaWNoZWxhbmdlbG8gdmFuIERhbSwgY29uc3VsdGFudHMgZm9yIEF1c3kgQmVsZ2l1bSwgYSBzeXN0ZW0gaW50ZWdyYXRvciBpbiBCcnVzc2VscywgQmVsZ2l1bS4gk1BEVCBnaXZlcyB1cyB0aGUgb3Bwb3J0dW5pdHkgdG8gZGVsaXZlciBxdWFsaXR5IHNlcnZpY2VzIGluIGxlc3MgdGltZS4gVGhlIGZhY3QgdGhhdCB0aGlzIGlzIGRlbGl2ZXJlZCBieSBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0IHdpdGggc3Ryb25nIGNvbW11bml0eSBiYWNraW5nIG1ha2VzIGFkb3B0aW9uIG9mIFBEVCBhIG5vLWJyYWluZXIgZm9yIHVzLpQ8L3A+CgkJPHA+UERUIDEuMCBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkIGF0IDxhIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy90b29scy9wZHQvZG93bmxvYWRzLyI+aHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3Rvb2xzL3BkdC9kb3dubG9hZHMvPC9hPi4gIE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFBEVCBwcm9qZWN0IGNhbiBiZSBmb3VuZCBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3BkdC8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvcGR0LzwvYT4uCgkJCgkJPHA+PHN0cm9uZz5BYm91dCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uPC9zdHJvbmc+PGJyIC8+CgkJRWNsaXBzZSBpcyBhbiBvcGVuIHNvdXJjZSBjb21tdW5pdHksIHdob3NlIHByb2plY3RzIGFyZSBmb2N1c2VkIG9uIGJ1aWxkaW5nIGFuIG9wZW4gZGV2ZWxvcG1lbnQgcGxhdGZvcm0gY29tcHJpc2VkIG9mIGV4dGVuc2libGUgZnJhbWV3b3JrcywgdG9vbHMgYW5kIHJ1bnRpbWVzIGZvciBidWlsZGluZywgZGVwbG95aW5nIGFuZCBtYW5hZ2luZyBzb2Z0d2FyZSBhY3Jvc3MgdGhlIGxpZmVjeWNsZS4gQSBsYXJnZSwgdmlicmFudCBlY29zeXN0ZW0gb2YgbWFqb3IgdGVjaG5vbG9neSB2ZW5kb3JzLCBpbm5vdmF0aXZlIHN0YXJ0LXVwcywgdW5pdmVyc2l0aWVzIGFuZCByZXNlYXJjaCBpbnN0aXR1dGlvbnMgYW5kIGluZGl2aWR1YWxzIGV4dGVuZCwgY29tcGxlbWVudCBhbmQgc3VwcG9ydCB0aGUgRWNsaXBzZSBQbGF0Zm9ybS48L3A+CgkJPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBhIG5vdC1mb3ItcHJvZml0LCBtZW1iZXIgc3VwcG9ydGVkIGNvcnBvcmF0aW9uIHRoYXQgaG9zdHMgdGhlIEVjbGlwc2UgcHJvamVjdHMuIEZ1bGwgZGV0YWlscyBvZiBFY2xpcHNlIGFuZCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGFyZSBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZyI+d3d3LmVjbGlwc2Uub3JnPC9hPi48L3A+CgkJPGJyIC8+CgkJPGNlbnRlcj4jICMgIzwvY2VudGVyPiAKCQk8YnIgLz4KCQlBbGwgY29tcGFueS9wcm9kdWN0IG5hbWVzIGFuZCBzZXJ2aWNlIG1hcmtzIG1heSBiZSB0cmFkZW1hcmtzIG9yIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZiB0aGVpciByZXNwZWN0aXZlIGNvbXBhbmllcy4KCQk8YnIgLz48YnIgLz48c3Ryb25nPlByZXNzIENvbnRhY3Q8L3N0cm9uZz48YnI+CQoJCVN0ZXZlIEVpc2Vuc3RhZHQ8YnI+CgkJUGFnZSBPbmUgUHVibGljIFJlbGF0aW9uczxicj4KCQk5MTktNzgxLTgwOTY8YnI+CgkJc3RldmVAcGFnZW9uZXByLmNvbTxicj4KCQk8YnI+CgoJCTwvcD4KCQkJCQkJCQoJPC9kaXY+Cgo8L2Rpdj4KCgpFT0hUTUw7CgoJJGh0bWwgPSBtYl9jb252ZXJ0X2VuY29kaW5nKCRodG1sLCAiSFRNTC1FTlRJVElFUyIpOwoJIyBHZW5lcmF0ZSB0aGUgd2ViIHBhZ2UKCSRBcHAtPmdlbmVyYXRlUGFnZSgkdGhlbWUsICRNZW51LCAkTmF2LCAkcGFnZUF1dGhvciwgJHBhZ2VLZXl3b3JkcywgJHBhZ2VUaXRsZSwgJGh0bWwpOwo/PgoK