CjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCiAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgo8aGVhZD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImNzcy9zaXRlLmNzcyI+CiAgICA8dGl0bGU+QXBhY2hlIEF4aXM8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+PGltZyBzcmM9ImltYWdlcy9hc2ZfbG9nb193aWRlLmdpZiIgYWx0PSJUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9IjAiLz48L2E+CgogICAgICAgIDxkaXYgY2xhc3M9Imxhc3QtdXBkYXRlZCI+CiAgICAgICAgICAgIExhc3QgUHVibGlzaGVkOiAyMiBKdWx5IDIwMjIKICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGgxPldlbGNvbWUgdG8gQXBhY2hlIEF4aXM8L2gxPgoKICAgIDxwPgogICAgICAgIFRoZSB3ZWxsIGtub3duIEFwYWNoZSBBeGlzLCBhbmQgdGhlIHRoZSBzZWNvbmQgZ2VuZXJhdGlvbiBvZiBpdCwgdGhlIEFwYWNoZSBBeGlzMiwgYXJlIHR3byBXZWIgU2VydmljZQogICAgICAgIGNvbnRhaW5lcnMgdGhhdCBoZWxwcwogICAgICAgIHVzZXJzIHRvIGNyZWF0ZSwgZGVwbG95LCBhbmQgcnVuIFdlYiBTZXJ2aWNlcy4KICAgIDwvcD4KCiAgICA8cD4KICAgICAgICBBeGlzMiBpcyBhdmFpYWxibGUgaW4gYm90aCBKYXZhIGFzIHdlbGwgYXMgQywgbGFuZ3VhZ2VzIGFuZCBkZXRhaWxzIGFib3V0IGVhY2ggdmVyc2lvbiBjYW4gYmUgZm91bmQKICAgICAgICBiZWxvdy4KICAgIDwvcD4KCiAgICA8aDM+QXhpcyBwcm9qZWN0IHNpdGVzPC9oMz4KCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWl0ZW1zIj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2phdmEvY29yZSIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIEF4aXMyL0phdmE8L2E+CiAgICAgICAgPHRhYmxlPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImxvZ28tY29sIj48YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2phdmEvY29yZSIgY2xhc3M9ImJpZy1saW5rcyI+PGltZyBzcmM9ImltYWdlcy9sb2dvcy9heGlzMi5wbmciIGFsdD0iQXhpczIgSmF2YSIgYm9yZGVyPSIwIi8+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICBBeGlzMiBpcyBhIFdlYiBTZXJ2aWNlcyAvIFNPQVAgLyBXU0RMIGVuZ2luZSwgdGhlIHN1Y2Nlc3NvciB0byB0aGUgd2lkZWx5IHVzZWQgQXBhY2hlIEF4aXMgU09BUAogICAgICAgICAgICAgICAgICAgIHN0YWNrLiBUaGVyZSBhcmUgdHdvIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgQXBhY2hlIEF4aXMyIFdlYiBzZXJ2aWNlcyBlbmdpbmUgLSBBcGFjaGUgQXhpczIvSmF2YQogICAgICAgICAgICAgICAgICAgIGFuZCBBcGFjaGUgQXhpczIvQwoKICAgICAgICAgICAgICAgICAgICBXaGlsZSB5b3Ugd2lsbCBmaW5kIGFsbCB0aGUgaW5mb3JtYXRpb24gb24gQXBhY2hlIEF4aXMyL0phdmEgaGVyZQogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWl0ZW1zIj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2MvY29yZSIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIEF4aXMyL0M8L2E+CiAgICAgICAgPHRhYmxlPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImxvZ28tY29sIj48YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2MvY29yZSIgY2xhc3M9ImJpZy1saW5rcyI+PGltZyBzcmM9ImltYWdlcy9sb2dvcy9heGlzMi5wbmciIGFsdD0iQXhpczIgQyIgYm9yZGVyPSIwIi8+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY29sIj4KICAgICAgICAgICAgICAgICAgICBBcGFjaGUgQXhpczIvQyBpcyBhIFdlYiBzZXJ2aWNlcyBlbmdpbmUgaW1wbGVtZW50ZWQgaW4gdGhlIEMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuIEl0IGlzIGJhc2VkIG9uCiAgICAgICAgICAgICAgICAgICAgdGhlIGV4dGVuc2libGUgYW5kIGZsZXhpYmxlIEF4aXMyIGFyY2hpdGVjdHVyZS4gQXBhY2hlIEF4aXMyL0MgY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBhbmQgY29uc3VtZQogICAgICAgICAgICAgICAgICAgIFdlYlNlcnZpY2VzLiBJdCBoYXMgYmVlbiBpbXBsZW1lbnRlZCB3aXRoIHBvcnRhYmlsaXR5IGFuZCBhYmlsaXR5IHRvIGVtYmVkIGluIG1pbmQsIGhlbmNlIGNvdWxkIGJlCiAgICAgICAgICAgICAgICAgICAgdXNlZCBhcyBhIFdlYiBzZXJ2aWNlcyBlbmFibGVyIGluIG90aGVyIHNvZnR3YXJlLgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWl0ZW1zIj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2phdmEvcmFtcGFydCIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIFJhbXBhcnQgKFdTLVNlY3VyaXR5L1dTLVRydXN0KTwvYT4KICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ibG9nby1jb2wiPjxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvamF2YS9yYW1wYXJ0IiBjbGFzcz0iYmlnLWxpbmtzIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL1JhbXBhcnQucG5nIiBhbHQ9IkFwYWNoZSBSYW1wYXJ0IChXUy1TZWN1cml0eS9XUy1UcnVzdCkiIGJvcmRlcj0iMCIgLz48L2E+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNvbCI+CiAgICAgICAgICAgICAgICAgICAgUmFtcGFydCBpcyB0aGUgc2VjdXJpdHkgbW9kdWxlIG9mIEF4aXMyLiBXaXRoIFJhbXBhcnkgbW9kdWxlLCB5b3UgY2FuIHNlY3VyZSBBeGlzMiB3ZWIgc2VydmljZXMKICAgICAgICAgICAgICAgICAgICBmb3IgYXV0aGVudGljYXRpb24sIGludGVncml0eSwgY29uZmlkZW50aWFsaXR5IGFuZCBub24gLSByZXB1ZGlhdGlvbi4gUmFtcGFydCBzZWN1cmVzIFNPQVAKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcyBhY2NvcmRpbmcgdG8gc3BlY2lmaWNhdGlvbnMgaW4gdGhlIFdTLVNlY3VyaXR5IHN0YWNrLgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWl0ZW1zIj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2MvcmFtcGFydCIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIFJhbXBhcnQvQzwvYT4KICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ibG9nby1jb2wiPjxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvYy9yYW1wYXJ0IiBjbGFzcz0iYmlnLWxpbmtzIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL1JhbXBhcnQucG5nIiBhbHQ9IkFwYWNoZSBSYW1wYXJ0L0MiIGJvcmRlcj0iMCIvPjwvYT48L3RkPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNvbCI+CiAgICAgICAgICAgICAgICAgICAgQXBhY2hlIFJhbXBhcnQvQyBpcyB0aGUgc2VjdXJpdHkgbW9kdWxlIGZvciA8YSBocmVmPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9heGlzMi9jLyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJleHRlcm5hbExpbmsiIHRpdGxlPSJFeHRlcm5hbCBMaW5rIj5BcGFjaGUKICAgICAgICAgICAgICAgICAgICBBeGlzMi9DPC9hPi4gSXQgZmVhdHVyZXMgaW4gbWFueSB3YXlzIHRvIHByb3RlY3QgU09BUCBtZXNzYWdlcyBleGNoYW5nZWQuIFRoaXMgaW5jbHVkZXMgU09BUCBtZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBhbmQgc2lnbmF0dXJlIGFzIHNwZWNpZmllZCBpbiA8YQogICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXNvYXAtbWVzc2FnZS1zZWN1cml0eS0xLjAucGRmIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+V1MtU2VjdXJpdHkgU3BlY2lmaWNhdGlvbjwvYT4uIEluIGFkZGl0aW9uIEFwYWNoZQogICAgICAgICAgICAgICAgICAgIFJhbXBhcnQvQyBjb25maWd1cmF0aW9ucyBhcmUgYmFzZWQgb24gc2VjdXJpdHkgcG9saWN5IGFzc2VydGlvbnMgYXMgcGVyIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9zcGVjcy54bWxzb2FwLm9yZy93cy8yMDA1LzA3L3NlY3VyaXR5cG9saWN5L3dzLXNlY3VyaXR5cG9saWN5LnBkZiIKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImV4dGVybmFsTGluayIgdGl0bGU9IkV4dGVybmFsIExpbmsiPldTLVNlY3VyaXR5IFBvbGljeSBzcGVjaWZpY2F0b2luPC9hPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWl0ZW1zIj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2phdmEvc2FuZGVzaGEiIGNsYXNzPSJiaWctbGlua3MiPkFwYWNoZSBTYW5kZXNoYQogICAgICAgICAgICAoV1MtUmVsaWFibGVNZXNzYWdpbmcpPC9hPgogICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJsb2dvLWNvbCI+PGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzMi9qYXZhL3NhbmRlc2hhIiBjbGFzcz0iYmlnLWxpbmtzIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL1NhbmRlc2hhLnBuZyIgYWx0PSJBcGFjaGUgU2FuZGVzaGEgKFdTLVJlbGlhYmxlTWVzc2FnaW5nKSIgYm9yZGVyPSIwIi8+PC9hPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jb2wiPgogICAgICAgICAgICAgICAgICAgIFNhbmRlc2hhMiBnaXZlcyByZWxpYWJsZSBtZXNzYWdpbmcgY2FwYWJpbGl0aWVzIHRvIEF4aXMyLiBGcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoZSBBeGlzMgogICAgICAgICAgICAgICAgICAgIGVuZ2luZSwgU2FuZGVzaGEyIGlzIGEgbW9kdWxlLiBXaGVuIHRoaXMgbW9kdWxlIGlzIGVuZ2FnZWQgdG8gYSBzZXJ2aWNlLCBjbGllbnRzIGhhdmUgdGhlIG9wdGlvbgogICAgICAgICAgICAgICAgICAgIG9mIGludm9raW5nIGl0IGluIGEgcmVsaWFibGUgbWFubmVyLiBJbiB0aGUgY2xpZW50IHNpZGUgU2FuZGVzaGEyIG1vZHVsZSBjYW4gYmUgdXNlZCB0byBpbnRlcmFjdAogICAgICAgICAgICAgICAgICAgIHdpdGggZXhpc3RpbmcgcmVsaWFibGUgV2ViIHNlcnZpY2VzLgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWl0ZW1zIj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2Mvc2FuZGVzaGEiIGNsYXNzPSJiaWctbGlua3MiPkFwYWNoZSBTYW5kZXNoYTIvQzwvYT4KICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ibG9nby1jb2wiPjxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvYy9zYW5kZXNoYSIgY2xhc3M9ImJpZy1saW5rcyI+PGltZyBzcmM9ImltYWdlcy9sb2dvcy9TYW5kZXNoYS5wbmciIGFsdD0iQXBhY2hlIFNhbmRlc2hhMi9DIiBib3JkZXI9IjAiLz48L2E+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNvbCI+CiAgICAgICAgICAgICAgICAgICAgPHA+U2FuZGVzaGEyL0MgaXMgYSBDIGltcGxlbWVudGF0aW9uIG9mIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvdGNfaG9tZS5waHA/d2dfYWJicmV2PXdzcm0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+V1MtUmVsaWFibGVNZXNzYWdpbmcKICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWNhdGlvbjwvYT4gcHVibGlzaGVkIGJ5IElCTSwgTWljcm9zb2Z0LCBCRUEgYW5kIFRJQkNPLiBTYW5kZXNoYTIvQyBpcwogICAgICAgICAgICAgICAgICAgICAgICBidWlsdCBvbiB0b3Agb2YgPGEgaHJlZj0iaHR0cDovL3dzLmFwYWNoZS5vcmcvYXhpczIvYy8iIGNsYXNzPSJleHRlcm5hbExpbmsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iRXh0ZXJuYWwgTGluayI+QXBhY2hlIEF4aXMyL0MgV2ViCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlcyBlbmdpbmU8L2E+LCBhcyBhIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cDovL3dzLmFwYWNoZS5vcmcvYXhpczIvYy9kb2NzL2F4aXMyY19tYW51YWwuaHRtbCNlbmdhZ2luZ19tb2R1bGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImV4dGVybmFsTGluayIgdGl0bGU9IkV4dGVybmFsIExpbmsiPm1vZHVsZTwvYT4uCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZXJlZm9yZSBieSB1c2luZyBTYW5kZXNoYTIvQyB5b3UgY2FuIGFkZCByZWxpYWJsZSBtZXNzYWdpbmcgY2FwYWJpbGl0eSB0bwogICAgICAgICAgICAgICAgICAgICAgICBXZWIgc2VydmljZXMgaG9zdGVkIHVzaW5nIEF4aXMyL0MuIFNhbmRlc2hhMi9DIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCBBeGlzMi9DCiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudCB0byBpbnRlcmFjdCB3aXRoIGFscmVhZHkgaG9zdGVkIFdlYiBzZXJ2aWNlcyBpbiBhIHJlbGlhYmxlIG1hbm5lci48L3A+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvamF2YS9zYXZhbiIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIFNhdmFuIChXUy1FdmVudGluZyk8L2E+CiAgICAgICAgPHRhYmxlPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8IS0tPHRkIGNsYXNzPSJsb2dvLWNvbCI+PGltZyBzcmM9ImltYWdlcy9sb2dvcy9zYW5kZXNoYS5wbmciIGFsdD0iQXBhY2hlIFNhbmRlc2hhIChXUy1SZWxpYWJsZU1lc3NhZ2luZykiLz48L3RkPi0tPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNvbCI+CiAgICAgICAgICAgICAgICAgICAgU2F2YW4vSmF2YSBpcyBhIEMgaW1wbGVtZW50YXRpb24gb2YgV1MtRXZlbnRpbmcgc3BlY2lmaWNhdGlvbi4gU2F2YW4vSmF2YSBpcyBidWlsdCBvbiB0b3Agb2YKICAgICAgICAgICAgICAgICAgICBBeGlzMi9DLgogICAgICAgICAgICAgICAgICAgIFRoZXJlZm9yZSBieSB1c2luZyBTYXZhbi9KYXZhIHlvdSBjYW4gYWRkIFdTLUV2ZW50aW5nIGNhcGFiaWxpdHkgdG8gV2ViIHNlcnZpY2VzIGhvc3RlZCB1c2luZwogICAgICAgICAgICAgICAgICAgIEF4aXMyL0phdmEuIFNhdmFuL0Mgd2FzIGRlc2lnbmVkIGFzIGEgZ2VuZXJhbCBwdWJsaXNoZXIvc3Vic2NyaWJlciB0b29sLiBUaGUgYXJjaXRlY3R1cmUgd2FzCiAgICAgICAgICAgICAgICAgICAgZGVzaWduZWQgdG8gYWJzdHJhY3QgdGhlIGdlbmVyYWwgcHVibGlzaGVyL3N1YnNjcmliZXIgZmVhdHVyZXMgc28gdGhhdCBwZW9wbGUgY291bGQgc3VwcG9ydCBtb3JlCiAgICAgICAgICAgICAgICAgICAgdGhhbiBvbmUgcHVibGlzaGVyL3N1YnNjcmliZXIgbWVjaGFuaXNtcyB3aXRoaW4gdGhlIHNhbWUgaW5mcmFzdHJ1Y3R1cmUuCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvYy9zYXZhbiIgY2xhc3M9ImJpZy1saW5rcyI+QXBhY2hlIFNhdmFuL0M8L2E+CiAgICAgICAgPHRhYmxlPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8IS0tPHRkIGNsYXNzPSJsb2dvLWNvbCI+PGltZyBzcmM9ImltYWdlcy9sb2dvcy9zYW5kZXNoYS5wbmciIGFsdD0iQXBhY2hlIFNhbmRlc2hhIChXUy1SZWxpYWJsZU1lc3NhZ2luZykiLz48L3RkPi0tPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNvbCI+CiAgICAgICAgICAgICAgICAgICAgU2F2YW4vQyBpcyBhIEMgaW1wbGVtZW50YXRpb24gb2YgV1MtRXZlbnRpbmcgc3BlY2lmaWNhdGlvbi4gU2F2YW4vQyBpcyBidWlsdCBvbiB0b3Agb2YgQXhpczIvQy4KICAgICAgICAgICAgICAgICAgICBUaGVyZWZvcmUgYnkgdXNpbmcgU2F2YW4vQyB5b3UgY2FuIGFkZCBXUy1FdmVudGluZyBjYXBhYmlsaXR5IHRvIFdlYiBzZXJ2aWNlcyBob3N0ZWQgdXNpbmcgQXhpczIvQy4KICAgICAgICAgICAgICAgICAgICBTYXZhbi9DIHdhcyBkZXNpZ25lZCBhcyBhIGdlbmVyYWwgcHVibGlzaGVyL3N1YnNjcmliZXIgdG9vbC4gVGhlIGFyY2l0ZWN0dXJlIHdhcyBkZXNpZ25lZCB0bwogICAgICAgICAgICAgICAgICAgIGFic3RyYWN0IHRoZSBnZW5lcmFsIHB1Ymxpc2hlci9zdWJzY3JpYmVyIGZlYXR1cmVzIHNvIHRoYXQgcGVvcGxlIGNvdWxkIHN1cHBvcnQgbW9yZSB0aGFuIG9uZQogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlci9zdWJzY3JpYmVyIG1lY2hhbmlzbXMgd2l0aGluIHRoZSBzYW1lIGluZnJhc3RydWN0dXJlLgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWl0ZW1zIj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vYXhpcy5hcGFjaGUub3JnL2F4aXMyL2phdmEvdHJhbnNwb3J0cyIgY2xhc3M9ImJpZy1saW5rcyI+QXhpczIgVHJhbnNwb3J0czwvYT4KICAgICAgICA8dGFibGU+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ibG9nby1jb2wiPjxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpczIvamF2YS90cmFuc3BvcnRzIiBjbGFzcz0iYmlnLWxpbmtzIj48aW1nIHNyYz0iaW1hZ2VzL2xvZ29zL2F4aXMyVHJhbnNwb3J0c0xvZ28uZ2lmIiBhbHQ9IkF4aXMyIFRyYW5zcG9ydHMiIGJvcmRlcj0iMCIvPjwvYT48L3RkPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNvbCI+CiAgICAgICAgICAgICAgICAgICAgQXhpczIgVHJhbnNwb3J0cyBhcmUgYSBzZXQgb2YgdHJhbnNwb3J0IGFkYXB0b3JzIGZvciB0aGUgQXBhY2hlIEF4aXMyIHByb2plY3QgYXMgd2VsbCBhcyBmb3IgdGhlCiAgICAgICAgICAgICAgICAgICAgQXBhY2hlIFN5bmFwc2UgcHJvamVjdC4KICAgICAgICAgICAgICAgICAgICA8YnI+PGJyPgogICAgICAgICAgICAgICAgICAgIFRoZXNlIHRyYW5zcG9ydHMgY29uc2lzdHMgb2YgYSBzZXQgb2Ygc3luY2hyb25vdXMgYXMgd2VsbCBhcyBjb21wbGV0ZWx5IGFzeW5jaHJvbm91cyB0cmFuc3BvcnQKICAgICAgICAgICAgICAgICAgICBhZGFwcm90cy4KCiAgICAgICAgICAgICAgICAgICAgSk1TIFRyYW5zcG9ydCwgRS1NYWlsIFRyYW5zcG9ydCwgVENQIFRyYW5zcG9ydCwgU01TIFRyYW5zcG9ydCwgVURQIFRyYW5zcG9ydCwgWE1QUCBUcmFuc3BvcnQuCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtaXRlbXMiPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9heGlzLmFwYWNoZS5vcmcvYXhpcy8iIGNsYXNzPSJiaWctbGlua3MiPkFwYWNoZSBBeGlzPC9hPgogICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJsb2dvLWNvbCI+PGEgaHJlZj0iaHR0cDovL2F4aXMuYXBhY2hlLm9yZy9heGlzLyIgY2xhc3M9ImJpZy1saW5rcyI+PGltZyBzcmM9ImltYWdlcy9sb2dvcy9heGlzLmpwZyIgYWx0PSJBcGFjaGUgQXhpcyIgYm9yZGVyPSIwIiAvPjwvYT48L3RkPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNvbCI+CiAgICAgICAgICAgICAgICAgICAgQXBhY2hlIEF4aXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFNPQVAgKCJTaW1wbGUgT2JqZWN0IEFjY2VzcyBQcm90b2NvbCIpIHN1Ym1pc3Npb24gdG8gVzNDLgogICAgICAgICAgICAgICAgICAgIEF4aXMgaGFzIGl0J3MgaW1wbGVtZW50YXRpb25zIGluIEphdmEgYXMgd2VsbCBhcyBDKysuCiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImZvb3RlciI+Q29weXJpZ2h0IKkgMjAwMC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+IAo=