PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgiX3Byb2plY3RDb21tb24ucGhwIik7ICAgICMgQWxsIG9uIHRoZSBzYW1lIGxpbmUgdG8gdW5jbHV0dGVyIHRoZSB1c2VyJ3MgZGVza3RvcCcKCgojCiMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuCiRwYWdlVGl0bGUgCQk9ICJFY2xpcHNlIERlbGl2ZXJzIEl0cyBBbm51YWwgUmVsZWFzZSBUcmFpbiI7CiRwYWdlS2V5d29yZHMJPSAiZWNsaXBzZSwgZW1iZWRkZWQsIEVTQywgbW9iaWxlIjsKJHBhZ2VBdXRob3IJCT0gIklhbiBTa2VycmV0dCI7CgojIEFkZCBwYWdlLXNwZWNpZmljIE5hdiBiYXJzIGhlcmUKIyBGb3JtYXQgaXMgTGluayB0ZXh0LCBsaW5rIFVSTCAoY2FuIGJlIGh0dHA6Ly93d3cuc29tZW90aGVyc2l0ZS5jb20vKSwgdGFyZ2V0IChfc2VsZiwgX2JsYW5rKQojICROYXYtPmFkZEN1c3RvbU5hdigiTXkgTGluayIsICJteXBhZ2UucGhwIiwgIl9zZWxmIik7CiMgJE5hdi0+YWRkQ3VzdG9tTmF2KCJHb29nbGUiLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIsICJfYmxhbmsiKTsKCiMgRW5kOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzCiMKCiMgUGFzdGUgeW91ciBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgRU9IVE1MIG1hcmtlcnMhCm9iX3N0YXJ0KCk7Cj8+CgkJPHN0eWxlPgoJCS5wYWRkZWRsaXN0IHttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi10b3A6LTEwcHg7fQoJCS5wYWRkZWRsaXN0IGxpIHtwYWRkaW5nLWJvdHRvbTozcHg7IH0KCQlwIHtwYWRkaW5nLWJvdHRvbToxMHB4O30KCQk8L3N0eWxlPgo8ZGl2IGlkPSJ3aWRlY29udGVudCI+Cgk8ZGl2IGlkPSJtaWRjb2x1bW53aWRlIj4KCQk8aDI+UHJlc3MgUmVsZWFzZTwvaDI+CgoJCTxjZW50ZXI+CgkJPGgxPjw/PSRwYWdlVGl0bGU/PjwvaDE+CgkJPC9jZW50ZXI+CgkJCgkJPHA+PHN0cm9uZz5PdHRhd2EsIENhbmFkYSAtIEp1bmUgMjUsIDIwMDggIC0gPC9zdHJvbmc+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBhbmQgdGhlIGVudGlyZSBFY2xpcHNlIGNvbW11bml0eSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBHYW55bWVkZSBSZWxlYXNlLCB0aGUgYW5udWFsIHJlbGVhc2UgdHJhaW4gZGV2ZWxvcGVkIGJ5IHRoZSBFY2xpcHNlIGNvbW11bml0eS4gVGhlIEdhbnltZWRlIFJlbGVhc2UgaXMgYSBjb29yZGluYXRlZCByZWxlYXNlIG9mIDIzIGRpZmZlcmVudCBFY2xpcHNlIHByb2plY3QgdGVhbXMgdGhhdCByZXByZXNlbnRzIG92ZXIgMTggbWlsbGlvbiBsaW5lcyBvZiBjb2RlLjwvcD4KCQk8cD5HYW55bWVkZSBkZWxpdmVycyBpbXByb3ZlbWVudHMgYW5kIGtleSBmZWF0dXJlcyBpbiB0aGUgZm9sbG93aW5nIGFyZWFzOjwvcD4KCQk8cD48c3Ryb25nPkVxdWlub3ggYW5kIFJ1bnRpbWUgUHJvamVjdHM8L3N0cm9uZz48YnIvPgoJCQk8dWwgY2xhc3M9InBhZGRlZGxpc3QiPgoJCQkJPGxpPkEgbmV3IHByb3Zpc2lvbmluZyBzeXN0ZW0sIGNhbGxlZCA8YSBocmVmPSJodHRwOi8vd2lraS5lY2xpcHNlLm9yZy9FcXVpbm94X3AyIj5wMjwvYT4sIG1ha2VzIGl0IGVhc2llciBmb3IgRWNsaXBzZSB1c2VycyB0byBpbnN0YWxsIGFuZCB1cGRhdGUgRWNsaXBzZS48L2xpPgoJCQkJPGxpPjxhIGhyZWY9Ii9lcXVpbm94LyI+RXF1aW5veDwvYT4gaGFzIGFkZGVkIHR3byBuZXcgc2VjdXJpdHkgZmVhdHVyZXMsIGluY2x1ZGluZyAxKSBhIHByZWZlcmVuY2VzLWxpa2Ugc3RvcmFnZSBmb3Igc2Vuc2l0aXZlIGRhdGEgc3VjaCBhcyBwYXNzd29yZHMgYW5kIGxvZ2luIGNyZWRlbnRpYWxzLiBUaGUgaW5mb3JtYXRpb24gaXMgZW5jcnlwdGVkIHVzaW5nIEphdmEgZW5jcnlwdGlvbiBtZWNoYW5pc21zOyBhbmQgMikgdGhlIGFiaWxpdHkgdG8gZWFzaWx5IHVzZSB0aGUgSmF2YSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlIChKQUFTKSBpbiBFcXVpbm94LjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iL3JhcC8iPlJBUDwvYT4gMS4xIG1ha2VzIGl0IGVhc2llciB0byBidWlsZCBncmVhdC1sb29raW5nLCBzY2FsYWJsZSBhbmQgbW9kdWxhciB3ZWIgYXBwbGljYXRpb25zIHJ1bm5pbmcgb24gRXF1aW5veC4gTmV3IGZlYXR1cmVzIGluY2x1ZGUgMSkgdGhlIGFiaWxpdHkgdG8gY3VzdG9taXplIHRoZSBsb29rICYgZmVlbCB3aXRoIFByZXNlbnRhdGlvbiBGYWN0b3JpZXMgYW5kIENTUzsgYW5kIDIpIHRoZSBhYmlsaXR5IHRvIHN0b3JlIGFwcGxpY2F0aW9uIHN0YXRlIGluZm9ybWF0aW9uIG9uIGEgcGVyIHVzZXIgYmFzaXMuIDwvbGk+CgkJCQk8bGk+VGhlIDxhIGhyZWY9Ii9lY2YvIj5FY2xpcHNlIENvbW11bmljYXRpb24gRnJhbWV3b3JrIChFQ0YpPC9hPiBoYXMgYWRkZWQgcmVhbC10aW1lIHNoYXJlZCBlZGl0aW5nIGFuZCBvdGhlciBjb21tdW5pY2F0aW9ucyBmZWF0dXJlcyB0byBhbGxvdyBkZXZlbG9wZXJzIHRvIGNvbW11bmljYXRlIGFuZCBjb2xsYWJvcmF0ZSBmcm9tIHdpdGhpbiBFY2xpcHNlLiA8L2xpPgoJCQk8L3VsPgoJCTwvcD4gIAoJCTxwPjxzdHJvbmc+TW9kZWxpbmcgRmVhdHVyZXM8L3N0cm9uZz48YnIvPgoJCQk8dWwgY2xhc3M9InBhZGRlZGxpc3QiPgoJCQkJPGxpPk5ldyA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGVsaW5nL2VtZnQvP3Byb2plY3Q9ZWNvcmV0b29scyI+RWNvcmU8L2E+IHRvb2xzIHByb3ZpZGUgZGV2ZWxvcGVycyB3aXRoIGEgZ3JhcGhpY2FsIGVudmlyb25tZW50IGZvciBjcmVhdGluZywgZWRpdGluZyBhbmQgbWFpbnRhaW5pbmcgPGEgaHJlZj0iL21vZGVsaW5nL2VtZi8iPkVNRjwvYT4gRWNvcmUgbW9kZWxzLiA8L2xpPgoJCQkJPGxpPkVuaGFuY2VkIFJlc291cmNlIEFQSXMgaW4gRU1GIGhhdmUgYmVlbiBhZGRlZCB0byBmdWxseSBzdXBwb3J0IFJFU1QsIGluY2x1ZGluZyBzdXBwb3J0IGZvciB0aGUgZnVsbCBDUlVEIGxpZmUgY3ljbGUuIDwvbGk+CgkJCTwvdWw+CgkJPC9wPgoJCTxwPjxzdHJvbmc+RGV2ZWxvcGVyIFRvb2xzPC9zdHJvbmc+PGJyLz4KCQkJPHVsIGNsYXNzPSJwYWRkZWRsaXN0Ij4KCQkJCTxsaT5BIG5ldyBKYXZhU2NyaXB0IElERSwgY2FsbGVkIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL2luZGV4LnBocC9BVEYvSlNEVCI+SlNEVDwvYT4sIHByb3ZpZGVzIHRoZSBzYW1lIGxldmVsIG9mIHN1cHBvcnQgZm9yIEphdmFTY3JpcHQgYXMgdGhlIEpEVCBwcm92aWRlcyBmb3IgSmF2YS4gU29tZSBvZiB0aGUgbmV3IGZlYXR1cmVzIGluY2x1ZGUgY29kZSBjb21wbGV0aW9uLCBxdWljayBmaXgsIGZvcm1hdHRpbmcgYW5kIHZhbGlkYXRpb24uIDwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iL2JpcnQvcGhvZW5peC8iPkJJUlQ8L2E+IG5vdyBwcm92aWRlcyBhbiBpbXByb3ZlZCBKYXZhU2NyaXB0IGVkaXRvciBhbmQgYSBuZXcgSmF2YVNjcmlwdCBkZWJ1Z2dlciBmb3IgZGVidWdnaW5nIHJlcG9ydCBldmVudCBoYW5kbGVycy4gSW4gYWRkaXRpb24sIGNyb3NzIHRhYmxlcyBoYXZlIGJlZW4gaW1wcm92ZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBtZWFzdXJlcywgZGlzcGxheSBtZWFzdXJlIHZhbHVlcyBhbmQgdG90YWxzIGFzIHRleHQgb3IgYXMgY2hhcnRzLCBwcm92aWRlIGFkZGVkIHN1cHBvcnQgZm9yIGNyb3NzIHRhYmxlIHNjcmlwdGluZyBhbmQgb2ZmZXIgYmV0dGVyIGZpbHRlcmluZyBvcHRpb25zLiA8L2xpPgoJCQkJPGxpPjxhIGhyZWY9Ii9kYXRhdG9vbHMvIj5EVFA8L2E+IGhhcyBhZGRlZCBhIG5ldyBncmFwaGljYWwgU1FMIHF1ZXJ5IGVkaXRvciwgY2FsbGVkIHRoZSBTUUwgUXVlcnkgQnVpbGRlciwgYW5kIGltcHJvdmVkIHVzYWJpbGl0eSBvZiBjb25uZWN0aW9uIHByb2ZpbGUgY3JlYXRpb24gYW5kIG1hbmFnZW1lbnQgZm9yIHVzZXJzIGFuZCBhZG9wdGVycy9leHRlbmRlcnMuIDwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iL3dlYnRvb2xzLyI+V1RQPC9hPiBoYXMgaW1wcm92ZWQgVUkgc3VwcG9ydCBmb3IgSmF2YSBFRSA1OiBuZXcgd2l6YXJkcyBmb3IgU2VydmxldCBGaWx0ZXJzLCBBcHBsaWNhdGlvbiBMaWZlY3ljbGUgTGlzdGVuZXJzLCBTZXNzaW9uIEJlYW5zIGFuZCBNZXNzYWdlLURyaXZlbiBCZWFuczsgbWV0YS1kYXRhIGRlc2NyaXB0b3IgdHJlZXMgaW4gdGhlIFByb2plY3QgRXhwbG9yZXI7IGFuZCBCdW5kbGVkIExpYnJhcmllcyBzdXBwb3J0IGZvciBFQVIgcHJvamVjdHMuIDwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iL3dlYnRvb2xzL2RhbGkvbWFpbi5waHAiPkRhbGkgSmF2YSBQZXJzaXN0ZW5jZSBUb29sczwvYT4gaGFzIGFuIGV4cGFuZGVkIFVJIGluY2x1ZGluZyBhIG5ldyBQZXJzaXN0ZW5jZS54bWwgZWRpdG9yLCBuZXcgRW50aXR5IGFuZCBYTUwgTWFwcGluZyBGaWxlIHdpemFyZHMgYW5kIEpQQSBzcGVjaWZpYyBjb250cmlidXRpb25zIHRvIHRoZSBQcm9qZWN0IEV4cGxvcmVyLiBEYWxpIGhhcyBhbHNvIGltcHJvdmVkIGNvbmZpZ3VyYXRpb24gYW5kIHZhbGlkYXRpb24gd2l0aCBzdXBwb3J0IGZvciBtYXBwaW5nIHdpdGggYW5ub3RhdGlvbnMsIFhNTCwgb3Igd2l0aCBhIGNvbWJpbmF0aW9uIG9mIGFubm90YXRpb25zIGFuZCBYTUwuPC9saT4KCQkJCTxsaT5UaGUgPGEgaHJlZj0iL3dlYnRvb2xzL2pzZi9tYWluLnBocCI+V1RQIEpTRiBUb29scyBQcm9qZWN0PC9hPiBoYXMgYWRkZWQgZmVhdHVyZXMgdG8gaW1wcm92ZSB3ZWIgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgcHJvZHVjdGl2aXR5LiBUaGUgcmVsZWFzZSBwcm92aWRlcyB2aXN1YWwgZWRpdGluZyBzdXBwb3J0IGZvciBBcGFjaGUgTXlGYWNlcyBUcmluaWRhZCBjb21wb25lbnRzIGFuZCBlbmFibGVzIHN1cHBvcnQgZm9yIGZ1dHVyZSBKU0YgMi4wIChKU1ItMzE0KSBlbmhhbmNlbWVudHMgc3VjaCBhcyBGYWNlbGV0cy4gPC9saT4KCQkJPC91bD4KCQk8L3A+CgkJPHA+PHN0cm9uZz5TdXBwb3J0IGZvciBTT0E8L3N0cm9uZz48YnIvPgoJCQk8dWwgY2xhc3M9InBhZGRlZGxpc3QiPgkKCQkJCTxsaT5UaGUgbmV3IFNDQSBEZXNpZ25lciBwcm92aWRlcyBhIGdyYXBoaWNhbCBpbnRlcmZhY2UgZm9yIGRldmVsb3BlcnMgd2hvIHdpc2ggdG8gY3JlYXRlIGNvbXBvc2l0ZSBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIFNDQSAxLjAgc3RhbmRhcmQuIDwvbGk+CgkJCQk8bGk+VGhlIFBvbGljeSBFZGl0b3IgaXMgYSBjb2xsZWN0aW9uIG9mIGVkaXRvcnMgYW5kIHZhbGlkYXRvcnMgdGhhdCBtYWtlcyBpdCBlYXN5IGZvciBkZXZlbG9wZXJzIHRvIGNvbnN0cnVjdCBhbmQgbWFuaXB1bGF0ZSBYTUwgZXhwcmVzc2lvbnMgdGhhdCBjb25mb3JtIHRvIHRoZSBXUy1Qb2xpY3kgVzNDIHN0YW5kYXJkLiA8L2xpPgoJCQkJPGxpPlRoZSBCUE1OIEVkaXRvciBjb250aW51ZXMgdG8gZ28gZnJvbSBzdHJlbmd0aCB0byBzdHJlbmd0aCBhbmQgaXMgbm93IGEgbWF0dXJlIGFuZCByZWxpYWJsZSBmcmFtZXdvcmsgdGhhdCBhbGxvd3MgY29uc3VtZXJzIHRvIGNvbnN0cnVjdCBhbmQgZXh0ZW5kIHRoZSBCUE1OIDEuMSBzdGFuZGFyZCBub3RhdGlvbiB0byBpbGx1c3RyYXRlIGJ1c2luZXNzIHByb2Nlc3Nlcy4gPC9saT4KCQkJPC91bD4KCQk8L3A+CSAKCQk8cD48c3Ryb25nPkF2YWlsYWJpbGl0eTwvc3Ryb25nPjxici8+CgkJVGhlIHByb2plY3RzIGluIHRoZSBHYW55bWVkZSBSZWxlYXNlIGFyZSBub3cgYXZhaWxhYmxlIGZvciBkb3dubG9hZC4gU2V2ZW4gRWNsaXBzZSBQYWNrYWdlcyBoYXZlIGJlZW4gY3JlYXRlZCB0byBtYWtlIGl0IGVhc2llciBmb3IgZGV2ZWxvcGVycyB0byBkb3dubG9hZCBtdWx0aXBsZSBwcm9qZWN0cy4gUGxlYXNlIHZpc2l0IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2dhbnltZWRlLyI+d3d3LmVjbGlwc2Uub3JnL2dhbnltZWRlPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCQk8L3A+CgkJPHA+PHN0cm9uZz5TdXBwb3J0aW5nIFF1b3Rlczwvc3Ryb25nPjxici8+CgkJk09uY2UgYWdhaW4gdGhlIEVjbGlwc2UgY29tbXVuaXR5IGhhcyBkZWxpdmVyZWQgb3VyIGFubnVhbCByZWxlYXNlIHRyYWluIGFuZCBjb250aW51ZXMgdG8gZGVsaXZlciBpbm5vdmF0aXZlIHNvZnR3YXJlIGluIGEgcHJlZGljdGFibGUgbWFubmVyLJQgc2FpZCBNaWtlIE1pbGlua292aWNoLCBFeGVjdXRpdmUgRGlyZWN0b3Igb2YgdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gk05ldyBmZWF0dXJlcyBsaWtlIHRoZSBFcXVpbm94IHAyIHByb3Zpc2lvbmluZyBzeXN0ZW0sIG5ldyBtb2RlbGluZyB0b29scyBhbmQgdG9vbHMgdGhhdCBzdXBwb3J0IFNPQSBkZXZlbG9wZXJzIHdpbGwgYmUgcG9wdWxhciBmZWF0dXJlcyBmb3IgRWNsaXBzZSB1c2Vycy6UIDxici8+CgkJCgkJCgkJPHA+PHN0cm9uZz5BYm91dCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uPC9zdHJvbmc+PGJyIC8+CgkJSW5mb3JtYXRpb24gYWJvdXQgRWNsaXBzZSBjYW4gYmUgZm91bmQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPnd3dy5lY2xpcHNlLm9yZzwvYT48L3A+CgkJPGJyIC8+CgkJPGNlbnRlcj4jICMgIzwvY2VudGVyPiAKCQk8YnIgLz5BbGwgY29tcGFueS9wcm9kdWN0IG5hbWVzIGFuZCBzZXJ2aWNlIG1hcmtzIG1heSBiZSB0cmFkZW1hcmtzIG9yIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZiB0aGVpciByZXNwZWN0aXZlIGNvbXBhbmllcy4KCQkKCQk8cD48Yj5QcmVzcyBDb250YWN0PC9iPjxicj4KCQlDaGFudGFsIFlhbmc8YnI+CgkJUGFnZSBPbmUgUHVibGljIFJlbGF0aW9uczxicj4KCQk2NTAtNTY1LTk4MDAgeDc1Mjxicj4KCQk8YSBocmVmPSJtYWlsdG86Y2hhbnRhbEBwYWdlb25lcHIuY29tIj5jaGFudGFsQHBhZ2VvbmVwci5jb208L2E+PGJyPgoJCTxicj4KCTwvZGl2PgoJPGRpdiBpZD0icmlnaHRjb2x1bW53aWRlIj4KCQk8ZGl2IGNsYXNzPSJzaWRlaXRlbSI+CgkJCTxoNj5SZWxhdGVkIExpbmtzPC9oNj4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9Ii9nYW55bWVkZS8iPkdhbnltZWRlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iL2dhbnltZWRlL21hcC5waHAiPkdhbnltZWRlIEFyb3VuZCB0aGUgV29ybGQ8L2E+PC9saT4KCQkJPC91bD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzaWRlaXRlbSI+CgkJCTxoNj5PdGhlciBMYW5ndWFnZXM8L2g2PgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iMjAwODA2MjVfZ2FueW1lZGVfZnJlLnBocCI+RnJlbmNoPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iMjAwODA2MjVfZ2FueW1lZGVfZ2VyLnBocCI+R2VybWFuPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iMjAwODA2MjVfZ2FueW1lZGVfc3BhLnBocCI+U3BhbmlzaDwvYT48L2xpPgoJCQk8L3VsPgoJCTwvZGl2PgoJCTxjZW50ZXI+CgkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZ2FueW1lZGUvIj48aW1nIHNyYz0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9nYW55bWVkZS9pbWFnZXMvZ2FueW1lZGVGcmllbmQuanBnIiBib3JkZXI9MCBhbHQ9IkdhbnltZWRlIGlzIGNvbWluZyEiIHRpdGxlPSJHYW55bWVkZSBpcyBjb21pbmchIiA+PC9hPgoJCTwvY2VudGVyPgkKCTwvZGl2Pgo8L2Rpdj4KCgo8PyAKCSRodG1sID0gb2JfZ2V0X2NsZWFuKCk7CgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cj8+Cgo=