PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgoJIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkjCgkjIHRlbXBsYXRlLnBocAoJIwoJIyBBdXRob3I6IAkJRnJlZGR5IEFsbGlsYWlyZQoJIyBEYXRlOgkJCTIwMDUtMTItMDUKCSMKCSMgRGVzY3JpcHRpb246IFR5cGUgeW91ciBwYWdlIGNvbW1lbnRzIGhlcmUgLSB0aGVzZSBhcmUgbm90IHNlbnQgdG8gdGhlIGJyb3dzZXIKCSMKCSMKCSMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkKCSMKCSMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuIAoJJHBhZ2VUaXRsZSAJCT0gIkFUTCBCYXNpYyBFeGFtcGxlcyBhbmQgUGF0dGVybnMiOwoJJHBhZ2VLZXl3b3Jkcwk9ICIiOwoJJHBhZ2VBdXRob3IJCT0gIkZyZWRkeSBBbGxpbGFpcmUiOwoJCgkjIFBhc3RlIHlvdXIgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIEVPSFRNTCBtYXJrZXJzIQkKCSRodG1sID0gPDw8RU9IVE1MCgoJPGRpdiBpZD0ibWlkY29sdW1uIj4KICAgIAk8cCBhbGlnbj0ianVzdGlmeSI+CiAgICAJCVRoaXMgc2VjdGlvbiBwcm92aWRlcyBhIHNldCBvZiBiYXNpYyBleGFtcGxlcyBhbmQgcGF0dGVybnMuCiAgICAJPC9wPgogICAgCQoJCTxociBjbGFzcz0iY2xlYXJlciIgLz4KCgkgICAgPGRpdiBjbGFzcz0iaG9tZWl0ZW0zY29sIiA+CgkgICAgCTx1bD4JCgkJCQk8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6bm9uZSI+CgkJCQkJPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCI+CgkJCQkJCTx0cj4KCQkJCQkJCTx0ZCB3aWR0aD0iODAlIj4KCQkJCQkJCQk8aDI+PGEgaHJlZj0iLi4vb2xkL0FUTFVzZUNhc2VfRmFtaWxpZXMyUGVyc29ucy5wZGYiPkZhbWlsaWVzIHRvIFBlcnNvbnM8L2E+PC9oMj4KCQkJCQkJCTwvdGQ+CgkJCQkJCQk8dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij4KCQkJCQkJCQk8Yj5GZWJydWFyeSAyMDA3PC9iPgoJCQkJCQkJPC90ZD4KCQkJCQkJPC90cj4KCQkJCQkJPHRyPgoJCQkJCQkJPHRkIGNvbHNwYW49IjIiPgoJCQkJCQkJCTx0YWJsZSBTVFlMRT0iYm9yZGVyIDogMXB4IGRvdHRlZCAjMDAwMDAwOyIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMjAiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjRjhGOEY4Ij4KCQkJCQkJCQkJPHRyPgoJCQkJCQkJCQkJPHRkIHZhbGlnbj0idG9wIj4KCQkJCQkJCQkJCQlUaGlzIHByZXNlbnRhdGlvbiBkZXNjcmliZXMgYSB2ZXJ5IHNpbXBsZSBtb2RlbCB0cmFuc2Zvcm1hdGlvbiBleGFtcGxlLCBzb21lIGtpbmQgb2YgQVRMICJoZWxsbyB3b3JsZCIuCgkJCQkJCQkJCQkJPHA+CgkJCQkJCQkJCQkJCTxpPkFUTCBjb25jZXB0cyBlbmNvdW50ZXJlZDo8L2k+CgkJCQkJCQkJCQkJCUhlYWRlciBzZWN0aW9uLAoJCQkJCQkJCQkJCQlIZWxwZXIgZnVuY3Rpb25zLAoJCQkJCQkJCQkJCQlNYXRjaGVkIHJ1bGVzIAoJCQkJCQkJCQkJCTwvcD4KCQkJCQkJCQkJCQk8cD4KCQkJCQkJCQkJCQkJPGk+QWRkaXRpb25hbCBjb25jZXB0cyBlbmNvdW50ZXJlZDo8L2k+CgkJCQkJCQkJCQkJCU1ldGFtb2RlbCBhbmQgY29uZm9ybWFuY2UgcmVsYXRpb24sCgkJCQkJCQkJCQkJCUFUTCBJREUgKEFEVCkKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQkJPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjNlbTt0ZXh0LWluZGVudDotMmVtOyI+CgkJCQkJCQkJCQkJCTxhIGhyZWY9Ii4uL29sZC9BVExVc2VDYXNlX0ZhbWlsaWVzMlBlcnNvbnMucGRmIj4KCQkJCQkJCQkJCQkJCTxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOnRleHQtdG9wOyIgc3JjPSIvcmVzb3VyY2VzL2ltYWdlcy9wcmVzZW50YXRpb24ucG5nIi8+IFByZXNlbnRhdGlvbiBGYW1pbGllcyB0byBQZXJzb25zCgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQkJPGJyLz4KCQkJCQkJCQkJCQkJRmVicnVhcnkgMjAwNwoJCQkJCQkJCQkJCQk8YnIvPgoJCQkJCQkJCQkJCQlieSBGcmVkZHkgQWxsaWxhaXJlLCBGculk6XJpYyBKb3VhdWx0IChJTlJJQSkKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQkJPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjNlbTt0ZXh0LWluZGVudDotMmVtOyI+CgkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYXRsL2F0bFRyYW5zZm9ybWF0aW9ucy9GYW1pbGllczJQZXJzb25zL0ZhbWlsaWVzMlBlcnNvbnMuemlwIj4KCQkJCQkJCQkJCQkJCTxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOnRleHQtdG9wOyIgc3JjPSIvcmVzb3VyY2VzL2ltYWdlcy9jb2RlLnBuZyIvPiBTb3VyY2UgY29kZSBGYW1pbGllcyB0byBQZXJzb25zCgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQkJPGJyLz4KCQkJCQkJCQkJCQkJRmVicnVhcnkgMjAwNwoJCQkJCQkJCQkJCQk8YnIvPgoJCQkJCQkJCQkJCQlieSBGcmVkZHkgQWxsaWxhaXJlLCBGculk6XJpYyBKb3VhdWx0IChJTlJJQSkKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQk8L3RkPgoJCQkJCQkJCQk8L3RyPgoJCQkJCQkJCTwvdGFibGU+CgkJCQkJCQk8L3RkPgoJCQkJCQk8L3RyPgoJCQkJCTwvdGFibGU+CQkJCQoJCQkJPC9saT4KCQkJCTxsaSBzdHlsZT0ibGlzdC1zdHlsZTpub25lIj4KCQkJCQk8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIj4KCQkJCQkJPHRyPgoJCQkJCQkJPHRkIHdpZHRoPSI4MCUiPgoJCQkJCQkJCTxoMj48YSBocmVmPSJhcnRpY2xlLnBocD9maWxlPVRyZWUyTGlzdC9pbmRleC5odG1sIj5UcmVlIHRvIExpc3Q8L2E+PC9oMj4KCQkJCQkJCTwvdGQ+CgkJCQkJCQk8dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij4KCQkJCQkJCQk8Yj5KdWx5IDIwMDc8L2I+CgkJCQkJCQk8L3RkPgoJCQkJCQk8L3RyPgoJCQkJCQk8dHI+CgkJCQkJCQk8dGQgY29sc3Bhbj0iMiI+CgkJCQkJCQkJPHRhYmxlIFNUWUxFPSJib3JkZXIgOiAxcHggZG90dGVkICMwMDAwMDA7IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyMCIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNGOEY4RjgiPgoJCQkJCQkJCQk8dHI+CgkJCQkJCQkJCQk8dGQgdmFsaWduPSJ0b3AiPgogICAgICAJCSAgCQkJCQkJCQlUaGlzIHRyYW5zZm9ybWF0aW9uIHByZXNlbnRzIGEgYmFzaWMgZXhhbXBsZSB3aGVyZSBhIHRyZWUgaXMgdHJhbnNmb3JtZWQgaW50byBhIGxpc3QuIFRoaXMga2luZCBvZiB0cmFuc2Zvcm1hdGlvbiBpcyB1c3VhbGx5IG1hZGUgYnkgYW4gCiAgICAgIAkJICAJCQkJCQkJCWltcGVyYXRpdmUgRGVwdGggRmlyc3QgVHJhdmVyc2FsIGFsZ29yaXRobS4KCQkJCQkJCQkJCQk8cD4KCQkJCQkJCQkJCQkJPGk+QVRMIGNvbmNlcHRzIGVuY291bnRlcmVkOjwvaT4KCQkJCQkJCQkJCQkJTWF0Y2hlZCBydWxlcyAob25lIHdpdGggYSBndWFyZCksIAogICAgICAJCSAgCQkJCQkJCQkJSGVscGVyIGZ1bmN0aW9ucyAob25lIGJlaW5nIHJlY3Vyc2l2ZSksCiAgIAkJCQkJCQkJCQkJCUNvbGxlY3Rpb24gcmVsYXRlZCBmdW5jdGlvbnMsCiAgIAkJCQkJCQkJCQkJCUVudW1lcmF0aW9uLCBhbmQKICAgCQkJCQkJCQkJCQkJQVRMIHJlc29sdmUgYWxnb3JpdGhtLiAKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQkJPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjNlbTt0ZXh0LWluZGVudDotMmVtOyI+CgkJCQkJCQkJCQkJCTxhIGhyZWY9ImFydGljbGUucGhwP2ZpbGU9VHJlZTJMaXN0L2luZGV4Lmh0bWwiPgoJCQkJCQkJCQkJCQkJPGltZyBzdHlsZT0idmVydGljYWwtYWxpZ246dGV4dC10b3A7IiBzcmM9Ii9yZXNvdXJjZXMvaW1hZ2VzL2h0bWwucG5nIi8+IEFydGljbGUgVHJlZSB0byBMaXN0CgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQkJPGJyLz4KCQkJCQkJCQkJCQkJSnVseSAyMDA3CgkJCQkJCQkJCQkJCTxici8+CgkJCQkJCQkJCQkJCWJ5IEN5cmlsIEZhdXJlICg8YSBocmVmPSJodHRwOi8vd3d3LmMtcy5mci8iPkMtUzwvYT4pLCBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQkJPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjNlbTt0ZXh0LWluZGVudDotMmVtOyI+CgkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYXRsL2F0bFRyYW5zZm9ybWF0aW9ucy9UcmVlMkxpc3QvVHJlZTJMaXN0LnppcCI+CgkJCQkJCQkJCQkJCQk8aW1nIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcDsiIHNyYz0iL3Jlc291cmNlcy9pbWFnZXMvY29kZS5wbmciLz4gU291cmNlIGNvZGUgVHJlZSB0byBMaXN0CgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQkJPGJyLz4KCQkJCQkJCQkJCQkJSnVseSAyMDA3CgkJCQkJCQkJCQkJCTxici8+CgkJCQkJCQkJCQkJCWJ5IEN5cmlsIEZhdXJlICg8YSBocmVmPSJodHRwOi8vd3d3LmMtcy5mci8iPkMtUzwvYT4pLCBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQk8L3RkPgoJCQkJCQkJCQk8L3RyPgoJCQkJCQkJCTwvdGFibGU+CgkJCQkJCQk8L3RkPgoJCQkJCQk8L3RyPgoJCQkJCTwvdGFibGU+CgkJCQk8L2xpPgoJCQkJPGxpIHN0eWxlPSJsaXN0LXN0eWxlOm5vbmUiPgoJCQkJCTx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiPgoJCQkJCQk8dHI+CgkJCQkJCQk8dGQgd2lkdGg9IjgwJSI+CgkJCQkJCQkJPGgyPjxhIGhyZWY9ImFydGljbGUucGhwP2ZpbGU9TGlzdE1ldGFtb2RlbFJlZmFjdG9yaW5nL2luZGV4Lmh0bWwiPkxpc3QgTWV0YW1vZGVsIFJlZmFjdG9yaW5nPC9hPjwvaDI+CgkJCQkJCQk8L3RkPgoJCQkJCQkJPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+CgkJCQkJCQkJPGI+RGVjZW1iZXIgMjAwNzwvYj4KCQkJCQkJCTwvdGQ+CgkJCQkJCTwvdHI+CgkJCQkJCTx0cj4KCQkJCQkJCTx0ZCBjb2xzcGFuPSIyIj4KCQkJCQkJCQk8dGFibGUgU1RZTEU9ImJvcmRlciA6IDFweCBkb3R0ZWQgIzAwMDAwMDsiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIwIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0Y4RjhGOCI+CgkJCQkJCQkJCTx0cj4KCQkJCQkJCQkJCTx0ZCB2YWxpZ249InRvcCI+CgkJCQkJCQkJCQkJSW4gdGhpcyBleGFtcGxlLCB3ZSBwcmVzZW50IHNvbWUgYmFzaWMgY29uY2VwdHMgb2YgQVRMIHRocm91Z2ggYSBzaW1wbGUgdXNlIGNhc2UuIE91ciB3b3JraW5nIGNvbnRleHQgaXMgdGhlIGNyZWF0aW9uIG9mIGEgYnJpZGdlIGJldHdlZW4gCgkJCQkJCQkJCQkJdHdvIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiBhIExpc3QgbWV0YW1vZGVsIChBIGFuZCBCKS4gVGhpcyBicmlkZ2UgY29uc2lzdHMgb24gYW4gQVRMIHRyYW5zZm9ybWF0aW9uIGZyb20gdGhlIHZlcnNpb24gQSB0byB0aGUgdmVyc2lvbiBCLiAKCQkJCQkJCQkJCQk8cD4KCQkJCQkJCQkJCQkJPGk+QVRMIGNvbmNlcHRzIGVuY291bnRlcmVkOjwvaT4KCQkJCQkJCQkJCQkJQXV0b21hdGljIHRyYWNlYWJpbGl0eSBzdXBwb3J0IGluIEFUTCwgSGFuZGxpbmcgY29sbGVjdGlvbiwgYW5kCVN0cmluZyBvcGVyYXRpb24uCgkJCQkJCQkJCQkJPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjNlbTt0ZXh0LWluZGVudDotMmVtOyI+CgkJCQkJCQkJCQkJCTxhIGhyZWY9ImFydGljbGUucGhwP2ZpbGU9TGlzdE1ldGFtb2RlbFJlZmFjdG9yaW5nL2luZGV4Lmh0bWwiPgoJCQkJCQkJCQkJCQkJPGltZyBzdHlsZT0idmVydGljYWwtYWxpZ246dGV4dC10b3A7IiBzcmM9Ii9yZXNvdXJjZXMvaW1hZ2VzL2h0bWwucG5nIi8+IEFydGljbGUgTGlzdCBNZXRhbW9kZWwgUmVmYWN0b3JpbmcKCQkJCQkJCQkJCQkJPC9hPgoJCQkJCQkJCQkJCQk8YnIvPgoJCQkJCQkJCQkJCQlEZWNlbWJlciAyMDA3CgkJCQkJCQkJCQkJCTxici8+CgkJCQkJCQkJCQkJCWJ5IEN5cmlsIEZhdXJlICg8YSBocmVmPSJodHRwOi8vd3d3LmMtcy5mci8iPkMtUzwvYT4pLCBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQkJPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjNlbTt0ZXh0LWluZGVudDotMmVtOyI+CgkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYXRsL2F0bFRyYW5zZm9ybWF0aW9ucy9MaXN0TWV0YW1vZGVsUmVmYWN0b3JpbmcvTGlzdE1ldGFtb2RlbFJlZmFjdG9yaW5nLnppcCI+CgkJCQkJCQkJCQkJCQk8aW1nIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcDsiIHNyYz0iL3Jlc291cmNlcy9pbWFnZXMvY29kZS5wbmciLz4gU291cmNlIGNvZGUgTGlzdCBNZXRhbW9kZWwgUmVmYWN0b3JpbmcKCQkJCQkJCQkJCQkJPC9hPgoJCQkJCQkJCQkJCQk8YnIvPgoJCQkJCQkJCQkJCQlEZWNlbWJlciAyMDA3CgkJCQkJCQkJCQkJCTxici8+CgkJCQkJCQkJCQkJCWJ5IEN5cmlsIEZhdXJlICg8YSBocmVmPSJodHRwOi8vd3d3LmMtcy5mci8iPkMtUzwvYT4pLCBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQk8L3RkPgoJCQkJCQkJCQk8L3RyPgoJCQkJCQkJCTwvdGFibGU+CgkJCQkJCQk8L3RkPgoJCQkJCQk8L3RyPgoJCQkJCTwvdGFibGU+CgkJCQk8L2xpPgoJCQkJPGxpIHN0eWxlPSJsaXN0LXN0eWxlOm5vbmUiPgoJCQkJCTx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiPgoJCQkJCQk8dHI+CgkJCQkJCQk8dGQgd2lkdGg9IjgwJSI+CgkJCQkJCQkJPGgyPjxhIGhyZWY9ImFydGljbGUucGhwP2ZpbGU9UG9ydC9pbmRleC5odG1sIj5Qb3J0PC9hPjwvaDI+CgkJCQkJCQk8L3RkPgoJCQkJCQkJPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+CgkJCQkJCQkJPGI+SmFudWFyeSAyMDA4PC9iPgoJCQkJCQkJPC90ZD4KCQkJCQkJPC90cj4KCQkJCQkJPHRyPgoJCQkJCQkJPHRkIGNvbHNwYW49IjIiPgoJCQkJCQkJCTx0YWJsZSBTVFlMRT0iYm9yZGVyIDogMXB4IGRvdHRlZCAjMDAwMDAwOyIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMjAiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjRjhGOEY4Ij4KCQkJCQkJCQkJPHRyPgoJCQkJCQkJCQkJPHRkIHZhbGlnbj0idG9wIj4KCQkJCQkJCQkJCQlJbiB0aGlzIGV4YW1wbGUsIHdlIHByZXNlbnQgc29tZSBiYXNpYyBjb25jZXB0cyBvZiBBVEwgdGhyb3VnaCBhIHNpbXBsZSB1c2UgY2FzZS4KCQkJCQkJCQkJCQlUaGlzIHVzZSBjYXNlIGRlYWxzIHdpdGggc2l0dWF0aW9ucyB3aGVyZSB0aGUgc291cmNlIGVsZW1lbnQgbWV0YSB0eXBlIGNvdWxkIG5vdCBiZSBzaW1wbHkgbWF0Y2hlZCB3aXRoIHRoZSB0YXJnZXQgbWV0YSB0eXBlLgoJCQkJCQkJCQkJCVRoZSBvbmx5IHdheSB0byByZXNvbHZlIHRoZSB0YXJnZXQgbWV0YSB0eXBlIGlzIHRvIGJyb3dzZSBzb3VyY2UgbW9kZWwuCgkJCQkJCQkJCQkJPHA+CgkJCQkJCQkJCQkJCTxpPkFUTCBjb25jZXB0cyBlbmNvdW50ZXJlZDo8L2k+CgkJCQkJCQkJCQkJCU1hdGNoZWQgcnVsZXMgYW5kIGxhenkgKG1hdGNoZWQpIHJ1bGVzLCBBdm9pZGluZyBzb21lIGltcGVyYXRpdmUgY29uc3RydWN0cywgYW5kIENvZGUgb3B0aW1pemF0aW9uLgoJCQkJCQkJCQkJCTwvcD4KCQkJCQkJCQkJCQk8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6M2VtO3RleHQtaW5kZW50Oi0yZW07Ij4KCQkJCQkJCQkJCQkJPGEgaHJlZj0iYXJ0aWNsZS5waHA/ZmlsZT1Qb3J0L2luZGV4Lmh0bWwiPgoJCQkJCQkJCQkJCQkJPGltZyBzdHlsZT0idmVydGljYWwtYWxpZ246dGV4dC10b3A7IiBzcmM9Ii9yZXNvdXJjZXMvaW1hZ2VzL2h0bWwucG5nIi8+IEFydGljbGUgUG9ydAoJCQkJCQkJCQkJCQk8L2E+CgkJCQkJCQkJCQkJCTxici8+CgkJCQkJCQkJCQkJCUphbnVhcnkgMjAwOAoJCQkJCQkJCQkJCQk8YnIvPgoJCQkJCQkJCQkJCQlieSBDeXJpbCBGYXVyZSAoPGEgaHJlZj0iaHR0cDovL3d3dy5jLXMuZnIvIj5DLVM8L2E+KSwgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpCgkJCQkJCQkJCQkJPC9wPgoJCQkJCQkJCQkJCTxwIHN0eWxlPSJtYXJnaW4tbGVmdDozZW07dGV4dC1pbmRlbnQ6LTJlbTsiPgoJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2F0bC9hdGxUcmFuc2Zvcm1hdGlvbnMvUG9ydC9Qb3J0LnppcCI+CgkJCQkJCQkJCQkJCQk8aW1nIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcDsiIHNyYz0iL3Jlc291cmNlcy9pbWFnZXMvY29kZS5wbmciLz4gU291cmNlIGNvZGUgUG9ydAoJCQkJCQkJCQkJCQk8L2E+CgkJCQkJCQkJCQkJCTxici8+CgkJCQkJCQkJCQkJCUphbnVhcnkgMjAwOAoJCQkJCQkJCQkJCQk8YnIvPgoJCQkJCQkJCQkJCQlieSBDeXJpbCBGYXVyZSAoPGEgaHJlZj0iaHR0cDovL3d3dy5jLXMuZnIvIj5DLVM8L2E+KSwgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpCgkJCQkJCQkJCQkJPC9wPgoJCQkJCQkJCQkJPC90ZD4KCQkJCQkJCQkJPC90cj4KCQkJCQkJCQk8L3RhYmxlPgoJCQkJCQkJPC90ZD4KCQkJCQkJPC90cj4KCQkJCQk8L3RhYmxlPgoJCQkJPC9saT4KCQkJCTxsaSBzdHlsZT0ibGlzdC1zdHlsZTpub25lIj4KCQkJCQk8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIj4KCQkJCQkJPHRyPgoJCQkJCQkJPHRkIHdpZHRoPSI4MCUiPgoJCQkJCQkJCTxoMj48YSBocmVmPSJhcnRpY2xlLnBocD9maWxlPVNpZGVFZmZlY3QvaW5kZXguaHRtbCI+U2lkZSBFZmZlY3Q8L2E+PC9oMj4KCQkJCQkJCTwvdGQ+CgkJCQkJCQk8dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij4KCQkJCQkJCQk8Yj5KYW51YXJ5IDIwMDg8L2I+CgkJCQkJCQk8L3RkPgoJCQkJCQk8L3RyPgoJCQkJCQk8dHI+CgkJCQkJCQk8dGQgY29sc3Bhbj0iMiI+CgkJCQkJCQkJPHRhYmxlIFNUWUxFPSJib3JkZXIgOiAxcHggZG90dGVkICMwMDAwMDA7IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyMCIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNGOEY4RjgiPgoJCQkJCQkJCQk8dHI+CgkJCQkJCQkJCQk8dGQgdmFsaWduPSJ0b3AiPgoJCQkJCQkJCQkJCVRoaXMgY2FzZSBkZWFscyB3aXRoIHRoZSB3YXkgdG8gaGFuZGxlIHNpZGUgZWZmZWN0cyBpbmR1Y2VkIHdoaWxlIHRyYW5zZm9ybWluZyBhbiBlbGVtZW50LiBXZSB3aWxsIHN0YXJ0IGZyb20gYW4gaW1wZXJhdGl2ZSBhbGdvcml0aG0gdG8gY3JlYXRlIGEgCgkJCQkJCQkJCQkJdHJhbnNmb3JtYXRpb24gYmV0d2VlbiB0d28gbWV0YW1vZGVscy4gVGhpcyBhbGdvcml0aG0gd2lsbCBpbnRyb2R1Y2UgYSBzaWRlIGVmZmVjdCBwcm9ibGVtLiBBZnRlciBzZXZlcmFsIGl0ZXJhdGlvbiBhIHNvbHV0aW9uIHdpbGwgYmUgcHJvdmlkZWQKCQkJCQkJCQkJCQlmb2xsb3dpbmcgQVRMIHBoaWxvc29waHkuCgkJCQkJCQkJCQkJPHA+CgkJCQkJCQkJCQkJCTxpPkFUTCBjb25jZXB0cyBlbmNvdW50ZXJlZDo8L2k+CgkJCQkJCQkJCQkJCUFUTCBpbXBlcmF0aXZlIHBhcnRzIGZvciBkZWFsaW5nIHdpdGggY29tcGxleCBzaXR1YXRpb24sIGFuZAoJCQkJCQkJCQkJCQlDaGFpbiBvZiBBVEwgdHJhbnNmb3JtYXRpb25zIHRvIGRpdmlkZSB0cmFuc2Zvcm1hdGlvbiBjb21wbGV4aXR5IGFuZCB0byBhdm9pZCBpbXBlcmF0aXZlIHBhcnRzLgkJCQkJCQkJCQkJCSAKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQkJPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjNlbTt0ZXh0LWluZGVudDotMmVtOyI+CgkJCQkJCQkJCQkJCTxhIGhyZWY9ImFydGljbGUucGhwP2ZpbGU9U2lkZUVmZmVjdC9pbmRleC5odG1sIj4KCQkJCQkJCQkJCQkJCTxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOnRleHQtdG9wOyIgc3JjPSIvcmVzb3VyY2VzL2ltYWdlcy9odG1sLnBuZyIvPiBBcnRpY2xlIFNpZGUgRWZmZWN0CgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQkJPGJyLz4KCQkJCQkJCQkJCQkJSmFudWFyeSAyMDA4CgkJCQkJCQkJCQkJCTxici8+CgkJCQkJCQkJCQkJCWJ5IEN5cmlsIEZhdXJlICg8YSBocmVmPSJodHRwOi8vd3d3LmMtcy5mci8iPkMtUzwvYT4pLCBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkKCQkJCQkJCQkJCQk8L3A+CgkJCQkJCQkJCQkJPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjNlbTt0ZXh0LWluZGVudDotMmVtOyI+CgkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYXRsL2F0bFRyYW5zZm9ybWF0aW9ucy9TaWRlRWZmZWN0L1NpZGVFZmZlY3QuemlwIj4KCQkJCQkJCQkJCQkJCTxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOnRleHQtdG9wOyIgc3JjPSIvcmVzb3VyY2VzL2ltYWdlcy9jb2RlLnBuZyIvPiBTb3VyY2UgY29kZSBTaWRlIEVmZmVjdAoJCQkJCQkJCQkJCQk8L2E+CgkJCQkJCQkJCQkJCTxici8+CgkJCQkJCQkJCQkJCUphbnVhcnkgMjAwOAoJCQkJCQkJCQkJCQk8YnIvPgoJCQkJCQkJCQkJCQlieSBDeXJpbCBGYXVyZSAoPGEgaHJlZj0iaHR0cDovL3d3dy5jLXMuZnIvIj5DLVM8L2E+KSwgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpCgkJCQkJCQkJCQkJPC9wPgoJCQkJCQkJCQkJPC90ZD4KCQkJCQkJCQkJPC90cj4KCQkJCQkJCQk8L3RhYmxlPgoJCQkJCQkJPC90ZD4KCQkJCQkJPC90cj4KCQkJCQk8L3RhYmxlPgoJCQkJPC9saT4KCSAgICAJPC91bD4KCSAgICA8L2Rpdj4KCQk8aHIgY2xhc3M9ImNsZWFyZXIiIC8+Cgk8L2Rpdj4KCQpFT0hUTUw7CgoKCSMgR2VuZXJhdGUgdGhlIHdlYiBwYWdlCgkkQXBwLT5nZW5lcmF0ZVBhZ2UoJHRoZW1lLCAkTWVudSwgJE5hdiwgJHBhZ2VBdXRob3IsICRwYWdlS2V5d29yZHMsICRwYWdlVGl0bGUsICRodG1sKTsKPz4K