PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KICA8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+CiAgICA8dGl0bGU+T1Byb2ZpbGUgbWFudWFsPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzUuMiIgLz4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGNsYXNzPSJib29rIiB0aXRsZT0iT1Byb2ZpbGUgbWFudWFsIj4KICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGgxIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9Im9wcm9maWxlLWd1aWRlIj48L2E+T1Byb2ZpbGUgbWFudWFsPC9oMT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0aG9yZ3JvdXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dGhvciI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImF1dGhvciI+PHNwYW4gY2xhc3M9ImZpcnN0bmFtZSI+Sm9objwvc3Bhbj4gPHNwYW4gY2xhc3M9InN1cm5hbWUiPkxldm9uPC9zcGFuPjwvaDM+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZmZpbGlhdGlvbiI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkZHJlc3MiPgogICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImVtYWlsIj4mbHQ7PGEgY2xhc3M9ImVtYWlsIiBocmVmPSJtYWlsdG86bGV2b25AbW92ZW1lbnRhcmlhbi5vcmciPmxldm9uQG1vdmVtZW50YXJpYW4ub3JnPC9hPiZndDs8L2NvZGU+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPHAgY2xhc3M9ImNvcHlyaWdodCI+Q29weXJpZ2h0IKkgMjAwMC0yMDA0IFZpY3RvcmlhIFVuaXZlcnNpdHkgb2YgTWFuY2hlc3RlciwgSm9obiBMZXZvbiBhbmQgb3RoZXJzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGhyIC8+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b2MiPgogICAgICAgIDxwPgogICAgICAgICAgPGI+VGFibGUgb2YgQ29udGVudHM8L2I+CiAgICAgICAgPC9wPgogICAgICAgIDxkbD4KICAgICAgICAgIDxkdD4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXB0ZXIiPgogICAgICAgICAgICAgIDxhIGhyZWY9IiNpbnRyb2R1Y3Rpb24iPjEuIEludHJvZHVjdGlvbjwvYT4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kdD4KICAgICAgICAgIDxkZD4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNhcHBsaWNhdGlvbnMiPjEuIEFwcGxpY2F0aW9ucyBvZiBPUHJvZmlsZTwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjaml0c3VwcG9ydCI+MS4xLiBTdXBwb3J0IGZvciBkeW5hbWljYWxseSBjb21waWxlZCAoSklUKSBjb2RlPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcmVxdWlyZW1lbnRzIj4yLiBTeXN0ZW0gcmVxdWlyZW1lbnRzPC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Jlc291cmNlcyI+My4gSW50ZXJuZXQgcmVzb3VyY2VzPC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2luc3RhbGwiPjQuIEluc3RhbGxhdGlvbjwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN1bmluc3RhbGwiPjUuIFVuaW5zdGFsbGluZyBPUHJvZmlsZTwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8L2RsPgogICAgICAgICAgPC9kZD4KICAgICAgICAgIDxkdD4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXB0ZXIiPgogICAgICAgICAgICAgIDxhIGhyZWY9IiNvdmVydmlldyI+Mi4gT3ZlcnZpZXc8L2E+CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZHQ+CiAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZ2V0dGluZy1zdGFydGVkIj4xLiBHZXR0aW5nIHN0YXJ0ZWQ8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjdG9vbHMtb3ZlcnZpZXciPjIuIFRvb2xzIHN1bW1hcnk8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGFwdGVyIj4KICAgICAgICAgICAgICA8YSBocmVmPSIjY29udHJvbGxpbmciPjMuIENvbnRyb2xsaW5nIHRoZSBwcm9maWxlcjwvYT4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kdD4KICAgICAgICAgIDxkZD4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjb250cm9sbGluZy1kYWVtb24iPjEuIFVzaW5nIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wY29udHJvbGV4YW1wbGVzIj4xLjEuIEV4YW1wbGVzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZXZlbnRzcGVjIj4xLjIuIFNwZWNpZnlpbmcgcGVyZm9ybWFuY2UgY291bnRlciBldmVudHM8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzZXR1cC1qaXQiPjIuIFNldHRpbmcgdXAgdGhlIEpJVCBwcm9maWxpbmcgZmVhdHVyZTwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjc2V0dXAtaml0LWp2bSI+Mi4xLiBKVk0gaW5zdHJ1bWVudGF0aW9uPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3Byb2ZpbGUtZ3VpIj4zLiBVc2luZyA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJvZl9zdGFydDwvc3Ryb25nPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZGV0YWlsZWQtcGFyYW1ldGVycyI+NC4gQ29uZmlndXJhdGlvbiBkZXRhaWxzPC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNoYXJkd2FyZS1jb3VudGVycyI+NC4xLiBIYXJkd2FyZSBwZXJmb3JtYW5jZSBjb3VudGVyczwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3J0YyI+NC4yLiBPUHJvZmlsZSBpbiBSVEMgbW9kZTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3RpbWVyIj40LjMuIE9Qcm9maWxlIGluIHRpbWVyIGludGVycnVwdCBtb2RlPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcDQiPjQuNC4gUGVudGl1bSA0IHN1cHBvcnQ8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNpYTY0Ij40LjUuIEludGVsIEl0YW5pdW0gMiBzdXBwb3J0PC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcHBjNjQiPjQuNi4gUG93ZXJQQzY0IHN1cHBvcnQ8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjZWxsLWJlIj40LjcuIENlbGwgQnJvYWRiYW5kIEVuZ2luZSBzdXBwb3J0PC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjYW1kLWlicy1zdXBwb3J0Ij40LjguIEFNRDY0ICh4ODZfNjQpIEluc3RydWN0aW9uLUJhc2VkIFNhbXBsaW5nIChJQlMpIHN1cHBvcnQ8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNtaXN1c2UiPjQuOS4gRGFuZ2Vyb3VzIGNvdW50ZXIgc2V0dGluZ3M8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgICAgPC9kZD4KICAgICAgICAgIDxkdD4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXB0ZXIiPgogICAgICAgICAgICAgIDxhIGhyZWY9IiNyZXN1bHRzIj40LiBPYnRhaW5pbmcgcmVzdWx0czwvYT4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kdD4KICAgICAgICAgIDxkZD4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwcm9maWxlLXNwZWMiPjEuIFByb2ZpbGUgc3BlY2lmaWNhdGlvbnM8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Byb2ZpbGUtc3BlYy1leGFtcGxlcyI+MS4xLiBFeGFtcGxlczwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Byb2ZpbGUtc3BlYy1kZXRhaWxzIj4xLjIuIFByb2ZpbGUgc3BlY2lmaWNhdGlvbiBwYXJhbWV0ZXJzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjbG9jYXRpbmctYW5kLW1hbmFnaW5nLWJpbmFyeS1pbWFnZXMiPjEuMy4gTG9jYXRpbmcgYW5kIG1hbmFnaW5nIGJpbmFyeSBpbWFnZXM8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNuby1yZXN1bHRzIj4xLjQuIFdoYXQgdG8gZG8gd2hlbiB5b3UgZG9uJ3QgZ2V0IGFueSByZXN1bHRzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQiPjIuIEltYWdlIHN1bW1hcmllcyBhbmQgc3ltYm9sIHN1bW1hcmllcyAoPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+KTwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQtbWVyZ2luZyI+Mi4xLiBNZXJnaW5nIHNlcGFyYXRlIHByb2ZpbGVzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQtY29tcGFyaXNvbiI+Mi4yLiBTaWRlLWJ5LXNpZGUgbXVsdGlwbGUgcmVzdWx0czwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wcmVwb3J0LWNhbGxncmFwaCI+Mi4zLiBDYWxsZ3JhcGggb3V0cHV0PC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQtZGlmZiI+Mi40LiBEaWZmZXJlbnRpYWwgcHJvZmlsZXMgd2l0aCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcHJlcG9ydC1hbm9uIj4yLjUuIEFub255bW91cyBleGVjdXRhYmxlIG1hcHBpbmdzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQteG1sIj4yLjYuIFhNTCBmb3JtYXR0ZWQgb3V0cHV0PC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQtb3B0aW9ucyI+Mi43LiBPcHRpb25zIGZvciA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcGFubm90YXRlIj4zLiBPdXRwdXR0aW5nIGFubm90YXRlZCBzb3VyY2UgKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wYW5ub3RhdGU8L3N0cm9uZz48L3NwYW4+KTwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3Bhbm5vdGF0ZS1maW5kaW5nLXNvdXJjZSI+My4xLiBMb2NhdGluZyBzb3VyY2UgZmlsZXM8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcGFubm90YXRlLWRldGFpbHMiPjMuMi4gVXNhZ2Ugb2YgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bhbm5vdGF0ZTwvc3Ryb25nPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNnZXR0aW5nLWppdC1yZXBvcnRzIj40LiBPUHJvZmlsZSByZXN1bHRzIHdpdGggSklUIHNhbXBsZXM8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3BncHJvZiI+NS4gPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Z3Byb2Y8L3N0cm9uZz48L3NwYW4+LWNvbXBhdGlibGUgb3V0cHV0ICg8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGdwcm9mPC9zdHJvbmc+PC9zcGFuPik8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wZ3Byb2YtZGV0YWlscyI+NS4xLiBVc2FnZSBvZiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGdwcm9mPC9zdHJvbmc+PC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wYXJjaGl2ZSI+Ni4gQXJjaGl2aW5nIG1lYXN1cmVtZW50cyAoPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3BhcmNoaXZlPC9zdHJvbmc+PC9zcGFuPik8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wYXJjaGl2ZS1kZXRhaWxzIj42LjEuIFVzYWdlIG9mIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wYXJjaGl2ZTwvc3Ryb25nPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcGltcG9ydCI+Ny4gQ29udmVydGluZyBzYW1wbGUgZGF0YWJhc2UgZmlsZXMgKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9waW1wb3J0PC9zdHJvbmc+PC9zcGFuPik8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29waW1wb3J0LWRldGFpbHMiPjcuMS4gVXNhZ2Ugb2YgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3BpbXBvcnQ8L3N0cm9uZz48L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGFwdGVyIj4KICAgICAgICAgICAgICA8YSBocmVmPSIjaW50ZXJwcmV0aW5nIj41LiBJbnRlcnByZXRpbmcgcHJvZmlsaW5nIHJlc3VsdHM8L2E+CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZHQ+CiAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjaXJxLWxhdGVuY3kiPjEuIFByb2ZpbGluZyBpbnRlcnJ1cHQgbGF0ZW5jeTwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNrZXJuZWwtcHJvZmlsaW5nIj4yLiBLZXJuZWwgcHJvZmlsaW5nPC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNpcnEtbWFza2luZyI+Mi4xLiBJbnRlcnJ1cHQgbWFza2luZzwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2lkbGUiPjIuMi4gSWRsZSB0aW1lPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIja2VybmVsLW1vZHVsZXMiPjIuMy4gUHJvZmlsaW5nIGtlcm5lbCBtb2R1bGVzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjaW50ZXJwcmV0aW5nLWNhbGxncmFwaCI+My4gSW50ZXJwcmV0aW5nIGNhbGwtZ3JhcGggcHJvZmlsZXM8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZGVidWctaW5mbyI+NC4gSW5hY2N1cmFjaWVzIGluIGFubm90YXRlZCBzb3VyY2U8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2VmZmVjdC1vZi1vcHRpbWl6YXRpb25zIj40LjEuIFNpZGUgZWZmZWN0cyBvZiBvcHRpbWl6YXRpb25zPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcHJvbG9ndWVzIj40LjIuIFByb2xvZ3VlcyBhbmQgZXBpbG9ndWVzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjaW5saW5lZC1mdW5jdGlvbiI+NC4zLiBJbmxpbmVkIGZ1bmN0aW9uczwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3dyb25nLWxpbmVuci1pbmZvIj40LjQuIEluYWNjdXJhY3kgaW4gbGluZSBudW1iZXIgaW5mb3JtYXRpb248L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzeW1ib2wtd2l0aG91dC1kZWJ1Zy1pbmZvIj41LiBBc3NlbWJseSBmdW5jdGlvbnM8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ZlcmxhcHBpbmctc3ltYm9scyI+Ni4gT3ZlcmxhcHBpbmcgc3ltYm9scyBpbiBKSVRlZCBjb2RlPC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2hpZGRlbi1jb3N0Ij43LiBPdGhlciBkaXNjcmVwYW5jaWVzPC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICA8L2RkPgogICAgICAgICAgPGR0PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcHRlciI+CiAgICAgICAgICAgICAgPGEgaHJlZj0iI2FjayI+Ni4gQWNrbm93bGVkZ21lbnRzPC9hPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2R0PgogICAgICAgIDwvZGw+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFwdGVyIiB0aXRsZT0iQ2hhcHRlcqAxLqBJbnRyb2R1Y3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiPjxhIGlkPSJpbnRyb2R1Y3Rpb24iPjwvYT5DaGFwdGVyoDEuoEludHJvZHVjdGlvbjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9jIj4KICAgICAgICAgIDxwPgogICAgICAgICAgICA8Yj5UYWJsZSBvZiBDb250ZW50czwvYj4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkbD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjYXBwbGljYXRpb25zIj4xLiBBcHBsaWNhdGlvbnMgb2YgT1Byb2ZpbGU8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNqaXRzdXBwb3J0Ij4xLjEuIFN1cHBvcnQgZm9yIGR5bmFtaWNhbGx5IGNvbXBpbGVkIChKSVQpIGNvZGU8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjcmVxdWlyZW1lbnRzIj4yLiBTeXN0ZW0gcmVxdWlyZW1lbnRzPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjcmVzb3VyY2VzIj4zLiBJbnRlcm5ldCByZXNvdXJjZXM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNpbnN0YWxsIj40LiBJbnN0YWxsYXRpb248L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN1bmluc3RhbGwiPjUuIFVuaW5zdGFsbGluZyBPUHJvZmlsZTwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwPgpUaGlzIG1hbnVhbCBhcHBsaWVzIHRvIE9Qcm9maWxlIHZlcnNpb24gMC45LjctcmMyLgpPUHJvZmlsZSBpcyBhIHByb2ZpbGluZyBzeXN0ZW0gZm9yIExpbnV4IDIuMi8yLjQvMi42IHN5c3RlbXMgb24gYSBudW1iZXIgb2YgYXJjaGl0ZWN0dXJlcy4gSXQgaXMgY2FwYWJsZSBvZiBwcm9maWxpbmcKYWxsIHBhcnRzIG9mIGEgcnVubmluZyBzeXN0ZW0sIGZyb20gdGhlIGtlcm5lbCAoaW5jbHVkaW5nIG1vZHVsZXMgYW5kIGludGVycnVwdCBoYW5kbGVycykgdG8gc2hhcmVkIGxpYnJhcmllcwp0byBiaW5hcmllcy4gSXQgcnVucyB0cmFuc3BhcmVudGx5IGluIHRoZSBiYWNrZ3JvdW5kIGNvbGxlY3RpbmcgaW5mb3JtYXRpb24gYXQgYSBsb3cgb3ZlcmhlYWQuIFRoZXNlCmZlYXR1cmVzIG1ha2UgaXQgaWRlYWwgZm9yIHByb2ZpbGluZyBlbnRpcmUgc3lzdGVtcyB0byBkZXRlcm1pbmUgYm90dGxlIG5lY2tzIGluIHJlYWwtd29ybGQgc3lzdGVtcy4KPC9wPgogICAgICAgIDxwPgpNYW55IENQVXMgcHJvdmlkZSAicGVyZm9ybWFuY2UgY291bnRlcnMiLCBoYXJkd2FyZSByZWdpc3RlcnMgdGhhdCBjYW4gY291bnQgImV2ZW50cyI7IGZvciBleGFtcGxlLApjYWNoZSBtaXNzZXMsIG9yIENQVSBjeWNsZXMuIE9Qcm9maWxlIHByb3ZpZGVzIHByb2ZpbGVzIG9mIGNvZGUgYmFzZWQgb24gdGhlIG51bWJlciBvZiB0aGVzZSBvY2N1cnJpbmcgZXZlbnRzOgpyZXBlYXRlZGx5LCBldmVyeSB0aW1lIGEgY2VydGFpbiAoY29uZmlndXJhYmxlKSBudW1iZXIgb2YgZXZlbnRzIGhhcyBvY2N1cnJlZCwgdGhlIFBDIHZhbHVlIGlzIHJlY29yZGVkLgpUaGlzIGluZm9ybWF0aW9uIGlzIGFnZ3JlZ2F0ZWQgaW50byBwcm9maWxlcyBmb3IgZWFjaCBiaW5hcnkgaW1hZ2UuPC9wPgogICAgICAgIDxwPgpTb21lIGhhcmR3YXJlIHNldHVwcyBkbyBub3QgYWxsb3cgT1Byb2ZpbGUgdG8gdXNlIHBlcmZvcm1hbmNlIGNvdW50ZXJzOiBpbiB0aGVzZSBjYXNlcywgbm8KZXZlbnRzIGFyZSBhdmFpbGFibGUsIGFuZCBPUHJvZmlsZSBvcGVyYXRlcyBpbiB0aW1lci9SVEMgbW9kZSwgYXMgZGVzY3JpYmVkIGluIGxhdGVyIGNoYXB0ZXJzLgo8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDEiIHRpdGxlPSIxLqBBcHBsaWNhdGlvbnMgb2YgT1Byb2ZpbGUiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0iYXBwbGljYXRpb25zIj48L2E+MS6gQXBwbGljYXRpb25zIG9mIE9Qcm9maWxlPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpPUHJvZmlsZSBpcyB1c2VmdWwgaW4gYSBudW1iZXIgb2Ygc2l0dWF0aW9ucy4gWW91IG1pZ2h0IHdhbnQgdG8gdXNlIE9Qcm9maWxlIHdoZW4geW91IDoKPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij4KICAgICAgICAgICAgPHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHR5cGU9ImRpc2MiPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgogICAgICAgICAgICAgICAgPHA+bmVlZCBsb3cgb3ZlcmhlYWQ8L3A+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgIDxwPmNhbm5vdCB1c2UgaGlnaGx5IGludHJ1c2l2ZSBwcm9maWxpbmcgbWV0aG9kczwvcD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgogICAgICAgICAgICAgICAgPHA+bmVlZCB0byBwcm9maWxlIGludGVycnVwdCBoYW5kbGVyczwvcD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgogICAgICAgICAgICAgICAgPHA+bmVlZCB0byBwcm9maWxlIGFuIGFwcGxpY2F0aW9uIGFuZCBpdHMgc2hhcmVkIGxpYnJhcmllczwvcD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgogICAgICAgICAgICAgICAgPHA+bmVlZCB0byBwcm9maWxlIGR5bmFtaWNhbGx5IGNvbXBpbGVkIGNvZGUgb2Ygc3VwcG9ydGVkIHZpcnR1YWwgbWFjaGluZXMgKHNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI2ppdHN1cHBvcnQiIHRpdGxlPSIxLjEuoFN1cHBvcnQgZm9yIGR5bmFtaWNhbGx5IGNvbXBpbGVkIChKSVQpIGNvZGUiPlNlY3Rpb26gMS4xLCAmIzgyMjA7U3VwcG9ydCBmb3IgZHluYW1pY2FsbHkgY29tcGlsZWQgKEpJVCkgY29kZSYjODIyMTs8L2E+KTwvcD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgogICAgICAgICAgICAgICAgPHA+bmVlZCB0byBjYXB0dXJlIHRoZSBwZXJmb3JtYW5jZSBiZWhhdmlvdXIgb2YgZW50aXJlIHN5c3RlbTwvcD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgogICAgICAgICAgICAgICAgPHA+d2FudCB0byBleGFtaW5lIGhhcmR3YXJlIGVmZmVjdHMgc3VjaCBhcyBjYWNoZSBtaXNzZXM8L3A+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgIDxwPndhbnQgZGV0YWlsZWQgc291cmNlIGFubm90YXRpb248L3A+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgIDxwPndhbnQgaW5zdHJ1Y3Rpb24tbGV2ZWwgcHJvZmlsZXM8L3A+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgIDxwPndhbnQgY2FsbC1ncmFwaCBwcm9maWxlczwvcD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KT1Byb2ZpbGUgaXMgbm90IGEgcGFuYWNlYS4gT1Byb2ZpbGUgbWlnaHQgbm90IGJlIGEgY29tcGxldGUgc29sdXRpb24gd2hlbiB5b3UgOgo8L3A+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPgogICAgICAgICAgICA8dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgdHlwZT0iZGlzYyI+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsaXN0aXRlbSI+CiAgICAgICAgICAgICAgICA8cD5yZXF1aXJlIGNhbGwgZ3JhcGggcHJvZmlsZXMgb24gcGxhdGZvcm1zIG90aGVyIHRoYW4gMi42L3g4NjwvcD4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgogICAgICAgICAgICAgICAgPHA+ZG9uJ3QgaGF2ZSByb290IHBlcm1pc3Npb25zPC9wPgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsaXN0aXRlbSI+CiAgICAgICAgICAgICAgICA8cD5yZXF1aXJlIDEwMCUgaW5zdHJ1Y3Rpb24tYWNjdXJhdGUgcHJvZmlsZXM8L3A+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgIDxwPm5lZWQgZnVuY3Rpb24gY2FsbCBjb3VudHMgb3IgYW4gaW50ZXJzdGl0aWFsIHByb2ZpbGluZyBBUEk8L3A+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgIDxwPmNhbm5vdCB0b2xlcmF0ZSBhbnkgZGlzdHVyYmFuY2UgdG8gdGhlIHN5c3RlbSB3aGF0c29ldmVyPC9wPgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsaXN0aXRlbSI+CiAgICAgICAgICAgICAgICA8cD5uZWVkIHRvIHByb2ZpbGUgaW50ZXJwcmV0ZWQgb3IgZHluYW1pY2FsbHkgY29tcGlsZWQgY29kZSBvZiBub24tc3VwcG9ydGVkIHZpcnR1YWwgbWFjaGluZXM8L3A+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIxLjEuoFN1cHBvcnQgZm9yIGR5bmFtaWNhbGx5IGNvbXBpbGVkIChKSVQpIGNvZGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0iaml0c3VwcG9ydCI+PC9hPjEuMS6gU3VwcG9ydCBmb3IgZHluYW1pY2FsbHkgY29tcGlsZWQgKEpJVCkgY29kZTwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpPbGRlciB2ZXJzaW9ucyBvZiBPUHJvZmlsZSB3ZXJlIG5vdCBjYXBhYmxlIG9mIGF0dHJpYnV0aW5nIHNhbXBsZXMgdG8gc3ltYm9scyBmcm9tIGR5bmFtaWNhbGx5CmNvbXBpbGVkIGNvZGUsIGkuZS4gImp1c3QtaW4tdGltZSAoSklUKSBjb2RlIi4gVHlwaWNhbCBKSVQgY29tcGlsZXJzIGxvYWQgdGhlIEpJVCBjb2RlIGludG8KYW5vbnltb3VzIG1lbW9yeSByZWdpb25zLiBPUHJvZmlsZSByZXBvcnRlZCB0aGUgc2FtcGxlcyBmcm9tIHN1Y2ggY29kZSwgYnV0IHRoZSBhdHRyaWJ1dGlvbgpwcm92aWRlZCB3YXMgc2ltcGx5OgogICAgICAgIDwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+ImFub246ICZsdDt0Z2lkJmd0OyZsdDthZGRyZXNzIHJhbmdlJmd0OyIgPC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDxwPgpEdWUgdG8gdGhpcyBsaW1pdGF0aW9uLCBpdCB3YXNuJ3QgcG9zc2libGUgdG8gcHJvZmlsZSBhcHBsaWNhdGlvbnMgZXhlY3V0ZWQgYnkgdmlydHVhbCBtYWNoaW5lcyAoVk1zKQpsaWtlIHRoZSBKYXZhIFZpcnR1YWwgTWFjaGluZS4gT1Byb2ZpbGUgbm93IGNvbnRhaW5zIGFuIGluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQgSklUZWQgY29kZS4KQSBkZXZlbG9wbWVudCBsaWJyYXJ5IGlzIHByb3ZpZGVkIHRvIGFsbG93IGRldmVsb3BlcnMKdG8gYWRkIHN1cHBvcnQgZm9yIGFueSBWTSB0aGF0IHByb2R1Y2VzIGR5bmFtaWNhbGx5IGNvbXBpbGVkIGNvZGUgKHNlZSB0aGUgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+T1Byb2ZpbGUgSklUIGFnZW50CmRldmVsb3BlciBndWlkZTwvZW0+PC9zcGFuPikuCkluIGFkZGl0aW9uLCBidWlsdC1pbiBzdXBwb3J0IGlzIGluY2x1ZGVkIGZvciB0aGUgZm9sbG93aW5nOjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij4KICAgICAgICAgICAgICA8dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgdHlwZT0iZGlzYyI+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj5KVk1USSBhZ2VudCBsaWJyYXJ5IGZvciBKYXZhICgxLjUgYW5kIGhpZ2hlcik8L2xpPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsaXN0aXRlbSI+SlZNUEkgYWdlbnQgbGlicmFyeSBmb3IgSmF2YSAoMS41IGFuZCBsb3dlcik8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KRm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1c2UgT1Byb2ZpbGUncyBKSVQgc3VwcG9ydCwgc2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjc2V0dXAtaml0IiB0aXRsZT0iMi6gU2V0dGluZyB1cCB0aGUgSklUIHByb2ZpbGluZyBmZWF0dXJlIj5TZWN0aW9uoDIsICYjODIyMDtTZXR0aW5nIHVwIHRoZSBKSVQgcHJvZmlsaW5nIGZlYXR1cmUmIzgyMjE7PC9hPi4KPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDEiIHRpdGxlPSIyLqBTeXN0ZW0gcmVxdWlyZW1lbnRzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9InJlcXVpcmVtZW50cyI+PC9hPjIuoFN5c3RlbSByZXF1aXJlbWVudHM8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj5MaW51eCBrZXJuZWwgMi4yLzIuNC8yLjY8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkJT1Byb2ZpbGUgdXNlcyBhIGtlcm5lbCBtb2R1bGUgdGhhdCBjYW4gYmUgY29tcGlsZWQgZm9yCgkJCTIuMi4xMSBvciBsYXRlciBhbmQgMi40LiAyLjQuMTAgb3IgYWJvdmUgaXMgcmVxdWlyZWQgaWYgeW91IHVzZSB0aGUgCgkJCWJvb3QtdGltZSBrZXJuZWwgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPm5vc21wPC9jb2RlPi4gIDIuNiBrZXJuZWxzIGFyZSBzdXBwb3J0ZWQgd2l0aCB0aGUgaW4ta2VybmVsCgkJCU9Qcm9maWxlIGRyaXZlci4gTm90ZSB0aGF0IG9ubHkgMzItYml0IHg4NiBhbmQgSUE2NCBhcmUgc3VwcG9ydGVkIG9uIDIuMi8yLjQga2VybmVscy4KCQkJPC9wPgogICAgICAgICAgICAgICAgPHA+CgkJCTIuNiBrZXJuZWxzIGFyZSBzdHJvbmdseSByZWNvbW1lbmRlZC4gVW5kZXIgMi40LCBPUHJvZmlsZSBtYXkgY2F1c2Ugc3lzdGVtIGNyYXNoZXMgaWYgcG93ZXIKCQkJbWFuYWdlbWVudCBpcyB1c2VkLCBvciB0aGUgQklPUyBkb2VzIG5vdCBjb3JyZWN0bHkgZGVhbCB3aXRoIGxvY2FsIEFQSUNzLgoJCQk8L3A+CiAgICAgICAgICAgICAgICA8cD4KCQkJVG8gdXNlIE9Qcm9maWxlJ3MgSklUIHN1cHBvcnQsIGEga2VybmVsIHZlcnNpb24gMi42LjEzIG9yIGxhdGVyIGlzIHJlcXVpcmVkLgoJCQlJbiBlYXJsaWVyIGtlcm5lbCB2ZXJzaW9ucywgdGhlIGFub255bW91cyBtZW1vcnkgcmVnaW9ucyBhcmUgbm90IHJlcG9ydGVkIHRvIE9Qcm9maWxlIGFuZCByZXN1bHRzCgkJCWluIHByb2ZpbGluZyByZXBvcnRzIHdpdGhvdXQgYW55IHNhbXBsZXMgaW4gdGhlc2UgcmVnaW9ucy4KCQkJPC9wPgogICAgICAgICAgICAgICAgPHA+CgkJCVBQQzY0IHByb2Nlc3NvcnMgKFBvd2VyNC9Qb3dlcjUvUFBDOTcwLCBldGMuKSByZXF1aXJlIGEgcmVjZW50ICgmZ3Q7IDIuNi41KSBrZXJuZWwgd2l0aCB0aGUgbGluZSAKCQkJPGNvZGUgY2xhc3M9ImNvbnN0YW50Ij4jZGVmaW5lIFBWXzk3MDwvY29kZT4gcHJlc2VudCBpbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmluY2x1ZGUvYXNtLXBwYzY0L3Byb2Nlc3Nvci5oPC9jb2RlPi4KCiAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgUHJvZmlsaW5nIHRoZSBDZWxsIEJyb2FkYmFuZCBFbmdpbmUgUG93ZXJQQyBQcm9jZXNzaW5nIEVsZW1lbnQgKFBQRSkgcmVxdWlyZXMgYSBrZXJuZWwgdmVyc2lvbgogICAgICAgICAgICAgICAgICAgICAgIG9mIDIuNi4xOCBvciBtb3JlIHJlY2VudC4KICAgICAgICAgICAgICAgICAgICAgICBQcm9maWxpbmcgdGhlIENlbGwgQnJvYWRiYW5kIEVuZ2luZSBTeW5lcmdpc3RpYyBQcm9jZXNzaW5nIEVsZW1lbnQgKFNQRSkgcmVxdWlyZXMgYSBrZXJuZWwgdmVyc2lvbgogICAgICAgICAgICAgICAgICAgICAgIG9mIDIuNi4yMiBvciBtb3JlIHJlY2VudC4gIEFkZGl0aW9uYWxseSwgZnVsbCBzdXBwb3J0IG9mIFNQRSBwcm9maWxpbmcgcmVxdWlyZXMgYSBCRkQgbGlicmFyeQogICAgICAgICAgICAgICAgICAgICAgIGZyb20gYmludXRpbHMgY29kZSBkYXRlZCBKYW51YXJ5IDIwMDcgb3IgbGF0ZXIuICBUbyBlbnN1cmUgdGhlIHByb3BlciBCRkQgc3VwcG9ydCBleGlzdHMsIHJ1bgogICAgICAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZSBjbGFzcz0iY29kZSI+Y29uZmlndXJlPC9jb2RlPiB1dGlsaXR5IHdpdGggPGNvZGUgY2xhc3M9ImNvZGUiPi0td2l0aC10YXJnZXQ9Y2VsbC1iZTwvY29kZT4uCgoJCSAgICAgICBQcm9maWxpbmcgdGhlIENlbGwgQnJvYWRiYW5kIEVuZ2luZSB1c2luZyBTUFUgZXZlbnRzIHJlcXVpcmVzIGEga2VybmVsIHZlcnNpb24gb2YgMi42LjI5LXJjMQoJCSAgICAgICBvciAgbW9yZSByZWNlbnQuCgogICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUiIHRpdGxlPSJOb3RlIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+PGgzIGNsYXNzPSJ0aXRsZSI+Tm90ZTwvaDM+QXR0ZW1wdGluZyB0byBwcm9maWxlIFNQRXMgd2l0aCBrZXJuZWwgdmVyc2lvbnMgb2xkZXIgdGhhbiAyLjYuMjIgbWF5IGNhdXNlIHRoZQogICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbSB0byBjcmFzaC48L2Rpdj4KICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxwPgoJCQlJbnN0cnVjdGlvbi1CYXNlZCBTYW1wbGluZyAoSUJTKSBwcm9maWxlIG9uIEFNRCBmYW1pbHkxMGggcHJvY2Vzc29ycyByZXF1aXJlcyAKCQkJa2VybmVsIHZlcnNpb24gMi42LjI4LXJjMiBvciBsYXRlci4KCQkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPm1vZHV0aWxzIDIuNC42IG9yIGFib3ZlPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJCVlvdSBzaG91bGQgaGF2ZSBpbnN0YWxsZWQgbW9kdXRpbHMgMi40LjYgb3IgaGlnaGVyIChpbiBmYWN0IGVhcmxpZXIgdmVyc2lvbnMgd29yayB3ZWxsIGluIGFsbW9zdCBhbGwKCQkJY2FzZXMpLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj5TdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJCUZvciBJbnRlbCBJQTMyLCBhIENQVSB3aXRoIGVpdGhlciBhIFA2IGdlbmVyYXRpb24gb3IgUGVudGl1bSA0IGNvcmUgaXMKCQkJcmVxdWlyZWQuIEluIG1hcmtldGluZyB0ZXJtcyB0aGlzIHRyYW5zbGF0ZXMgdG8gYW55dGhpbmcKCQkJYmV0d2VlbiBhbiBJbnRlbCBQZW50aXVtIFBybyAobm90IFBlbnRpdW0gQ2xhc3NpY3MpIGFuZAoJCQlhIFBlbnRpdW0gNCAvIFhlb24sIGluY2x1ZGluZyBhbGwgQ2VsZXJvbnMuICBUaGUgQU1ECgkJCUF0aGxvbiwgT3B0ZXJvbiwgUGhlbm9tLCBhbmQgVHVyaW9uIENQVXMgYXJlIGFsc28gc3VwcG9ydGVkLiAgT3RoZXIgSUEzMgoJCQlDUFUgdHlwZXMgb25seSBzdXBwb3J0IHRoZSBSVEMgbW9kZSBvZiBPUHJvZmlsZTsgcGxlYXNlCgkJCXNlZSBsYXRlciBpbiB0aGlzIG1hbnVhbCBmb3IgZGV0YWlscy4gIEh5cGVyLXRocmVhZGVkIFBlbnRpdW0gSVZzCgkJCWFyZSBub3Qgc3VwcG9ydGVkIGluIDIuNC4gRm9yIDIuNCBrZXJuZWxzLCB0aGUgSW50ZWwKCQkJSUEtNjQgQ1BVcyBhcmUgYWxzbyBzdXBwb3J0ZWQuIEZvciAyLjYga2VybmVscywgdGhlcmUgaXMgYWRkaXRpb25hbGx5CgkJCXN1cHBvcnQgZm9yIEFscGhhIHByb2Nlc3NvcnMsIE1JUFMsIEFSTSwgeDg2LTY0LCBzcGFyYzY0LCBwcGM2NCwgQVZSMzIsIGFuZCwKCQkJaW4gdGltZXIgbW9kZSwgUEEtUklTQyBhbmQgczM5MC4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+VW5pcHJvY2Vzc29yIG9yIFNNUDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCQlTTVAgbWFjaGluZXMgYXJlIGZ1bGx5IHN1cHBvcnRlZC4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+UmVxdWlyZWQgbGlicmFyaWVzPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJCVRoZXNlIGxpYnJhcmllcyBhcmUgcmVxdWlyZWQgOiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnBvcHQ8L2NvZGU+LCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmJmZDwvY29kZT4sCgkJCTxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bGliZXJ0eTwvY29kZT4gKGRlYmlhbiB1c2VyczogbGliaWJlcnR5IGlzIHByb3ZpZGVkIGluIGJpbnV0aWxzLWRldiBwYWNrYWdlKSwgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kbDwvY29kZT4sCgkJCXBsdXMgdGhlIHN0YW5kYXJkIEMrKyBsaWJyYXJpZXMuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPlJlcXVpcmVkIHVzZXIgYWNjb3VudDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCQlGb3Igc2VjdXJlIHByb2Nlc3Npbmcgb2Ygc2FtcGxlIGRhdGEgZnJvbSBKSVQgdmlydHVhbCBtYWNoaW5lcyAoZS5nLiwgSmF2YSksCgkJCXRoZSBzcGVjaWFsIHVzZXIgYWNjb3VudCAib3Byb2ZpbGUiIG11c3QgZXhpc3Qgb24gdGhlIHN5c3RlbS4gIFRoZSAnY29uZmlndXJlJwoJCQlhbmQgJ21ha2UgaW5zdGFsbCcgb3BlcmF0aW9ucyB3aWxsIHByaW50IHdhcm5pbmcgbWVzc2FnZXMgaWYgdGhpcwoJCQlhY2NvdW50IGlzIG5vdCBmb3VuZC4gIElmIHlvdSBpbnRlbmQgdG8gcHJvZmlsZSBKSVRlZCBjb2RlLCB5b3UgbXVzdCBjcmVhdGUKCQkJYSBncm91cCBhY2NvdW50IG5hbWVkICdvcHJvZmlsZScgYW5kIHRoZW4gY3JlYXRlIHRoZSAnb3Byb2ZpbGUnIHVzZXIgYWNjb3VudCwKCQkJc2V0dGluZyB0aGUgZGVmYXVsdCBncm91cCB0byAnb3Byb2ZpbGUnLiAgQSBydW50aW1lIGVycm9yIG1lc3NhZ2UgaXMgcHJpbnRlZCB0bwoJCQl0aGUgb3Byb2ZpbGUgZGFlbW9uIGxvZyB3aGVuIHByb2Nlc3NpbmcgSklUIHNhbXBsZXMgaWYgdGhpcyBzcGVjaWFsIHVzZXIKCQkJYWNjb3VudCBjYW5ub3QgYmUgZm91bmQuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPk9Qcm9maWxlIEdVSTwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCQlUaGUgdXNlIG9mIHRoZSBHVUkgdG8gc3RhcnQgdGhlIHByb2ZpbGVyIHJlcXVpcmVzIHRoZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPlF0PC9jb2RlPiBsaWJyYXJ5LgoJCQlFaXRoZXIgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5RdCAzPC9jb2RlPiBvciA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPlF0IDQ8L2NvZGU+IHNob3VsZCB3b3JrLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPkVMRjwvYWNyb255bT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCQlQcm9iYWJseSBub3QgdG9vIHN0cmVudW91cyBhIHJlcXVpcmVtZW50LCBidXQgb2xkZXIgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPkEuT1VUPC9hY3JvbnltPiBiaW5hcmllcy9saWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPksmYW1wO1IgY29kaW5nIHN0eWxlPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJCU9LLCBzbyBpdCdzIG5vdCByZWFsbHkgYSByZXF1aXJlbWVudCwgYnV0IEkgd2lzaCBpdCB3YXMuLi4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iMy6gSW50ZXJuZXQgcmVzb3VyY2VzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9InJlc291cmNlcyI+PC9hPjMuoEludGVybmV0IHJlc291cmNlczwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPldlYiBwYWdlPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJCVRoZXJlIGlzIGEgd2ViIHBhZ2UgKHdoaWNoIHlvdSBtYXkgYmUgcmVhZGluZyBub3cpIGF0CgkJCTxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL29wcm9maWxlLnNmLm5ldC8iPmh0dHA6Ly9vcHJvZmlsZS5zZi5uZXQvPC9hPi4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+RG93bmxvYWQ8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkJWW91IGNhbiBkb3dubG9hZCBhIHNvdXJjZSB0YXJiYWxsIG9yIGNoZWNrIG91dCBjb2RlIGZyb20KCQkJdGhlIGNvZGUgcmVwb3NpdG9yeSBhdCB0aGUgc291cmNlZm9yZ2UgcGFnZSwKCQkJPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vc2YubmV0L3Byb2plY3RzL29wcm9maWxlLyI+aHR0cDovL3NmLm5ldC9wcm9qZWN0cy9vcHJvZmlsZS88L2E+LgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj5NYWlsaW5nIGxpc3Q8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkJVGhlcmUgaXMgYSBsb3ctdHJhZmZpYyBPUHJvZmlsZS1zcGVjaWZpYyBtYWlsaW5nIGxpc3QsIGRldGFpbHMgYXQKCQkJPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vc2YubmV0L21haWwvP2dyb3VwX2lkPTE2MTkxIj5odHRwOi8vc2YubmV0L21haWwvP2dyb3VwX2lkPTE2MTkxPC9hPi4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+QnVnIHRyYWNrZXI8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkJVGhlcmUgaXMgYSBidWcgdHJhY2tlciBmb3IgT1Byb2ZpbGUgYXQgU291cmNlRm9yZ2UsCgkJCTxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3NmLm5ldC90cmFja2VyLz9ncm91cF9pZD0xNjE5MSZhbXA7YXRpZD0xMTYxOTEiPmh0dHA6Ly9zZi5uZXQvdHJhY2tlci8/Z3JvdXBfaWQ9MTYxOTEmYW1wO2F0aWQ9MTE2MTkxPC9hPi4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+SVJDIGNoYW5uZWw8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkJU2V2ZXJhbCBPUHJvZmlsZSBkZXZlbG9wZXJzIGFuZCB1c2VycyBzb21ldGltZXMgaGFuZyBvdXQgb24gY2hhbm5lbCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz4jb3Byb2ZpbGU8L3N0cm9uZz48L3NwYW4+CgkJCW9uIHRoZSA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9vZnRjLm5ldCI+T0ZUQzwvYT4gbmV0d29yay4gCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjQuoEluc3RhbGxhdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJpbnN0YWxsIj48L2E+NC6gSW5zdGFsbGF0aW9uPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpGaXJzdCB5b3UgbmVlZCB0byBidWlsZCBPUHJvZmlsZSBhbmQgaW5zdGFsbCBpdC4gPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Li9jb25maWd1cmU8L3N0cm9uZz48L3NwYW4+LCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5tYWtlPC9zdHJvbmc+PC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+bWFrZSBpbnN0YWxsPC9zdHJvbmc+PC9zcGFuPgppcyBvZnRlbiBhbGwgeW91IG5lZWQsIGJ1dCBub3RlIHRoZXNlIGFyZ3VtZW50cyB0byA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz4uL2NvbmZpZ3VyZTwvc3Ryb25nPjwvc3Bhbj4gOgo8L3A+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXdpdGgtbGludXg8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkJVXNlIHRoaXMgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIHRoZSBrZXJuZWwgc291cmNlIHRyZWUgeW91IHdpc2gKCQkJdG8gY29tcGlsZSBhZ2FpbnN0LiBUaGUga2VybmVsIG1vZHVsZSBpcyBidWlsdCBhZ2FpbnN0IHRoaXMgc291cmNlIGFuZAoJCQl3aWxsIG9ubHkgd29yayB3aXRoIGEgcnVubmluZyBrZXJuZWwgYnVpbHQgZnJvbSB0aGUgc2FtZSBzb3VyY2Ugd2l0aAoJCQlleGFjdCBzYW1lIG9wdGlvbnMsIHNvIGl0IGlzIGltcG9ydGFudCB5b3Ugc3BlY2lmeSB0aGlzIG9wdGlvbiBpZiB5b3UgbmVlZAoJCQl0by4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0td2l0aC1qYXZhPC9jb2RlPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJCVVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgbmVlZCB0byBwcm9maWxlIEphdmEgYXBwbGljYXRpb25zLiAgQWxzbywgc2VlCgkJCTxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjcmVxdWlyZW1lbnRzIiB0aXRsZT0iMi6gU3lzdGVtIHJlcXVpcmVtZW50cyI+U2VjdGlvbqAyLCAmIzgyMjA7U3lzdGVtIHJlcXVpcmVtZW50cyYjODIyMTs8L2E+LCAiUmVxdWlyZWQgdXNlciBhY2NvdW50Ii4gIFRoaXMgb3B0aW9uCgkJCWlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhlIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChKREspCgkJCXNvdXJjZSB0cmVlIHlvdSB3aXNoIHRvIHVzZS4gVGhpcyBpcyBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBpbnRlcmZhY2UgZGVzY3JpcHRpb24KCQkJb2YgdGhlIEpWTVBJIChvciBKVk1USSkgaW50ZXJmYWNlIHRvIGNvbXBpbGUgdGhlIEpJVCBzdXBwb3J0IGNvZGUgc3VjY2Vzc2Z1bGx5LgoJCQk8L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlIiB0aXRsZT0iTm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj5Ob3RlPC9oMz4KICAgICAgICAgICAgICAgICAgPHA+CgkJCQlUaGUgSmF2YSBSdW50aW1lIEVudmlyb25tZW50IChKUkUpIGRvZXMgbm90IGluY2x1ZGUgdGhlIGRldmVsb3BtZW50CgkJCQlmaWxlcyB0aGF0IGFyZSByZXF1aXJlZCB0byBjb21waWxlIHRoZSBKSVQgc3VwcG9ydCBjb2RlLCBzbyB0aGUgZnVsbAoJCQkJSkRLIG11c3QgYmUgaW5zdGFsbGVkIGluIG9yZGVyIHRvIHVzZSB0aGlzIG9wdGlvbi4KCQkJCTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHA+CgkJCUJ5IGRlZmF1bHQsIHRoZSBPcHJvZmlsZSBKSVQgc3VwcG9ydCBsaWJyYXJpZXMgd2lsbCBiZSBpbnN0YWxsZWQgaW4KCQkJPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4mbHQ7b3Byb2ZfaW5zdGFsbF9kaXImZ3Q7L2xpYi9vcHJvZmlsZTwvY29kZT4uICBUbyBidWlsZAoJCQlhbmQgaW5zdGFsbCBPUHJvZmlsZSBhbmQgdGhlIEpJVCBzdXBwb3J0IGxpYnJhcmllcyBhcyA2NC1iaXQsIHlvdSBjYW4KCQkJZG8gc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZzoKCQkJPC9wPgogICAgICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CgkJCSMgQ0ZMQUdTPSItbTY0IiBDWFhGTEFHUz0iLW02NCIgLi9jb25maWd1cmUgXAoJCQktLXdpdGgta2VybmVsLXN1cHBvcnQgLS13aXRoLWphdmE9e215X2pka19pbnN0YWxsZGlyfSBcCgkJCS0tbGliZGlyPS91c3IvbG9jYWwvbGliNjQKCQkJPC9wcmU+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8cD4KCQkJPC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZSIgdGl0bGU9Ik5vdGUiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47IG1hcmdpbi1yaWdodDogMC41aW47Ij4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+Tm90ZTwvaDM+CiAgICAgICAgICAgICAgICAgIDxwPgoJCQkJSWYgeW91IGVuY291bnRlciBlcnJvcnMgYnVpbGRpbmcgNjQtYml0LCB5b3Ugc2hvdWxkCgkJCQlpbnN0YWxsIGxpYnRvb2wgMS41LjI2IG9yIGxhdGVyIHNpbmNlIHRoYXQgcmVsZWFzZSBvZgoJCQkJbGlidG9vbCBmaXhlcyBrbm93biBwcm9ibGVtcyBmb3IgY2VydGFpbiBwbGF0Zm9ybXMuCgkJCQlJZiB5b3UgaW5zdGFsbCBsaWJ0b29sIGludG8gYSBub24tc3RhbmRhcmQgbG9jYXRpb24sCgkJCQl5b3UnbGwgbmVlZCB0byBlZGl0IHRoZSBpbnZvY2F0aW9uIG9mICdhY2xvY2FsJyBpbgoJCQkJT1Byb2ZpbGUncyBhdXRvZ2VuLnNoIGFzIGZvbGxvd3MgKGFzc3VtZSBhbiBpbnN0YWxsCgkJCQlsb2NhdGlvbiBvZiAvdXNyL2xvY2FsKToKCQkJCTwvcD4KICAgICAgICAgICAgICAgICAgPHA+CgkJCQk8Y29kZSBjbGFzcz0iY29kZSI+YWNsb2NhbCAtSSBtNCAtSSAvdXNyL2xvY2FsL3NoYXJlL2FjbG9jYWw8L2NvZGU+CgkJCQk8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS13aXRoLWtlcm5lbC1zdXBwb3J0PC9jb2RlPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJCVVzZSB0aGlzIG9wdGlvbiB3aXRoIDIuNiBhbmQgYWJvdmUga2VybmVscyB0byBpbmRpY2F0ZSB0aGUgCgkgICAgCQlrZXJuZWwgcHJvdmlkZXMgdGhlIE9Qcm9maWxlIGRldmljZSBkcml2ZXIuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXdpdGgtcXQtZGlyL2luY2x1ZGVzL2xpYnJhcmllczwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCQlTcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBRdCBoZWFkZXJzIGFuZCBsaWJyYXJpZXMuIEl0IGRlZmF1bHRzIHRvIHNlYXJjaGluZyBpbgoJCQk8Y29kZSBjbGFzcz0iY29uc3RhbnQiPiRRVERJUjwvY29kZT4gaWYgdGhlc2UgYXJlIG5vdCBzcGVjaWZpZWQuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPGEgaWQ9ImRpc2FibGUtd2Vycm9yIj48L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGlzYWJsZS13ZXJyb3I8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkJRGV2ZWxvcG1lbnQgdmVyc2lvbnMgb2YgT1Byb2ZpbGUgYnVpbGQgYnkKCQkJZGVmYXVsdCB3aXRoIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1XZXJyb3I8L2NvZGU+LiBUaGlzIG9wdGlvbiB0dXJucwoJCQk8Y29kZSBjbGFzcz0ib3B0aW9uIj4tV2Vycm9yPC9jb2RlPiBvZmYuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPGEgaWQ9ImRpc2FibGUtb3B0aW1pemF0aW9uIj48L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGlzYWJsZS1vcHRpbWl6YXRpb248L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkJRGlzYWJsZSB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LU8yPC9jb2RlPiBjb21waWxlciBmbGFnCgkJCSh1c2VmdWwgaWYgeW91IGRpc2NvdmVyIGFuIE9Qcm9maWxlIGJ1ZyBhbmQgd2FudCB0byBnaXZlIGEgdXNlZnVsCgkJCWJhY2stdHJhY2UgZXRjLikKCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CllvdSdsbCBuZWVkIHRvIGhhdmUgYSBjb25maWd1cmVkIGtlcm5lbCBzb3VyY2UgZm9yIHRoZSBjdXJyZW50IGtlcm5lbAp0byBidWlsZCB0aGUgbW9kdWxlIGZvciAyLjQga2VybmVscy4gIFNpbmNlIGFsbCBkaXN0cmlidXRpb25zIHByb3ZpZGUgZGlmZmVyZW50IGtlcm5lbHMgaXQncyB1bmxpa2VseSB0aGUgcnVubmluZyBrZXJuZWwgbWF0Y2ggdGhlIGNvbmZpZ3VyZWQgc291cmNlCnlvdSBpbnN0YWxsZWQuIFRoZSBzYWZlc3Qgd2F5IGlzIHRvIHJlY29tcGlsZSB5b3VyIG93biBrZXJuZWwsIHJ1biBpdCBhbmQgY29tcGlsZSBvcHJvZmlsZS4gSXQgaXMgYWxzbyByZWNvbW1lbmRlZCB0aGF0IGlmIHlvdSBoYXZlIGEKdW5pcHJvY2Vzc29yIG1hY2hpbmUsIHlvdSBlbmFibGUgdGhlIGxvY2FsIEFQSUMgLyBJT19BUElDIHN1cHBvcnQgZm9yCnlvdXIga2VybmVsICh0aGlzIGlzIGF1dG9tYXRpY2FsbHkgZW5hYmxlZCBmb3IgU01QIGtlcm5lbHMpLiBXaXRoIG1hbnkgQklPUywga2VybmVsICZndDs9IDIuNi45IGFuZCBVUCBrZXJuZWwgaXQncyBub3Qgc3VmZmljaWVudCB0byBlbmFibGUgdGhlIGxvY2FsIEFQSUMgeW91IG11c3QgYWxzbyB0dXJuIGl0IG9uIGV4cGxpY2l0bHkgYXQgYm9vdCB0aW1lIGJ5IHByb3ZpZGluZyAibGFwaWMiIG9wdGlvbiB0byB0aGUga2VybmVsLiBPbgptYWNoaW5lcyB3aXRoIHBvd2VyIG1hbmFnZW1lbnQsIHN1Y2ggYXMgbGFwdG9wcywgdGhlIHBvd2VyIG1hbmFnZW1lbnQKbXVzdCBiZSB0dXJuZWQgb2ZmIHdoZW4gdXNpbmcgT1Byb2ZpbGUgd2l0aCAyLjQga2VybmVscy4gVGhlIHBvd2VyIG1hbmFnZW1lbnQgc29mdHdhcmUKaW4gdGhlIEJJT1MgY2Fubm90IGhhbmRsZSB0aGUgbm9uLW1hc2thYmxlIGludGVycnVwdHMgKE5NSXMpIHVzZWQgYnkKT1Byb2ZpbGUgZm9yIGRhdGEgY29sbGVjdGlvbi4gSWYgeW91IHVzZSB0aGUgTk1JIHdhdGNoZG9nLCBiZSBhd2FyZSB0aGF0CnRoZSB3YXRjaGRvZyBpcyBkaXNhYmxlZCB3aGVuIHByb2ZpbGluZyBzdGFydHMsIGFuZCBub3QgcmUtZW5hYmxlZCB1bnRpbCB0aGUKT1Byb2ZpbGUgbW9kdWxlIGlzIHJlbW92ZWQgKG9yLCBpbiAyLjYsIHdoZW4gT1Byb2ZpbGUgaXMgbm90IHJ1bm5pbmcpLiBJZiB5b3UgY29tcGlsZSBPUHJvZmlsZSBmb3IKYSAyLjIga2VybmVsIHlvdSBtdXN0IGJlIHJvb3QgdG8gY29tcGlsZSB0aGUgbW9kdWxlLiBJZiB5b3UgYXJlIHVzaW5nCjIuNiBrZXJuZWxzIG9yIGhpZ2hlciwgeW91IGRvIG5vdCBuZWVkIGtlcm5lbCBzb3VyY2UsIGFzIGxvbmcgYXMgdGhlCk9Qcm9maWxlIGRyaXZlciBpcyBlbmFibGVkOyBhZGRpdGlvbmFsbHksIHlvdSBzaG91bGQgbm90IG5lZWQgdG8gZGlzYWJsZQpwb3dlciBtYW5hZ2VtZW50Lgo8L3A+CiAgICAgICAgICA8cD4KUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCBzYXZlIG9yIGhhdmUgYXZhaWxhYmxlIHRoZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnZtbGludXg8L2NvZGU+IGZpbGUKZ2VuZXJhdGVkIGR1cmluZyBhIGtlcm5lbCBjb21waWxlLCBhcyBPUHJvZmlsZSBuZWVkcyBpdCAoeW91IGNhbiB1c2UKPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1uby12bWxpbnV4PC9jb2RlPiwgYnV0IHRoaXMgd2lsbCBwcmV2ZW50IGtlcm5lbCBwcm9maWxpbmcpLgo8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDEiIHRpdGxlPSI1LqBVbmluc3RhbGxpbmcgT1Byb2ZpbGUiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0idW5pbnN0YWxsIj48L2E+NS6gVW5pbnN0YWxsaW5nIE9Qcm9maWxlPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpZb3UgbXVzdCBoYXZlIHRoZSBzb3VyY2UgdHJlZSBhdmFpbGFibGUgdG8gdW5pbnN0YWxsIE9Qcm9maWxlOyBhIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm1ha2UgdW5pbnN0YWxsPC9zdHJvbmc+PC9zcGFuPiB3aWxsCnJlbW92ZSBhbGwgaW5zdGFsbGVkIGZpbGVzIGV4Y2VwdCB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiB0aGUgZGlyZWN0b3J5IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+fi8ub3Byb2ZpbGU8L2NvZGU+Lgo8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFwdGVyIiB0aXRsZT0iQ2hhcHRlcqAyLqBPdmVydmlldyI+CiAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9Im92ZXJ2aWV3Ij48L2E+Q2hhcHRlcqAyLqBPdmVydmlldzwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9jIj4KICAgICAgICAgIDxwPgogICAgICAgICAgICA8Yj5UYWJsZSBvZiBDb250ZW50czwvYj4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkbD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjZ2V0dGluZy1zdGFydGVkIj4xLiBHZXR0aW5nIHN0YXJ0ZWQ8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN0b29scy1vdmVydmlldyI+Mi4gVG9vbHMgc3VtbWFyeTwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iMS6gR2V0dGluZyBzdGFydGVkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9ImdldHRpbmctc3RhcnRlZCI+PC9hPjEuoEdldHRpbmcgc3RhcnRlZDwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KQmVmb3JlIHlvdSBjYW4gdXNlIE9Qcm9maWxlLCB5b3UgbXVzdCBzZXQgaXQgdXAuIFRoZSBtaW5pbXVtIHNldHVwIHJlcXVpcmVkIGZvciB0aGlzCmlzIHRvIHRlbGwgT1Byb2ZpbGUgd2hlcmUgdGhlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+dm1saW51eDwvY29kZT4gZmlsZSBjb3JyZXNwb25kaW5nIHRvIHRoZQpydW5uaW5nIGtlcm5lbCBpcywgZm9yIGV4YW1wbGUgOgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj5vcGNvbnRyb2wgLS12bWxpbnV4PS9ib290L3ZtbGludXgtYHVuYW1lIC1yYDwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHA+CklmIHlvdSBkb24ndCB3YW50IHRvIHByb2ZpbGUgdGhlIGtlcm5lbCBpdHNlbGYsCnlvdSBjYW4gdGVsbCBPUHJvZmlsZSB5b3UgZG9uJ3QgaGF2ZSBhIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+dm1saW51eDwvY29kZT4gZmlsZSA6CjwvcD4KICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPm9wY29udHJvbCAtLW5vLXZtbGludXg8L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxwPgpOb3cgd2UgYXJlIHJlYWR5IHRvIHN0YXJ0IHRoZSBkYWVtb24gKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcm9maWxlZDwvc3Ryb25nPjwvc3Bhbj4pIHdoaWNoIGNvbGxlY3RzCnRoZSBwcm9maWxlIGRhdGEgOgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj5vcGNvbnRyb2wgLS1zdGFydDwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHA+CldoZW4gSSB3YW50IHRvIHN0b3AgcHJvZmlsaW5nLCBJIGNhbiBkbyBzbyB3aXRoIDoKPC9wPgogICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+b3Bjb250cm9sIC0tc2h1dGRvd248L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxwPgpOb3RlIHRoYXQgdW5saWtlIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPmdwcm9mPC9zdHJvbmc+PC9zcGFuPiwgbm8gaW5zdHJ1bWVudGF0aW9uICg8Y29kZSBjbGFzcz0ib3B0aW9uIj4tcGc8L2NvZGU+CmFuZCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tYTwvY29kZT4gb3B0aW9ucyB0byA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5nY2M8L3N0cm9uZz48L3NwYW4+KQppcyBuZWNlc3NhcnkuCjwvcD4KICAgICAgICAgIDxwPgpQZXJpb2RpY2FsbHkgKG9yIG9uIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbCAtLXNodXRkb3duPC9zdHJvbmc+PC9zcGFuPiBvciA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGNvbnRyb2wgLS1kdW1wPC9zdHJvbmc+PC9zcGFuPikKdGhlIHByb2ZpbGUgZGF0YSBpcyB3cml0dGVuIG91dCBpbnRvIHRoZSAkU0VTU0lPTl9ESVIvc2FtcGxlcyBkaXJlY3RvcnkgKGJ5IGRlZmF1bHQgYXQgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vdmFyL2xpYi9vcHJvZmlsZS9zYW1wbGVzPC9jb2RlPikuClRoZXNlIHByb2ZpbGUgZmlsZXMgY292ZXIgc2hhcmVkIGxpYnJhcmllcywgYXBwbGljYXRpb25zLCB0aGUga2VybmVsICh2bWxpbnV4KSwgYW5kIGtlcm5lbCBtb2R1bGVzLgpZb3UgY2FuIGNsZWFyIHRoZSBwcm9maWxlIGRhdGEgKGF0IGFueSB0aW1lKSB3aXRoIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbCAtLXJlc2V0PC9zdHJvbmc+PC9zcGFuPi4KPC9wPgogICAgICAgICAgPHA+ClRvIHBsYWNlIHRoZXNlIHNhbXBsZSBkYXRhYmFzZSBmaWxlcyBpbiBhIHNwZWNpZmljIGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGxvY2F0aW9uICg8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi92YXIvbGliL29wcm9maWxlPC9jb2RlPikgdXNlIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlc3Npb24tZGlyPWRpcjwvY29kZT4gb3B0aW9uLiBZb3UgbXVzdCBhbHNvIHNwZWNpZnkgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2Vzc2lvbi1kaXI8L2NvZGU+IHRvIHRlbGwgdGhlIHRvb2xzIHRvIGNvbnRpbnVlIHVzaW5nIHRoaXMgZGlyZWN0b3J5LiAoSW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIGFsbG93IHRoaXMgdG8gYmUgc3BlY2lmaWVkIGluIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLikgOgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj5vcGNvbnRyb2wgLS1uby12bWxpbnV4IC0tc2Vzc2lvbi1kaXI9L2hvbWUvbWUvdG1wc2Vzc2lvbjwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+b3Bjb250cm9sIC0tc3RhcnQgLS1zZXNzaW9uLWRpcj0vaG9tZS9tZS90bXBzZXNzaW9uPC9wcmU+CiAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICA8cD4KWW91IGNhbiBnZXQgc3VtbWFyaWVzIG9mIHRoaXMgZGF0YSBpbiBhIG51bWJlciBvZiB3YXlzIGF0IGFueSB0aW1lLiBUbyBnZXQgYSBzdW1tYXJ5IG9mCmRhdGEgYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtIGZvciBhbGwgb2YgdGhlc2UgcHJvZmlsZXMsIHlvdSBjYW4gZG8gOgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj5vcHJlcG9ydCBbLS1zZXNzaW9uLWRpcj1kaXJdPC9wcmU+CiAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICA8cD4KT3IgdG8gZ2V0IGEgbW9yZSBkZXRhaWxlZCBzdW1tYXJ5LCBmb3IgYSBwYXJ0aWN1bGFyIGltYWdlLCB5b3UgY2FuIGRvIHNvbWV0aGluZyBsaWtlIDoKPC9wPgogICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+b3ByZXBvcnQgLWwgL2Jvb3Qvdm1saW51eC1gdW5hbWUgLXJgPC9wcmU+CiAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICA8cD4KVGhlcmUgYXJlIGFsc28gYSBudW1iZXIgb2Ygb3RoZXIgd2F5cyBvZiBwcmVzZW50aW5nIHRoZSBkYXRhLCBhcyBkZXNjcmliZWQgbGF0ZXIgaW4gdGhpcyBtYW51YWwuCk5vdGUgdGhhdCBPUHJvZmlsZSB3aWxsIGNob29zZSBhIGRlZmF1bHQgcHJvZmlsaW5nIHNldHVwIGZvciB5b3UuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlcgpvZiBvcHRpb25zIHlvdSBjYW4gcGFzcyB0byA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGNvbnRyb2w8L3N0cm9uZz48L3NwYW4+IGlmIHlvdSBuZWVkIHRvIGNoYW5nZSBzb21ldGhpbmcsCmFsc28gZGV0YWlsZWQgbGF0ZXIuCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjIuoFRvb2xzIHN1bW1hcnkiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0idG9vbHMtb3ZlcnZpZXciPjwvYT4yLqBUb29scyBzdW1tYXJ5PC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpUaGlzIHNlY3Rpb24gZ2l2ZXMgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYXZhaWxhYmxlIE9Qcm9maWxlIHV0aWxpdGllcyBhbmQgdGhlaXIgcHVycG9zZS4KPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vcGhlbHA8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQlUaGlzIHV0aWxpdHkgbGlzdHMgdGhlIGF2YWlsYWJsZSBldmVudHMgYW5kIHNob3J0IGRlc2NyaXB0aW9ucy4KCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vcGNvbnRyb2w8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQlVc2VkIGZvciBjb250cm9sbGluZyB0aGUgT1Byb2ZpbGUgZGF0YSBjb2xsZWN0aW9uLCBkaXNjdXNzZWQgaW4gPGEgY2xhc3M9InhyZWYiIGhyZWY9IiNjb250cm9sbGluZyIgdGl0bGU9IkNoYXB0ZXKgMy6gQ29udHJvbGxpbmcgdGhlIHByb2ZpbGVyIj5DaGFwdGVyoDMsIDxpPkNvbnRyb2xsaW5nIHRoZSBwcm9maWxlcjwvaT48L2E+LgoJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmFnZW50IGxpYnJhcmllczwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCQlVc2VkIGJ5IHZpcnR1YWwgbWFjaGluZXMgKGxpa2UgdGhlIEphdmEgVk0pIHRvIHJlY29yZCBpbmZvcm1hdGlvbiBhYm91dCBKSVRlZCBjb2RlIGJlaW5nIHByb2ZpbGVkLiBTZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9IiNzZXR1cC1qaXQiIHRpdGxlPSIyLqBTZXR0aW5nIHVwIHRoZSBKSVQgcHJvZmlsaW5nIGZlYXR1cmUiPlNlY3Rpb26gMiwgJiM4MjIwO1NldHRpbmcgdXAgdGhlIEpJVCBwcm9maWxpbmcgZmVhdHVyZSYjODIyMTs8L2E+LgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vcHJlcG9ydDwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCVRoaXMgaXMgdGhlIG1haW4gdG9vbCBmb3IgcmV0cmlldmluZyB1c2VmdWwgcHJvZmlsZSBkYXRhLCBkZXNjcmliZWQgaW4KCQk8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI29wcmVwb3J0IiB0aXRsZT0iMi6gSW1hZ2Ugc3VtbWFyaWVzIGFuZCBzeW1ib2wgc3VtbWFyaWVzIChvcHJlcG9ydCkiPlNlY3Rpb26gMiwgJiM4MjIwO0ltYWdlIHN1bW1hcmllcyBhbmQgc3ltYm9sIHN1bW1hcmllcyAoPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+KSYjODIyMTs8L2E+LgoJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPm9wYW5ub3RhdGU8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQlUaGlzIHV0aWxpdHkgY2FuIGJlIHVzZWQgdG8gcHJvZHVjZSBhbm5vdGF0ZWQgc291cmNlLCBhc3NlbWJseSBvciBtaXhlZCBzb3VyY2UvYXNzZW1ibHkuCgkJU291cmNlIGxldmVsIGFubm90YXRpb24gaXMgYXZhaWxhYmxlIG9ubHkgaWYgdGhlIGFwcGxpY2F0aW9uIHdhcyBjb21waWxlZCB3aXRoIAoJCWRlYnVnZ2luZyBzeW1ib2xzLiBTZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9IiNvcGFubm90YXRlIiB0aXRsZT0iMy6gT3V0cHV0dGluZyBhbm5vdGF0ZWQgc291cmNlIChvcGFubm90YXRlKSI+U2VjdGlvbqAzLCAmIzgyMjA7T3V0cHV0dGluZyBhbm5vdGF0ZWQgc291cmNlICg8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGFubm90YXRlPC9zdHJvbmc+PC9zcGFuPikmIzgyMjE7PC9hPi4KCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vcGdwcm9mPC9jb2RlPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJVGhpcyB1dGlsaXR5IGNhbiBvdXRwdXQgZ3Byb2Ytc3R5bGUgZGF0YSBmaWxlcyBmb3IgYSBiaW5hcnksIGZvciB1c2Ugd2l0aAoJCTxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPmdwcm9mIC1wPC9zdHJvbmc+PC9zcGFuPi4gU2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjb3BncHJvZiIgdGl0bGU9IjUuoGdwcm9mLWNvbXBhdGlibGUgb3V0cHV0IChvcGdwcm9mKSI+U2VjdGlvbqA1LCAmIzgyMjA7PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Z3Byb2Y8L3N0cm9uZz48L3NwYW4+LWNvbXBhdGlibGUgb3V0cHV0ICg8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGdwcm9mPC9zdHJvbmc+PC9zcGFuPikmIzgyMjE7PC9hPi4KCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vcGFyY2hpdmU8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQlUaGlzIHV0aWxpdHkgY2FuIGJlIHVzZWQgdG8gY29sbGVjdCBleGVjdXRhYmxlcywgZGVidWdpbmZvLAoJCWFuZCBzYW1wbGUgZmlsZXMgYW5kIGNvcHkgdGhlIGZpbGVzIGludG8gYW4gYXJjaGl2ZS4KCQlUaGUgYXJjaGl2ZSBpcyBzZWxmLWNvbnRhaW5lZCBhbmQgY2FuIGJlIG1vdmVkIHRvIGFub3RoZXIKCQltYWNoaW5lIGZvciBmdXJ0aGVyIGFuYWx5c2lzLgoJCVNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI29wYXJjaGl2ZSIgdGl0bGU9IjYuoEFyY2hpdmluZyBtZWFzdXJlbWVudHMgKG9wYXJjaGl2ZSkiPlNlY3Rpb26gNiwgJiM4MjIwO0FyY2hpdmluZyBtZWFzdXJlbWVudHMgKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wYXJjaGl2ZTwvc3Ryb25nPjwvc3Bhbj4pJiM4MjIxOzwvYT4uCgk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+b3BpbXBvcnQ8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQlUaGlzIHV0aWxpdHkgY29udmVydHMgc2FtcGxlIGRhdGFiYXNlIGZpbGVzIGZyb20gYSBmb3JlaWduIGJpbmFyeSBmb3JtYXQgKGFiaSkgdG8KCQl0aGUgbmF0aXZlIGZvcm1hdC4gVGhpcyBpcyB1c2VmdWwgb25seSB3aGVuIG1vdmluZyBzYW1wbGUgZmlsZXMgYmV0d2VlbiBob3N0cywKCQlmb3IgYW5hbHlzaXMgb24gcGxhdGZvcm1zIG90aGVyIHRoYW4gdGhlIG9uZSB1c2VkIGZvciBjb2xsZWN0aW9uLgoJCVNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI29waW1wb3J0IiB0aXRsZT0iNy6gQ29udmVydGluZyBzYW1wbGUgZGF0YWJhc2UgZmlsZXMgKG9waW1wb3J0KSI+U2VjdGlvbqA3LCAmIzgyMjA7Q29udmVydGluZyBzYW1wbGUgZGF0YWJhc2UgZmlsZXMgKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9waW1wb3J0PC9zdHJvbmc+PC9zcGFuPikmIzgyMjE7PC9hPi4KCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGFwdGVyIiB0aXRsZT0iQ2hhcHRlcqAzLqBDb250cm9sbGluZyB0aGUgcHJvZmlsZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiPjxhIGlkPSJjb250cm9sbGluZyI+PC9hPkNoYXB0ZXKgMy6gQ29udHJvbGxpbmcgdGhlIHByb2ZpbGVyPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2MiPgogICAgICAgICAgPHA+CiAgICAgICAgICAgIDxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPgogICAgICAgICAgPC9wPgogICAgICAgICAgPGRsPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjb250cm9sbGluZy1kYWVtb24iPjEuIFVzaW5nIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcGNvbnRyb2xleGFtcGxlcyI+MS4xLiBFeGFtcGxlczwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZXZlbnRzcGVjIj4xLjIuIFNwZWNpZnlpbmcgcGVyZm9ybWFuY2UgY291bnRlciBldmVudHM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc2V0dXAtaml0Ij4yLiBTZXR0aW5nIHVwIHRoZSBKSVQgcHJvZmlsaW5nIGZlYXR1cmU8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzZXR1cC1qaXQtanZtIj4yLjEuIEpWTSBpbnN0cnVtZW50YXRpb248L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3Byb2ZpbGUtZ3VpIj4zLiBVc2luZyA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJvZl9zdGFydDwvc3Ryb25nPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNkZXRhaWxlZC1wYXJhbWV0ZXJzIj40LiBDb25maWd1cmF0aW9uIGRldGFpbHM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNoYXJkd2FyZS1jb3VudGVycyI+NC4xLiBIYXJkd2FyZSBwZXJmb3JtYW5jZSBjb3VudGVyczwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcnRjIj40LjIuIE9Qcm9maWxlIGluIFJUQyBtb2RlPC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiN0aW1lciI+NC4zLiBPUHJvZmlsZSBpbiB0aW1lciBpbnRlcnJ1cHQgbW9kZTwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcDQiPjQuNC4gUGVudGl1bSA0IHN1cHBvcnQ8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2lhNjQiPjQuNS4gSW50ZWwgSXRhbml1bSAyIHN1cHBvcnQ8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3BwYzY0Ij40LjYuIFBvd2VyUEM2NCBzdXBwb3J0PC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjZWxsLWJlIj40LjcuIENlbGwgQnJvYWRiYW5kIEVuZ2luZSBzdXBwb3J0PC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNhbWQtaWJzLXN1cHBvcnQiPjQuOC4gQU1ENjQgKHg4Nl82NCkgSW5zdHJ1Y3Rpb24tQmFzZWQgU2FtcGxpbmcgKElCUykgc3VwcG9ydDwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjbWlzdXNlIj40LjkuIERhbmdlcm91cyBjb3VudGVyIHNldHRpbmdzPC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iMS6gVXNpbmcgb3Bjb250cm9sIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9ImNvbnRyb2xsaW5nLWRhZW1vbiI+PC9hPjEuoFVzaW5nIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj48L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CkluIHRoaXMgc2VjdGlvbiB3ZSBkZXNjcmliZSB0aGUgY29uZmlndXJhdGlvbiBhbmQgY29udHJvbCBvZiB0aGUgcHJvZmlsaW5nIHN5c3RlbQp3aXRoIG9wY29udHJvbCBpbiBtb3JlIGRlcHRoLgpUaGUgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bjb250cm9sPC9zdHJvbmc+PC9zcGFuPiBzY3JpcHQgaGFzIGEgZGVmYXVsdCBzZXR1cCwgYnV0IHlvdQpjYW4gYWx0ZXIgdGhpcyB3aXRoIHRoZSBvcHRpb25zIGdpdmVuIGJlbG93LiBJbiBwYXJ0aWN1bGFyLAppZiB5b3VyIGhhcmR3YXJlIHN1cHBvcnRzIHBlcmZvcm1hbmNlIGNvdW50ZXJzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0aGVtLgpUaGVyZSBhcmUgYSBudW1iZXIgb2YgY291bnRlcnMgKGZvciBleGFtcGxlLCBjb3VudGVyIDAgYW5kIGNvdW50ZXIgMQpvbiB0aGUgUGVudGl1bSBJSUkpLiBFYWNoIG9mIHRoZXNlIGNvdW50ZXJzIGNhbiBiZSBwcm9ncmFtbWVkIHdpdGgKYW4gZXZlbnQgdG8gY291bnQsIHN1Y2ggYXMgY2FjaGUgbWlzc2VzIG9yIE1NWCBvcGVyYXRpb25zLiBUaGUgZXZlbnQKY2hvc2VuIGZvciBlYWNoIGNvdW50ZXIgaXMgcmVmbGVjdGVkIGluIHRoZSBwcm9maWxlIGRhdGEgY29sbGVjdGVkCmJ5IE9Qcm9maWxlOiBmdW5jdGlvbnMgYW5kIGJpbmFyaWVzIGF0IHRoZSB0b3Agb2YgdGhlIHByb2ZpbGVzIHJlZmxlY3QKdGhhdCBtb3N0IG9mIHRoZSBjaG9zZW4gZXZlbnRzIGhhcHBlbmVkIHdpdGhpbiB0aGF0IGNvZGUuCjwvcD4KICAgICAgICAgIDxwPgpBZGRpdGlvbmFsbHksIGVhY2ggY291bnRlciBoYXMgYSAiY291bnQiIHZhbHVlOiB0aGlzIGNvcnJlc3BvbmRzIHRvIGhvdwpkZXRhaWxlZCB0aGUgcHJvZmlsZSBpcy4gVGhlIGxvd2VyIHRoZSB2YWx1ZSwgdGhlIG1vcmUgZnJlcXVlbnRseSBwcm9maWxlCnNhbXBsZXMgYXJlIHRha2VuLiBBIGNvdW50ZXIgY2FuIGNob29zZSB0byBzYW1wbGUgb25seSBrZXJuZWwgY29kZSwgdXNlci1zcGFjZSBjb2RlLApvciBib3RoIChib3RoIGlzIHRoZSBkZWZhdWx0KS4gRmluYWxseSwgc29tZSBldmVudHMgaGF2ZSBhICJ1bml0IG1hc2siCi0gdGhpcyBpcyBhIHZhbHVlIHRoYXQgZnVydGhlciByZXN0cmljdHMgdGhlIHR5cGVzIG9mIGV2ZW50IHRoYXQgYXJlIGNvdW50ZWQuIApUaGUgZXZlbnQgdHlwZXMgYW5kIHVuaXQgbWFza3MgZm9yIHlvdXIgQ1BVIGFyZSBsaXN0ZWQgYnkgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bjb250cm9sCi0tbGlzdC1ldmVudHM8L3N0cm9uZz48L3NwYW4+Lgo8L3A+CiAgICAgICAgICA8cD4KVGhlIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj4gc2NyaXB0IHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgYWN0aW9ucyA6CjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW5pdDwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCUxvYWRzIHRoZSBPUHJvZmlsZSBtb2R1bGUgaWYgcmVxdWlyZWQgYW5kIG1ha2VzIHRoZSBPUHJvZmlsZSBkcml2ZXIKCQlpbnRlcmZhY2UgYXZhaWxhYmxlLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZXR1cDwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCSAgICBGb2xsb3dlZCBieSBsaXN0IGFyZ3VtZW50cyBmb3IgcHJvZmlsaW5nIHNldCB1cC4gTGlzdCBvZiBhcmd1bWVudHMKCQkgICAgc2F2ZWQgaW4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vcm9vdC8ub3Byb2ZpbGUvZGFlbW9ucmM8L2NvZGU+LgoJCSAgICBHaXZpbmcgdGhpcyBvcHRpb24gaXMgbm90IG5lY2Vzc2FyeTsgeW91IGNhbiBqdXN0IGRpcmVjdGx5IHBhc3Mgb25lCgkJICAgIG9mIHRoZSBzZXR1cCBvcHRpb25zLCBlLmcuIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbCAtLW5vLXZtbGludXg8L3N0cm9uZz48L3NwYW4+LgoJCSAgPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXN0YXR1czwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCVNob3cgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc3RhcnQtZGFlbW9uPC9jb2RlPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJICAgIFN0YXJ0IHRoZSBvcHJvZmlsZSBkYWVtb24gd2l0aG91dCBzdGFydGluZyBhY3R1YWwgcHJvZmlsaW5nLiBUaGUgcHJvZmlsaW5nCgkJY2FuIHRoZW4gYmUgc3RhcnRlZCB1c2luZyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXN0YXJ0PC9jb2RlPi4gVGhpcyBpcyB1c2VmdWwgZm9yIGF2b2lkaW5nCgkJbWVhc3VyaW5nIHRoZSBjb3N0IG9mIGRhZW1vbiBzdGFydHVwLCBhcyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXN0YXJ0PC9jb2RlPiBpcyBhIHNpbXBsZQoJCXdyaXRlIHRvIGEgZmlsZSBpbiBvcHJvZmlsZWZzLiBOb3QgYXZhaWxhYmxlIGluIDIuMi8yLjQga2VybmVscy4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc3RhcnQ8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkgICAgU3RhcnQgZGF0YSBjb2xsZWN0aW9uIHdpdGggZWl0aGVyIGFyZ3VtZW50cyBwcm92aWRlZCBieSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNldHVwPC9jb2RlPgoJCW9yIGluZm9ybWF0aW9uIHNhdmVkIGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L3Jvb3QvLm9wcm9maWxlL2RhZW1vbnJjPC9jb2RlPi4gU3BlY2lmeWluZwoJCXRoZSBhZGRpdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZlcmJvc2U8L2NvZGU+IG1ha2VzIHRoZSBkYWVtb24gZ2VuZXJhdGUgbG90cyBvZiBkZWJ1ZyBkYXRhCgkJd2hpbHN0IGl0IGlzIHJ1bm5pbmcuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWR1bXA8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkgICAgRm9yY2UgYSBmbHVzaCBvZiB0aGUgY29sbGVjdGVkIHByb2ZpbGluZyBkYXRhIHRvIHRoZSBkYWVtb24uCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXN0b3A8L2NvZGU+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQkgICAgU3RvcCBkYXRhIGNvbGxlY3Rpb24gKHRoaXMgc2VwYXJhdGUgc3RlcCBpcyBub3QgcG9zc2libGUgd2l0aCAyLjIgb3IgMi40IGtlcm5lbHMpLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaHV0ZG93bjwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCSAgICBTdG9wIGRhdGEgY29sbGVjdGlvbiBhbmQga2lsbCB0aGUgZGFlbW9uLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1yZXNldDwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCSAgICBDbGVhcnMgb3V0IGRhdGEgZnJvbSBjdXJyZW50IHNlc3Npb24sIGJ1dCBsZWF2ZXMgc2F2ZWQgc2Vzc2lvbnMuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2F2ZT08L2NvZGU+c2Vzc2lvbl9uYW1lPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJICAgIFNhdmUgZGF0YSBmcm9tIGN1cnJlbnQgc2Vzc2lvbiB0byBzZXNzaW9uX25hbWUuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWRlaW5pdDwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgU2h1dHMgZG93biBkYWVtb24uIFVubG9hZCB0aGUgT1Byb2ZpbGUgbW9kdWxlIGFuZCBvcHJvZmlsZWZzLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1saXN0LWV2ZW50czwvY29kZT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCSAgICBMaXN0IGV2ZW50IHR5cGVzIGFuZCB1bml0IG1hc2tzLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oZWxwPC9jb2RlPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJICAgIEdlbmVyYXRlIHVzYWdlIG1lc3NhZ2VzLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KVGhlcmUgYXJlIGEgbnVtYmVyIG9mIHBvc3NpYmxlIHNldHRpbmdzLCBvZiB3aGljaCwgb25seQo8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZtbGludXg8L2NvZGU+IChvciA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW5vLXZtbGludXg8L2NvZGU+KQppcyByZXF1aXJlZC4gVGhlc2Ugc2V0dGluZ3MgYXJlIHN0b3JlZCBpbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPn4vLm9wcm9maWxlL2RhZW1vbnJjPC9jb2RlPi4KPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWJ1ZmZlci1zaXplPTwvY29kZT5udW08L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQlOdW1iZXIgb2Ygc2FtcGxlcyBpbiBrZXJuZWwgYnVmZmVyLiBXaGVuIHVzaW5nIGEgMi42IGtlcm5lbAoJCWJ1ZmZlciB3YXRlcnNoZWQgbmVlZCB0byBiZSB0d2Vha2VkIHdoZW4gY2hhbmdpbmcgdGhpcyB2YWx1ZS4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1idWZmZXItd2F0ZXJzaGVkPTwvY29kZT5udW08L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8cD4KCQlTZXQga2VybmVsIGJ1ZmZlciB3YXRlcnNoZWQgdG8gbnVtIHNhbXBsZXMgKDIuNiBvbmx5KS4gV2hlbiBpdCdsbCByZW1haW4gb25seQoJCWJ1ZmZlci1zaXplIC0gYnVmZmVyLXdhdGVyc2hlZCBmcmVlIGVudHJ5IGluIHRoZSBrZXJuZWwgYnVmZmVyIGRhdGEgd2lsbCBiZQoJCWZsdXNoZWQgdG8gZGFlbW9uLCBtb3N0IHVzZWZ1bGwgdmFsdWUgYXJlIGluIHRoZSByYW5nZSBbMC4yNSAtIDAuNV0gKiBidWZmZXItc2l6ZS4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1jcHUtYnVmZmVyLXNpemU9PC9jb2RlPm51bTwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCU51bWJlciBvZiBzYW1wbGVzIGluIGtlcm5lbCBwZXItY3B1IGJ1ZmZlciAoMi42IG9ubHkpLiBJZiB5b3UKCQlwcm9maWxlIGF0IGhpZ2ggcmF0ZSBpdCBjYW4gaGVscCB0byBpbmNyZWFzZSB0aGlzIGlmIHRoZSBsb2cKCQlmaWxlIHNob3cgZXhjZXNzaXZlIGNvdW50IG9mIHNhbXBsZSBsb3N0IGNwdSBidWZmZXIgb3ZlcmZsb3cuIAoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV2ZW50PTwvY29kZT5bZXZlbnRzcGVjXTwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCVVzZSB0aGUgZ2l2ZW4gcGVyZm9ybWFuY2UgY291bnRlciBldmVudCB0byBwcm9maWxlLgoJCVNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI2V2ZW50c3BlYyIgdGl0bGU9IjEuMi6gU3BlY2lmeWluZyBwZXJmb3JtYW5jZSBjb3VudGVyIGV2ZW50cyI+U2VjdGlvbqAxLjIsICYjODIyMDtTcGVjaWZ5aW5nIHBlcmZvcm1hbmNlIGNvdW50ZXIgZXZlbnRzJiM4MjIxOzwvYT4gYmVsb3cuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2Vzc2lvbi1kaXI9PC9jb2RlPmRpcl9wYXRoPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJICAgIENyZWF0ZS91c2Ugc2FtcGxlIGRhdGFiYXNlIG91dCBvZiBkaXJlY3RvcnkgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kaXJfcGF0aDwvY29kZT4gaW5zdGVhZCBvZgoJCXRoZSBkZWZhdWx0IGxvY2F0aW9uICgvdmFyL2xpYi9vcHJvZmlsZSkuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGU9PC9jb2RlPltub25lLGxpYixrZXJuZWwsdGhyZWFkLGNwdSxhbGxdPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJQnkgZGVmYXVsdCwgZXZlcnkgcHJvZmlsZSBpcyBzdG9yZWQgaW4gYSBzaW5nbGUgZmlsZS4gVGh1cywgZm9yIGV4YW1wbGUsCgkJc2FtcGxlcyBpbiB0aGUgQyBsaWJyYXJ5IGFyZSBhbGwgYWNjcmVkaXRlZCB0byB0aGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vbGliL2xpYmMubzwvY29kZT4KCQlwcm9maWxlLiBIb3dldmVyLCB5b3UgY2hvb3NlIHRvIGNyZWF0ZSBzZXBhcmF0ZSBzYW1wbGUgZmlsZXMgYnkgc3BlY2lmeWluZwoJCW9uZSBvZiB0aGUgYmVsb3cgb3B0aW9ucy4KCQk8L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hbHRhYmxlIj4KICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMSI+CiAgICAgICAgICAgICAgICAgICAgPGNvbGdyb3VwPgogICAgICAgICAgICAgICAgICAgICAgPGNvbCAvPgogICAgICAgICAgICAgICAgICAgICAgPGNvbCAvPgogICAgICAgICAgICAgICAgICAgIDwvY29sZ3JvdXA+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+bm9uZTwvY29kZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHByb2ZpbGUgc2VwYXJhdGlvbiAoZGVmYXVsdCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPmxpYjwvY29kZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkNyZWF0ZSBwZXItYXBwbGljYXRpb24gcHJvZmlsZXMgZm9yIGxpYnJhcmllczwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+a2VybmVsPC9jb2RlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Q3JlYXRlIHBlci1hcHBsaWNhdGlvbiBwcm9maWxlcyBmb3IgdGhlIGtlcm5lbCBhbmQga2VybmVsIG1vZHVsZXM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPnRocmVhZDwvY29kZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkNyZWF0ZSBwcm9maWxlcyBmb3IgZWFjaCB0aHJlYWQgYW5kIGVhY2ggdGFzazwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+Y3B1PC9jb2RlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Q3JlYXRlIHByb2ZpbGVzIGZvciBlYWNoIENQVTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+YWxsPC9jb2RlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+QWxsIG9mIHRoZSBhYm92ZSBvcHRpb25zPC90ZD4KICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHA+CgkJTm90ZSAgdGhhdCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlcGFyYXRlPWtlcm5lbDwvY29kZT4gYWxzbyB0dXJucyBvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlcGFyYXRlPWxpYjwvY29kZT4uCgkJCgkJV2hlbiB1c2luZyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlcGFyYXRlPWtlcm5lbDwvY29kZT4sIHNhbXBsZXMgaW4gaGFyZHdhcmUgaW50ZXJydXB0cywgc29mdC1pcnFzLCBvciBvdGhlcgoJCWFzeW5jaHJvbm91cyBrZXJuZWwgY29udGV4dHMgYXJlIGNyZWRpdGVkIHRvIHRoZSB0YXNrIGN1cnJlbnRseSBydW5uaW5nLiBUaGlzIG1lYW5zIHlvdSB3aWxsIHNlZQoJCXNlZW1pbmdseSBub25zZW5zZSBwcm9maWxlcyBzdWNoIGFzIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L2Jpbi9iYXNoPC9jb2RlPiBzaG93aW5nIHNhbXBsZXMgZm9yIHRoZSBQUFAgbW9kdWxlcywKCQlldGMuCgkJPC9wPgogICAgICAgICAgICAgICAgPHA+CgkJT24gMi4yLzIuNCBvbmx5IGtlcm5lbCB0aHJlYWRzIGFscmVhZHkgc3RhcnRlZCB3aGVuIHByb2ZpbGluZyBiZWdpbnMgYXJlIGNvcnJlY3RseSBwcm9maWxlZDsKCQluZXdseSBzdGFydGVkIGtlcm5lbCB0aHJlYWQgc2FtcGxlcyBhcmUgY3JlZGl0ZWQgdG8gdGhlIHZtbGludXggKGtlcm5lbCkgcHJvZmlsZS4KCQk8L3A+CiAgICAgICAgICAgICAgICA8cD4KCQlVc2luZyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlcGFyYXRlPXRocmVhZDwvY29kZT4gY3JlYXRlcyBhIGxvdAoJCW9mIHNhbXBsZSBmaWxlcyBpZiB5b3UgbGVhdmUgT1Byb2ZpbGUgcnVubmluZyBmb3IgYSB3aGlsZTsgaXQncyBtb3N0CgkJdXNlZnVsIHdoZW4gdXNlZCBmb3Igc2hvcnQgc2Vzc2lvbnMsIG9yIHdoZW4gdXNpbmcgaW1hZ2UgZmlsdGVyaW5nLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNhbGxncmFwaD08L2NvZGU+I2RlcHRoPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJRW5hYmxlIGNhbGwtZ3JhcGggc2FtcGxlIGNvbGxlY3Rpb24gd2l0aCBhIG1heGltdW0gZGVwdGguIFVzZSAwIHRvIGRpc2FibGUKCQljYWxsZ3JhcGggcHJvZmlsaW5nLiAgTk9URTogQ2FsbGdyYXBoIHN1cHBvcnQgaXMgYXZhaWxhYmxlIG9uIGEgbGltaXRlZAoJCW51bWJlciBvZiBwbGF0Zm9ybXMgYXQgdGhpcyB0aW1lOyBmb3IgZXhhbXBsZToKCQk8L3A+CiAgICAgICAgICAgICAgICA8cD4KCQk8L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPgogICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgdHlwZT0iZGlzYyI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsaXN0aXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICA8cD54ODYgd2l0aCByZWNlbnQgMi42IGtlcm5lbDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgPHA+QVJNIHdpdGggcmVjZW50IDIuNiBrZXJuZWw8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgIDxwPlBvd2VyUEMgd2l0aCAyLjYuMTcga2VybmVsPC9wPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxwPgoJCTwvcD4KICAgICAgICAgICAgICAgIDxwPgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWltYWdlPTwvY29kZT5pbWFnZSxbaW1hZ2VzXXwiYWxsIjwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCUltYWdlIGZpbHRlcmluZy4gSWYgeW91IHNwZWNpZnkgb25lIG9yIG1vcmUgYWJzb2x1dGUKCQlwYXRocyB0byBiaW5hcmllcywgT1Byb2ZpbGUgd2lsbCBvbmx5IHByb2R1Y2UgcHJvZmlsZSByZXN1bHRzIGZvciB0aG9zZQoJCWJpbmFyeSBpbWFnZXMuIFRoaXMgaXMgdXNlZnVsIGZvciByZXN0cmljdGluZyB0aGUgc29tZXRpbWVzIHZvbHVtaW5vdXMKCQlvdXRwdXQgeW91IG1heSBnZXQgb3RoZXJ3aXNlLCBlc3BlY2lhbGx5IHdpdGgKCQk8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlcGFyYXRlPXRocmVhZDwvY29kZT4uIE5vdGUgdGhhdCBpZiB5b3UgYXJlIHVzaW5nCgkJPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZXBhcmF0ZT1saWI8L2NvZGU+IG9yCgkJPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZXBhcmF0ZT1rZXJuZWw8L2NvZGU+LCB0aGVuIGlmIHlvdSBzcGVjaWZpY2F0aW9uIGFuCgkJYXBwbGljYXRpb24gYmluYXJ5LCB0aGUgc2hhcmVkIGxpYnJhcmllcyBhbmQga2VybmVsIGNvZGUKCQk8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5hcmU8L2VtPjwvc3Bhbj4gaW5jbHVkZWQuIFNwZWNpZnkgdGhlIHZhbHVlCgkJImFsbCIgdG8gcHJvZmlsZSBldmVyeXRoaW5nICh0aGUgZGVmYXVsdCkuCgkJPC9wPgogICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdm1saW51eD08L2NvZGU+ZmlsZTwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxwPgoJCXZtbGludXgga2VybmVsIGltYWdlLgoJCTwvcD4KICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1uby12bWxpbnV4PC9jb2RlPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPHA+CgkJVXNlIHRoaXMgd2hlbiB5b3UgZG9uJ3QgaGF2ZSBhIGtlcm5lbCB2bWxpbnV4IGZpbGUsIGFuZCB5b3UgZG9uJ3Qgd2FudAoJCXRvIHByb2ZpbGUgdGhlIGtlcm5lbC4gVGhpcyBzdGlsbCBjb3VudHMgdGhlIHRvdGFsIG51bWJlciBvZiBrZXJuZWwgc2FtcGxlcywKCQlidXQgY2FuJ3QgZ2l2ZSBzeW1ib2wtYmFzZWQgcmVzdWx0cyBmb3IgdGhlIGtlcm5lbCBvciBhbnkgbW9kdWxlcy4KCQk8L3A+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIxLjEuoEV4YW1wbGVzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9Im9wY29udHJvbGV4YW1wbGVzIj48L2E+MS4xLqBFeGFtcGxlczwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QzIiB0aXRsZT0iMS4xLjEuoEludGVsIHBlcmZvcm1hbmNlIGNvdW50ZXIgc2V0dXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGl0bGUiPjxhIGlkPSJleGFtcGxlc3BlcmZjdHIiPjwvYT4xLjEuMS6gSW50ZWwgcGVyZm9ybWFuY2UgY291bnRlciBzZXR1cDwvaDQ+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHA+CkhlcmUsIHdlIGhhdmUgYSBQZW50aXVtIElJSSBydW5uaW5nIGF0IDgwME1IeiwgYW5kIHdlIHdhbnQgdG8gbG9vayBhdCB3aGVyZSBkYXRhIG1lbW9yeQpyZWZlcmVuY2VzIGFyZSBoYXBwZW5pbmcgbW9zdCwgYW5kIGFsc28gZ2V0IHJlc3VsdHMgZm9yIENQVSB0aW1lLgo8L3A+CiAgICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CiMgb3Bjb250cm9sIC0tZXZlbnQ9Q1BVX0NMS19VTkhBTFRFRDo0MDAwMDAgLS1ldmVudD1EQVRBX01FTV9SRUZTOjEwMDAwCiMgb3Bjb250cm9sIC0tdm1saW51eD0vYm9vdC8yLjYuMC92bWxpbnV4CiMgb3Bjb250cm9sIC0tc3RhcnQKPC9wcmU+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MyIgdGl0bGU9IjEuMS4yLqBSVEMgbW9kZSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImV4YW1wbGVzcnRjIj48L2E+MS4xLjIuoFJUQyBtb2RlPC9oND4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8cD4KSGVyZSwgd2UgaGF2ZSBhbiBJbnRlbCBsYXB0b3Agd2l0aG91dCBzdXBwb3J0IGZvciBwZXJmb3JtYW5jZSBjb3VudGVycywgcnVubmluZyBvbiAyLjQga2VybmVscy4KPC9wPgogICAgICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgojIG9waGVscCAtcgpDUFUgd2l0aCBSVEMgZGV2aWNlCiMgb3Bjb250cm9sIC0tdm1saW51eD0vYm9vdC8yLjQuMTMvdm1saW51eCAtLWV2ZW50PVJUQ19JTlRFUlJVUFRTOjEwMjQKIyBvcGNvbnRyb2wgLS1zdGFydAo8L3ByZT4KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QzIiB0aXRsZT0iMS4xLjMuoFN0YXJ0aW5nIHRoZSBkYWVtb24gc2VwYXJhdGVseSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImV4YW1wbGVzc3RhcnRkYWVtb24iPjwvYT4xLjEuMy6gU3RhcnRpbmcgdGhlIGRhZW1vbiBzZXBhcmF0ZWx5PC9oND4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8cD4KSWYgd2UncmUgcnVubmluZyAyLjYga2VybmVscywgd2UgY2FuIHVzZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXN0YXJ0LWRhZW1vbjwvY29kZT4gdG8gYXZvaWQKdGhlIHByb2ZpbGVyIHN0YXJ0dXAgYWZmZWN0aW5nIHJlc3VsdHMuCjwvcD4KICAgICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KIyBvcGNvbnRyb2wgLS12bWxpbnV4PS9ib290LzIuNi4wL3ZtbGludXgKIyBvcGNvbnRyb2wgLS1zdGFydC1kYWVtb24KIyBteV9mYXZvdXJpdGVfYmVuY2htYXJrIC0taW5pdAojIG9wY29udHJvbCAtLXN0YXJ0IDsgbXlfZmF2b3VyaXRlX2JlbmNobWFyayAtLXJ1biA7IG9wY29udHJvbCAtLXN0b3AKPC9wcmU+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MyIgdGl0bGU9IjEuMS40LqBTZXBhcmF0ZSBwcm9maWxlcyBmb3IgbGlicmFyaWVzIGFuZCB0aGUga2VybmVsIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9InRpdGxlIj48YSBpZD0iZXhhbXBsZXNlcGFyYXRlIj48L2E+MS4xLjQuoFNlcGFyYXRlIHByb2ZpbGVzIGZvciBsaWJyYXJpZXMgYW5kIHRoZSBrZXJuZWw8L2g0PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxwPgpIZXJlLCB3ZSB3YW50IHRvIHNlZSBhIHByb2ZpbGUgb2YgdGhlIE9Qcm9maWxlIGRhZW1vbiBpdHNlbGYsIGluY2x1ZGluZyB3aGVuCml0IHdhcyBydW5uaW5nIGluc2lkZSB0aGUga2VybmVsIGRyaXZlciwgYW5kIGl0cyB1c2Ugb2Ygc2hhcmVkIGxpYnJhcmllcy4KPC9wPgogICAgICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgojIG9wY29udHJvbCAtLXNlcGFyYXRlPWtlcm5lbCAtLXZtbGludXg9L2Jvb3QvMi42LjAvdm1saW51eAojIG9wY29udHJvbCAtLXN0YXJ0CiMgbXlfZmF2b3VyaXRlX3N0cmVzc190ZXN0IC0tcnVuCiMgb3ByZXBvcnQgLWwgLXAgL2xpYi9tb2R1bGVzLzIuNi4wL2tlcm5lbCAvdXNyL2xvY2FsL2Jpbi9vcHJvZmlsZWQKPC9wcmU+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MyIgdGl0bGU9IjEuMS41LqBQcm9maWxpbmcgc2Vzc2lvbnMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGl0bGUiPjxhIGlkPSJleGFtcGxlc3Nlc3Npb25zIj48L2E+MS4xLjUuoFByb2ZpbGluZyBzZXNzaW9uczwvaDQ+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHA+Ckl0IGNhbiBvZnRlbiBiZSB1c2VmdWwgdG8gc3BsaXQgdXAgcHJvZmlsaW5nIGRhdGEgaW50byBzZXZlcmFsIGRpZmZlcmVudAp0aW1lIHBlcmlvZHMuIEZvciBleGFtcGxlLCB5b3UgbWF5IHdhbnQgdG8gY29sbGVjdCBkYXRhIG9uIGFuIGFwcGxpY2F0aW9uJ3MKc3RhcnR1cCBzZXBhcmF0ZWx5IGZyb20gdGhlIG5vcm1hbCBydW50aW1lIGRhdGEuIFlvdSBjYW4gdXNlIHRoZSBzaW1wbGUKY29tbWFuZCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGNvbnRyb2wgLS1zYXZlPC9zdHJvbmc+PC9zcGFuPiB0byBkbyB0aGlzLiBGb3IgZXhhbXBsZSA6CjwvcD4KICAgICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KIyBvcGNvbnRyb2wgLS1zYXZlPWJsYWgKPC9wcmU+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgPHA+CndpbGwgY3JlYXRlIGEgc3ViLWRpcmVjdG9yeSBpbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPiRTRVNTSU9OX0RJUi9zYW1wbGVzPC9jb2RlPiBjb250YWluaW5nIHRoZSBzYW1wbGVzCnVwIHRvIHRoYXQgcG9pbnQgKHRoZSBjdXJyZW50IHNlc3Npb24ncyBzYW1wbGUgZmlsZXMgYXJlIG1vdmVkIGludG8gdGhpcwpkaXJlY3RvcnkpLiBZb3UgY2FuIHRoZW4gcGFzcyB0aGlzIHNlc3Npb24gbmFtZSBhcyBhIHBhcmFtZXRlciB0byB0aGUgcG9zdC1wcm9maWxpbmcKYW5hbHlzaXMgdG9vbHMsIHRvIG9ubHkgZ2V0IGRhdGEgdXAgdG8gdGhlIHBvaW50IHlvdSBuYW1lZCB0aGUKc2Vzc2lvbi4gSWYgeW91IGRvIG5vdCB3YW50IHRvIHNhdmUgYSBzZXNzaW9uLCB5b3UgY2FuIGRvCjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPnJtIC1yZiAkU0VTU0lPTl9ESVIvc2FtcGxlcy9zZXNzaW9ubmFtZTwvc3Ryb25nPjwvc3Bhbj4gb3IsIGZvciB0aGUKY3VycmVudCBzZXNzaW9uLCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGNvbnRyb2wgLS1yZXNldDwvc3Ryb25nPjwvc3Bhbj4uCjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iMS4yLqBTcGVjaWZ5aW5nIHBlcmZvcm1hbmNlIGNvdW50ZXIgZXZlbnRzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImV2ZW50c3BlYyI+PC9hPjEuMi6gU3BlY2lmeWluZyBwZXJmb3JtYW5jZSBjb3VudGVyIGV2ZW50czwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpUaGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1ldmVudDwvY29kZT4gb3B0aW9uIHRvIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj4KdGFrZXMgYSBzcGVjaWZpY2F0aW9uIHRoYXQgaW5kaWNhdGVzIGhvdyB0aGUgZGV0YWlscyBvZiBlYWNoCmhhcmR3YXJlIHBlcmZvcm1hbmNlIGNvdW50ZXIgc2hvdWxkIGJlIHNldHVwLiBJZiB5b3Ugd2FudCB0bwpyZXZlcnQgdG8gT1Byb2ZpbGUncyBkZWZhdWx0IHNldHRpbmcgKDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXZlbnQ8L2NvZGU+CmlzIHN0cmljdGx5IG9wdGlvbmFsKSwgdXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXZlbnQ9ZGVmYXVsdDwvY29kZT4uIFVzZSBvZiB0aGlzCm9wdGlvbiBvdmVyLXJpZGVzIGFsbCBwcmV2aW91cyBldmVudCBzZWxlY3Rpb25zLgo8L3A+CiAgICAgICAgICAgIDxwPgpZb3UgY2FuIHBhc3MgbXVsdGlwbGUgZXZlbnQgc3BlY2lmaWNhdGlvbnMuIE9Qcm9maWxlIHdpbGwgYWxsb2NhdGUKaGFyZHdhcmUgY291bnRlcnMgYXMgbmVjZXNzYXJ5LiBOb3RlIHRoYXQgc29tZSBjb21iaW5hdGlvbnMgYXJlIG5vdAphbGxvd2VkIGJ5IHRoZSBDUFU7IHJ1bm5pbmcgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bjb250cm9sIC0tbGlzdC1ldmVudHM8L3N0cm9uZz48L3NwYW4+IGdpdmVzIHRoZSBkZXRhaWxzCm9mIGVhY2ggZXZlbnQuIFRoZSBldmVudCBzcGVjaWZpY2F0aW9uIGlzIGEgY29sb24tc2VwYXJhdGVkIHN0cmluZwpvZiB0aGUgZm9ybSA8Y29kZSBjbGFzcz0ib3B0aW9uIj48c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5uYW1lPC9lbT48L3NwYW4+OjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmNvdW50PC9lbT48L3NwYW4+OjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnVuaXRtYXNrPC9lbT48L3NwYW4+OjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmtlcm5lbDwvZW0+PC9zcGFuPjo8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT51c2VyPC9lbT48L3NwYW4+PC9jb2RlPiBhcyBkZXNjcmliZWQgaW4gdGhpcyB0YWJsZToKPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hbHRhYmxlIj4KICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIxIj4KICAgICAgICAgICAgICAgIDxjb2xncm91cD4KICAgICAgICAgICAgICAgICAgPGNvbCAvPgogICAgICAgICAgICAgICAgICA8Y29sIC8+CiAgICAgICAgICAgICAgICA8L2NvbGdyb3VwPgogICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+bmFtZTwvY29kZT4KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5UaGUgc3ltYm9saWMgZXZlbnQgbmFtZSwgZS5nLiA8Y29kZSBjbGFzcz0iY29uc3RhbnQiPkNQVV9DTEtfVU5IQUxURUQ8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPmNvdW50PC9jb2RlPgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPlRoZSBjb3VudGVyIHJlc2V0IHZhbHVlLCBlLmcuIDEwMDAwMDwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj51bml0bWFzazwvY29kZT4KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5UaGUgdW5pdCBtYXNrLCBhcyBnaXZlbiBpbiB0aGUgZXZlbnRzIGxpc3Q6IGUuZy4gMHgwZjsgb3IgYSBzeW1ib2xpYyBuYW1lIGFzCmdpdmVuIGJ5IHRoZSBmaXJzdCB3b3JkIG9mIHRoZSBkZXNjcmlwdGlvbiAob25seSB2YWxpZCBmb3IgdW5pdCBtYXNrcyBoYXZpbmcgYW4gImV4dHJhOiIgcGFyYW1ldGVyKTwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5rZXJuZWw8L2NvZGU+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+V2hldGhlciB0byBwcm9maWxlIGtlcm5lbCBjb2RlPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPnVzZXI8L2NvZGU+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+V2hldGhlciB0byBwcm9maWxlIHVzZXJzcGFjZSBjb2RlPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpUaGUgbGFzdCB0aHJlZSB2YWx1ZXMgYXJlIG9wdGlvbmFsLCBpZiB5b3Ugb21pdCB0aGVtIChlLmcuIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXZlbnQ9REFUQV9NRU1fUkVGUzozMDAwMDwvY29kZT4pLAp0aGV5IHdpbGwgYmUgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlcyAoYSB1bml0IG1hc2sgb2YgMCwgYW5kIHByb2ZpbGluZyBib3RoIGtlcm5lbCBhbmQKdXNlcnNwYWNlIGNvZGUpLiBOb3RlIHRoYXQgc29tZSBldmVudHMgcmVxdWlyZSBhIHVuaXQgbWFzay4KPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlIiB0aXRsZT0iTm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPgogICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPk5vdGU8L2gzPgogICAgICAgICAgICAgIDxwPgpGb3IgdGhlIFBvd2VyUEMgcGxhdGZvcm1zLCBhbGwgZXZlbnRzIHNwZWNpZmllZCBtdXN0IGJlIGluIHRoZSBzYW1lIGdyb3VwOyBpLmUuLCB0aGUgZ3JvdXAgbnVtYmVyCmFwcGVuZGVkIHRvIHRoZSBldmVudCBuYW1lIChlLmcuIDxjb2RlIGNsYXNzPSJjb25zdGFudCI+Jmx0OzxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnNvbWUtZXZlbnQtbmFtZTwvZW0+PC9zcGFuPiZndDtfR1JQOTwvY29kZT4pIG11c3QgYmUgdGhlIHNhbWUuCjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpJZiBPUHJvZmlsZSBpcyB1c2luZyBSVEMgbW9kZSwgYW5kIHlvdSB3YW50IHRvIGFsdGVyIHRoZSBkZWZhdWx0IGNvdW50ZXIgdmFsdWUsCnlvdSBjYW4gdXNlIHNvbWV0aGluZyBsaWtlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXZlbnQ9UlRDX0lOVEVSUlVQVFM6MjA0ODwvY29kZT4uIE5vdGUgdGhlIGxhc3QKdGhyZWUgdmFsdWVzIGhlcmUgYXJlIGlnbm9yZWQuCklmIE9Qcm9maWxlIGlzIHVzaW5nIHRpbWVyLWludGVycnVwdCBtb2RlLCB0aGVyZSBpcyBubyBjb25maWd1cmF0aW9uIHBvc3NpYmxlLgo8L3A+CiAgICAgICAgICAgIDxwPgpUaGUgdGFibGUgYmVsb3cgbGlzdHMgdGhlIGV2ZW50cyBzZWxlY3RlZCBieSBkZWZhdWx0Cig8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV2ZW50PWRlZmF1bHQ8L2NvZGU+KSBmb3IgdGhlIHZhcmlvdXMgY29tcHV0ZXIgYXJjaGl0ZWN0dXJlczoKPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hbHRhYmxlIj4KICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIxIj4KICAgICAgICAgICAgICAgIDxjb2xncm91cD4KICAgICAgICAgICAgICAgICAgPGNvbCAvPgogICAgICAgICAgICAgICAgICA8Y29sIC8+CiAgICAgICAgICAgICAgICAgIDxjb2wgLz4KICAgICAgICAgICAgICAgIDwvY29sZ3JvdXA+CiAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+UHJvY2Vzc29yPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Y3B1X3R5cGU8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5EZWZhdWx0IGV2ZW50PC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5BbHBoYSBFVjQ8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5hbHBoYS9ldjQ8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5DWUNMRVM6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5BbHBoYSBFVjU8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5hbHBoYS9ldjU8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5DWUNMRVM6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5BbHBoYSBQQ0E1NjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPmFscGhhL3BjYTU2PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Q1lDTEVTOjEwMDAwMDowOjE6MTwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+QWxwaGEgRVY2PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+YWxwaGEvZXY2PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Q1lDTEVTOjEwMDAwMDowOjE6MTwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+QWxwaGEgRVY2NzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPmFscGhhL2V2Njc8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5DWUNMRVM6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5BUk0vWFNjYWxlIFBNVTE8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5hcm0veHNjYWxlMTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkNQVV9DWUNMRVM6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5BUk0vWFNjYWxlIFBNVTI8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5hcm0veHNjYWxlMjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkNQVV9DWUNMRVM6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5BUk0vTVBDb3JlPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+YXJtL21wY29yZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkNQVV9DWUNMRVM6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5BVlIzMjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPmF2cjMyPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Q1BVX0NZQ0xFUzoxMDAwMDA6MDoxOjE8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkPkF0aGxvbjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPmkzODYvYXRobG9uPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Q1BVX0NMS19VTkhBTFRFRDoxMDAwMDA6MDoxOjE8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkPlBlbnRpdW0gUHJvPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+aTM4Ni9wcHJvPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Q1BVX0NMS19VTkhBTFRFRDoxMDAwMDA6MDoxOjE8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkPlBlbnRpdW0gSUk8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5pMzg2L3BpaTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkNQVV9DTEtfVU5IQUxURUQ6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5QZW50aXVtIElJSTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPmkzODYvcGlpaTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkNQVV9DTEtfVU5IQUxURUQ6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5QZW50aXVtIE0gKFA2IGNvcmUpPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+aTM4Ni9wNl9tb2JpbGU8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5DUFVfQ0xLX1VOSEFMVEVEOjEwMDAwMDowOjE6MTwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+UGVudGl1bSA0IChub24tSFQpPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+aTM4Ni9wNDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkdMT0JBTF9QT1dFUl9FVkVOVFM6MTAwMDAwOjE6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5QZW50aXVtIDQgKEhUKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPmkzODYvcDQtaHQ8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5HTE9CQUxfUE9XRVJfRVZFTlRTOjEwMDAwMDoxOjE6MTwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+SGFtbWVyPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+eDg2LTY0L2hhbW1lcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkNQVV9DTEtfVU5IQUxURUQ6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5GYW1pbHkxMGg8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD54ODYtNjQvZmFtaWx5MTA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5DUFVfQ0xLX1VOSEFMVEVEOjEwMDAwMDowOjE6MTwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+RmFtaWx5MTFoPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+eDg2LTY0L2ZhbWlseTExaDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkNQVV9DTEtfVU5IQUxURUQ6MTAwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5JdGFuaXVtPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+aWE2NC9pdGFuaXVtPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Q1BVX0NZQ0xFUzoxMDAwMDA6MDoxOjE8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkPkl0YW5pdW0gMjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPmlhNjQvaXRhbml1bTI8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5DUFVfQ1lDTEVTOjEwMDAwMDowOjE6MTwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+VElNRVJfSU5UPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+dGltZXI8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5Ob25lIHNlbGVjdGFibGU8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkPklCTSBpc2VyaWVzPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+UG93ZXJQQyA0LzUvOTcwPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Q1lDTEVTOjEwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5JQk0gcHNlcmllczwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPlBvd2VyUEMgNC81Lzk3MC9DZWxsPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Q1lDTEVTOjEwMDAwOjA6MToxPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5JQk0gczM5MDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPnRpbWVyPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+Tm9uZSBzZWxlY3RhYmxlPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD5JQk0gczM5MHg8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD50aW1lcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPk5vbmUgc2VsZWN0YWJsZTwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDEiIHRpdGxlPSIyLqBTZXR0aW5nIHVwIHRoZSBKSVQgcHJvZmlsaW5nIGZlYXR1cmUiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0ic2V0dXAtaml0Ij48L2E+Mi6gU2V0dGluZyB1cCB0aGUgSklUIHByb2ZpbGluZyBmZWF0dXJlPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgoJCVRvIGdhdGhlciBpbmZvcm1hdGlvbiBhYm91dCBKSVRlZCBjb2RlIGZyb20gYSB2aXJ0dWFsIG1hY2hpbmUsCgkJaXQgbmVlZHMgdG8gYmUgaW5zdHJ1bWVudGVkIHdpdGggYW4gYWdlbnQgbGlicmFyeS4gV2UgdXNlIHRoZQoJCWFnZW50IGxpYnJhcmllcyBmb3IgSmF2YSBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUuIFRvIHVzZSB0aGUKCQlKYXZhIHByb2ZpbGluZyBmZWF0dXJlLCB5b3UgbXVzdCBidWlsZCBPUHJvZmlsZSB3aXRoIHRoZSAiLS13aXRoLWphdmEiIG9wdGlvbgogICAgICAgICAgICAgICAgKDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjaW5zdGFsbCIgdGl0bGU9IjQuoEluc3RhbGxhdGlvbiI+U2VjdGlvbqA0LCAmIzgyMjA7SW5zdGFsbGF0aW9uJiM4MjIxOzwvYT4pLgoKCTwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iMi4xLqBKVk0gaW5zdHJ1bWVudGF0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9InNldHVwLWppdC1qdm0iPjwvYT4yLjEuoEpWTSBpbnN0cnVtZW50YXRpb248L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KCQkJQWRkIHRoaXMgdG8gdGhlIHN0YXJ0dXAgcGFyYW1ldGVycyBvZiB0aGUgSlZNIChmb3IgSlZNVEkpOgoKCQkJPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj48Y29kZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgY2xhc3M9Im9wdGlvbiI+LWFnZW50cGF0aDombHQ7bGliZGlyJmd0Oy9saWJqdm10aV9vcHJvZmlsZS5zb1s9Jmx0O29wdGlvbnMmZ3Q7XTwvY29kZT4gPC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDxwPgoJCQlvcgoJCQk8L3A+CiAgICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPjxjb2RlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBjbGFzcz0ib3B0aW9uIj4tYWdlbnRsaWI6anZtdGlfb3Byb2ZpbGVbPSZsdDtvcHRpb25zJmd0O108L2NvZGU+IDwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8cD4KCQk8L3A+CiAgICAgICAgICAgIDxwPgoJCQlUaGUgSlZNUEkgYWdlbnQgaW1wbGVtZW50YXRpb24gaXMgZW5hYmxlZCB3aXRoIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uCgkJCTwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+PGNvZGUgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGNsYXNzPSJvcHRpb24iPi1YcnVuanZtcGlfb3Byb2ZpbGVbOiZsdDtvcHRpb25zJmd0O108L2NvZGU+IDwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8cD4KCQk8L3A+CiAgICAgICAgICAgIDxwPgoJCQlDdXJyZW50bHksIHRoZXJlIGlzIGp1c3Qgb25lIG9wdGlvbiBhdmFpbGFibGUgLS0gPGNvZGUgY2xhc3M9Im9wdGlvbiI+ZGVidWc8L2NvZGU+LiBGb3IgSlZNUEksCgkJCXRoZSBjb252ZW50aW9uIGZvciBzcGVjaWZ5aW5nIGFuIG9wdGlvbiBpcyA8Y29kZSBjbGFzcz0ib3B0aW9uIj5vcHRpb25fbmFtZT1beWVzfG5vXTwvY29kZT4uCgkJCUZvciBKVk1USSwgdGhlIG9wdGlvbiBzcGVjaWZpY2F0aW9uIGlzIHNpbXBseSB0aGUgb3B0aW9uIG5hbWUsIGltcGx5aW5nCgkJCSJ5ZXMiOyBubyBvcHRpb24gc3BlY2lmaWVkIGltcGxpZXMgIm5vIi4KCQk8L3A+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICBUaGUgYWdlbnQgbGlicmFyeSAoaW5zdGFsbGVkIGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Jmx0O29wcm9mX2luc3RhbGxfZGlyJmd0Oy9saWIvb3Byb2ZpbGU8L2NvZGU+KQogICAgICAgICAgICAgICAgICAgICAgICBuZWVkcyB0byBiZSBpbiB0aGUgbGlicmFyeSBzZWFyY2ggcGF0aCAoZS5nLiBhZGQgdGhlIGxpYnJhcnkgZGlyZWN0b3J5CiAgICAgICAgICAgICAgICAgICAgICAgIHRvIDxjb2RlIGNsYXNzPSJjb25zdGFudCI+TERfTElCUkFSWV9QQVRIPC9jb2RlPikuIElmIHRoZSBjb21tYW5kIGxpbmUgb2YKICAgICAgICAgICAgICAgICAgICAgICAgdGhlIEpWTSBpcyBub3QgYWNjZXNzaWJsZSwgaXQgbWF5IGJlIGJ1cmllZCB3aXRoaW4gc2hlbGwgc2NyaXB0cyBvciBhCiAgICAgICAgICAgICAgICAgICAgICAgIGxhdW5jaGVyIHByb2dyYW0uIEl0IG1heSBhbHNvIGJlIHBvc3NpYmxlIHRvIHNldCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhZGQKICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGluc3RydW1lbnRhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgRm9yIFN1biBKVk1zIHRoaXMgaXMgPGNvZGUgY2xhc3M9ImNvbnN0YW50Ij5KQVZBX1RPT0xfT1BUSU9OUzwvY29kZT4uIFBsZWFzZSBjaGVjawogICAgICAgICAgICAgICAgICAgICAgICB5b3VyIEpWTSBkb2N1bWVudGF0aW9uIGZvcgogICAgICAgICAgICAgICAgICAgICAgICBmdXJ0aGVyIGluZm9ybWF0aW9uIG9uIHRoZSBhZ2VudCBzdGFydHVwIG9wdGlvbnMuCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjMuoFVzaW5nIG9wcm9mX3N0YXJ0Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9Im9wcm9maWxlLWd1aSI+PC9hPjMuoFVzaW5nIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcm9mX3N0YXJ0PC9zdHJvbmc+PC9zcGFuPjwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KVGhlIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcm9mX3N0YXJ0PC9zdHJvbmc+PC9zcGFuPiBhcHBsaWNhdGlvbiBwcm92aWRlcyBhIGNvbnZlbmllbnQgd2F5IHRvIHN0YXJ0IHRoZSBwcm9maWxlci4KTm90ZSB0aGF0IDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcm9mX3N0YXJ0PC9zdHJvbmc+PC9zcGFuPiBpcyBqdXN0IGEgd3JhcHBlciBhcm91bmQgdGhlIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj4gc2NyaXB0LApzbyBpdCBkb2VzIG5vdCBwcm92aWRlIG1vcmUgc2VydmljZXMgdGhhbiB0aGUgc2NyaXB0IGl0c2VsZi4KPC9wPgogICAgICAgICAgPHA+CkFmdGVyIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcm9mX3N0YXJ0PC9zdHJvbmc+PC9zcGFuPiBpcyBzdGFydGVkIHlvdSBjYW4gc2VsZWN0IHRoZSBldmVudCB0eXBlIGZvciBlYWNoIGNvdW50ZXI7CnRoZSBzYW1wbGluZyByYXRlIGFuZCBvdGhlciByZWxhdGVkIHBhcmFtZXRlcnMgYXJlIGV4cGxhaW5lZCBpbiA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI2NvbnRyb2xsaW5nLWRhZW1vbiIgdGl0bGU9IjEuoFVzaW5nIG9wY29udHJvbCI+U2VjdGlvbqAxLCAmIzgyMjA7VXNpbmcgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bjb250cm9sPC9zdHJvbmc+PC9zcGFuPiYjODIyMTs8L2E+LgpUaGUgIkNvbmZpZ3VyYXRpb24iIHNlY3Rpb24gYWxsb3dzIHlvdSB0byBzZXQgZ2VuZXJhbCBwYXJhbWV0ZXJzIHN1Y2ggYXMgdGhlIGJ1ZmZlciBzaXplLCBrZXJuZWwgZmlsZW5hbWUKZXRjLiBUaGUgY291bnRlciBzZXR1cCBpbnRlcmZhY2Ugc2hvdWxkIGJlIHNlbGYtZXhwbGFuYXRvcnk7IDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjaGFyZHdhcmUtY291bnRlcnMiIHRpdGxlPSI0LjEuoEhhcmR3YXJlIHBlcmZvcm1hbmNlIGNvdW50ZXJzIj5TZWN0aW9uoDQuMSwgJiM4MjIwO0hhcmR3YXJlIHBlcmZvcm1hbmNlIGNvdW50ZXJzJiM4MjIxOzwvYT4gYW5kIHJlbGF0ZWQgCmxpbmtzIGNvbnRhaW4gaW5mb3JtYXRpb24gb24gdXNpbmcgdW5pdCBtYXNrcy4KPC9wPgogICAgICAgICAgPHA+CkEgc3RhdHVzIGxpbmUgc2hvd3MgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBwcm9maWxlcjogaG93IGxvbmcgaXQgaGFzIGJlZW4gcnVubmluZywgYW5kIHRoZSBhdmVyYWdlCm51bWJlciBvZiBpbnRlcnJ1cHRzIHJlY2VpdmVkIHBlciBzZWNvbmQgYW5kIHRoZSB0b3RhbCwgb3ZlciBhbGwgcHJvY2Vzc29ycy4KTm90ZSB0aGF0IHF1aXR0aW5nIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcm9mX3N0YXJ0PC9zdHJvbmc+PC9zcGFuPiBkb2VzIG5vdCBzdG9wIHRoZSBwcm9maWxlci4KPC9wPgogICAgICAgICAgPHA+CllvdXIgY29uZmlndXJhdGlvbiBpcyBzYXZlZCBpbiB0aGUgc2FtZSBmaWxlIGFzIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj4gdXNlczsgdGhhdCBpcywKPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5+Ly5vcHJvZmlsZS9kYWVtb25yYzwvY29kZT4uCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjQuoENvbmZpZ3VyYXRpb24gZGV0YWlscyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJkZXRhaWxlZC1wYXJhbWV0ZXJzIj48L2E+NC6gQ29uZmlndXJhdGlvbiBkZXRhaWxzPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNC4xLqBIYXJkd2FyZSBwZXJmb3JtYW5jZSBjb3VudGVycyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJoYXJkd2FyZS1jb3VudGVycyI+PC9hPjQuMS6gSGFyZHdhcmUgcGVyZm9ybWFuY2UgY291bnRlcnM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlIiB0aXRsZT0iTm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPgogICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPk5vdGU8L2gzPgogICAgICAgICAgICAgIDxwPgpZb3VyIENQVSB0eXBlIG1heSBub3QgaW5jbHVkZSB0aGUgcmVxdWlzaXRlIHN1cHBvcnQgZm9yIGhhcmR3YXJlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLCBpbiB3aGljaCBjYXNlCnlvdSBtdXN0IHVzZSBPUHJvZmlsZSBpbiBSVEMgbW9kZSBpbiAyLjQgKHNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI3J0YyIgdGl0bGU9IjQuMi6gT1Byb2ZpbGUgaW4gUlRDIG1vZGUiPlNlY3Rpb26gNC4yLCAmIzgyMjA7T1Byb2ZpbGUgaW4gUlRDIG1vZGUmIzgyMjE7PC9hPiksIG9yIHRpbWVyIG1vZGUgaW4gMi42IChzZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9IiN0aW1lciIgdGl0bGU9IjQuMy6gT1Byb2ZpbGUgaW4gdGltZXIgaW50ZXJydXB0IG1vZGUiPlNlY3Rpb26gNC4zLCAmIzgyMjA7T1Byb2ZpbGUgaW4gdGltZXIgaW50ZXJydXB0IG1vZGUmIzgyMjE7PC9hPikuIApZb3UgZG8gbm90IHJlYWxseSBuZWVkIHRvIHJlYWQgdGhpcyBzZWN0aW9uIHVubGVzcyB5b3UgYXJlIGludGVyZXN0ZWQgaW4gdXNpbmcgCmV2ZW50cyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0IGV2ZW50IGNob3NlbiBieSBPUHJvZmlsZS4KPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+ClRoZSBJbnRlbCBoYXJkd2FyZSBwZXJmb3JtYW5jZSBjb3VudGVycyBhcmUgZGV0YWlsZWQgaW4gdGhlIEludGVsIElBLTMyIEFyY2hpdGVjdHVyZSBNYW51YWwsIFZvbHVtZSAzLCBhdmFpbGFibGUKZnJvbSA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIuaW50ZWwuY29tLyI+aHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vPC9hPi4gClRoZSBBTUQgQXRobG9uL09wdGVyb24vUGhlbm9tL1R1cmlvbiBpbXBsZW1lbnRhdGlvbiBpcyBkZXRhaWxlZCBpbiA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cuYW1kLmNvbS91cy1lbi9hc3NldHMvY29udGVudF90eXBlL3doaXRlX3BhcGVyc19hbmRfdGVjaF9kb2NzLzIyMDA3LnBkZiI+Cmh0dHA6Ly93d3cuYW1kLmNvbS91cy1lbi9hc3NldHMvY29udGVudF90eXBlL3doaXRlX3BhcGVyc19hbmRfdGVjaF9kb2NzLzIyMDA3LnBkZjwvYT4uCkZvciBQb3dlclBDNjQgcHJvY2Vzc29ycyBpbiBJQk0gaVNlcmllcywgcFNlcmllcywgYW5kIGJsYWRlIHNlcnZlciBzeXN0ZW1zLCBwcm9jZXNzb3IgZG9jdW1lbnRhdGlvbgppcyBhdmFpbGFibGUgYXQgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LTAxLmlibS5jb20vY2hpcHMvdGVjaGxpYi90ZWNobGliLm5zZi9wcm9kdWN0ZmFtaWxpZXMvUG93ZXJQQy8iPgpodHRwOi8vd3d3LTAxLmlibS5jb20vY2hpcHMvdGVjaGxpYi90ZWNobGliLm5zZi9wcm9kdWN0ZmFtaWxpZXMvUG93ZXJQQzwvYT4uICAoRm9yIGV4YW1wbGUsIHRoZQpzcGVjaWZpYyBwdWJsaWNhdGlvbiBjb250YWluaW5nIGluZm9ybWF0aW9uIG9uIHRoZSBwZXJmb3JtYW5jZSBtb25pdG9yIHVuaXQgZm9yIHRoZSBQb3dlclBDOTcwIGlzIAoiSUJNIFBvd2VyUEMgOTcwRlggUklTQyBNaWNyb3Byb2Nlc3NvciBVc2VyJ3MgTWFudWFsLiIpClRoZXNlIHByb2Nlc3NvcnMgYXJlIGNhcGFibGUgb2YgZGVsaXZlcmluZyBhbiBpbnRlcnJ1cHQgd2hlbiBhIGNvdW50ZXIgb3ZlcmZsb3dzLgpUaGlzIGlzIHRoZSBiYXNpYyBtZWNoYW5pc20gb24gd2hpY2ggT1Byb2ZpbGUgaXMgYmFzZWQuIFRoZSBkZWxpdmVyeSBtb2RlIGlzIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5OTUk8L2Fjcm9ueW0+LApzbyBibG9ja2luZyBpbnRlcnJ1cHRzIGluIHRoZSBrZXJuZWwgZG9lcyBub3QgcHJldmVudCBwcm9maWxpbmcuIFdoZW4gdGhlIGludGVycnVwdCBoYW5kbGVyIGlzIGNhbGxlZCwKdGhlIGN1cnJlbnQgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPlBDPC9hY3JvbnltPiB2YWx1ZSBhbmQgdGhlIGN1cnJlbnQgdGFzayBhcmUgcmVjb3JkZWQgaW50byB0aGUgcHJvZmlsaW5nIHN0cnVjdHVyZS4KVGhpcyBhbGxvd3MgdGhlIG92ZXJmbG93IGV2ZW50IHRvIGJlIGF0dGFjaGVkIHRvIGEgc3BlY2lmaWMgYXNzZW1ibHkgaW5zdHJ1Y3Rpb24gaW4gYSBiaW5hcnkgaW1hZ2UuClRoZSBkYWVtb24gcmVjZWl2ZXMgdGhpcyBkYXRhIGZyb20gdGhlIGtlcm5lbCwgYW5kIHdyaXRlcyBpdCB0byB0aGUgc2FtcGxlIGZpbGVzLgo8L3A+CiAgICAgICAgICAgIDxwPgpJZiB3ZSB1c2UgYW4gZXZlbnQgc3VjaCBhcyA8Y29kZSBjbGFzcz0iY29uc3RhbnQiPkNQVV9DTEtfVU5IQUxURUQ8L2NvZGU+IG9yIDxjb2RlIGNsYXNzPSJjb25zdGFudCI+SU5TVF9SRVRJUkVEPC9jb2RlPgooPGNvZGUgY2xhc3M9ImNvbnN0YW50Ij5HTE9CQUxfUE9XRVJfRVZFTlRTPC9jb2RlPiBvciA8Y29kZSBjbGFzcz0iY29uc3RhbnQiPklOU1RSX1JFVElSRUQ8L2NvZGU+LCByZXNwZWN0aXZlbHksIG9uIHRoZSBQZW50aXVtIDQpLCB3ZSBjYW4KdXNlIHRoZSBvdmVyZmxvdyBjb3VudHMgYXMgYW4gZXN0aW1hdGUgb2YgYWN0dWFsIHRpbWUgc3BlbnQgaW4gZWFjaCBwYXJ0IG9mIGNvZGUuIEFsdGVybmF0aXZlbHkgd2UgY2FuIHByb2ZpbGUgaW50ZXJlc3RpbmcKZGF0YSBzdWNoIGFzIHRoZSBjYWNoZSBiZWhhdmlvdXIgb2Ygcm91dGluZXMgd2l0aCB0aGUgb3RoZXIgYXZhaWxhYmxlIGNvdW50ZXJzLgo8L3A+CiAgICAgICAgICAgIDxwPgpIb3dldmVyIHRoZXJlIGFyZSBzZXZlcmFsIGNhdmVhdHMuIEZpcnN0LCB0aGVyZSBhcmUgdGhvc2UgaXNzdWVzIGxpc3RlZCBpbiB0aGUgSW50ZWwgbWFudWFsLiBUaGVyZSBpcyBhIGRlbGF5CmJldHdlZW4gdGhlIGNvdW50ZXIgb3ZlcmZsb3cgYW5kIHRoZSBpbnRlcnJ1cHQgZGVsaXZlcnkgdGhhdCBjYW4gc2tldyByZXN1bHRzIG9uIGEgc21hbGwgc2NhbGUgLSB0aGlzIG1lYW5zCnlvdSBjYW5ub3QgcmVseSBvbiB0aGUgcHJvZmlsZXMgYXQgdGhlIGluc3RydWN0aW9uIGxldmVsIGFzIGJlaW5nIHBlcmZlY3RseSBhY2N1cmF0ZS4KSWYgeW91IGFyZSB1c2luZyBhbiAiZXZlbnQtbW9kZSIgY291bnRlciBzdWNoIGFzIHRoZSBjYWNoZSBjb3VudGVycywgYSBjb3VudCByZWdpc3RlcmVkIGFnYWluc3QgaXQgZG9lc24ndCBtZWFuCnRoYXQgaXQgaXMgcmVzcG9uc2libGUgZm9yIHRoYXQgZXZlbnQuIEhvd2V2ZXIsIGl0IGltcGxpZXMgdGhhdCB0aGUgY291bnRlciBvdmVyZmxvd2VkIGluIHRoZSBkeW5hbWljCnZpY2luaXR5IG9mIHRoYXQgaW5zdHJ1Y3Rpb24sIHRvIHdpdGhpbiBhIGZldyBpbnN0cnVjdGlvbnMuIEZ1cnRoZXIgZGV0YWlscyBvbiB0aGlzIHByb2JsZW0gY2FuIGJlIGZvdW5kIGluIAo8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI2ludGVycHJldGluZyIgdGl0bGU9IkNoYXB0ZXKgNS6gSW50ZXJwcmV0aW5nIHByb2ZpbGluZyByZXN1bHRzIj5DaGFwdGVyoDUsIDxpPkludGVycHJldGluZyBwcm9maWxpbmcgcmVzdWx0czwvaT48L2E+IGFuZCBhbHNvIGluIHRoZSBEaWdpdGFsIHBhcGVyICJQcm9maWxlTWU6IEEgSGFyZHdhcmUgUGVyZm9ybWFuY2UgQ291bnRlciIuCjwvcD4KICAgICAgICAgICAgPHA+CkVhY2ggY291bnRlciBoYXMgc2V2ZXJhbCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuCkZpcnN0LCB0aGVyZSBpcyB0aGUgdW5pdCBtYXNrOiB0aGlzIHNpbXBseSBmdXJ0aGVyIHNwZWNpZmllcyB3aGF0IHRvIGNvdW50LgpTZWNvbmQsIHRoZXJlIGlzIHRoZSBjb3VudGVyIHZhbHVlLCBkaXNjdXNzZWQgYmVsb3cuIFRoaXJkLCB0aGVyZSBpcyBhIHBhcmFtZXRlciB3aGV0aGVyIHRvIGluY3JlbWVudCBjb3VudHMKd2hpbHN0IGluIGtlcm5lbCBvciB1c2VyIHNwYWNlLiBZb3UgY2FuIGNvbmZpZ3VyZSB0aGVzZSBzZXBhcmF0ZWx5IGZvciBlYWNoIGNvdW50ZXIuCjwvcD4KICAgICAgICAgICAgPHA+CkFmdGVyIGVhY2ggb3ZlcmZsb3cgZXZlbnQsIHRoZSBjb3VudGVyIHdpbGwgYmUgcmUtaW5pdGlhbGl6ZWQKc3VjaCB0aGF0IGFub3RoZXIgb3ZlcmZsb3cgd2lsbCBvY2N1ciBhZnRlciB0aGlzIG1hbnkgZXZlbnRzIGhhdmUgYmVlbiBjb3VudGVkLiBUaHVzLCBoaWdoZXIKdmFsdWVzIG1lYW4gbGVzcy1kZXRhaWxlZCBwcm9maWxpbmcsIGFuZCBsb3dlciB2YWx1ZXMgbWVhbiBtb3JlIGRldGFpbCwgYnV0IGhpZ2hlciBvdmVyaGVhZC4KUGlja2luZyBhIGdvb2QgdmFsdWUgZm9yIHRoaXMKcGFyYW1ldGVyIGlzLCB1bmZvcnR1bmF0ZWx5LCBzb21ld2hhdCBvZiBhIGJsYWNrIGFydC4gSXQgaXMgb2YgY291cnNlIGRlcGVuZGVudCBvbiB0aGUgZXZlbnQKeW91IGhhdmUgY2hvc2VuLgpTcGVjaWZ5aW5nIHRvbyBsYXJnZSBhIHZhbHVlIHdpbGwgbWVhbiBub3QgZW5vdWdoIGludGVycnVwdHMgYXJlIGdlbmVyYXRlZAp0byBnaXZlIGEgcmVhbGlzdGljIHByb2ZpbGUgKHRob3VnaCB0aGlzIHByb2JsZW0gY2FuIGJlIGFtZWxpb3JhdGVkIGJ5IHByb2ZpbGluZyBmb3IgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+bG9uZ2VyPC9lbT48L3NwYW4+KS4KU3BlY2lmeWluZyB0b28gc21hbGwgYSB2YWx1ZSBjYW4gbGVhZCB0byBoaWdoZXIgcGVyZm9ybWFuY2Ugb3ZlcmhlYWQuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSI0LjIuoE9Qcm9maWxlIGluIFJUQyBtb2RlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9InJ0YyI+PC9hPjQuMi6gT1Byb2ZpbGUgaW4gUlRDIG1vZGU8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlIiB0aXRsZT0iTm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPgogICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPk5vdGU8L2gzPgogICAgICAgICAgICAgIDxwPgpUaGlzIHNlY3Rpb24gYXBwbGllcyB0byAyLjIvMi40IGtlcm5lbHMgb25seS4KPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+ClNvbWUgQ1BVIHR5cGVzIGRvIG5vdCBwcm92aWRlIHRoZSBuZWVkZWQgaGFyZHdhcmUgc3VwcG9ydCB0byB1c2UgdGhlIGhhcmR3YXJlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLiBUaGlzIGluY2x1ZGVzCnNvbWUgbGFwdG9wcywgY2xhc3NpYyBQZW50aXVtcywgYW5kIG90aGVyIENQVSB0eXBlcyBub3QgeWV0IHN1cHBvcnRlZCBieSBPUHJvZmlsZSAoc3VjaCBhcyBDeXJpeCkuIApPbiB0aGVzZSBtYWNoaW5lcywgT1Byb2ZpbGUgZmFsbHMKYmFjayB0byB1c2luZyB0aGUgcmVhbC10aW1lIGNsb2NrIGludGVycnVwdCB0byBjb2xsZWN0IHNhbXBsZXMuIFRoaXMgaW50ZXJydXB0IGlzIGFsc28gdXNlZCBieSB0aGUgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+cnRjPC9zdHJvbmc+PC9zcGFuPgptb2R1bGU6IHlvdSBjYW5ub3QgaGF2ZSBib3RoIHRoZSBPUHJvZmlsZSBhbmQgcnRjIG1vZHVsZXMgbG9hZGVkIG5vciB0aGUgcnRjIHN1cHBvcnQgY29tcGlsZWQgaW4gdGhlIGtlcm5lbC4KPC9wPgogICAgICAgICAgICA8cD4KUlRDIG1vZGUgaXMgbGVzcyBjYXBhYmxlIHRoYW4gdGhlIGhhcmR3YXJlIGNvdW50ZXJzIG1vZGU7IGluIHBhcnRpY3VsYXIsIGl0IGlzIHVuYWJsZSB0byBwcm9maWxlIHNlY3Rpb25zIG9mCnRoZSBrZXJuZWwgd2hlcmUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQuIFRoZXJlIGlzIGp1c3Qgb25lIGF2YWlsYWJsZSBldmVudCwgIlJUQyBpbnRlcnJ1cHRzIiwgYW5kIGl0cyB2YWx1ZSAKY29ycmVzcG9uZHMgdG8gdGhlIG51bWJlciBvZiBpbnRlcnJ1cHRzIGdlbmVyYXRlZCBwZXIgc2Vjb25kICh0aGF0IGlzLCBhIGhpZ2hlciBudW1iZXIgbWVhbnMgYSBiZXR0ZXIgcHJvZmlsaW5nCnJlc29sdXRpb24sIGFuZCBoaWdoZXIgb3ZlcmhlYWQpLiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVhbC10aW1lIGNsb2NrIHN1cHBvcnRzIG9ubHkgcG93ZXItb2YtdHdvCnNhbXBsaW5nIHJhdGVzIGZyb20gMiB0byA0MDk2IHBlciBzZWNvbmQuICBPdGhlciB2YWx1ZXMgd2l0aGluIHRoaXMgcmFuZ2UgYXJlIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgcG93ZXIgb2YKdHdvLgo8L3A+CiAgICAgICAgICAgIDxwPgpZb3UgY2FuIGZvcmNlIHVzZSBvZiB0aGUgUlRDIGludGVycnVwdCB3aXRoIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj5mb3JjZV9ydGM9MTwvY29kZT4gbW9kdWxlIHBhcmFtZXRlci4KPC9wPgogICAgICAgICAgICA8cD4KU2V0dGluZyB0aGUgdmFsdWUgZnJvbSB0aGUgR1VJIHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQuIE9uIHRoZSBjb21tYW5kIGxpbmUsIHlvdSBuZWVkIHRvIHNwZWNpZnkgdGhlCmV2ZW50IHRvIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj4sIGUuZy4gOgo8L3A+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb21tYW5kIj4KICAgICAgICAgICAgICAgIDxzdHJvbmc+b3Bjb250cm9sIC0tZXZlbnQ9UlRDX0lOVEVSUlVQVFM6MjU2PC9zdHJvbmc+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNC4zLqBPUHJvZmlsZSBpbiB0aW1lciBpbnRlcnJ1cHQgbW9kZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJ0aW1lciI+PC9hPjQuMy6gT1Byb2ZpbGUgaW4gdGltZXIgaW50ZXJydXB0IG1vZGU8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlIiB0aXRsZT0iTm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPgogICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPk5vdGU8L2gzPgogICAgICAgICAgICAgIDxwPgpUaGlzIHNlY3Rpb24gYXBwbGllcyB0byAyLjYga2VybmVscyBhbmQgYWJvdmUgb25seS4KPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+CkluIDIuNiBrZXJuZWxzIG9uIENQVXMgd2l0aG91dCBPUHJvZmlsZSBzdXBwb3J0IGZvciB0aGUgaGFyZHdhcmUgcGVyZm9ybWFuY2UgY291bnRlcnMsIHRoZSBkcml2ZXIKZmFsbHMgYmFjayB0byB1c2luZyB0aGUgdGltZXIgaW50ZXJydXB0IGZvciBwcm9maWxpbmcuIExpa2UgdGhlIFJUQyBtb2RlIGluIDIuNCBrZXJuZWxzLCB0aGlzIGlzIG5vdCBhYmxlIHRvCnByb2ZpbGUgY29kZSB0aGF0IGhhcyBpbnRlcnJ1cHRzIGRpc2FibGVkLiBOb3RlIHRoYXQgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IKc2V0dGluZyB0aGlzLCB1bmxpa2UgdGhlIFJUQyBhbmQgaGFyZHdhcmUgcGVyZm9ybWFuY2UgY291bnRlciBzZXR1cC4KPC9wPgogICAgICAgICAgICA8cD4KWW91IGNhbiBmb3JjZSB1c2Ugb2YgdGhlIHRpbWVyIGludGVycnVwdCBieSB1c2luZyB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+dGltZXI9MTwvY29kZT4gbW9kdWxlCnBhcmFtZXRlciAob3IgPGNvZGUgY2xhc3M9Im9wdGlvbiI+b3Byb2ZpbGUudGltZXI9MTwvY29kZT4gb24gdGhlIGJvb3QgY29tbWFuZCBsaW5lIGlmIE9Qcm9maWxlIGlzCmJ1aWx0LWluKS4KPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjQuNC6gUGVudGl1bSA0IHN1cHBvcnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0icDQiPjwvYT40LjQuoFBlbnRpdW0gNCBzdXBwb3J0PC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+ClRoZSBQZW50aXVtIDQgLyBYZW9uIHBlcmZvcm1hbmNlIGNvdW50ZXJzIGFyZSBvcmdhbml6ZWQgYXJvdW5kIDMgdHlwZXMgb2YgbW9kZWwgc3BlY2lmaWMgcmVnaXN0ZXJzIChNU1JzKTogNDUgZXZlbnQKc2VsZWN0aW9uIGNvbnRyb2wgcmVnaXN0ZXJzIChFU0NScyksIDE4IGNvdW50ZXIgY29uZmlndXJhdGlvbiBjb250cm9sIHJlZ2lzdGVycyAoQ0NDUnMpIGFuZCAxOCBjb3VudGVycy4gRVNDUnMgZGVzY3JpYmUgYQpwYXJ0aWN1bGFyIHNldCBvZiBldmVudHMgd2hpY2ggYXJlIHRvIGJlIHJlY29yZGVkLCBhbmQgQ0NDUnMgYmluZCBFU0NScyB0byBjb3VudGVycyBhbmQgY29uZmlndXJlIHRoZWlyCm9wZXJhdGlvbi4gVW5mb3J0dW5hdGVseSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlc2UgcmVnaXN0ZXJzIGlzIHF1aXRlIGNvbXBsZXg7IHRoZXkgY2Fubm90IGFsbCBiZSB1c2VkIHdpdGggb25lCmFub3RoZXIgYXQgYW55IHRpbWUuIFRoZXJlIGlzLCBob3dldmVyLCBhIHN1YnNldCBvZiA4IGNvdW50ZXJzLCA4IEVTQ1JzLCBhbmQgOCBDQ0NScyB3aGljaCBjYW4gYmUgdXNlZCBpbmRlcGVuZGVudGx5IG9mCm9uZSBhbm90aGVyLCBzbyBPUHJvZmlsZSBvbmx5IGFjY2Vzc2VzIHRob3NlIHJlZ2lzdGVycywgdHJlYXRpbmcgdGhlbSBhcyBhIGJhbmsgb2YgOCAibm9ybWFsIiBjb3VudGVycywgc2ltaWxhcgp0byB0aG9zZSBpbiB0aGUgUDYgb3IgQXRobG9uL09wdGVyb24vUGhlbm9tL1R1cmlvbiBmYW1pbGllcyBvZiBDUFUuCjwvcD4KICAgICAgICAgICAgPHA+ClRoZXJlIGlzIGN1cnJlbnRseSBubyBzdXBwb3J0IGZvciBQcmVjaXNpb24gRXZlbnQtQmFzZWQgU2FtcGxpbmcgKFBFQlMpLCBub3IgYW55IGFkdmFuY2VkIHVzZXMgb2YgdGhlIERlYnVnIFN0b3JlCihEUykuIEN1cnJlbnQgc3VwcG9ydCBpcyBsaW1pdGVkIHRvIHRoZSBjb25zZXJ2YXRpdmUgZXh0ZW5zaW9uIG9mIE9Qcm9maWxlJ3MgZXhpc3RpbmcgaW50ZXJydXB0LWJhc2VkIG1vZGVsIGRlc2NyaWJlZAphYm92ZS4gIFBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaGFyZHdhcmUgb24gUGVudGl1bSA0IC8gWGVvbiBwcm9jZXNzb3JzIHdpdGggSHlwZXJ0aHJlYWRpbmcgZW5hYmxlZCAobXVsdGlwbGUgbG9naWNhbApwcm9jZXNzb3JzIG9uIGEgc2luZ2xlIGRpZSkgaXMgbm90IHN1cHBvcnRlZCBpbiAyLjQga2VybmVscyAoeW91IGNhbiB1c2UgT1Byb2ZpbGUgaWYgeW91IGRpc2FibGUgaHlwZXItdGhyZWFkaW5nLAp0aG91Z2gpLgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNC41LqBJbnRlbCBJdGFuaXVtIDIgc3VwcG9ydCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJpYTY0Ij48L2E+NC41LqBJbnRlbCBJdGFuaXVtIDIgc3VwcG9ydDwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpUaGUgSXRhbml1bSAyIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgdW5pdCAoUE1VKSBvcmdhbml6ZXMgdGhlIGNvdW50ZXJzIGFzIGZvdXIKcGFpcnMgb2YgcGVyZm9ybWFuY2UgZXZlbnQgbW9uaXRvcmluZyByZWdpc3RlcnMuIEVhY2ggcGFpciBpcyBjb21wb3NlZCBvZiBhClBlcmZvcm1hbmNlIE1vbml0b3JpbmcgQ29uZmlndXJhdGlvbiAoUE1DKSByZWdpc3RlciBhbmQgUGVyZm9ybWFuY2UgTW9uaXRvcmluZwpEYXRhIChQTUQpIHJlZ2lzdGVyLiAgVGhlIFBNQyBzZWxlY3RzIHRoZSBwZXJmb3JtYW5jZSBldmVudCBiZWluZyBtb25pdG9yZWQgYW5kCnRoZSBQTUQgZGV0ZXJtaW5lcyB0aGUgc2FtcGxpbmcgaW50ZXJ2YWwuIFRoZSBJQTY0IFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdAooUE1VKSB0cmlnZ2VycyBzYW1wbGluZyB3aXRoIG1hc2thYmxlIGludGVycnVwdHMuIFRodXMsIHNhbXBsZXMgd2lsbCBub3Qgb2NjdXIKaW4gc2VjdGlvbnMgb2YgdGhlIElBNjQga2VybmVsIHdoZXJlIGludGVycnVwdHMgYXJlIGRpc2FibGVkLgo8L3A+CiAgICAgICAgICAgIDxwPgpOb25lIG9mIHRoZSBhZHZhbmNlIGZlYXR1cmVzIG9mIHRoZSBJdGFuaXVtIDIgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0CnN1Y2ggYXMgb3Bjb2RlIG1hdGNoaW5nLCBhZGRyZXNzIHJhbmdlIG1hdGNoaW5nLCBvciBwcmVjaXNlIGV2ZW50IHNhbXBsaW5nIGFyZQpzdXBwb3J0ZWQgYnkgdGhpcyB2ZXJzaW9uIG9mIE9Qcm9maWxlLiAgVGhlIEl0YW5pdW0gMiBzdXBwb3J0IG9ubHkgbWFwcyBPUHJvZmlsZSdzCmV4aXN0aW5nIGludGVycnVwdC1iYXNlZCBtb2RlbCB0byB0aGUgUE1VIGhhcmR3YXJlLgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNC42LqBQb3dlclBDNjQgc3VwcG9ydCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJwcGM2NCI+PC9hPjQuNi6gUG93ZXJQQzY0IHN1cHBvcnQ8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KVGhlIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgdW5pdCAoUE1VKSBmb3IgdGhlIElCTSBQb3dlclBDIDY0LWJpdCBwcm9jZXNzb3JzIApjb25zaXN0cyBvZiBiZXR3ZWVuIDQgYW5kIDggY291bnRlcnMgKGRlcGVuZGluZyBvbiB0aGUgbW9kZWwpLCBwbHVzIHRocmVlCnNwZWNpYWwgcHVycG9zZSByZWdpc3RlcnMgdXNlZCBmb3IgcHJvZ3JhbW1pbmcgdGhlIGNvdW50ZXJzIC0tIE1NQ1IwLCBNTUNSMSwKYW5kIE1NQ1JBLiAgQWR2YW5jZWQgZmVhdHVyZXMgc3VjaCBhcyBpbnN0cnVjdGlvbiBtYXRjaGluZyBhbmQgdGhyZXNob2xkaW5nIGFyZQpub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgdmVyc2lvbiBvZiBPUHJvZmlsZS4KPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlIiB0aXRsZT0iTm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjxoMyBjbGFzcz0idGl0bGUiPk5vdGU8L2gzPkxhdGVyIHZlcnNpb25zIG9mIHRoZSBJQk0gUE9XRVI1KyBwcm9jZXNzb3IgKGJlZ2lubmluZyB3aXRoIHJldmlzaW9uIDMuMCkKcnVuIHRoZSBwZXJmb3JtYW5jZSBtb25pdG9yIHVuaXQgaW4gUE9XRVI2IG1vZGUsIGVmZmVjdGl2ZWx5IHJlbW92aW5nIE9Qcm9maWxlJ3MKYWNjZXNzIHRvIGNvdW50ZXJzIDUgYW5kIDYuICBUaGVzZSB0d28gY291bnRlcnMgYXJlIGRlZGljYXRlZCB0byBjb3VudGluZwppbnN0cnVjdGlvbnMgY29tcGxldGVkIGFuZCBjeWNsZXMsIHJlc3BlY3RpdmVseS4gIEluIFBPV0VSNiBtb2RlLCBob3dldmVyLCB0aGUKY291bnRlcnMgZG8gbm90IGdlbmVyYXRlIGFuIGludGVycnVwdCBvbiBvdmVyZmxvdyBhbmQgc28gYXJlIHVudXNhYmxlIGJ5Ck9Qcm9maWxlLiAgS2VybmVsIHZlcnNpb25zIDIuNi4yMyBhbmQgaGlnaGVyIHdpbGwgcmVjb2duaXplIHRoaXMgbW9kZQphbmQgZXhwb3J0ICJwcGM2NC9wb3dlcjUrKyIgYXMgdGhlIGNwdV90eXBlIHRvIHRoZSBvcHJvZmlsZWZzIHBzZXVkbyBmaWxlc3lzdGVtLgpPUHJvZmlsZSB1c2Vyc3BhY2UgcmVzcG9uZHMgdG8gdGhpcyBjcHVfdHlwZSBieSByZW1vdmluZyB0aGVzZSBjb3VudGVycyBmcm9tCnRoZSBsaXN0IG9mIHBvdGVudGlhbCBldmVudHMgdG8gY291bnQuICBXaXRob3V0IHRoaXMga2VybmVsIHN1cHBvcnQsIGF0dGVtcHRzCnRvIHByb2ZpbGUgdXNpbmcgYW4gZXZlbnQgZnJvbSBvbmUgb2YgdGhlc2UgY291bnRlcnMgd2lsbCB5aWVsZCBpbmNvcnJlY3QKcmVzdWx0cyAtLSB0eXBpY2FsbHksIHplcm8gKG9yIG5lYXIgemVybykgc2FtcGxlcyBpbiB0aGUgZ2VuZXJhdGVkIHJlcG9ydC4KPC9kaXY+CiAgICAgICAgICAgIDxwPgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNC43LqBDZWxsIEJyb2FkYmFuZCBFbmdpbmUgc3VwcG9ydCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJjZWxsLWJlIj48L2E+NC43LqBDZWxsIEJyb2FkYmFuZCBFbmdpbmUgc3VwcG9ydDwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpUaGUgQ2VsbCBCcm9hZGJhbmQgRW5naW5lIChDQkUpIHByb2Nlc3NvciBjb3JlIGNvbnNpc3RzIG9mIGEgUG93ZXJQQyBQcm9jZXNzaW5nCkVsZW1lbnQgKFBQRSkgYW5kIDggU3luZXJnaXN0aWMgUHJvY2Vzc2luZyBFbGVtZW50cyAoU1BFKS4gIFBQRXMgYW5kIFNQRXMgZWFjaApjb25zaXN0IG9mIGEgcHJvY2Vzc2luZyB1bml0IChQUFUgYW5kIFNQVSwgcmVzcGVjdGl2ZWx5KSBhbmQgb3RoZXIgaGFyZHdhcmUKY29tcG9uZW50cywgc3VjaCBhcyBtZW1vcnkgY29udHJvbGxlcnMuCjwvcD4KICAgICAgICAgICAgPHA+CkEgUFBVIGhhcyB0d28gaGFyZHdhcmUgdGhyZWFkcyAoYWthICJ2aXJ0dWFsIENQVXMiKS4gIFRoZSBwZXJmb3JtYW5jZSBtb25pdG9yCnVuaXQgb2YgdGhlIENCRSBjb2xsZWN0cyBldmVudCBpbmZvcm1hdGlvbiBvbiBvbmUgaGFyZHdhcmUgdGhyZWFkIGF0IGEgdGltZS4KVGhlcmVmb3JlLCB3aGVuIHByb2ZpbGluZyBQUEUgZXZlbnRzLApPUHJvZmlsZSBjb2xsZWN0cyB0aGUgcHJvZmlsZSBiYXNlZCBvbiB0aGUgc2VsZWN0ZWQgZXZlbnRzIGJ5IHRpbWUgc2xpY2luZyB0aGUKcGVyZm9ybWFuY2UgY291bnRlciBoYXJkd2FyZSBiZXR3ZWVuIHRoZSB0d28gdGhyZWFkcy4gICBUaGUgdXNlciBtdXN0IGVuc3VyZSB0aGUKY29sbGVjdGlvbiBpbnRlcnZhbCBpcyBsb25nIGVub3VnaCBzbyB0aGF0IHRoZSB0aW1lIHNwZW50IGNvbGxlY3RpbmcgZGF0YSBmb3IKZWFjaCBQUFUgaXMgc3VmZmljaWVudCB0byBvYnRhaW4gYSBnb29kIHByb2ZpbGUuCjwvcD4KICAgICAgICAgICAgPHA+ClRvIHByb2ZpbGUgYW4gU1BVIGFwcGxpY2F0aW9uLCB0aGUgdXNlciBzaG91bGQgc3BlY2lmeSB0aGUgU1BVX0NZQ0xFUyBldmVudC4KV2hlbiBzdGFydGluZyBPUHJvZmlsZSB3aXRoIFNQVV9DWUNMRVMsIHRoZSBvcGNvbnRyb2wgc2NyaXB0IGVuZm9yY2VzIGNlcnRhaW4Kc2VwYXJhdGlvbiBwYXJhbWV0ZXJzIChzZXBhcmF0ZT1jcHUsbGliKSB0byBlbnN1cmUgdGhhdCBzdWZmaWNpZW50IGluZm9ybWF0aW9uCmlzIGNvbGxlY3RlZCBpbiB0aGUgc2FtcGxlIGRhdGEgaW4gb3JkZXIgdG8gZ2VuZXJhdGUgYSBjb21wbGV0ZSByZXBvcnQuICBUaGUKLS1tZXJnZT1jcHUgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIG9idGFpbiBhIG1vcmUgcmVhZGFibGUgcmVwb3J0IGlmIGFuYWx5emluZwp0aGUgcGVyZm9ybWFuY2Ugb2YgZWFjaCBzZXBhcmF0ZSBTUFUgaXMgbm90IG5lY2Vzc2FyeS4KPC9wPgogICAgICAgICAgICA8cD4KUHJvZmlsaW5nIHdpdGggYW4gU1BVIGV2ZW50IChldmVudHMgNDEwMCB0aHJvdWdoIDQxNjMpIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYW55IG90aGVyCmV2ZW50LiAgRnVydGhlciBtb3JlLCBvbmx5IG9uZSBTUFUgZXZlbnQgY2FuIGJlIHNwZWNpZmllZCBhdCBhIHRpbWUuICBUaGUgaGFyZHdhcmUgb25seQpzdXBwb3J0cyBwcm9maWxpbmcgb24gb25lIFNQVSBwZXIgbm9kZSBhdCBhIHRpbWUuICBUaGUgT1Byb2ZpbGUga2VybmVsIGNvZGUgdGltZSBzbGljZXMKYmV0d2VlbiB0aGUgZWlnaHQgU1BVcyB0byBjb2xsZWN0IGRhdGEgb24gYWxsIFNQVXMuCjwvcD4KICAgICAgICAgICAgPHA+ClNQVSBwcm9maWxlIHJlcG9ydHMgaGF2ZSBzb21lIHVuaXF1ZSBjaGFyYWN0ZXJpc3RpY3MgY29tcGFyZWQgdG8gcmVwb3J0cyBmb3IKc3RhbmRhcmQgYXJjaGl0ZWN0dXJlczoKPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPgogICAgICAgICAgICAgIDx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiB0eXBlPSJkaXNjIj4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPlR5cGljYWxseSBubyAiYXBwIG5hbWUiIGNvbHVtbi4gIFRoaXMgaXMgcmVhbGx5IHN0YW5kYXJkIE9Qcm9maWxlIGJlaGF2aW9yCndoZW4gdGhlIHJlcG9ydCBjb250YWlucyBzYW1wbGVzIGZvciBqdXN0IGEgc2luZ2xlIGFwcGxpY2F0aW9uLCB3aGljaCBpcwpjb21tb25seSB0aGUgY2FzZSB3aGVuIHByb2ZpbGluZyBTUFVzLjwvbGk+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3RpdGVtIj4iQ1BVIiBlcXVhdGVzIHRvICJTUFUiPC9saT4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPlNwZWNpZnlpbmcgJy0tbG9uZy1maWxlbmFtZXMnIG9uIHRoZSBvcHJlcG9ydCBjb21tYW5kIGRvZXMgbm90IGFsd2F5cyByZXN1bHQKaW4gbG9uZyBmaWxlbmFtZXMuICBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgU1BVIGFwcGxpY2F0aW9uIGNvZGUgaXMgZW1iZWRkZWQgaW4KdGhlIFBQRSBleGVjdXRhYmxlIG9yIHNoYXJlZCBsaWJyYXJ5LiAgVGhlIGVtYmVkZGVkIFNQVSBFTEYgZGF0YSBjb250YWlucyBvbmx5IHRoZQpzaG9ydCBmaWxlbmFtZSAoaS5lLiwgbm8gcGF0aCBpbmZvcm1hdGlvbikgZm9yIHRoZSBTUFUgYmluYXJ5IGZpbGUgdGhhdCB3YXMgdXNlZCBhcwp0aGUgc291cmNlIGZvciBlbWJlZGRpbmcuICAgVGhlIHJlYXNvbiB0aGF0IGp1c3QgdGhlIHNob3J0IGZpbGVuYW1lIGlzIHVzZWQgaXMgYmVjYXVzZQp0aGUgb3JpZ2luYWwgU1BVIGJpbmFyeSBmaWxlIG1heSBub3QgZXhpc3Qgb3IgYmUgYWNjZXNzaWJsZSBhdCBydW50aW1lLiAgVGhlIHBlcmZvcm1hbmNlCmFuYWx5c3QgbXVzdCBoYXZlIHN1ZmZpY2llbnQga25vd2xlZGdlIG9mIHRoZSBhcHBsaWNhdGlvbiB0byBiZSBhYmxlIHRvIGNvcnJlbGF0ZSB0aGUKU1BVIGJpbmFyeSBpbWFnZSBuYW1lcyBmb3VuZCBpbiB0aGUgIHJlcG9ydCB0byB0aGUgYXBwbGljYXRpb24ncyBzb3VyY2UgZmlsZXMuCjxkaXYgY2xhc3M9Im5vdGUiIHRpdGxlPSJOb3RlIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+PGgzIGNsYXNzPSJ0aXRsZSI+Tm90ZTwvaDM+CkNvbXBpbGUgdGhlIGFwcGxpY2F0aW9uIHdpdGggLWcgYW5kIGdlbmVyYXRlIHRoZSBPUHJvZmlsZSByZXBvcnQKd2l0aCAtZyB0byBmYWNpbGl0YXRlIGZpbmRpbmcgdGhlIHJpZ2h0IHNvdXJjZSBmaWxlKHMpIG9uIHdoaWNoIHRvIGZvY3VzLgo8L2Rpdj48L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjQuOC6gQU1ENjQgKHg4Nl82NCkgSW5zdHJ1Y3Rpb24tQmFzZWQgU2FtcGxpbmcgKElCUykgc3VwcG9ydCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJhbWQtaWJzLXN1cHBvcnQiPjwvYT40LjguoEFNRDY0ICh4ODZfNjQpIEluc3RydWN0aW9uLUJhc2VkIFNhbXBsaW5nIChJQlMpIHN1cHBvcnQ8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KSW5zdHJ1Y3Rpb24tQmFzZWQgU2FtcGxpbmcgKElCUykgaXMgYSBuZXcgcGVyZm9ybWFuY2UgbWVhc3VyZW1lbnQgdGVjaG5pcXVlCmF2YWlsYWJsZSBvbiBBTUQgRmFtaWx5IDEwaCBwcm9jZXNzb3JzLiBUcmFkaXRpb25hbCBwZXJmb3JtYW5jZSBjb3VudGVyCnNhbXBsaW5nIGlzIG5vdCBwcmVjaXNlIGVub3VnaCB0byBpc29sYXRlIHBlcmZvcm1hbmNlIGlzc3VlcyB0byBpbmRpdmlkdWFsCmluc3RydWN0aW9ucy4gSUJTLCBob3dldmVyLCBwcmVjaXNlbHkgaWRlbnRpZmllcyBpbnN0cnVjdGlvbnMgd2hpY2ggYXJlIG5vdAptYWtpbmcgdGhlIGJlc3QgdXNlIG9mIHRoZSBwcm9jZXNzb3IgcGlwZWxpbmUgYW5kIG1lbW9yeSBoaWVyYXJjaHkuCkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlICJJbnN0cnVjdGlvbi1CYXNlZCBTYW1wbGluZzoKQSBOZXcgUGVyZm9ybWFuY2UgQW5hbHlzaXMgVGVjaG5pcXVlIGZvciBBTUQgRmFtaWx5IDEwaCBQcm9jZXNzb3JzIiAoCjxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2RldmVsb3Blci5hbWQuY29tL2Fzc2V0cy9BTURfSUJTX3BhcGVyX0VOLnBkZiI+Cmh0dHA6Ly9kZXZlbG9wZXIuYW1kLmNvbS9hc3NldHMvQU1EX0lCU19wYXBlcl9FTi5wZGY8L2E+KS4KVGhlcmUgYXJlIHR3byB0eXBlcyBvZiBJQlMgcHJvZmlsZSB0eXBlcywgZGVzY3JpYmVkIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuCjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDMiIHRpdGxlPSI0LjguMS6gSUJTIEZldGNoIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9InRpdGxlIj48YSBpZD0iaWJzLWZldGNoIj48L2E+NC44LjEuoElCUyBGZXRjaDwvaDQ+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHA+CklCUyBmZXRjaCBzYW1wbGluZyBpcyBhIHN0YXRpc3RpY2FsIHNhbXBsaW5nIG1ldGhvZCB3aGljaCBjb3VudHMgY29tcGxldGVkCmZldGNoIG9wZXJhdGlvbnMuIFdoZW4gdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgZmV0Y2ggb3BlcmF0aW9ucyByZWFjaGVzIHRoZQptYXhpbXVtIGZldGNoIGNvdW50ICh0aGUgc2FtcGxpbmcgcGVyaW9kKSwgSUJTIHRhZ3MgdGhlIGZldGNoIG9wZXJhdGlvbiBhbmQKbW9uaXRvcnMgdGhhdCBvcGVyYXRpb24gdW50aWwgaXQgZWl0aGVyIGNvbXBsZXRlcyBvciBhYm9ydHMuIFdoZW4gYSB0YWdnZWQKZmV0Y2ggY29tcGxldGVzIG9yIGFib3J0cywgYSBzYW1wbGluZyBpbnRlcnJ1cHQgaXMgZ2VuZXJhdGVkIGFuZCBhbiBJQlMgZmV0Y2gKc2FtcGxlIGlzIHRha2VuLiBBbiBJQlMgZmV0Y2ggc2FtcGxlIGNvbnRhaW5zIGEgdGltZXN0YW1wLCB0aGUgaWRlbnRpZmllciBvZgp0aGUgaW50ZXJydXB0ZWQgcHJvY2VzcywgdGhlIHZpcnR1YWwgZmV0Y2ggYWRkcmVzcywgYW5kIHNldmVyYWwgZXZlbnQgZmxhZ3MKYW5kIHZhbHVlcyB0aGF0IGRlc2NyaWJlIHdoYXQgaGFwcGVuZWQgZHVyaW5nIHRoZSBmZXRjaCBvcGVyYXRpb24uIAo8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MyIgdGl0bGU9IjQuOC4yLqBJQlMgT3AiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGl0bGUiPjxhIGlkPSJpYnMtb3AiPjwvYT40LjguMi6gSUJTIE9wPC9oND4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8cD4KSUJTIG9wIHNhbXBsaW5nIHNlbGVjdHMsIHRhZ3MsIGFuZCBtb25pdG9ycyBtYWNyby1vcHMgYXMgaXNzdWVkIGZyb20gQU1ENjQKaW5zdHJ1Y3Rpb25zLiBUd28gb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpbmcgb3BzIGZvciBzYW1wbGluZzoKPC9wPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgdHlwZT0iZGlzYyI+CiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdGl0ZW0iPgpDeWNsZXMtYmFzZWQgc2VsZWN0aW9uIGNvdW50cyBDUFUgY2xvY2sgY3ljbGVzLiBUaGUgb3AgaXMgdGFnZ2VkIGFuZCBtb25pdG9yZWQKd2hlbiB0aGUgY291bnQgcmVhY2hlcyBhIHRocmVzaG9sZCAodGhlIHNhbXBsaW5nIHBlcmlvZCkgYW5kIGEgdmFsaWQgb3AgaXMKYXZhaWxhYmxlLiAKPC9saT4KICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsaXN0aXRlbSI+CkRpc3BhdGNoZWQgb3AtYmFzZWQgc2VsZWN0aW9uIGNvdW50cyBkaXNwYXRjaGVkIG1hY3JvLW9wcy4KV2hlbiB0aGUgY291bnQgcmVhY2hlcyBhIHRocmVzaG9sZCwgdGhlIG5leHQgdmFsaWQgb3AgaXMgdGFnZ2VkIGFuZCBtb25pdG9yZWQuIAo8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8cD4KSW4gYm90aCBjYXNlcywgYW4gSUJTIHNhbXBsZSBpcyBnZW5lcmF0ZWQgb25seSBpZiB0aGUgdGFnZ2VkIG9wIHJldGlyZXMuClRodXMsIElCUyBvcCBldmVudCBpbmZvcm1hdGlvbiBkb2VzIG5vdCBtZWFzdXJlIHNwZWN1bGF0aXZlIGV4ZWN1dGlvbiBhY3Rpdml0eS4KVGhlIGV4ZWN1dGlvbiBzdGFnZXMgb2YgdGhlIHBpcGVsaW5lIG1vbml0b3IgdGhlIHRhZ2dlZCBtYWNyby1vcC4gV2hlbiB0aGUKdGFnZ2VkIG1hY3JvLW9wIHJldGlyZXMsIGEgc2FtcGxpbmcgaW50ZXJydXB0IGlzIGdlbmVyYXRlZCBhbmQgYW4gSUJTIG9wCnNhbXBsZSBpcyB0YWtlbi4gQW4gSUJTIG9wIHNhbXBsZSBjb250YWlucyBhIHRpbWVzdGFtcCwgdGhlIGlkZW50aWZpZXIgb2YKdGhlIGludGVycnVwdGVkIHByb2Nlc3MsIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIEFNRDY0IGluc3RydWN0aW9uIGZyb20Kd2hpY2ggdGhlIG9wIHdhcyBpc3N1ZWQsIGFuZCBzZXZlcmFsIGV2ZW50IGZsYWdzIGFuZCB2YWx1ZXMgdGhhdCBkZXNjcmliZQp3aGF0IGhhcHBlbmVkIHdoZW4gdGhlIG1hY3JvLW9wIGV4ZWN1dGVkLgo8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KRW5hYmxpbmcgSUJTIHByb2ZpbGluZyBpcyBkb25lIHNpbXBseSBieSBzcGVjaWZ5aW5nIElCUyBwZXJmb3JtYW5jZSBldmVudHMKdGhyb3VnaCB0aGUgIi0tZXZlbnQ9IiBvcHRpb25zLiBUaGVzZSBldmVudHMgYXJlIGxpc3RlZCBpbiB0aGUKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5vcGNvbnRyb2wgLS1saXN0LWV2ZW50czwvY29kZT4uCjwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+Cm9wY29udHJvbCAtLWV2ZW50PUlCU19GRVRDSF9YWFg6Jmx0O2NvdW50Jmd0OzombHQ7dW0mZ3Q7OiZsdDtrZXJuZWwmZ3Q7OiZsdDt1c2VyJmd0OwpvcGNvbnRyb2wgLS1ldmVudD1JQlNfT1BfWFhYOiZsdDtjb3VudCZndDs6Jmx0O3VtJmd0OzombHQ7a2VybmVsJmd0OzombHQ7dXNlciZndDsKCk5vdGU6ICogQWxsIElCUyBmZXRjaCBldmVudCBtdXN0IGhhdmUgdGhlIHNhbWUgZXZlbnQgY291bnQgYW5kIHVuaXRtYXNrLAogICAgICAgIGFzIGRvIHRob3NlIGZvciBJQlMgb3AuCjwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjQuOS6gRGFuZ2Vyb3VzIGNvdW50ZXIgc2V0dGluZ3MiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0ibWlzdXNlIj48L2E+NC45LqBEYW5nZXJvdXMgY291bnRlciBzZXR0aW5nczwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpPUHJvZmlsZSBpcyBhIGxvdy1sZXZlbCBwcm9maWxlciB3aGljaCBhbGxvdyBjb250aW51b3VzIHByb2ZpbGluZyB3aXRoIGEgbG93LW92ZXJoZWFkIGNvc3QuCklmIHRvbyBsb3cgYSBjb3VudCByZXNldCB2YWx1ZSBpcyBzZXQgZm9yIGEgY291bnRlciwgdGhlIHN5c3RlbSBjYW4gYmVjb21lIG92ZXJsb2FkZWQgd2l0aCBjb3VudGVyCmludGVycnVwdHMsIGFuZCBzZWVtIGFzIGlmIHRoZSBzeXN0ZW0gaGFzIGZyb3plbi4gV2hpbHN0IHNvbWUgdmFsaWRhdGlvbiBpcyBkb25lLCBpdAppcyBub3QgZm9vbHByb29mLgo8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUiIHRpdGxlPSJOb3RlIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+CiAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+Tm90ZTwvaDM+CiAgICAgICAgICAgICAgPHA+ClRoaXMgY2FuIGhhcHBlbiBhcyBmb2xsb3dzOiBXaGVuIHRoZSBwcm9maWxlciBjb3VudApyZWFjaGVzIHplcm8gYW4gTk1JIGhhbmRsZXIgaXMgY2FsbGVkIHdoaWNoIHN0b3JlcyB0aGUgc2FtcGxlIHZhbHVlcyBpbiBhbiBpbnRlcm5hbCBidWZmZXIsIHRoZW4gcmVzZXRzIHRoZSBjb3VudGVyCnRvIGl0cyBvcmlnaW5hbCB2YWx1ZS4gSWYgdGhlIGNvdW50IGlzIHZlcnkgbG93LCBhIHBlbmRpbmcgTk1JIGNhbiBiZSBzZW50IGJlZm9yZSB0aGUgTk1JIGhhbmRsZXIgaGFzCmNvbXBsZXRlZC4gRHVlIHRvIHRoZSBwcmlvcml0eSBvZiB0aGUgTk1JLCB0aGUgbG9jYWwgQVBJQyBkZWxpdmVycyB0aGUgcGVuZGluZyBpbnRlcnJ1cHQgaW1tZWRpYXRlbHkgYWZ0ZXIKY29tcGxldGlvbiBvZiB0aGUgcHJldmlvdXMgaW50ZXJydXB0IGhhbmRsZXIsIGFuZCBjb250cm9sIG5ldmVyIHJldHVybnMgdG8gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS4KSW4gdGhpcyB3YXkgdGhlIHN5c3RlbSBzZWVtcyB0byBiZSBmcm96ZW4uCjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPklmIHRoaXMgaGFwcGVucywgaXQgd2lsbCBiZSBpbXBvc3NpYmxlIHRvIGJyaW5nIHRoZSBzeXN0ZW0gYmFjayB0byBhIHdvcmthYmxlIHN0YXRlLgpUaGVyZSBpcyBubyB3YXkgdG8gcHJvdmlkZSByZWFsIHNlY3VyaXR5IGFnYWluc3QgdGhpcyBoYXBwZW5pbmcsIG90aGVyIHRoYW4gbWFraW5nIHN1cmUgdG8gdXNlIGEgcmVhc29uYWJsZSB2YWx1ZQpmb3IgdGhlIGNvdW50ZXIgcmVzZXQuIEZvciBleGFtcGxlLCBzZXR0aW5nIDxjb2RlIGNsYXNzPSJjb25zdGFudCI+Q1BVX0NMS19VTkhBTFRFRDwvY29kZT4gZXZlbnQgdHlwZSB3aXRoIGEgcmlkaWN1bG91c2x5IGxvdyByZXNldCBjb3VudCAoZS5nLiA1MDApCmlzIGxpa2VseSB0byBmcmVlemUgdGhlIHN5c3RlbS4KPC9wPgogICAgICAgICAgICA8cD4KSW4gc2hvcnQgOiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5Eb24ndCB0cnkgYSBmb29saXNoIHNhbXBsZSBjb3VudCB2YWx1ZTwvc3Ryb25nPjwvc3Bhbj4uIFVuZm9ydHVuYXRlbHkgdGhlIGRlZmluaXRpb24gb2YgYSBmb29saXNoIHZhbHVlCmlzIHJlYWxseSBkZXBlbmRlbnQgb24gdGhlIGV2ZW50IHR5cGUgLSBpZiBldmVyIGluIGRvdWJ0LCBlLW1haWwgPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZGRyZXNzIj4KICAgICAgICAgICAgICA8cD48Y29kZSBjbGFzcz0iZW1haWwiPiZsdDs8YSBjbGFzcz0iZW1haWwiIGhyZWY9Im1haWx0bzpvcHJvZmlsZS1saXN0QGxpc3RzLnNmLm5ldCI+b3Byb2ZpbGUtbGlzdEBsaXN0cy5zZi5uZXQ8L2E+Jmd0OzwvY29kZT4uPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcHRlciIgdGl0bGU9IkNoYXB0ZXKgNC6gT2J0YWluaW5nIHJlc3VsdHMiPgogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiPjxhIGlkPSJyZXN1bHRzIj48L2E+Q2hhcHRlcqA0LqBPYnRhaW5pbmcgcmVzdWx0czwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9jIj4KICAgICAgICAgIDxwPgogICAgICAgICAgICA8Yj5UYWJsZSBvZiBDb250ZW50czwvYj4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkbD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjcHJvZmlsZS1zcGVjIj4xLiBQcm9maWxlIHNwZWNpZmljYXRpb25zPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcHJvZmlsZS1zcGVjLWV4YW1wbGVzIj4xLjEuIEV4YW1wbGVzPC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwcm9maWxlLXNwZWMtZGV0YWlscyI+MS4yLiBQcm9maWxlIHNwZWNpZmljYXRpb24gcGFyYW1ldGVyczwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjbG9jYXRpbmctYW5kLW1hbmFnaW5nLWJpbmFyeS1pbWFnZXMiPjEuMy4gTG9jYXRpbmcgYW5kIG1hbmFnaW5nIGJpbmFyeSBpbWFnZXM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI25vLXJlc3VsdHMiPjEuNC4gV2hhdCB0byBkbyB3aGVuIHlvdSBkb24ndCBnZXQgYW55IHJlc3VsdHM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQiPjIuIEltYWdlIHN1bW1hcmllcyBhbmQgc3ltYm9sIHN1bW1hcmllcyAoPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+KTwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wcmVwb3J0LW1lcmdpbmciPjIuMS4gTWVyZ2luZyBzZXBhcmF0ZSBwcm9maWxlczwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQtY29tcGFyaXNvbiI+Mi4yLiBTaWRlLWJ5LXNpZGUgbXVsdGlwbGUgcmVzdWx0czwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ByZXBvcnQtY2FsbGdyYXBoIj4yLjMuIENhbGxncmFwaCBvdXRwdXQ8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wcmVwb3J0LWRpZmYiPjIuNC4gRGlmZmVyZW50aWFsIHByb2ZpbGVzIHdpdGggPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcHJlcG9ydC1hbm9uIj4yLjUuIEFub255bW91cyBleGVjdXRhYmxlIG1hcHBpbmdzPC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcHJlcG9ydC14bWwiPjIuNi4gWE1MIGZvcm1hdHRlZCBvdXRwdXQ8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wcmVwb3J0LW9wdGlvbnMiPjIuNy4gT3B0aW9ucyBmb3IgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wYW5ub3RhdGUiPjMuIE91dHB1dHRpbmcgYW5ub3RhdGVkIHNvdXJjZSAoPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bhbm5vdGF0ZTwvc3Ryb25nPjwvc3Bhbj4pPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3Bhbm5vdGF0ZS1maW5kaW5nLXNvdXJjZSI+My4xLiBMb2NhdGluZyBzb3VyY2UgZmlsZXM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wYW5ub3RhdGUtZGV0YWlscyI+My4yLiBVc2FnZSBvZiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGFubm90YXRlPC9zdHJvbmc+PC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNnZXR0aW5nLWppdC1yZXBvcnRzIj40LiBPUHJvZmlsZSByZXN1bHRzIHdpdGggSklUIHNhbXBsZXM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcGdwcm9mIj41LiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5ncHJvZjwvc3Ryb25nPjwvc3Bhbj4tY29tcGF0aWJsZSBvdXRwdXQgKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wZ3Byb2Y8L3N0cm9uZz48L3NwYW4+KTwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI29wZ3Byb2YtZGV0YWlscyI+NS4xLiBVc2FnZSBvZiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGdwcm9mPC9zdHJvbmc+PC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcGFyY2hpdmUiPjYuIEFyY2hpdmluZyBtZWFzdXJlbWVudHMgKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wYXJjaGl2ZTwvc3Ryb25nPjwvc3Bhbj4pPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3BhcmNoaXZlLWRldGFpbHMiPjYuMS4gVXNhZ2Ugb2YgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3BhcmNoaXZlPC9zdHJvbmc+PC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcGltcG9ydCI+Ny4gQ29udmVydGluZyBzYW1wbGUgZGF0YWJhc2UgZmlsZXMgKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9waW1wb3J0PC9zdHJvbmc+PC9zcGFuPik8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvcGltcG9ydC1kZXRhaWxzIj43LjEuIFVzYWdlIG9mIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9waW1wb3J0PC9zdHJvbmc+PC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2RkPgogICAgICAgICAgPC9kbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cD4KT0ssIHNvIHRoZSBwcm9maWxlciBoYXMgYmVlbiBydW5uaW5nLCBidXQgaXQncyBub3QgbXVjaCB1c2UgdW5sZXNzIHdlIGNhbiBnZXQgc29tZSBkYXRhIG91dC4gRmFpcmx5IG9mdGVuLApPUHJvZmlsZSBkb2VzIGEgbGl0dGxlIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnRvbzwvZW0+PC9zcGFuPiBnb29kIGEgam9iIG9mIGtlZXBpbmcgb3ZlcmhlYWQgbG93LCBhbmQgbm8gZGF0YSByZWFjaGVzCnRoZSBwcm9maWxlci4gVGhpcyBjYW4gaGFwcGVuIG9uIGxpZ2h0bHktbG9hZGVkIG1hY2hpbmVzLiBSZW1lbWJlciB5b3UgY2FuIGZvcmNlIGEgZHVtcCBhdCBhbnkgdGltZSB3aXRoIDoKPC9wPgogICAgICAgIDxwPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPgogICAgICAgICAgICA8c3Ryb25nPm9wY29udHJvbCAtLWR1bXA8L3N0cm9uZz4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L3A+CiAgICAgICAgPHA+UmVtZW1iZXIgdG8gZG8gdGhpcyBiZWZvcmUgY29tcGxhaW5pbmcgdGhlcmUgaXMgbm8gcHJvZmlsaW5nIGRhdGEgIQpOb3cgdGhhdCB3ZSd2ZSBnb3Qgc29tZSBkYXRhLCBpdCBoYXMgdG8gYmUgcHJvY2Vzc2VkLiBUaGF0J3MgdGhlIGpvYiBvZiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4sCjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wYW5ub3RhdGU8L3N0cm9uZz48L3NwYW4+LCBvciA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGdwcm9mPC9zdHJvbmc+PC9zcGFuPi4KPC9wPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iMS6gUHJvZmlsZSBzcGVjaWZpY2F0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJwcm9maWxlLXNwZWMiPjwvYT4xLqBQcm9maWxlIHNwZWNpZmljYXRpb25zPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpBbGwgb2YgdGhlIGFuYWx5c2lzIHRvb2xzIHRha2UgYSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5wcm9maWxlIHNwZWNpZmljYXRpb248L2VtPjwvc3Bhbj4uClRoaXMgaXMgYSBzZXQgb2YgZGVmaW5pdGlvbnMgdGhhdCBkZXNjcmliZSB3aGljaCBhY3R1YWwgcHJvZmlsZXMgc2hvdWxkIGJlCmV4YW1pbmVkLiBUaGUgc2ltcGxlc3QgcHJvZmlsZSBzcGVjaWZpY2F0aW9uIGlzIGVtcHR5OiB0aGlzIHdpbGwgbWF0Y2ggYWxsCnRoZSBhdmFpbGFibGUgcHJvZmlsZSBmaWxlcyBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbiAodGhpcyBpcyB3aGF0IGhhcHBlbnMKd2hlbiB5b3UgZG8gPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+KS4KPC9wPgogICAgICAgICAgPHA+ClNwZWNpZmljYXRpb24gcGFyYW1ldGVycyBhcmUgb2YgdGhlIGZvcm0gPGNvZGUgY2xhc3M9Im9wdGlvbiI+bmFtZTp2YWx1ZVssdmFsdWVdPC9jb2RlPi4KRm9yIGV4YW1wbGUsIGlmIEkgd2FudGVkIHRvIGdldCBhIGNvbWJpbmVkIHN5bWJvbCBzdW1tYXJ5IGZvcgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9iaW4vbXlwcm9nPC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vYmluL215cHJvZzI8L2NvZGU+LApJIGNvdWxkIGRvIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcmVwb3J0IC1sIGltYWdlOi9iaW4vbXlwcm9nLC9iaW4vbXlwcm9nMjwvc3Ryb25nPjwvc3Bhbj4uCkFzIGEgc3BlY2lhbCBjYXNlLCB5b3UgZG9uJ3QgYWN0dWFsbHkgbmVlZCB0byBzcGVjaWZ5IHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj5pbWFnZTo8L2NvZGU+CnBhcnQgaGVyZTogYW55dGhpbmcgbGVmdCBvbiB0aGUgY29tbWFuZCBsaW5lIGlzIGFzc3VtZWQgdG8gYmUgYW4KPGNvZGUgY2xhc3M9Im9wdGlvbiI+aW1hZ2U6PC9jb2RlPiBuYW1lLiBTaW1pbGFybHksIGlmIG5vIDxjb2RlIGNsYXNzPSJvcHRpb24iPnNlc3Npb246PC9jb2RlPgppcyBzcGVjaWZpZWQsIHRoZW4gPGNvZGUgY2xhc3M9Im9wdGlvbiI+c2Vzc2lvbjpjdXJyZW50PC9jb2RlPiBpcyBhc3N1bWVkICgiY3VycmVudCIKaXMgYSBzcGVjaWFsIG5hbWUgb2YgdGhlIGN1cnJlbnQgLyBsYXN0IHByb2ZpbGluZyBzZXNzaW9uKS4KPC9wPgogICAgICAgICAgPHA+CkluIGFkZGl0aW9uIHRvIHRoZSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBzaG93biBhYm92ZSwgc29tZSBvZiB0aGUgCnNwZWNpZmljYXRpb24gcGFyYW1ldGVycyBjYW4gdGFrZSA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5nbG9iPC9zdHJvbmc+PC9zcGFuPi1zdHlsZQp2YWx1ZXMuIEZvciBleGFtcGxlLCBpZiBJIHdhbnQgdG8gc2VlIGltYWdlIHN1bW1hcmllcyBmb3IgYWxsCmJpbmFyaWVzIHByb2ZpbGVkIGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L3Vzci9iaW4vPC9jb2RlPiwgSSBjb3VsZCBkbwo8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydCBpbWFnZTovdXNyL2Jpbi9cKjwvc3Ryb25nPjwvc3Bhbj4uIE5vdGUgdGhlIG5lY2Vzc2l0eQp0byBlc2NhcGUgdGhlIHNwZWNpYWwgY2hhcmFjdGVyIGZyb20gdGhlIHNoZWxsLgo8L3A+CiAgICAgICAgICA8cD4KRm9yIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcmVwb3J0PC9zdHJvbmc+PC9zcGFuPiwgcHJvZmlsZSBzcGVjaWZpY2F0aW9ucyBjYW4gYmUgdXNlZCB0bwpkZWZpbmUgdHdvIHByb2ZpbGVzLCBnaXZpbmcgZGlmZmVyZW50aWFsIG91dHB1dC4gVGhpcyBpcyBkb25lIGJ5CmVuY2xvc2luZyBlYWNoIG9mIHRoZSB0d28gc3BlY2lmaWNhdGlvbnMgd2l0aGluIGN1cmx5IGJyYWNlcywgYXMgc2hvd24KaW4gdGhlIGV4YW1wbGVzIGJlbG93LiBBbnkgc3BlY2lmaWNhdGlvbnMgb3V0c2lkZSBvZiBjdXJseSBicmFjZXMgYXJlCnNoYXJlZCBhY3Jvc3MgYm90aC4KPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIxLjEuoEV4YW1wbGVzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9InByb2ZpbGUtc3BlYy1leGFtcGxlcyI+PC9hPjEuMS6gRXhhbXBsZXM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KSW1hZ2Ugc3VtbWFyaWVzIGZvciBhbGwgcHJvZmlsZXMgd2l0aCA8Y29kZSBjbGFzcz0iY29uc3RhbnQiPkRBVEFfTUVNX1JFRlM8L2NvZGU+CnNhbXBsZXMgaW4gdGhlIHNhdmVkIHNlc3Npb24gY2FsbGVkICJzdHJlc3N0ZXN0IiA6CjwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CiMgb3ByZXBvcnQgc2Vzc2lvbjpzdHJlc3N0ZXN0IGV2ZW50OkRBVEFfTUVNX1JFRlMKPC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDxwPgpTeW1ib2wgc3VtbWFyeSBmb3IgdGhlIGFwcGxpY2F0aW9uIGNhbGxlZCAidGVzdF9zeW01M2M4eHgsOXh4Ii4gTm90ZSB0aGUKZXNjYXBpbmcgaXMgbmVjZXNzYXJ5IGFzIDxjb2RlIGNsYXNzPSJvcHRpb24iPmltYWdlOjwvY29kZT4gdGFrZXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdC4KPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KIyBvcHJlcG9ydCAtbCAuL3Rlc3QvdGVzdF9zeW01M2M4eHhcLDl4eAo8L3ByZT4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPHA+CkltYWdlIHN1bW1hcmllcyBmb3IgYWxsIGJpbmFyaWVzIGluIHRoZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnRlc3Q8L2NvZGU+IGRpcmVjdG9yeSwKZXhjZXB0aW5nIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Ym9yaW5nLXRlc3Q8L2NvZGU+IDoKPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KIyBvcHJlcG9ydCBpbWFnZTouL3Rlc3QvXCogaW1hZ2UtZXhjbHVkZTouL3Rlc3QvYm9yaW5nLXRlc3QKPC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDxwPgpEaWZmZXJlbnRpYWwgcHJvZmlsZSBvZiBhIGJpbmFyeSBzdG9yZWQgaW4gdHdvIGFyY2hpdmVzIDoKPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KIyBvcHJlcG9ydCAtbCAvYmluL2Jhc2ggeyBhcmNoaXZlOi4vb3JpZyB9IHsgYXJjaGl2ZTouL25ldyB9CjwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8cD4KRGlmZmVyZW50aWFsIHByb2ZpbGUgb2YgYW4gYXJjaGl2ZWQgYmluYXJ5IHdpdGggdGhlIGN1cnJlbnQgc2Vzc2lvbiA6CjwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CiMgb3ByZXBvcnQgLWwgL2Jpbi9iYXNoIHsgYXJjaGl2ZTouL29yaWcgfSB7IH0KPC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iMS4yLqBQcm9maWxlIHNwZWNpZmljYXRpb24gcGFyYW1ldGVycyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJwcm9maWxlLXNwZWMtZGV0YWlscyI+PC9hPjEuMi6gUHJvZmlsZSBzcGVjaWZpY2F0aW9uIHBhcmFtZXRlcnM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgogICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPmFyY2hpdmU6PC9jb2RlPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZW0+YXJjaGl2ZXBhdGg8L2VtPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CgkJQSBwYXRoIHRvIGFuIGFyY2hpdmUgbWFkZSB3aXRoIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wYXJjaGl2ZTwvc3Ryb25nPjwvc3Bhbj4uCgkJQWJzZW5jZSBvZiB0aGlzIHRhZywgdW5saWtlIG90aGVycywgbWVhbnMgInRoZSBjdXJyZW50IHN5c3RlbSIsCgkJZXF1aXZhbGVudCB0byBzcGVjaWZ5aW5nICJhcmNoaXZlOiIuCgkJPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPnNlc3Npb246PC9jb2RlPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZW0+c2Vzc2lvbmxpc3Q8L2VtPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CgkJQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBzZXNzaW9uIG5hbWVzIHRvIHJlc29sdmUgaW4uIEFic2VuY2Ugb2YgdGhpcwoJCXRhZywgdW5saWtlIG90aGVycywgbWVhbnMgInRoZSBjdXJyZW50IHNlc3Npb24iLCBlcXVpdmFsZW50IHRvCgkJc3BlY2lmeWluZyAic2Vzc2lvbjpjdXJyZW50Ii4KCQk8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+c2Vzc2lvbi1leGNsdWRlOjwvY29kZT4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPgogICAgICAgICAgICAgICAgICAgICAgPGVtPnNlc3Npb25saXN0PC9lbT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBzZXNzaW9ucyB0byBleGNsdWRlLgoJCTwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5pbWFnZTo8L2NvZGU+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj4KICAgICAgICAgICAgICAgICAgICAgIDxlbT5pbWFnZWxpc3Q8L2VtPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICBBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGltYWdlIG5hbWVzIHRvIHJlc29sdmUuIEVhY2ggZW50cnkgbWF5IGJlIHJlbGF0aXZlCiAgICAgICAgICAgICAgICBwYXRoLCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5nbG9iPC9zdHJvbmc+PC9zcGFuPi1zdHlsZSBuYW1lLCBvciBmdWxsIHBhdGgsIGUuZy48L3A+CiAgICAgICAgICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPm9wcmVwb3J0ICdpbWFnZTovdXNyL2Jpbi9vcHJvZmlsZWQsKm9wKiwuL29wcmVwb3J0JzwvcHJlPgogICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPmltYWdlLWV4Y2x1ZGU6PC9jb2RlPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZW0+aW1hZ2VsaXN0PC9lbT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgoJCVNhbWUgYXMgPGNvZGUgY2xhc3M9Im9wdGlvbiI+aW1hZ2U6PC9jb2RlPiwgYnV0IHRoZSBtYXRjaGluZyBpbWFnZXMgYXJlIGV4Y2x1ZGVkLgoJCTwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5saWItaW1hZ2U6PC9jb2RlPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZW0+aW1hZ2VsaXN0PC9lbT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgoJCVNhbWUgYXMgPGNvZGUgY2xhc3M9Im9wdGlvbiI+aW1hZ2U6PC9jb2RlPiwgYnV0IG9ubHkgZm9yIGltYWdlcyB0aGF0IGFyZSBmb3IKCQlhIHBhcnRpY3VsYXIgcHJpbWFyeSBiaW5hcnkgaW1hZ2UgKG5hbWVseSwgYW4gYXBwbGljYXRpb24pLiBUaGlzIG9ubHkKCQltYWtlcyBzZW5zZSB0byB1c2UgaWYgeW91J3JlIHVzaW5nIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGU8L2NvZGU+LgoJCVRoaXMgaW5jbHVkZXMga2VybmVsIG1vZHVsZXMgYW5kIHRoZSBrZXJuZWwgd2hlbiB1c2luZwoJCTxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGU9a2VybmVsPC9jb2RlPi4KCQk8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+bGliLWltYWdlLWV4Y2x1ZGU6PC9jb2RlPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZW0+aW1hZ2VsaXN0PC9lbT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgoJCVNhbWUgYXMgPGNvZGUgY2xhc3M9Im9wdGlvbiI+bGliLWltYWdlOjwvY29kZT4sIGJ1dCB0aGUgbWF0Y2hpbmcgaW1hZ2VzCgkJYXJlIGV4Y2x1ZGVkLgoJCTwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5ldmVudDo8L2NvZGU+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj4KICAgICAgICAgICAgICAgICAgICAgIDxlbT5ldmVudGxpc3Q8L2VtPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CgkJVGhlIHN5bWJvbGljIGV2ZW50IG5hbWUgdG8gbWF0Y2ggb24sIGUuZy4gPGNvZGUgY2xhc3M9Im9wdGlvbiI+ZXZlbnQ6REFUQV9NRU1fUkVGUzwvY29kZT4uCgkJWW91IGNhbiBwYXNzIGEgbGlzdCBvZiBldmVudHMgZm9yIHNpZGUtYnktc2lkZSBjb21wYXJpc29uIHdpdGggPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+LgoJCVdoZW4gdXNpbmcgdGhlIHRpbWVyIGludGVycnVwdCwgdGhlIGV2ZW50IGlzIGFsd2F5cyAiVElNRVIiLgoJCTwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5jb3VudDo8L2NvZGU+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj4KICAgICAgICAgICAgICAgICAgICAgIDxlbT5ldmVudGNvdW50bGlzdDwvZW0+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KCQlUaGUgZXZlbnQgY291bnQgdG8gbWF0Y2ggb24sIGUuZy4gPGNvZGUgY2xhc3M9Im9wdGlvbiI+ZXZlbnQ6REFUQV9NRU1fUkVGUyBjb3VudDozMDAwMDwvY29kZT4uCgkJTm90ZSB0aGF0IHRoaXMgdmFsdWUgcmVmZXJzIHRvIHRoZSBzZXR0aW5nIHVzZWQgZm9yIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj4KCQlvbmx5LCBhbmQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgc2FtcGxlIGNvdW50cyBpbiB0aGUgcHJvZmlsZSBkYXRhCgkJaXRzZWxmLgoJCVlvdSBjYW4gcGFzcyBhIGxpc3Qgb2YgZXZlbnRzIGZvciBzaWRlLWJ5LXNpZGUgY29tcGFyaXNvbiB3aXRoIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcmVwb3J0PC9zdHJvbmc+PC9zcGFuPi4KCQlXaGVuIHVzaW5nIHRoZSB0aW1lciBpbnRlcnJ1cHQsIHRoZSBjb3VudCBpcyBhbHdheXMgMCAoaW5kaWNhdGluZyBpdCBjYW5ub3QgYmUgc2V0KS4KCQk8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+dW5pdC1tYXNrOjwvY29kZT4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPgogICAgICAgICAgICAgICAgICAgICAgPGVtPm1hc2tsaXN0PC9lbT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgoJCVRoZSB1bml0IG1hc2sgdmFsdWUgb2YgdGhlIGV2ZW50IHRvIG1hdGNoIG9uLCBlLmcuIDxjb2RlIGNsYXNzPSJvcHRpb24iPnVuaXQtbWFzazoxPC9jb2RlPi4KCQlZb3UgY2FuIHBhc3MgYSBsaXN0IG9mIGV2ZW50cyBmb3Igc2lkZS1ieS1zaWRlIGNvbXBhcmlzb24gd2l0aCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4uCgkJPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPmNwdTo8L2NvZGU+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj4KICAgICAgICAgICAgICAgICAgICAgIDxlbT5jcHVsaXN0PC9lbT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgoJCU9ubHkgY29uc2lkZXIgcHJvZmlsZXMgZm9yIHRoZSBnaXZlbiBudW1iZXJlZCBDUFUgKHN0YXJ0aW5nIGZyb20gemVybykuCgkJVGhpcyBpcyBvbmx5IHVzZWZ1bCB3aGVuIHVzaW5nIENQVSBwcm9maWxlIHNlcGFyYXRpb24uCgkJPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPnRnaWQ6PC9jb2RlPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZW0+cGlkbGlzdDwvZW0+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KCQlPbmx5IGNvbnNpZGVyIHByb2ZpbGVzIGZvciB0aGUgZ2l2ZW4gdGFzayBncm91cHMuIFVubGVzcyBzb21lIHByb2dyYW0KCQlpcyB1c2luZyB0aHJlYWRzLCB0aGUgdGFzayBncm91cCBJRCBvZiBhIHByb2Nlc3MgaXMgdGhlIHNhbWUKCQlhcyBpdHMgcHJvY2VzcyBJRC4gVGhpcyBvcHRpb24gY29ycmVzcG9uZHMgdG8gdGhlIFBPU0lYCgkJbm90aW9uIG9mIGEgdGhyZWFkIGdyb3VwLgoJCVRoaXMgaXMgb25seSB1c2VmdWwgd2hlbiB1c2luZyBwZXItcHJvY2VzcyBwcm9maWxlIHNlcGFyYXRpb24uCgkJPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPnRpZDo8L2NvZGU+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj4KICAgICAgICAgICAgICAgICAgICAgIDxlbT50aWRsaXN0PC9lbT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgoJCU9ubHkgY29uc2lkZXIgcHJvZmlsZXMgZm9yIHRoZSBnaXZlbiB0aHJlYWRzLiBXaGVuIHVzaW5nCgkJcmVjZW50IHRocmVhZCBsaWJyYXJpZXMsIGFsbCB0aHJlYWRzIGluIGEgcHJvY2VzcyBzaGFyZSB0aGUKCQlzYW1lIHRhc2sgZ3JvdXAgSUQsIGJ1dCBoYXZlIGRpZmZlcmVudCB0aHJlYWQgSURzLiBZb3UgY2FuCgkJdXNlIHRoaXMgb3B0aW9uIGluIGNvbWJpbmF0aW9uIHdpdGggPGNvZGUgY2xhc3M9Im9wdGlvbiI+dGdpZDo8L2NvZGU+IHRvCgkJcmVzdHJpY3QgdGhlIHJlc3VsdHMgdG8gcGFydGljdWxhciB0aHJlYWRzIHdpdGhpbiBhIHByb2Nlc3MuCgkJVGhpcyBpcyBvbmx5IHVzZWZ1bCB3aGVuIHVzaW5nIHBlci1wcm9jZXNzIHByb2ZpbGUgc2VwYXJhdGlvbi4KCQk8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjEuMy6gTG9jYXRpbmcgYW5kIG1hbmFnaW5nIGJpbmFyeSBpbWFnZXMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0ibG9jYXRpbmctYW5kLW1hbmFnaW5nLWJpbmFyeS1pbWFnZXMiPjwvYT4xLjMuoExvY2F0aW5nIGFuZCBtYW5hZ2luZyBiaW5hcnkgaW1hZ2VzPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+CkVhY2ggc2Vzc2lvbidzIHNhbXBsZSBmaWxlcyBjYW4gYmUgZm91bmQgaW4gdGhlICRTRVNTSU9OX0RJUi9zYW1wbGVzLyBkaXJlY3RvcnkgKGRlZmF1bHQ6IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L3Zhci9saWIvb3Byb2ZpbGUvc2FtcGxlcy88L2NvZGU+KS4KVGhlc2UgYXJlIHVzZWQsIGFsb25nIHdpdGggdGhlIGJpbmFyeSBpbWFnZSBmaWxlcywgdG8gcHJvZHVjZSBodW1hbi1yZWFkYWJsZSBkYXRhLgpJbiBzb21lIGNpcmN1bXN0YW5jZXMgKGtlcm5lbCBtb2R1bGVzIGluIGFuIGluaXRyZCwgb3IgbW9kdWxlcyBvbiAyLjYga2VybmVscyksIE9Qcm9maWxlCndpbGwgbm90IGJlIGFibGUgdG8gZmluZCB0aGUgYmluYXJ5IGltYWdlcy4gQWxsIHRoZSB0b29scyBoYXZlIGFuIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW1hZ2UtcGF0aDwvY29kZT4Kb3B0aW9uIHRvIHdoaWNoIHlvdSBjYW4gcGFzcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFsdGVybmF0ZSBwYXRocyB0byBzZWFyY2guIEZvciBleGFtcGxlLApJIGNhbiBsZXQgT1Byb2ZpbGUgZmluZCBteSAyLjYgbW9kdWxlcyBieSB1c2luZyA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz4tLWltYWdlLXBhdGggL2xpYi9tb2R1bGVzLzIuNi4wL2tlcm5lbC88L3N0cm9uZz48L3NwYW4+LgpJdCBpcyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IGltYWdlcyBhcmUgZm91bmQgd2hlbiB1c2luZyB0aGlzCm9wdGlvbi4KPC9wPgogICAgICAgICAgICA8cD4KTm90ZSB0aGF0IGlmIGEgYmluYXJ5IGltYWdlIGNoYW5nZXMgYWZ0ZXIgdGhlIHNhbXBsZSBmaWxlIHdhcyBjcmVhdGVkLCB5b3Ugd29uJ3QgYmUgYWJsZSB0byBnZXQgdXNlZnVsCnN5bWJvbC1iYXNlZCBkYXRhIG91dC4gVGhpcyBzaXR1YXRpb24gaXMgZGV0ZWN0ZWQgZm9yIHlvdS4gSWYgeW91IHJlcGxhY2UgYSBiaW5hcnksIHlvdSBzaG91bGQKbWFrZSBzdXJlIHRvIHNhdmUgdGhlIG9sZCBiaW5hcnkgaWYgeW91IG5lZWQgdG8gZG8gY29tcGFyYXRpdmUgcHJvZmlsZXMuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIxLjQuoFdoYXQgdG8gZG8gd2hlbiB5b3UgZG9uJ3QgZ2V0IGFueSByZXN1bHRzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9Im5vLXJlc3VsdHMiPjwvYT4xLjQuoFdoYXQgdG8gZG8gd2hlbiB5b3UgZG9uJ3QgZ2V0IGFueSByZXN1bHRzPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+CldoZW4gYXR0ZW1wdGluZyB0byBnZXQgb3V0cHV0LCB5b3UgbWF5IHNlZSB0aGUgZXJyb3IgOgo8L3A+CiAgICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgplcnJvcjogbm8gc2FtcGxlIGZpbGVzIGZvdW5kOiBwcm9maWxlIHNwZWNpZmljYXRpb24gdG9vIHN0cmljdCA/CjwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8cD4KV2hhdCB0aGlzIGlzIHNheWluZyBpcyB0aGF0IHRoZSBwcm9maWxlIHNwZWNpZmljYXRpb24geW91IHBhc3NlZCBpbiwKd2hlbiBtYXRjaGVkIGFnYWluc3QgdGhlIGF2YWlsYWJsZSBzYW1wbGUgZmlsZXMsIHJlc3VsdGVkIGluIG5vIG1hdGNoZXMuClRoZXJlIGFyZSBhIG51bWJlciBvZiByZWFzb25zIHRoaXMgbWlnaHQgaGFwcGVuOgo8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+c3BlbGxpbmc8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KWW91IHNwZWNpZmllZCBhIGJpbmFyeSBuYW1lLCBidXQgc3BlbHQgaXQgd3JvbmdseS4gQ2hlY2sgeW91ciBzcGVsbGluZyAhCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj5wcm9maWxlciB3YXNuJ3QgcnVubmluZzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpNYWtlIHZlcnkgc3VyZSB0aGF0IE9Qcm9maWxlIHdhcyBhY3R1YWxseSB1cCBhbmQgcnVubmluZyB3aGVuIHlvdSByYW4KdGhlIGJpbmFyeS4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPmJpbmFyeSBkaWRuJ3QgcnVuIGxvbmcgZW5vdWdoPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClJlbWVtYmVyIE9Qcm9maWxlIGlzIGEgc3RhdGlzdGljYWwgcHJvZmlsZXIgLSB5b3UncmUgbm90IGd1YXJhbnRlZWQgdG8KZ2V0IHNhbXBsZXMgZm9yIHNob3J0LXJ1bm5pbmcgcHJvZ3JhbXMuIFlvdSBjYW4gaGVscCB0aGlzIGJ5IHVzaW5nIGEKbG93ZXIgY291bnQgZm9yIHRoZSBwZXJmb3JtYW5jZSBjb3VudGVyLCBzbyB0aGVyZSBhcmUgYSBsb3QgbW9yZSBzYW1wbGVzCnRha2VuIHBlciBzZWNvbmQuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj5iaW5hcnkgc3BlbnQgbW9zdCBvZiBpdHMgdGltZSBpbiBsaWJyYXJpZXM8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KU2ltaWxhcmx5LCBpZiB0aGUgYmluYXJ5IHNwZW5kcyBsaXR0bGUgdGltZSBpbiB0aGUgbWFpbiBiaW5hcnkgaW1hZ2UKaXRzZWxmLCB3aXRoIG1vc3Qgb2YgaXQgc3BlbnQgaW4gc2hhcmVkIGxpYnJhcmllcyBpdCB1c2VzLCB5b3UgbWlnaHQKbm90IHNlZSBhbnkgc2FtcGxlcyBmb3IgdGhlIGJpbmFyeSBpbWFnZSBpdHNlbGYuIFlvdSBjYW4gY2hlY2sgdGhpcwpieSB1c2luZyA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGNvbnRyb2wgLS1zZXBhcmF0ZT1saWI8L3N0cm9uZz48L3NwYW4+IGJlZm9yZSB0aGUKcHJvZmlsaW5nIHNlc3Npb24sIHNvIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcmVwb3J0PC9zdHJvbmc+PC9zcGFuPiBhbmQgZnJpZW5kcyBzaG93CnRoZSBsaWJyYXJ5IHByb2ZpbGVzIG9uIGEgcGVyLWFwcGxpY2F0aW9uIGJhc2lzLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+c3BlY2lmaWNhdGlvbiB3YXMgcmVhbGx5IHRvbyBzdHJpY3Q8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KRm9yIGV4YW1wbGUsIHlvdSBzcGVjaWZpZWQgc29tZXRoaW5nIGxpa2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+dGdpZDozNDMzPC9jb2RlPiwKYnV0IG5vIHRhc2sgd2l0aCB0aGF0IGdyb3VwIElEIGV2ZXIgcmFuIHRoZSBjb2RlLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+YmluYXJ5IGRpZG4ndCBnZW5lcmF0ZSBhbnkgZXZlbnRzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CklmIHlvdSdyZSB1c2luZyBhIHBhcnRpY3VsYXIgZXZlbnQgY291bnRlciwgZm9yIGV4YW1wbGUgY291bnRpbmcgTU1YCm9wZXJhdGlvbnMsIHRoZSBjb2RlIG1pZ2h0IHNpbXBseSBoYXZlIG5vdCBnZW5lcmF0ZWQgYW55IGV2ZW50cyBpbiB0aGUKZmlyc3QgcGxhY2UuIFZlcmlmeSB0aGUgY29kZSB5b3UncmUgcHJvZmlsaW5nIGRvZXMgd2hhdCB5b3UgZXhwZWN0IGl0CnRvLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+eW91IGRpZG4ndCBzcGVjaWZ5IGtlcm5lbCBtb2R1bGUgbmFtZSBjb3JyZWN0bHk8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KSWYgeW91J3JlIHVzaW5nIDIuNiBrZXJuZWxzLCBhbmQgdHJ5aW5nIHRvIGdldCByZXBvcnRzIGZvciBhIGtlcm5lbAptb2R1bGUsIG1ha2Ugc3VyZSB0byB1c2UgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1wPC9jb2RlPiBvcHRpb24sIGFuZCBzcGVjaWZ5IHRoZQptb2R1bGUgbmFtZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT53aXRoPC9lbT48L3NwYW4+IHRoZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi5rbzwvY29kZT4KZXh0ZW5zaW9uLiBDaGVjayBpZiB0aGUgbW9kdWxlIGlzIG9uZSBsb2FkZWQgZnJvbSBpbml0cmQuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjIuoEltYWdlIHN1bW1hcmllcyBhbmQgc3ltYm9sIHN1bW1hcmllcyAob3ByZXBvcnQpIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9Im9wcmVwb3J0Ij48L2E+Mi6gSW1hZ2Ugc3VtbWFyaWVzIGFuZCBzeW1ib2wgc3VtbWFyaWVzICg8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4pPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpUaGUgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+IHV0aWxpdHkgaXMgdGhlIHByaW1hcnkgdXRpbGl0eSB5b3Ugd2lsbCB1c2UgZm9yIApnZXR0aW5nIGZvcm1hdHRlZCBkYXRhIG91dCBvZiBPUHJvZmlsZS4gSXQgcHJvZHVjZXMgdHdvIHR5cGVzIG9mIGRhdGE6IGltYWdlIHN1bW1hcmllcwphbmQgc3ltYm9sIHN1bW1hcmllcy4gQW4gaW1hZ2Ugc3VtbWFyeSBsaXN0cyB0aGUgbnVtYmVyIG9mIHNhbXBsZXMgZm9yIGluZGl2aWR1YWwKYmluYXJ5IGltYWdlcyBzdWNoIGFzIGxpYnJhcmllcyBvciBhcHBsaWNhdGlvbnMuIFN5bWJvbCBzdW1tYXJpZXMgcHJvdmlkZSBwZXItc3ltYm9sCnByb2ZpbGUgZGF0YS4gSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCB3ZSdyZSBnZXR0aW5nIGFuIGltYWdlIHN1bW1hcnkgZm9yIHRoZSB3aG9sZQpzeXN0ZW06CjwvcD4KICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgokIG9wcmVwb3J0IC0tbG9uZy1maWxlbmFtZXMKQ1BVOiBQSUlJLCBzcGVlZCA4NjMuMTk1IE1IeiAoZXN0aW1hdGVkKQpDb3VudGVkIENQVV9DTEtfVU5IQUxURUQgZXZlbnRzIChjbG9ja3MgcHJvY2Vzc29yIGlzIG5vdCBoYWx0ZWQpIHdpdGggYSB1bml0IG1hc2sgb2YgMHgwMCAoTm8gdW5pdCBtYXNrKSBjb3VudCAyMzE1MAogICA5MDU4OTggNTkuNzQxNSAvdXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0LWxpbnV4LzMuMi9jYzFwbHVzCiAgIDIxNDMyMCAxNC4xMzM4IC9ib290LzIuNi4wL3ZtbGludXgKICAgMTAzNDUwICA2LjgyMjIgL2xpYi9pNjg2L2xpYmMtMi4zLjIuc28KICAgIDYwMTYwICAzLjk2NzQgL3Vzci9sb2NhbC9iaW4vbWFkcGxheQogICAgMzE3NjkgIDIuMDk1MSAvdXNyL2xvY2FsL29wcm9maWxlLXBwL2Jpbi9vcHJvZmlsZWQKICAgIDI2NTUwICAxLjc1MDkgL3Vzci9saWIvbGliYXJ0c2Zsb3cuc28uMS4wLjAKICAgIDIzOTA2ICAxLjU3NjUgL3Vzci9iaW4vYXMKICAgIDE4NzcwICAxLjIzNzggL29wcm9maWxlCiAgICAxNTUyOCAgMS4wMjQwIC91c3IvbGliL3F0LTMuMC41L2xpYi9saWJxdC1tdC5zby4zLjAuNQogICAgMTE5NzkgIDAuNzkwMCAvdXNyL1gxMVI2L2Jpbi9YRnJlZTg2CiAgICAxMTMyOCAgMC43NDcxIC9iaW4vYmFzaAogICAgLi4uCjwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHA+CklmIHdlIGhhZCBzcGVjaWZpZWQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zeW1ib2xzPC9jb2RlPiBpbiB0aGUgcHJldmlvdXMgY29tbWFuZCwgd2Ugd291bGQgaGF2ZQpnb3R0ZW4gYSBzeW1ib2wgc3VtbWFyeSBvZiBhbGwgdGhlIGltYWdlcyBhY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uIFdlIGNhbiByZXN0cmljdCB0aGlzIHRvIG9ubHkKcGFydCBvZiB0aGUgc3lzdGVtIHByb2ZpbGU7IGZvciBleGFtcGxlLApiZWxvdyBpcyBhIHN5bWJvbCBzdW1tYXJ5IG9mIHRoZSBPUHJvZmlsZSBkYWVtb24uIE5vdGUgdGhhdCBhcyB3ZSB1c2VkCjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wY29udHJvbCAtLXNlcGFyYXRlPWtlcm5lbDwvc3Ryb25nPjwvc3Bhbj4sIHN5bWJvbHMgZnJvbSBpbWFnZXMgdGhhdCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJvZmlsZWQ8L3N0cm9uZz48L3NwYW4+CmhhcyB1c2VkIGFyZSBhbHNvIHNob3duLgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KJCBvcHJlcG9ydCAtbCBgd2hpY2ggb3Byb2ZpbGVkYCAyJmd0Oy9kZXYvbnVsbCB8IG1vcmUKQ1BVOiBQSUlJLCBzcGVlZCA4NjMuMTk1IE1IeiAoZXN0aW1hdGVkKQpDb3VudGVkIENQVV9DTEtfVU5IQUxURUQgZXZlbnRzIChjbG9ja3MgcHJvY2Vzc29yIGlzIG5vdCBoYWx0ZWQpIHdpdGggYSB1bml0IG1hc2sgb2YgMHgwMCAoTm8gdW5pdCBtYXNrKSBjb3VudCAyMzE1MAp2bWEgICAgICBzYW1wbGVzICAlICAgICAgICAgICBpbWFnZSBuYW1lICAgICAgICAgICAgICAgc3ltYm9sIG5hbWUKMDgwNGJlMTAgMTQ5NzEgICAgMjguMTk5MyAgICAgb3Byb2ZpbGVkICAgICAgICAgICAgICAgIG9kYl9pbnNlcnQKMDgwNGFmZGMgNzE0NCAgICAgMTMuNDU2NCAgICAgb3Byb2ZpbGVkICAgICAgICAgICAgICAgIHBvcF9idWZmZXJfdmFsdWUKYzAxZGFlYTAgNjExMyAgICAgMTEuNTE0NCAgICAgdm1saW51eCAgICAgICAgICAgICAgICAgIF9fY29weV90b191c2VyX2xsCjA4MDRiMDYwIDI4MTYgICAgICA1LjMwNDIgICAgIG9wcm9maWxlZCAgICAgICAgICAgICAgICBvcGRfcHV0X3NhbXBsZQowODA0YjRhMCAyMTQ3ICAgICAgNC4wNDQxICAgICBvcHJvZmlsZWQgICAgICAgICAgICAgICAgb3BkX3Byb2Nlc3Nfc2FtcGxlcwowODA0YWNmNCAxODU1ICAgICAgMy40OTQxICAgICBvcHJvZmlsZWQgICAgICAgICAgICAgICAgb3BkX3B1dF9pbWFnZV9zYW1wbGUKMDgwNGFkODQgMTc2NiAgICAgIDMuMzI2NCAgICAgb3Byb2ZpbGVkICAgICAgICAgICAgICAgIG9wZF9maW5kX2ltYWdlCjA4MDRhNWVjIDEwODQgICAgICAyLjA0MTggICAgIG9wcm9maWxlZCAgICAgICAgICAgICAgICBvcGRfZmluZF9tb2R1bGUKMDgwNGJhNWMgNzQxICAgICAgIDEuMzk1NyAgICAgb3Byb2ZpbGVkICAgICAgICAgICAgICAgIG9kYl9oYXNoX2FkZF9ub2RlCi4uLgo8L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxwPgpUaGVzZSBhcmUgdGhlIHR3byBiYXNpYyB3YXlzIHlvdSBhcmUgbW9zdCBsaWtlbHkgdG8gdXNlIHJlZ3VsYXJseSwgYnV0IDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcmVwb3J0PC9zdHJvbmc+PC9zcGFuPgpjYW4gZG8gYSBsb3QgbW9yZSB0aGFuIHRoYXQsIGFzIGRlc2NyaWJlZCBiZWxvdy4KPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIyLjEuoE1lcmdpbmcgc2VwYXJhdGUgcHJvZmlsZXMiPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJvcHJlcG9ydC1tZXJnaW5nIj48L2E+Mi4xLqBNZXJnaW5nIHNlcGFyYXRlIHByb2ZpbGVzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KCklmIHlvdSBoYXZlIHVzZWQgb25lIG9mIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlcGFyYXRlPTwvY29kZT4gb3B0aW9ucwp3aGlsc3QgcHJvZmlsaW5nLCB0aGVyZSBjYW4gYmUgc2V2ZXJhbCBzZXBhcmF0ZSBwcm9maWxlcyBmb3IKYSBzaW5nbGUgYmluYXJ5IGltYWdlIHdpdGhpbiBhIHNlc3Npb24uIE5vcm1hbGx5IHRoZSBvdXRwdXQKd2lsbCBrZWVwIHRoZXNlIGltYWdlcyBzZXBhcmF0ZWQgKHNvLCBmb3IgZXhhbXBsZSwgdGhlIGltYWdlIHN1bW1hcnkKb3V0cHV0IHNob3dzIGxpYnJhcnkgaW1hZ2Ugc3VtbWFyaWVzIG9uIGEgcGVyLWFwcGxpY2F0aW9uIGJhc2lzLAp3aGVuIHVzaW5nIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGU9bGliPC9jb2RlPikuClNvbWV0aW1lcyBpdCBjYW4gYmUgdXNlZnVsIHRvIG1lcmdlIHRoZXNlIHJlc3VsdHMgYmFjayB0b2dldGhlcgpiZWZvcmUgZ2V0dGluZyByZXN1bHRzLiBUaGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tZXJnZTwvY29kZT4gb3B0aW9uIGFsbG93cwp5b3UgdG8gZG8gdGhhdC4KPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjIuMi6gU2lkZS1ieS1zaWRlIG11bHRpcGxlIHJlc3VsdHMiPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJvcHJlcG9ydC1jb21wYXJpc29uIj48L2E+Mi4yLqBTaWRlLWJ5LXNpZGUgbXVsdGlwbGUgcmVzdWx0czwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+CklmIHlvdSBoYXZlIHVzZWQgbXVsdGlwbGUgZXZlbnRzIHdoZW4gcHJvZmlsaW5nLCBieSBkZWZhdWx0IHlvdSBnZXQKc2lkZS1ieS1zaWRlIHJlc3VsdHMgb2YgZWFjaCBldmVudCdzIHNhbXBsZSB2YWx1ZXMgZnJvbSA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4uCllvdSBjYW4gcmVzdHJpY3Qgd2hpY2ggZXZlbnRzIHRvIGxpc3QgYnkgYXBwcm9wcmlhdGUgdXNlIG9mIHRoZQo8Y29kZSBjbGFzcz0ib3B0aW9uIj5ldmVudDo8L2NvZGU+IHByb2ZpbGUgc3BlY2lmaWNhdGlvbnMsIGV0Yy4KPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjIuMy6gQ2FsbGdyYXBoIG91dHB1dCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJvcHJlcG9ydC1jYWxsZ3JhcGgiPjwvYT4yLjMuoENhbGxncmFwaCBvdXRwdXQ8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KVGhpcyBzZWN0aW9uIHByb3ZpZGVzIGRldGFpbHMgb24gaG93IHRvIHVzZSB0aGUgT1Byb2ZpbGUgY2FsbGdyYXBoIGZlYXR1cmUuCjwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDMiIHRpdGxlPSIyLjMuMS6gQ2FsbGdyYXBoIGRldGFpbHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGl0bGUiPjxhIGlkPSJvcC1jZzEiPjwvYT4yLjMuMS6gQ2FsbGdyYXBoIGRldGFpbHM8L2g0PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxwPgpXaGVuIHVzaW5nIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj5vcGNvbnRyb2wgLS1jYWxsZ3JhcGg8L2NvZGU+IG9wdGlvbiwgeW91IGNhbiBzZWUgd2hhdApmdW5jdGlvbnMgYXJlIGNhbGxpbmcgb3RoZXIgZnVuY3Rpb25zIGluIHRoZSBvdXRwdXQuIENvbnNpZGVyIHRoZQpmb2xsb3dpbmcgcHJvZ3JhbToKPC9wPgogICAgICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgojaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7CiNpbmNsdWRlICZsdDtzdGRsaWIuaCZndDsKI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CgojZGVmaW5lIFNJWkUgNTAwMDAwCgpzdGF0aWMgaW50IGNvbXBhcmUoY29uc3Qgdm9pZCAqczEsIGNvbnN0IHZvaWQgKnMyKQp7CiAgICAgICAgcmV0dXJuIHN0cmNtcChzMSwgczIpOwp9CgpzdGF0aWMgdm9pZCByZXBlYXQodm9pZCkKewogICAgICAgIGludCBpOwogICAgICAgIGNoYXIgKnN0cmluZ3NbU0laRV07CiAgICAgICAgY2hhciBzdHJbXSA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CgogICAgICAgIGZvciAoaSA9IDA7IGkgJmx0OyBTSVpFOyArK2kpIHsKICAgICAgICAgICAgICAgIHN0cmluZ3NbaV0gPSBzdHJkdXAoc3RyKTsKICAgICAgICAgICAgICAgIHN0cmZyeShzdHJpbmdzW2ldKTsKICAgICAgICB9CgogICAgICAgIHFzb3J0KHN0cmluZ3MsIFNJWkUsIHNpemVvZihjaGFyICopLCBjb21wYXJlKTsKfQoKaW50IG1haW4oKQp7CiAgICAgICAgd2hpbGUgKDEpCiAgICAgICAgICAgICAgICByZXBlYXQoKTsKfQo8L3ByZT4KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8cD4KV2hlbiBydW5uaW5nIHdpdGggdGhlIGNhbGwtZ3JhcGggb3B0aW9uLCBPUHJvZmlsZSB3aWxsCnJlY29yZCB0aGUgZnVuY3Rpb24gc3RhY2sgZXZlcnkgdGltZSBpdCB0YWtlcyBhIHNhbXBsZS4KPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQgLS1jYWxsZ3JhcGg8L3N0cm9uZz48L3NwYW4+IG91dHB1dHMgYW4gZW50cnkgZm9yIGVhY2gKZnVuY3Rpb24sIHdoZXJlIGVhY2ggZW50cnkgbG9va3Mgc2ltaWxhciB0bzoKPC9wPgogICAgICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgpzYW1wbGVzICAlICAgICAgICBpbWFnZSBuYW1lICAgICAgICAgICAgICAgc3ltYm9sIG5hbWUKICAxOTcgICAgICAgMC4xNTQ4ICBjZyAgICAgICAgICAgICAgICAgICAgICAgbWFpbgogIDEyNzAzNiAgIDk5Ljg0NTIgIGNnICAgICAgICAgICAgICAgICAgICAgICByZXBlYXQKODQ1OTAgICAgNDIuNTA4NCAgbGliYy0yLjMuMi5zbyAgICAgICAgICAgIHN0cmZyeQogIDg0NTkwICAgIDY2LjQ4MzggIGxpYmMtMi4zLjIuc28gICAgICAgICAgICBzdHJmcnkgW3NlbGZdCiAgMzkxNjkgICAgMzAuNzg1MCAgbGliYy0yLjMuMi5zbyAgICAgICAgICAgIHJhbmRvbV9yCiAgMzQ3NSAgICAgIDIuNzMxMiAgbGliYy0yLjMuMi5zbyAgICAgICAgICAgIF9faTY4Ni5nZXRfcGNfdGh1bmsuYngKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo8L3ByZT4KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8cD4KSGVyZSB0aGUgbm9uLWluZGVudGVkIGxpbmUgaXMgdGhlIGZ1bmN0aW9uIHdlJ3JlIGZvY3Vzc2luZyB1cG9uCig8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnN0cmZyeSgpPC9jb2RlPikuIFRoaXMKbGluZSBpcyB0aGUgc2FtZSBhcyB5b3UnZCBnZXQgZnJvbSBhIG5vcm1hbCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4Kb3V0cHV0Lgo8L3A+CiAgICAgICAgICAgICAgPHA+CkFib3ZlIHRoZSBub24taW5kZW50ZWQgbGluZSB3ZSBmaW5kIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsZWQgdGhpcwpmdW5jdGlvbiAoZm9yIGV4YW1wbGUsIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cmVwZWF0KCk8L2NvZGU+IGNhbGxzCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+c3RyZnJ5KCk8L2NvZGU+KS4gVGhlIHNhbXBsZXMgYW5kIHBlcmNlbnRhZ2UgdmFsdWVzIGhlcmUKcmVmZXIgdG8gdGhlIG51bWJlciBvZiB0aW1lcyB3ZSB0b29rIGEgc2FtcGxlIHdoZXJlIHRoaXMgY2FsbCB3YXMgZm91bmQKaW4gdGhlIHN0YWNrOyB0aGUgcGVyY2VudGFnZSBpcyByZWxhdGl2ZSB0byBhbGwgb3RoZXIgY2FsbGVycyBvZiB0aGUKZnVuY3Rpb24gd2UncmUgZm9jdXNzaW5nIG9uLiBOb3RlIHRoYXQgdGhlc2UgdmFsdWVzIGFyZQo8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5ub3Q8L2VtPjwvc3Bhbj4gY2FsbCBjb3VudHM7IHRoZXkgb25seSByZWZsZWN0IHRoZSBjYWxsIHN0YWNrCmV2ZXJ5IHRpbWUgYSBzYW1wbGUgaXMgdGFrZW47IHRoYXQgaXMsIGlmIGEgY2FsbCBpcyBmb3VuZCBpbiB0aGUgc3RhY2sKYXQgdGhlIHRpbWUgb2YgYSBzYW1wbGUsIGl0IGlzIHJlY29yZGVkIGluIHRoaXMgY291bnQuCjwvcD4KICAgICAgICAgICAgICA8cD4KQmVsb3cgdGhlIGxpbmUgYXJlIGZ1bmN0aW9ucyB0aGF0IGFyZSBjYWxsZWQgYnkKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zdHJmcnkoKTwvY29kZT4gKGNhbGxlZCA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5jYWxsZWVzPC9lbT48L3NwYW4+KS4KSXQncyBjbGVhciBoZXJlIHRoYXQgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zdHJmcnkoKTwvY29kZT4gY2FsbHMKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yYW5kb21fcigpPC9jb2RlPi4gV2UgYWxzbyBzZWUgYSBzcGVjaWFsIGVudHJ5IHdpdGggYQoiW3NlbGZdIiBtYXJrZXIuIFRoaXMgcmVjb3JkcyB0aGUgbm9ybWFsIHNhbXBsZXMgZm9yIHRoZSBmdW5jdGlvbiwgYnV0CnRoZSBwZXJjZW50YWdlIGJlY29tZXMgcmVsYXRpdmUgdG8gYWxsIGNhbGxlZXMuIFRoaXMgYWxsb3dzIHlvdSB0bwpjb21wYXJlIHRpbWUgc3BlbnQgaW4gdGhlIGZ1bmN0aW9uIGl0c2VsZiBjb21wYXJlZCB0byBmdW5jdGlvbnMgaXQKY2FsbHMuIE5vdGUgdGhhdCBpZiBhIGZ1bmN0aW9uIGNhbGxzIGl0c2VsZiwgdGhlbiBpdCB3aWxsIGFwcGVhciBpbiB0aGUKbGlzdCBvZiBjYWxsZWVzIG9mIGl0c2VsZiwgYnV0IHdpdGhvdXQgdGhlICJbc2VsZl0iIG1hcmtlcjsgc28gcmVjdXJzaXZlCmNhbGxzIGFyZSBzdGlsbCBjbGVhcmx5IHNlcGFyYWJsZS4KPC9wPgogICAgICAgICAgICAgIDxwPgpZb3UgbWF5IGhhdmUgbm90aWNlZCB0aGF0IHRoZSBvdXRwdXQgbGlzdHMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluKCk8L2NvZGU+CmFzIGNhbGxpbmcgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zdHJmcnkoKTwvY29kZT4sIGJ1dCBpdCdzIGNsZWFyIGZyb20gdGhlIHNvdXJjZQp0aGF0IHRoaXMgZG9lc24ndCBhY3R1YWxseSBoYXBwZW4uIFNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI2ludGVycHJldGluZy1jYWxsZ3JhcGgiIHRpdGxlPSIzLqBJbnRlcnByZXRpbmcgY2FsbC1ncmFwaCBwcm9maWxlcyI+U2VjdGlvbqAzLCAmIzgyMjA7SW50ZXJwcmV0aW5nIGNhbGwtZ3JhcGggcHJvZmlsZXMmIzgyMjE7PC9hPiBmb3IgYW4gZXhwbGFuYXRpb24uCjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QzIiB0aXRsZT0iMi4zLjIuoENhbGxncmFwaCBhbmQgSklUIHN1cHBvcnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGl0bGUiPjxhIGlkPSJjZy13aXRoLWppdHN1cHBvcnQiPjwvYT4yLjMuMi6gQ2FsbGdyYXBoIGFuZCBKSVQgc3VwcG9ydDwvaDQ+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHA+CkNhbGxncmFwaCBvdXRwdXQgd2hlcmUgYW5vbnltb3VzbHkgbWFwcGVkIGNvZGUgaXMgaW4gdGhlIGNhbGxzdGFjayBjYW4gc29tZXRpbWVzIGJlIG1pc2xlYWRpbmcuCkZvciBhbGwgc3VjaCBjb2RlLCB0aGUgc2FtcGxlcyBmb3IgdGhlIGFub255bW91c2x5IG1hcHBlZCBjb2RlIGFyZSBzdG9yZWQgaW4gYSBzYW1wbGVzIHN1YmRpcmVjdG9yeQpuYW1lZCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnthbm9uOmFub259LyZsdDt0Z2lkJmd0Oy4mbHQ7YmVnaW5fYWRkciZndDsuJmx0O2VuZF9hZGRyJmd0OzwvY29kZT4uCkFzIHN0YXRlZCBlYXJsaWVyLCBpZiB0aGlzIGFub255bW91c2x5IG1hcHBlZCBjb2RlIGlzIEpJVGVkIGNvZGUgZnJvbSBhIHN1cHBvcnRlZCBWTSBsaWtlIEphdmEsCk9Qcm9maWxlIGNyZWF0ZXMgYW4gRUxGIGZpbGUgdG8gcHJvdmlkZSBhIChzb21ld2hhdCkgcGVybWFuZW50IGJhY2tpbmcgZmlsZSBmb3IgdGhlIGNvZGUuCkhvd2V2ZXIsIHdoZW4gdmlld2luZyBjYWxsZ3JhcGggb3V0cHV0LCBhbnkgYW5vbnltb3VzbHkgbWFwcGVkIGNvZGUgaW4gdGhlIGNhbGxzdGFjawp3aWxsIGJlIGF0dHJpYnV0ZWQgdG8gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5hbm9uICgmbHQ7dGdpZCZndDs6IHJhbmdlOiZsdDtiZWdpbl9hZGRyJmd0Oy0mbHQ7ZW5kX2FkZHImZ3Q7PC9jb2RlPiwKZXZlbiBpZiBhIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+LmpvPC9jb2RlPiBFTEYgZmlsZSBoYWQgYmVlbiBjcmVhdGVkIGZvciBpdC4gIFNlZSB0aGUgZXhhbXBsZSBiZWxvdy4KPC9wPgogICAgICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMSAgICAgICAgIDIuMjcyNyAgbGliajl1dGUyMy5zbyAgICAgICAgICAgIGphdmEuYmluICAgICAgICAgICAgICAgICB0cmFjZVYKICAyICAgICAgICAgNC41NDU1ICBsaWJqOXV0ZTIzLnNvICAgICAgICAgICAgamF2YS5iaW4gICAgICAgICAgICAgICAgIHV0c1RyYWNlVgogIDQgICAgICAgICA5LjA5MDkgIGxpYmo5dHJjMjMuc28gICAgICAgICAgICBqYXZhLmJpbiAgICAgICAgICAgICAgICAgZmlsbEluVVRJbnRlcmZhY2VzCiAgMzcgICAgICAgODQuMDkwOSAgbGliajl0cmMyMy5zbyAgICAgICAgICAgIGphdmEuYmluICAgICAgICAgICAgICAgICB0d0dldFNlcXVlbmNlQ291bnRlcgo4ICAgICAgICAgMC4wMTU0ICBsaWJqOXBydDIzLnNvICAgICAgICAgICAgamF2YS5iaW4gICAgICAgICAgICAgICAgIGo5dGltZV9oaXJlc19jbG9jawogIDI3ICAgICAgIDYxLjM2MzYgIGFub24gKHRnaWQ6MTAwMTQgcmFuZ2U6MHgxMDAwMDAtMHgxMDMwMDApIGphdmEuYmluICAgICAgICAgICAgICAgICAobm8gc3ltYm9scykKICA5ICAgICAgICAyMC40NTQ1ICBsaWJjLTIuNC5zbyAgICAgICAgICAgICAgamF2YS5iaW4gICAgICAgICAgICAgICAgIGdldHRpbWVvZmRheQogIDggICAgICAgIDE4LjE4MTggIGxpYmo5cHJ0MjMuc28gICAgICAgICAgICBqYXZhLmJpbiAgICAgICAgICAgICAgICAgajl0aW1lX2hpcmVzX2Nsb2NrIFtzZWxmXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjwvcHJlPgogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgIDxwPgpUaGUgb3V0cHV0IHNob3dzIHRoYXQgImFub24gKHRnaWQ6MTAwMTQgcmFuZ2U6MHgxMDAwMDAtMHgxMDMwMDApIiB3YXMgYSBjYWxsZWUgb2YKPGNvZGUgY2xhc3M9ImNvZGUiPmo5dGltZV9oaXJlc19jbG9jazwvY29kZT4sIGV2ZW4gdGhvdWdoIHRoZSBFTEYgZmlsZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPjEwMDE0LmpvPC9jb2RlPiB3YXMKY3JlYXRlZCBmb3IgdGhpcyBwcm9maWxlIHJ1bi4gIFVuZm9ydHVuYXRlbHksIHRoZXJlIGlzIGN1cnJlbnRseSBubyB3YXkgdG8gY29ycmVsYXRlCnRoYXQgYW5vbnltb3VzIGNhbGxncmFwaCBlbnRyeSB3aXRoIGl0cyBjb3JyZXNwb25kaW5nIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+LmpvPC9jb2RlPiBmaWxlLgo8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjIuNC6gRGlmZmVyZW50aWFsIHByb2ZpbGVzIHdpdGggb3ByZXBvcnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0ib3ByZXBvcnQtZGlmZiI+PC9hPjIuNC6gRGlmZmVyZW50aWFsIHByb2ZpbGVzIHdpdGggPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+PC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+Ck9mdGVuLCB3ZSdkIGxpa2UgdG8gYmUgYWJsZSB0byBjb21wYXJlIHR3byBwcm9maWxlcy4gRm9yIGV4YW1wbGUsIHdoZW4KYW5hbHlzaW5nIHRoZSBwZXJmb3JtYW5jZSBvZiBhbiBhcHBsaWNhdGlvbiwgd2UnZCBsaWtlIHRvIG1ha2UgY29kZQpjaGFuZ2VzIGFuZCBleGFtaW5lIHRoZSBlZmZlY3Qgb2YgdGhlIGNoYW5nZS4gVGhpcyBpcyBzdXBwb3J0ZWQgaW4KPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+IGJ5IGdpdmluZyBhIHByb2ZpbGUgc3BlY2lmaWNhdGlvbiB0aGF0CmlkZW50aWZpZXMgdHdvIGRpZmZlcmVudCBwcm9maWxlcy4gVGhlIGdlbmVyYWwgZm9ybSBpcyBvZjoKPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KJCBvcHJlcG9ydCAmbHQ7c2hhcmVkLXNwZWMmZ3Q7IHsgJmx0O2ZpcnN0LXByb2ZpbGUmZ3Q7IH0geyAmbHQ7c2Vjb25kLXByb2ZpbGUmZ3Q7IH0KPC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUiIHRpdGxlPSJOb3RlIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+CiAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+Tm90ZTwvaDM+CiAgICAgICAgICAgICAgPHA+CldlIGxvc3Qgb3VyIERyYWdvbiBib29rIGRvd24gdGhlIGJhY2sgb2YgdGhlIHNvZmEsIHNvIHlvdSBoYXZlIHRvIGJlCmNhcmVmdWwgdG8gaGF2ZSBzcGFjZXMgYXJvdW5kIHRob3NlIGJyYWNlcywgb3IgdGhpbmdzIHdpbGwgZ2V0CmhvcGVsZXNzbHkgY29uZnVzZWQuIFdlIGNhbiBvbmx5IGFwb2xvZ2lzZS4KPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+CkZvciBlYWNoIG9mIHRoZSBwcm9maWxlcywgdGhlIHNoYXJlZCBzZWN0aW9uIGlzIHByZWZpeGVkLCBhbmQgdGhlbiB0aGUKc3BlY2lmaWNhdGlvbiBpcyBhbmFseXNlZC4gVGhlIHVzdWFsIHBhcmFtZXRlcnMgd29yayBib3RoIHdpdGhpbiB0aGUKc2hhcmVkIHNlY3Rpb24sIGFuZCBpbiB0aGUgc3ViLXNwZWNpZmljYXRpb24gd2l0aGluIHRoZSBjdXJseSBicmFjZXMuCjwvcD4KICAgICAgICAgICAgPHA+CkEgdHlwaWNhbCB3YXkgdG8gdXNlIHRoaXMgZmVhdHVyZSBpcyB3aXRoIGFyY2hpdmVzIGNyZWF0ZWQgd2l0aAo8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGFyY2hpdmU8L3N0cm9uZz48L3NwYW4+LiBMZXQncyBsb29rIGF0IGFuIGV4YW1wbGU6CjwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CiQgLi9hCiQgb3BhcmNoaXZlIC1vIG9yaWcgLi9hCiQgb3Bjb250cm9sIC0tcmVzZXQKICAjIGVkaXQgYW5kIHJlY29tcGlsZSBhCiQgLi9hCiAgIyBub3cgY29tcGFyZSB0aGUgY3VycmVudCBwcm9maWxlIG9mIGEgd2l0aCB0aGUgYXJjaGl2ZWQgcHJvZmlsZQokIG9wcmVwb3J0IC14bCAuL2EgeyBhcmNoaXZlOi4vb3JpZyB9IHsgfQpDUFU6IFBJSUksIHNwZWVkIDg2My4yMzMgTUh6IChlc3RpbWF0ZWQpCkNvdW50ZWQgQ1BVX0NMS19VTkhBTFRFRCBldmVudHMgKGNsb2NrcyBwcm9jZXNzb3IgaXMgbm90IGhhbHRlZCkgd2l0aCBhCnVuaXQgbWFzayBvZiAweDAwIChObyB1bml0IG1hc2spIGNvdW50IDEwMDAwMApzYW1wbGVzICAlICAgICAgICBkaWZmICUgICAgc3ltYm9sIG5hbWUKOTI0MzUgICAgNDguNTM2NiAgKzAuNDk5OSAgIGEKNTQyMjYgICAgLS0tICAgICAgLS0tICAgICAgIGMKNDkyMjIgICAgMjUuODQ1OSAgKysrICAgICAgIGQKNDg3ODcgICAgMjUuNjE3NSAgLTIuMmUtMDEgIGIKPC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDxwPgpOb3RlIHRoYXQgd2Ugc3BlY2lmaWVkIGFuIGVtcHR5IHNlY29uZCBwcm9maWxlIGluIHRoZSBjdXJseSBicmFjZXMsIGFzCndlIHdhbnRlZCB0byB1c2UgdGhlIGN1cnJlbnQgc2Vzc2lvbjsgYWx0ZXJuYXRpdmVseSwgd2UgY291bGQKaGF2ZSBzcGVjaWZpZWQgYW5vdGhlciBhcmNoaXZlLCBvciBhIHRnaWQgZXRjLiBXZSBzcGVjaWZpZWQgdGhlIGJpbmFyeQo8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5hPC9zdHJvbmc+PC9zcGFuPiBpbiB0aGUgc2hhcmVkIHNlY3Rpb24sIHNvIHdlIG1hdGNoZWQgdGhhdCBpbiBib3RoCnRoZSBwcm9maWxlcyB3ZSdyZSBkaWZmaW5nLgo8L3A+CiAgICAgICAgICAgIDxwPgpBcyBpbiB0aGUgbm9ybWFsIG91dHB1dCwgdGhlIHJlc3VsdHMgYXJlIHNvcnRlZCBieSB0aGUgbnVtYmVyIG9mCnNhbXBsZXMsIGFuZCB0aGUgcGVyY2VudGFnZSBmaWVsZCByZXByZXNlbnRzIHRoZSByZWxhdGl2ZSBwZXJjZW50YWdlIG9mCnRoZSBzeW1ib2wncyBzYW1wbGVzIGluIHRoZSBzZWNvbmQgcHJvZmlsZS4KPC9wPgogICAgICAgICAgICA8cD4KTm90aWNlIHRoZSBuZXcgY29sdW1uIGluIHRoZSBvdXRwdXQuIFRoaXMgdmFsdWUgcmVwcmVzZW50cyB0aGUKcGVyY2VudGFnZSBjaGFuZ2Ugb2YgdGhlIHJlbGF0aXZlIHBlcmNlbnQgYmV0d2VlbiB0aGUgZmlyc3QgYW5kIHRoZQpzZWNvbmQgcHJvZmlsZTogcm91Z2hseSwgImhvdyBtdWNoIG1vcmUgaW1wb3J0YW50IHRoaXMgc3ltYm9sIGlzIi4KTG9va2luZyBhdCB0aGUgc3ltYm9sIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+YSgpPC9jb2RlPiwgd2UgY2FuIHNlZSB0aGF0IGl0IHRvb2sKcm91Z2hseSB0aGUgc2FtZSBhbW91bnQgb2YgdGhlIHRvdGFsIHByb2ZpbGUgaW4gYm90aCB0aGUgZmlyc3QgYW5kIHRoZQpzZWNvbmQgcHJvZmlsZS4gVGhlIGZ1bmN0aW9uIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+YygpPC9jb2RlPiB3YXMgbm90IGluIHRoZSBuZXcKcHJvZmlsZSwgc28gaGFzIGJlZW4gbWFya2VkIHdpdGggPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj4tLS08L2NvZGU+LiBOb3RlIHRoYXQgdGhlCnNhbXBsZSB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mIHNhbXBsZXMgaW4gdGhlIGZpcnN0IHByb2ZpbGU7IHNpbmNlIHdlJ3JlCmRpc3BsYXlpbmcgcmVzdWx0cyBmb3IgdGhlIHNlY29uZCBwcm9maWxlLCB3ZSBkb24ndCBsaXN0IGEgcGVyY2VudGFnZQp2YWx1ZSBmb3IgaXQsIGFzIGl0IHdvdWxkIGJlIG1lYW5pbmdsZXNzLiA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmQoKTwvY29kZT4gaXMKbmV3IGluIHRoZSBzZWNvbmQgcHJvZmlsZSwgYW5kIGNvbnNlcXVlbnRseSBtYXJrZWQgd2l0aAo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPisrKzwvY29kZT4uCjwvcD4KICAgICAgICAgICAgPHA+CldoZW4gY29tcGFyaW5nIHByb2ZpbGVzIGJldHdlZW4gZGlmZmVyZW50IGJpbmFyaWVzLCBpdCBzaG91bGQgYmUgY2xlYXIKdGhhdCBmdW5jdGlvbnMgY2FuIGNoYW5nZSBpbiB0ZXJtcyBvZiBWTUEgYW5kIHNpemUuIFRvIGF2b2lkIHRoaXMKcHJvYmxlbSwgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+IGNvbnNpZGVycyBhIHN5bWJvbCB0byBiZSB0aGUgc2FtZQppZiB0aGUgc3ltYm9sIG5hbWUsIGltYWdlIG5hbWUsIGFuZCBvd25pbmcgYXBwbGljYXRpb24gbmFtZSBhbGwgbWF0Y2g7CmFueSBvdGhlciBmYWN0b3JzIGFyZSBpZ25vcmVkLiBOb3RlIHRoYXQgdGhlIGNoZWNrIGZvciBhcHBsaWNhdGlvbiBuYW1lCm1lYW5zIHRoYXQgdHJ5aW5nIHRvIGNvbXBhcmUgbGlicmFyeSBwcm9maWxlcyBiZXR3ZWVuIHR3byBkaWZmZXJlbnQKYXBwbGljYXRpb25zIHdpbGwgbm90IHdvcmsgYXMgeW91IG1pZ2h0IGV4cGVjdDogZWFjaCBzeW1ib2wgd2lsbCBiZQpjb25zaWRlcmVkIGRpZmZlcmVudC4KPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjIuNS6gQW5vbnltb3VzIGV4ZWN1dGFibGUgbWFwcGluZ3MiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0ib3ByZXBvcnQtYW5vbiI+PC9hPjIuNS6gQW5vbnltb3VzIGV4ZWN1dGFibGUgbWFwcGluZ3M8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KTWFueSBhcHBsaWNhdGlvbnMsIHR5cGljYWxseSBvbmVzIGludm9sdmluZyBkeW5hbWljIGNvbXBpbGF0aW9uIGludG8KbWFjaGluZSBjb2RlIChqdXN0LWluLXRpbWUsIG9yICJKSVQiLCBjb21waWxhdGlvbiksIGhhdmUgZXhlY3V0YWJsZSBtYXBwaW5ncyB0aGF0CmFyZSBub3QgYmFja2VkIGJ5IGFuIEVMRiBmaWxlLiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4gaGFzIGJhc2ljIHN1cHBvcnQgZm9yIHNob3dpbmcgdGhlCnNhbXBsZXMgdGFrZW4gaW4gdGhlc2UgcmVnaW9uczsgZm9yIGV4YW1wbGU6CjwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CiQgb3ByZXBvcnQgL3Vzci9iaW4vbW9ubyAtbApDUFU6IHBwYzY0IFBPV0VSNSwgc3BlZWQgMTY1NC4zNCBNSHogKGVzdGltYXRlZCkKQ291bnRlZCBDWUNMRVMgZXZlbnRzIChQcm9jZXNzb3IgQ3ljbGVzIHVzaW5nIGNvbnRpbnVvdXMgc2FtcGxpbmcpIHdpdGggYSB1bml0IG1hc2sgb2YgMHgwMCAoTm8gdW5pdCBtYXNrKSBjb3VudCAxMDAwMDAKc2FtcGxlcyAgJSAgICAgICAgaW1hZ2UgbmFtZSAgICAJCSAgICAgICAgICAgICAgICBzeW1ib2wgbmFtZQo0NyAgICAgICA1OC43NTAwICBtb25vICAgICAgICAgICAgICAgICAgICAgCQkJKG5vIHN5bWJvbHMpCjE0ICAgICAgIDE3LjUwMDAgIGFub24gKHRnaWQ6MzE4OSByYW5nZToweGY3MmFhMDAwLTB4ZjcyZmEwMDApICAobm8gc3ltYm9scykKOSAgICAgICAgMTEuMjUwMCAgYW5vbiAodGdpZDozMTg5IHJhbmdlOjB4ZjZjY2EwMDAtMHhmNmRkOTAwMCkgIChubyBzeW1ib2xzKQouCSAuCSAgLgkJCQkJCS4KPC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDxwPgo8L3A+CiAgICAgICAgICAgIDxwPgpOb3RlIHRoYXQsIHNpbmNlIHN1Y2ggbWFwcGluZ3MgYXJlIGRlcGVuZGVudCB1cG9uIGluZGl2aWR1YWwgaW52b2NhdGlvbnMgb2YKYSBiaW5hcnksIHRoZXNlIG1hcHBpbmdzIGFyZSBhbHdheXMgbGlzdGVkIGFzIGEgZGVwZW5kZW50IGltYWdlLApldmVuIHdoZW4gdXNpbmcgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZXBhcmF0ZT1ub25lPC9jb2RlPi4KRXF1YWxseSwgdGhlIHJlc3VsdHMgYXJlIG5vdCBhZmZlY3RlZCBieSB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tZXJnZTwvY29kZT4Kb3B0aW9uLgo8L3A+CiAgICAgICAgICAgIDxwPgpBcyBzaG93biBpbiB0aGUgb3ByZXBvcnQgb3V0cHV0IGFib3ZlLCBPUHJvZmlsZSBpcyB1bmFibGUgdG8gYXR0cmlidXRlIHRoZSBzYW1wbGVzIHRvIGFueQpzeW1ib2wocykgYmVjYXVzZSB0aGVyZSBpcyBubyBFTEYgZmlsZSBmb3IgdGhpcyBjb2RlLgpFbmhhbmNlZCBzdXBwb3J0IGZvciBKSVRlZCBjb2RlIGlzIG5vdyBhdmFpbGFibGUgZm9yIHNvbWUgdmlydHVhbCBtYWNoaW5lczsgCmUuZy4sIHRoZSBKYXZhIFZpcnR1YWwgTWFjaGluZS4gIEZvciBkZXRhaWxzIGFib3V0IE9Qcm9maWxlIG91dHB1dCBmb3IKSklUZWQgY29kZSwgc2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjZ2V0dGluZy1qaXQtcmVwb3J0cyIgdGl0bGU9IjQuoE9Qcm9maWxlIHJlc3VsdHMgd2l0aCBKSVQgc2FtcGxlcyI+U2VjdGlvbqA0LCAmIzgyMjA7T1Byb2ZpbGUgcmVzdWx0cyB3aXRoIEpJVCBzYW1wbGVzJiM4MjIxOzwvYT4uCjwvcD4KICAgICAgICAgICAgPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSklUIHN1cHBvcnQgaW4gT1Byb2ZpbGUsIHNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI2ppdHN1cHBvcnQiIHRpdGxlPSIxLjEuoFN1cHBvcnQgZm9yIGR5bmFtaWNhbGx5IGNvbXBpbGVkIChKSVQpIGNvZGUiPlNlY3Rpb26gMS4xLCAmIzgyMjA7U3VwcG9ydCBmb3IgZHluYW1pY2FsbHkgY29tcGlsZWQgKEpJVCkgY29kZSYjODIyMTs8L2E+Lgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iMi42LqBYTUwgZm9ybWF0dGVkIG91dHB1dCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJvcHJlcG9ydC14bWwiPjwvYT4yLjYuoFhNTCBmb3JtYXR0ZWQgb3V0cHV0PC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+ClRoZSAteG1sIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBYTUwgaW5zdGVhZCBvZiB0aGUgdXN1YWwKdGV4dCBmb3JtYXQuICBUaGlzIGFsbG93cyBvcHJlcG9ydCB0byBlbGltaW5hdGUgc29tZSBvZiB0aGUgY29uc3RyYWludHMKZGljdGF0ZWQgYnkgdGhlIHR3byBkaW1lbnNpb25hbCB0ZXh0IGZvcm1hdC4gIEZvciBleGFtcGxlLCBpdCBpcyBwb3NzaWJsZQp0byBzZXBhcmF0ZSB0aGUgc2FtcGxlIGRhdGEgYWNyb3NzIG11bHRpcGxlIGV2ZW50cywgY3B1cyBhbmQgdGhyZWFkcy4gIFRoZSBYTUwKc2NoZW1hIGltcGxlbWVudGVkIGJ5IG9wcmVwb3J0IGlzIGZvdW5kIGluIGRvYy9vcHJlcG9ydC54c2QuIEl0IGNvbnRhaW5zCm1vcmUgZGV0YWlsZWQgY29tbWVudHMgYWJvdXQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgWE1MIGdlbmVyYXRlZCBieSBvcHJlcG9ydC4KPC9wPgogICAgICAgICAgICA8cD4KU2luY2UgWE1MIGlzIGNvbnN1bWVkIGJ5IGEgY2xpZW50IHByb2dyYW0gcmF0aGVyIHRoYW4gYSB1c2VyLCBpdHMgc3RydWN0dXJlCmlzIGZhaXJseSBzdGF0aWMuICBJbiBwYXJ0aWN1bGFyLCB0aGUgLS1zb3J0IG9wdGlvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUKLS14bWwgb3B0aW9uLiAgUGVyY2VudGFnZXMgYXJlIG5vdCBkaXNsYXllZCBpbiB0aGUgWE1MIHNvIHRoZSBvcHRpb25zIHJlbGF0ZWQKdG8gcGVyY2VudGFnZXMgd2lsbCBoYXZlIG5vIGVmZmVjdC4gIEZ1bGwgcGF0aG5hbWVzIGFyZSBhbHdheXMgZGlzcGxheWVkIGluCnRoZSBYTUwgc28gLS1sb25nLWZpbGVuYW1lcyBpcyBub3QgbmVjZXNzYXJ5LiAgVGhlIC0tZGV0YWlscyBvcHRpb24gd2lsbCBjYXVzZQphbGwgb2YgdGhlIGluZGl2aWR1YWwgc2FtcGxlIGRhdGEgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIFhNTCBhcyB3ZWxsIGFzIHRoZQppbnN0cnVjdGlvbiBieXRlIHN0cmVhbSBmb3IgZWFjaCBzeW1ib2wgKGZvciBkb2luZyBkaXNhc3NlbWJseSkgYW5kIGNhbiByZXN1bHQKaW4gdmVyeSBsYXJnZSBYTUwgZmlsZXMuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIyLjcuoE9wdGlvbnMgZm9yIG9wcmVwb3J0Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9Im9wcmVwb3J0LW9wdGlvbnMiPjwvYT4yLjcuoE9wdGlvbnMgZm9yIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcmVwb3J0PC9zdHJvbmc+PC9zcGFuPjwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1hY2N1bXVsYXRlZCAvIC1hPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KQWNjdW11bGF0ZSBzYW1wbGUgYW5kIHBlcmNlbnRhZ2UgY291bnRzIGluIHRoZSBzeW1ib2wgbGlzdC4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tY2FsbGdyYXBoIC8gLWM8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpTaG93IGNhbGxncmFwaCBpbmZvcm1hdGlvbi4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGVidWctaW5mbyAvIC1nPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KU2hvdyBzb3VyY2UgZmlsZSBhbmQgbGluZSBmb3IgZWFjaCBzeW1ib2wuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWRlbWFuZ2xlIC8gLUQgbm9uZXxub3JtYWx8c21hcnQ8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpub25lOiBubyBkZW1hbmdsaW5nLiBub3JtYWw6IHVzZSBkZWZhdWx0IGRlbWFuZ2xlciAoZGVmYXVsdCkgc21hcnQ6IHVzZQpwYXR0ZXJuLW1hdGNoaW5nIHRvIG1ha2UgQysrIHN5bWJvbCBkZW1hbmdsaW5nIG1vcmUgcmVhZGFibGUuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWRldGFpbHMgLyAtZDwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClNob3cgcGVyLWluc3RydWN0aW9uIGRldGFpbHMgZm9yIGFsbCBzZWxlY3RlZCBzeW1ib2xzLiBOb3RlIHRoYXQsIGZvcgpiaW5hcmllcyB3aXRob3V0IHN5bWJvbCBpbmZvcm1hdGlvbiwgdGhlIFZNQSB2YWx1ZXMgc2hvd24gYXJlIHJhdyBmaWxlCm9mZnNldHMgZm9yIHRoZSBpbWFnZSBiaW5hcnkuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV4Y2x1ZGUtZGVwZW5kZW50IC8gLXg8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpEbyBub3QgaW5jbHVkZSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBpbWFnZXMgZm9yIGxpYnJhcmllcywga2VybmVsIG1vZHVsZXMKYW5kIHRoZSBrZXJuZWwuIFRoaXMgb3B0aW9uIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIHByb2ZpbGUgc2Vzc2lvbgp1c2VkIC0tc2VwYXJhdGUuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV4Y2x1ZGUtc3ltYm9scyAvIC1lIFtzeW1ib2xzXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CkV4Y2x1ZGUgYWxsIHRoZSBzeW1ib2xzIGluIHRoZSBnaXZlbiBjb21tYS1zZXBhcmF0ZWQgbGlzdC4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZ2xvYmFsLXBlcmNlbnQgLyAtJTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+Ck1ha2UgYWxsIHBlcmNlbnRhZ2VzIHJlbGF0aXZlIHRvIHRoZSB3aG9sZSBwcm9maWxlLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oZWxwIC8gLT8gLyAtLXVzYWdlPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KU2hvdyBoZWxwIG1lc3NhZ2UuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWltYWdlLXBhdGggLyAtcCBbcGF0aHNdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWRkaXRpb25hbCBwYXRocyB0byBzZWFyY2ggZm9yIGJpbmFyaWVzLgpUaGlzIGlzIG5lZWRlZCB0byBmaW5kIG1vZHVsZXMgaW4ga2VybmVscyAyLjYgYW5kIHVwd2FyZHMuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJvb3QgLyAtUiBbcGF0aF08L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpBIHBhdGggdG8gYSBmaWxlc3lzdGVtIHRvIHNlYXJjaCBmb3IgYWRkaXRpb25hbCBiaW5hcmllcy4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW5jbHVkZS1zeW1ib2xzIC8gLWkgW3N5bWJvbHNdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KT25seSBpbmNsdWRlIHN5bWJvbHMgaW4gdGhlIGdpdmVuIGNvbW1hLXNlcGFyYXRlZCBsaXN0Lgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb25nLWZpbGVuYW1lcyAvIC1mPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KT3V0cHV0IGZ1bGwgcGF0aHMgaW5zdGVhZCBvZiBiYXNlbmFtZXMuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1lcmdlIC8gLW0gW2xpYixjcHUsdGlkLHRnaWQsdW5pdG1hc2ssYWxsXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+Ck1lcmdlIGFueSBwcm9maWxlcyBzZXBhcmF0ZWQgaW4gYSAtLXNlcGFyYXRlIHNlc3Npb24uCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW5vLWhlYWRlcjwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CkRvbid0IG91dHB1dCBhIGhlYWRlciBkZXRhaWxpbmcgcHJvZmlsaW5nIHBhcmFtZXRlcnMuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW91dHB1dC1maWxlIC8gLW8gW2ZpbGVdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KT3V0cHV0IHRvIHRoZSBnaXZlbiBmaWxlIGluc3RlYWQgb2Ygc3Rkb3V0Lgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1yZXZlcnNlLXNvcnQgLyAtcjwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClJldmVyc2UgdGhlIHNvcnQgZnJvbSB0aGUgZGVmYXVsdC4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2Vzc2lvbi1kaXI9PC9jb2RlPmRpcl9wYXRoPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClVzZSBzYW1wbGUgZGF0YWJhc2Ugb3V0IG9mIGRpcmVjdG9yeSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRpcl9wYXRoPC9jb2RlPiAKaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBsb2NhdGlvbiAoL3Zhci9saWIvb3Byb2ZpbGUpLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LWFkZHJlc3MgLyAtdzwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClNob3cgdGhlIFZNQSBhZGRyZXNzIG9mIGVhY2ggc3ltYm9sIChvZmYgYnkgZGVmYXVsdCkuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNvcnQgLyAtcyBbdm1hLHNhbXBsZSxzeW1ib2wsZGVidWcsaW1hZ2VdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KU29ydCB0aGUgbGlzdCBvZiBzeW1ib2xzIGJ5LCByZXNwZWN0aXZlbHksIHN5bWJvbCBhZGRyZXNzLApudW1iZXIgb2Ygc2FtcGxlcywgc3ltYm9sIG5hbWUsIGRlYnVnIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJlciwKYmluYXJ5IGltYWdlIGZpbGVuYW1lLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zeW1ib2xzIC8gLWw8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpMaXN0IHBlci1zeW1ib2wgaW5mb3JtYXRpb24gaW5zdGVhZCBvZiBhIGJpbmFyeSBpbWFnZSBzdW1tYXJ5Lgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10aHJlc2hvbGQgLyAtdCBbcGVyY2VudGFnZV08L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpPbmx5IG91dHB1dCBkYXRhIGZvciBzeW1ib2xzIHRoYXQgaGF2ZSBtb3JlIHRoYW4gdGhlIGdpdmVuIHBlcmNlbnRhZ2UKb2YgdG90YWwgc2FtcGxlcy4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmVyYm9zZSAvIC1WIFtvcHRpb25zXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CkdpdmUgdmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0Lgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXJzaW9uIC8gLXY8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpTaG93IHZlcnNpb24uCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXhtbCAvIC1YPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KR2VuZXJhdGUgWE1MIG91dHB1dC4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iMy6gT3V0cHV0dGluZyBhbm5vdGF0ZWQgc291cmNlIChvcGFubm90YXRlKSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJvcGFubm90YXRlIj48L2E+My6gT3V0cHV0dGluZyBhbm5vdGF0ZWQgc291cmNlICg8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGFubm90YXRlPC9zdHJvbmc+PC9zcGFuPik8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+ClRoZSA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGFubm90YXRlPC9zdHJvbmc+PC9zcGFuPiB1dGlsaXR5IGdlbmVyYXRlcyBhbm5vdGF0ZWQgc291cmNlIGZpbGVzIG9yIGFzc2VtYmx5IGxpc3RpbmdzLCBvcHRpb25hbGx5Cm1peGVkIHdpdGggc291cmNlLgpJZiB5b3Ugd2FudCB0byBzZWUgdGhlIHNvdXJjZSBmaWxlLCB0aGUgcHJvZmlsZWQgYXBwbGljYXRpb24gbmVlZHMgdG8gaGF2ZSBkZWJ1ZyBpbmZvcm1hdGlvbiwgYW5kIHRoZSBzb3VyY2UKbXVzdCBiZSBhdmFpbGFibGUgdGhyb3VnaCB0aGlzIGRlYnVnIGluZm9ybWF0aW9uLiBGb3IgR0NDLCB5b3UgbXVzdCB1c2UgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1nPC9jb2RlPiBvcHRpb24Kd2hlbiB5b3UgYXJlIGNvbXBpbGluZy4KSWYgdGhlIGJpbmFyeSBkb2Vzbid0IGNvbnRhaW4gc3VmZmljaWVudCBkZWJ1ZyBpbmZvcm1hdGlvbiwgeW91IGNhbiBzdGlsbAp1c2UgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bhbm5vdGF0ZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWFzc2VtYmx5PC9jb2RlPjwvc3Ryb25nPjwvc3Bhbj4gdG8gZ2V0IGFubm90YXRlZCBhc3NlbWJseS4KPC9wPgogICAgICAgICAgPHA+Ck5vdGUgdGhhdCBmb3IgdGhlIHJlYXNvbiBleHBsYWluZWQgaW4gPGEgY2xhc3M9InhyZWYiIGhyZWY9IiNoYXJkd2FyZS1jb3VudGVycyIgdGl0bGU9IjQuMS6gSGFyZHdhcmUgcGVyZm9ybWFuY2UgY291bnRlcnMiPlNlY3Rpb26gNC4xLCAmIzgyMjA7SGFyZHdhcmUgcGVyZm9ybWFuY2UgY291bnRlcnMmIzgyMjE7PC9hPiB0aGUgcmVzdWx0cyBjYW4gYmUKaW5hY2N1cmF0ZS4gVGhlIGRlYnVnIGluZm9ybWF0aW9uIGl0c2VsZiBjYW4gYWRkIG90aGVyIHByb2JsZW1zOyBmb3IgZXhhbXBsZSwgdGhlIGxpbmUgbnVtYmVyIGZvciBhIHN5bWJvbCBjYW4gYmUKaW5jb3JyZWN0LiBBc3NlbWJseSBpbnN0cnVjdGlvbnMgY2FuIGJlIHJlLW9yZGVyZWQgYW5kIG1vdmVkIGJ5IHRoZSBjb21waWxlciwgYW5kIHRoaXMgY2FuIGxlYWQgdG8KY3JlZGl0aW5nIHNvdXJjZSBsaW5lcyB3aXRoIHNhbXBsZXMgbm90IHJlYWxseSAib3duZWQiIGJ5IHRoaXMgbGluZS4gQWxzbyBzZWUKPGEgY2xhc3M9InhyZWYiIGhyZWY9IiNpbnRlcnByZXRpbmciIHRpdGxlPSJDaGFwdGVyoDUuoEludGVycHJldGluZyBwcm9maWxpbmcgcmVzdWx0cyI+Q2hhcHRlcqA1LCA8aT5JbnRlcnByZXRpbmcgcHJvZmlsaW5nIHJlc3VsdHM8L2k+PC9hPi4KPC9wPgogICAgICAgICAgPHA+CllvdSBjYW4gb3V0cHV0IHRoZSBhbm5vdGF0aW9uIHRvIG9uZSBzaW5nbGUgZmlsZSwgY29udGFpbmluZyBhbGwgdGhlIHNvdXJjZSBmb3VuZCB1c2luZyB0aGUKPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zb3VyY2U8L2NvZGU+LiBZb3UgY2FuIHVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1hc3NlbWJseTwvY29kZT4KdG8gZ2V0IGNvbWJpbmVkIHNvdXJjZS9hc3NlbWJseSBvdXRwdXQuCjwvcD4KICAgICAgICAgIDxwPgpZb3UgY2FuIGFsc28gb3V0cHV0IGEgZGlyZWN0b3J5IG9mIGFubm90YXRlZCBzb3VyY2UgZmlsZXMgdGhhdCBtYWludGFpbnMgdGhlIHN0cnVjdHVyZSBvZgp0aGUgb3JpZ2luYWwgc291cmNlcy4gRWFjaCBsaW5lIGluIHRoZSBhbm5vdGF0ZWQgc291cmNlIGlzIHByZXBlbmRlZCB3aXRoIHRoZSBzYW1wbGVzCmZvciB0aGF0IGxpbmUuIEFkZGl0aW9uYWxseSwgZWFjaCBzeW1ib2wgaXMgYW5ub3RhdGVkIGdpdmluZyBkZXRhaWxzIGZvciB0aGUgc3ltYm9sCmFzIGEgd2hvbGUuIEFuIGV4YW1wbGU6CjwvcD4KICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgokIG9wYW5ub3RhdGUgLS1zb3VyY2UgLS1vdXRwdXQtZGlyPWFubm90YXRlZCAvdXNyL2xvY2FsL29wcm9maWxlLXBwL2Jpbi9vcHJvZmlsZWQKJCBscyBhbm5vdGF0ZWQvaG9tZS9tb3ovc3JjL29wcm9maWxlLXBwL2RhZW1vbi8Kb3BkX2Nvb2tpZS5oICBvcGRfaW1hZ2UuYyAgb3BkX2tlcm5lbC5jICBvcGRfc2FtcGxlX2ZpbGVzLmMgIG9wcm9maWxlZC5jCjwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHA+CkxpbmUgbnVtYmVycyBhcmUgbWFpbnRhaW5lZCBpbiB0aGUgc291cmNlIGZpbGVzLCBidXQgZWFjaCBmaWxlIGhhcwphIGZvb3RlciBhcHBlbmRlZCBkZXNjcmliaW5nIHRoZSBwcm9maWxpbmcgZGV0YWlscy4gVGhlIGFjdHVhbCBhbm5vdGF0aW9uCmxvb2tzIHNvbWV0aGluZyBsaWtlIHRoaXMgOgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KLi4uCiAgICAgICAgICAgICAgIDpzdGF0aWMgdWludDY0X3QgcG9wX2J1ZmZlcl92YWx1ZShzdHJ1Y3QgdHJhbnNpZW50ICogdHJhbnMpCiAxMTUxMCAgMS45NjYxIDp7IC8qIHBvcF9idWZmZXJfdmFsdWUgdG90YWw6ICA4OTkwMSAxNS4zNTY2ICovCiAgICAgICAgICAgICAgIDogICAgICAgIHVpbnQ2NF90IHZhbDsKICAgICAgICAgICAgICAgOgogMTAyMjcgIDEuNzQ2OSA6ICAgICAgICBpZiAoIXRyYW5zLSZndDtyZW1haW5pbmcpIHsKICAgICAgICAgICAgICAgOiAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkJVRzogcG9wcGluZyBlbXB0eSBidWZmZXIgIVxuIik7CiAgICAgICAgICAgICAgIDogICAgICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICAgICAgICAgICAgICA6ICAgICAgICB9CiAgICAgICAgICAgICAgIDoKICAgICAgICAgICAgICAgOiAgICAgICAgdmFsID0gZ2V0X2J1ZmZlcl92YWx1ZSh0cmFucy0mZ3Q7YnVmZmVyLCAwKTsKICAyMjgxICAwLjM4OTYgOiAgICAgICAgdHJhbnMtJmd0O3JlbWFpbmluZy0tOwogIDIyOTYgIDAuMzkyMiA6ICAgICAgICB0cmFucy0mZ3Q7YnVmZmVyICs9IGtlcm5lbF9wb2ludGVyX3NpemU7CiAgICAgICAgICAgICAgIDogICAgICAgIHJldHVybiB2YWw7CiAxMDQ1NCAgMS43ODU3IDp9Ci4uLgo8L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxwPgpUaGUgZmlyc3QgbnVtYmVyIG9uIGVhY2ggbGluZSBpcyB0aGUgbnVtYmVyIG9mIHNhbXBsZXMsIHdoaWxzdCB0aGUgc2Vjb25kIGlzCnRoZSByZWxhdGl2ZSBwZXJjZW50YWdlIG9mIHRvdGFsIHNhbXBsZXMuCjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iMy4xLqBMb2NhdGluZyBzb3VyY2UgZmlsZXMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0ib3Bhbm5vdGF0ZS1maW5kaW5nLXNvdXJjZSI+PC9hPjMuMS6gTG9jYXRpbmcgc291cmNlIGZpbGVzPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+Ck9mIGNvdXJzZSwgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bhbm5vdGF0ZTwvc3Ryb25nPjwvc3Bhbj4gbmVlZHMgdG8gYmUgYWJsZSB0byBsb2NhdGUgdGhlIHNvdXJjZSBmaWxlcwpmb3IgdGhlIGJpbmFyeSBpbWFnZShzKSBpbiBvcmRlciB0byBwcm9kdWNlIG91dHB1dC4gU29tZSBiaW5hcnkgaW1hZ2VzIGhhdmUgZGVidWcKaW5mb3JtYXRpb24gd2hlcmUgdGhlIGdpdmVuIHNvdXJjZSBmaWxlIHBhdGhzIGFyZSByZWxhdGl2ZSwgbm90IGFic29sdXRlLiBZb3UgY2FuCnNwZWNpZnkgc2VhcmNoIHBhdGhzIHRvIGxvb2sgZm9yIHRoZXNlIGZpbGVzIChzaW1pbGFyIHRvIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPmdkYjwvc3Ryb25nPjwvc3Bhbj4ncwo8Y29kZSBjbGFzcz0ib3B0aW9uIj5kaXI8L2NvZGU+IGNvbW1hbmQpIHdpdGggdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VhcmNoLWRpcnM8L2NvZGU+IG9wdGlvbi4KPC9wPgogICAgICAgICAgICA8cD4KU29tZXRpbWVzIHlvdSBtYXkgaGF2ZSBhIGJpbmFyeSBpbWFnZSB3aGljaCBnaXZlcyBhYnNvbHV0ZSBwYXRocyBmb3IgdGhlIHNvdXJjZSBmaWxlcywKYnV0IHlvdSBoYXZlIHRoZSBhY3R1YWwgc291cmNlcyBlbHNld2hlcmUgKGNvbW1vbmx5LCB5b3UndmUgaW5zdGFsbGVkIGFuIFNSUE0gZm9yCmEgYmluYXJ5IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3Ugd2FudCBhbm5vdGF0aW9uIGZyb20gYW4gZXhpc3RpbmcgcHJvZmlsZSkuIFlvdSBjYW4KdXNlIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWJhc2UtZGlyczwvY29kZT4gb3B0aW9uIHRvIHJlZGlyZWN0IE9Qcm9maWxlIHRvIGxvb2sgc29tZXdoZXJlCmVsc2UgZm9yIHNvdXJjZSBmaWxlcy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgd2UgaGF2ZSBhIGJpbmFyeSBnZW5lcmF0ZWQgZnJvbSBhIHNvdXJjZQpmaWxlIHRoYXQgaXMgZ2l2ZW4gaW4gdGhlIGRlYnVnIGluZm9ybWF0aW9uIGFzIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L3RtcC9idWlsZC9saWJmb28vZm9vLmM8L2NvZGU+LAphbmQgeW91IGhhdmUgdGhlIHNvdXJjZSB0cmVlIG1hdGNoaW5nIHRoYXQgYmluYXJ5IGluc3RhbGxlZCBpbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9ob21lL3VzZXIvbGliZm9vLzwvY29kZT4uCllvdSBjYW4gcmVkaXJlY3QgT1Byb2ZpbGUgdG8gZmluZCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvby5jPC9jb2RlPiBjb3JyZWN0bHkgbGlrZSB0aGlzIDoKPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KJCBvcGFubm90YXRlIC0tc291cmNlIC0tYmFzZS1kaXJzPS90bXAvYnVpbGQvbGliZm9vLyAtLXNlYXJjaC1kaXJzPS9ob21lL3VzZXIvbGliZm9vLyAtLW91dHB1dC1kaXI9YW5ub3RhdGVkLyAvbGliL2xpYmZvby5zbwo8L3ByZT4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPHA+CllvdSBjYW4gc3BlY2lmeSBtdWx0aXBsZSAoY29tbWEtc2VwYXJhdGVkKSBwYXRocyB0byBib3RoIG9wdGlvbnMuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIzLjIuoFVzYWdlIG9mIG9wYW5ub3RhdGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0ib3Bhbm5vdGF0ZS1kZXRhaWxzIj48L2E+My4yLqBVc2FnZSBvZiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGFubm90YXRlPC9zdHJvbmc+PC9zcGFuPjwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1hc3NlbWJseSAvIC1hPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KT3V0cHV0IGFubm90YXRlZCBhc3NlbWJseS4gSWYgdGhpcyBpcyBjb21iaW5lZCB3aXRoIC0tc291cmNlLCB0aGVuIG1peGVkCnNvdXJjZSAvIGFzc2VtYmx5IGFubm90YXRpb25zIGFyZSBvdXRwdXQuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWJhc2UtZGlycyAvIC1iIFtwYXRoc10vPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGF0aCBwcmVmaXhlcy4gVGhpcyBjYW4gYmUgdXNlZCB0byBwb2ludCBPUHJvZmlsZSB0byBhCmRpZmZlcmVudCBsb2NhdGlvbiBmb3Igc291cmNlIGZpbGVzIHdoZW4gdGhlIGRlYnVnIGluZm9ybWF0aW9uIHNwZWNpZmllcyBhbgphYnNvbHV0ZSBwYXRoIG9uIHlvdXIgc3lzdGVtIGZvciB0aGUgc291cmNlIHRoYXQgZG9lcyBub3QgZXhpc3QuIFRoZSBwcmVmaXgKaXMgc3RyaXBwZWQgZnJvbSB0aGUgZGVidWcgc291cmNlIGZpbGUgcGF0aHMsIHRoZW4gc2VhcmNoZWQgaW4gdGhlIHNlYXJjaCBkaXJzCnNwZWNpZmllZCBieSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlYXJjaC1kaXJzPC9jb2RlPi4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGVtYW5nbGUgLyAtRCBub25lfG5vcm1hbHxzbWFydDwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+Cm5vbmU6IG5vIGRlbWFuZ2xpbmcuIG5vcm1hbDogdXNlIGRlZmF1bHQgZGVtYW5nbGVyIChkZWZhdWx0KSBzbWFydDogdXNlCnBhdHRlcm4tbWF0Y2hpbmcgdG8gbWFrZSBDKysgc3ltYm9sIGRlbWFuZ2xpbmcgbW9yZSByZWFkYWJsZS4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXhjbHVkZS1kZXBlbmRlbnQgLyAteDwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CkRvIG5vdCBpbmNsdWRlIGFwcGxpY2F0aW9uLXNwZWNpZmljIGltYWdlcyBmb3IgbGlicmFyaWVzLCBrZXJuZWwgbW9kdWxlcwphbmQgdGhlIGtlcm5lbC4gVGhpcyBvcHRpb24gb25seSBtYWtlcyBzZW5zZSBpZiB0aGUgcHJvZmlsZSBzZXNzaW9uCnVzZWQgLS1zZXBhcmF0ZS4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXhjbHVkZS1maWxlIFtmaWxlc108L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpFeGNsdWRlIGFsbCBmaWxlcyBpbiB0aGUgZ2l2ZW4gY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZ2xvYiBwYXR0ZXJucy4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXhjbHVkZS1zeW1ib2xzIC8gLWUgW3N5bWJvbHNdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KRXhjbHVkZSBhbGwgdGhlIHN5bWJvbHMgaW4gdGhlIGdpdmVuIGNvbW1hLXNlcGFyYXRlZCBsaXN0Lgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oZWxwIC8gLT8gLyAtLXVzYWdlPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KU2hvdyBoZWxwIG1lc3NhZ2UuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWltYWdlLXBhdGggLyAtcCBbcGF0aHNdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWRkaXRpb25hbCBwYXRocyB0byBzZWFyY2ggZm9yIGJpbmFyaWVzLgpUaGlzIGlzIG5lZWRlZCB0byBmaW5kIG1vZHVsZXMgaW4ga2VybmVscyAyLjYgYW5kIHVwd2FyZHMuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJvb3QgLyAtUiBbcGF0aF08L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpBIHBhdGggdG8gYSBmaWxlc3lzdGVtIHRvIHNlYXJjaCBmb3IgYWRkaXRpb25hbCBiaW5hcmllcy4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW5jbHVkZS1maWxlIFtmaWxlc108L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpPbmx5IGluY2x1ZGUgZmlsZXMgaW4gdGhlIGdpdmVuIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGdsb2IgcGF0dGVybnMuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWluY2x1ZGUtc3ltYm9scyAvIC1pIFtzeW1ib2xzXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+Ck9ubHkgaW5jbHVkZSBzeW1ib2xzIGluIHRoZSBnaXZlbiBjb21tYS1zZXBhcmF0ZWQgbGlzdC4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tb2JqZHVtcC1wYXJhbXMgW3BhcmFtc108L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpQYXNzIHRoZSBnaXZlbiBwYXJhbWV0ZXJzIGFzIGV4dHJhIHZhbHVlcyB3aGVuIGNhbGxpbmcgb2JqZHVtcC4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tb3V0cHV0LWRpciAvIC1vIFtkaXJdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KT3V0cHV0IGRpcmVjdG9yeS4gVGhpcyBtYWtlcyBvcGFubm90YXRlIG91dHB1dCBvbmUgYW5ub3RhdGVkIGZpbGUgZm9yIGVhY2gKc291cmNlIGZpbGUuIFRoaXMgb3B0aW9uIGNhbid0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAtLWFzc2VtYmx5Lgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZWFyY2gtZGlycyAvIC1kIFtwYXRoc108L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwYXRocyB0byBzZWFyY2ggZm9yIHNvdXJjZSBmaWxlcy4gVGhpcyBpcyB1c2VmdWwgdG8gZmluZApzb3VyY2UgZmlsZXMgd2hlbiB0aGUgZGVidWcgaW5mb3JtYXRpb24gb25seSBjb250YWlucyByZWxhdGl2ZSBwYXRocy4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc291cmNlIC8gLXM8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpPdXRwdXQgYW5ub3RhdGVkIHNvdXJjZS4gVGhpcyByZXF1aXJlcyBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gdG8gYmUgYXZhaWxhYmxlCmZvciB0aGUgYmluYXJpZXMuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRocmVzaG9sZCAvIC10IFtwZXJjZW50YWdlXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+Ck9ubHkgb3V0cHV0IGRhdGEgZm9yIHN5bWJvbHMgdGhhdCBoYXZlIG1vcmUgdGhhbiB0aGUgZ2l2ZW4gcGVyY2VudGFnZQpvZiB0b3RhbCBzYW1wbGVzLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXJib3NlIC8gLVYgW29wdGlvbnNdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KR2l2ZSB2ZXJib3NlIGRlYnVnZ2luZyBvdXRwdXQuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZlcnNpb24gLyAtdjwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClNob3cgdmVyc2lvbi4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iNC6gT1Byb2ZpbGUgcmVzdWx0cyB3aXRoIEpJVCBzYW1wbGVzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9ImdldHRpbmctaml0LXJlcG9ydHMiPjwvYT40LqBPUHJvZmlsZSByZXN1bHRzIHdpdGggSklUIHNhbXBsZXM8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CgkJQWZ0ZXIgcHJvZmlsaW5nIGEgSmF2YSAob3Igb3RoZXIgc3VwcG9ydGVkIFZNKSBhcHBsaWNhdGlvbiwgdGhlIGNvbW1hbmQKCQk8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj48c3BhbiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Im9wY29udHJvbCAtLWR1bXAiPC9zdHJvbmc+PC9zcGFuPiA8L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxwPgoJCWZsdXNoZXMgdGhlIHNhbXBsZSBidWZmZXJzIGFuZCBjcmVhdGVzIEVMRiBiaW5hcmllcyBmcm9tIHRoZQoJCWludGVybWVkaWF0ZSBmaWxlcyB0aGF0IHdlcmUgd3JpdHRlbiBieSB0aGUgYWdlbnQgbGlicmFyeS4KCQlUaGUgRUxGIGJpbmFyaWVzIGFyZSBuYW1lZCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPiZsdDt0Z2lkJmd0Oy5qbzwvY29kZT4uCgkJV2l0aCB0aGUgc3ltYm9sIGluZm9ybWF0aW9uIHN0b3JlZCBpbiB0aGVzZSBFTEYgZmlsZXMsIGl0IGlzCgkJcG9zc2libGUgdG8gbWFwIHNhbXBsZXMgdG8gdGhlIGFwcHJvcHJpYXRlIHN5bWJvbHMuCgk8L3A+CiAgICAgICAgICA8cD4KCQlUaGUgdXN1YWwgYW5hbHlzaXMgdG9vbHMgKDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcmVwb3J0PC9zdHJvbmc+PC9zcGFuPiBhbmQvb3IgCgkJPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bhbm5vdGF0ZTwvc3Ryb25nPjwvc3Bhbj4pIGNhbiBub3cgYmUgdXNlZAoJCXRvIGdldCBzeW1ib2xzIGFuZCBhc3NlbWJseSBjb2RlIGZvciB0aGUgaW5zdHJ1bWVudGVkIFZNIHByb2Nlc3Nlcy4KCTwvcD4KICAgICAgICAgIDxwPgpCZWxvdyBpcyBhbiBleGFtcGxlIG9mIGEgcHJvZmlsZSByZXBvcnQgb2YgYSBKYXZhIGFwcGxpY2F0aW9uIHRoYXQgaGFzIGJlZW4KaW5zdHJ1bWVudGVkIHdpdGggdGhlIHByb3ZpZGVkIGFnZW50IGxpYnJhcnkuCjwvcD4KICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgokIG9wcmVwb3J0IC1sIC91c3IvbGliL2p2bS9qcmUtMS41LjAtaWJtL2Jpbi9qYXZhCkNQVTogQ29yZSBTb2xvIC8gRHVvLCBzcGVlZCAyMTY3IE1IeiAoZXN0aW1hdGVkKQpDb3VudGVkIENQVV9DTEtfVU5IQUxURUQgZXZlbnRzIChVbmhhbHRlZCBjbG9jayBjeWNsZXMpIHdpdGggYSB1bml0IG1hc2sgb2YgMHgwMCAoVW5oYWx0ZWQgY29yZSBjeWNsZXMpIGNvdW50IDEwMDAwMApzYW1wbGVzICAlICAgICAgICBpbWFnZSBuYW1lICAgICAgICAgICAgICAgc3ltYm9sIG5hbWUKMTg2MDIwICAgNTAuMDUyMyAgbm8tdm1saW51eCAgICAgICAgICAgICAgIG5vLXZtbGludXggICAgICAgICAgICAgICAobm8gc3ltYm9scykKMzQzMzMgICAgIDkuMjM4MCAgNzYzNS5qbyAgICAgICAgICAgICAgICAgIGphdmEgICAgICAgICAgICAgICAgICAgICB2b2lkIHRlc3QuZjEoKQoxOTAyMiAgICAgNS4xMTgyICBsaWJjLTIuNS5zbyAgICAgICAgICAgICAgbGliYy0yLjUuc28gICAgICAgICAgICAgIF9JT19maWxlX3hzcHV0bkBAR0xJQkNfMi4xCjE4NzYyICAgICA1LjA0ODMgIGxpYmMtMi41LnNvICAgICAgICAgICAgICBsaWJjLTIuNS5zbyAgICAgICAgICAgICAgdmZwcmludGYKMTY0MDggICAgIDQuNDE0OSAgNzYzNS5qbyAgICAgICAgICAgICAgICAgIGphdmEgICAgICAgICAgICAgICAgICAgICB2b2lkIHRlc3QkSGVsbG9UaHJlYWQucnVuKCkKMTYyNTAgICAgIDQuMzcyNCAgNzYzNS5qbyAgICAgICAgICAgICAgICAgIGphdmEgICAgICAgICAgICAgICAgICAgICB2b2lkIHRlc3QkdGVzdF8xLmYyKGludCkKMTUzMDMgICAgIDQuMTE3NiAgNzYzNS5qbyAgICAgICAgICAgICAgICAgIGphdmEgICAgICAgICAgICAgICAgICAgICB2b2lkIHRlc3QuZjIoaW50LCBpbnQpCjEzMjUyICAgICAzLjU2NTcgIDc2MzUuam8gICAgICAgICAgICAgICAgICBqYXZhICAgICAgICAgICAgICAgICAgICAgdm9pZCB0ZXN0LmYyKGludCkKNTE2NSAgICAgIDEuMzg5NyAgNzYzNS5qbyAgICAgICAgICAgICAgICAgIGphdmEgICAgICAgICAgICAgICAgICAgICB2b2lkIHRlc3QuZjQoKQo5NTUgICAgICAgMC4yNTcwICA3NjM1LmpvICAgICAgICAgICAgICAgICAgamF2YSAgICAgICAgICAgICAgICAgICAgIHZvaWQgdGVzdCRIZWxsb1RocmVhZC5ydW4oKX4KCjwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHA+CjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUiIHRpdGxlPSJOb3RlIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+CiAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPk5vdGU8L2gzPgogICAgICAgICAgICA8cD4KCSAgRGVwZW5kaW5nIG9uIHRoZSBKVk0gdGhhdCBpcyB1c2VkLCBjZXJ0YWluIG9wdGlvbnMgb2Ygb3ByZXBvcnQgYW5kIG9wYW5ub3RhdGUKCSAgZG8gTk9UIHdvcmsgc2luY2UgdGhleSByZWx5IG9uIGRlYnVnIGluZm9ybWF0aW9uIChlLmcuIHNvdXJjZSBjb2RlIGxpbmUgbnVtYmVyKQoJICB0aGF0IGlzIG5vdCBhbHdheXMgYXZhaWxhYmxlLiBUaGUgU3VuIEpWTSBkb2VzIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBkZWJ1ZwoJICBpbmZvcm1hdGlvbiB2aWEgdGhlIEpWTVRJW1BJXSBpbnRlcmZhY2UsCgkgIGJ1dCBvdGhlciBKVk1zIGRvIG5vdC4KICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgoJCUFzIHlvdSBjYW4gc2VlIGluIHRoZSBvcHJlcG9ydCBvdXRwdXQsIHRoZSBKSVQgc3VwcG9ydCBhZ2VudCBmb3IgSmF2YQoJCWdlbmVyYXRlcyBzeW1ib2xzIHRvIGluY2x1ZGUgdGhlIGNsYXNzIGFuZCBtZXRob2Qgc2lnbmF0dXJlLgoJCUEgc3ltYm9sIHdpdGggdGhlIHN1ZmZpeCAmIzczMjsmbHQ7biZndDsgKGUuZy4KCQk8Y29kZSBjbGFzcz0iY29kZSI+dm9pZCB0ZXN0JEhlbGxvVGhyZWFkLnJ1bigpJiM3MzI7MTwvY29kZT4pIG1lYW5zIHRoYXQgdGhpcyBpcwoJCXRoZSAmbHQ7biZndDt0aCBvY2N1cnJlbmNlIG9mIHRoZSBpZGVudGljYWwgbmFtZS4gVGhpcyBoYXBwZW5zIGlmIGEgbWV0aG9kIGlzIHJlLUpJVGVkLgoJCUEgc3ltYm9sIHdpdGggdGhlIHN1ZmZpeCAlJmx0O24mZ3Q7LCBtZWFucyB0aGF0IHRoZSBhZGRyZXNzIHNwYWNlIG9mIHRoaXMgc3ltYm9sCgkJd2FzIHJldXNlZCBkdXJpbmcgdGhlIHNhbXBsZSBzZXNzaW9uIChzZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9IiNvdmVybGFwcGluZy1zeW1ib2xzIiB0aXRsZT0iNi6gT3ZlcmxhcHBpbmcgc3ltYm9scyBpbiBKSVRlZCBjb2RlIj5TZWN0aW9uoDYsICYjODIyMDtPdmVybGFwcGluZyBzeW1ib2xzIGluIEpJVGVkIGNvZGUmIzgyMjE7PC9hPikuCgkJVGhlIHZhbHVlICZsdDtuJmd0OyBpcyB0aGUgcGVyY2VudGFnZSBvZiB0aW1lIHRoYXQgdGhpcyBzeW1ib2wvY29kZSB3YXMgcHJlc2VudCBpbgoJCXJlbGF0aW9uIHRvIHRoZSB0b3RhbCBsaWZldGltZSBvZiBhbGwgb3ZlcmxhcHBpbmcgb3RoZXIgc3ltYm9scy4gQSBzeW1ib2wgb2YgdGhlIGZvcm0KCQk8Y29kZSBjbGFzcz0iY29kZSI+Jmx0O3JldHVybl92YWwmZ3Q7ICZsdDtjbGFzc19uYW1lJmd0OyQmbHQ7bWV0aG9kX3NpZyZndDs8L2NvZGU+IGRlbm90ZXMgYW4KCQlpbm5lciBjbGFzcy4KCTwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjUuoGdwcm9mLWNvbXBhdGlibGUgb3V0cHV0IChvcGdwcm9mKSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJvcGdwcm9mIj48L2E+NS6gPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Z3Byb2Y8L3N0cm9uZz48L3NwYW4+LWNvbXBhdGlibGUgb3V0cHV0ICg8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGdwcm9mPC9zdHJvbmc+PC9zcGFuPik8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CklmIHlvdSdyZSBmYW1pbGlhciB3aXRoIHRoZSBvdXRwdXQgcHJvZHVjZWQgYnkgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+R05VIGdwcm9mPC9zdHJvbmc+PC9zcGFuPiwKeW91IG1heSBmaW5kIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wZ3Byb2Y8L3N0cm9uZz48L3NwYW4+IHVzZWZ1bC4gSXQgdGFrZXMgYSBzaW5nbGUgYmluYXJ5CmFzIGFuIGFyZ3VtZW50LCBhbmQgcHJvZHVjZXMgYSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmdtb24ub3V0PC9jb2RlPiBmaWxlIGZvciB1c2UKd2l0aCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5ncHJvZiAtcDwvc3Ryb25nPjwvc3Bhbj4uIElmIGNhbGwtZ3JhcGggcHJvZmlsaW5nIGlzIGVuYWJsZWQsCnRoZW4gdGhpcyBpcyBhbHNvIGluY2x1ZGVkLgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KJCBvcGdwcm9mIGB3aGljaCBvcHJvZmlsZWRgICMgZ2VuZXJhdGVzIGdtb24ub3V0IGZpbGUKJCBncHJvZiAtcCBgd2hpY2ggb3Byb2ZpbGVkYCB8IGhlYWQKRmxhdCBwcm9maWxlOgoKRWFjaCBzYW1wbGUgY291bnRzIGFzIDEgc2FtcGxlcy4KICAlICAgY3VtdWxhdGl2ZSAgIHNlbGYgICAgICAgICAgICAgIHNlbGYgICAgIHRvdGFsCiB0aW1lICAgc2FtcGxlcyAgIHNhbXBsZXMgICAgY2FsbHMgIFQxL2NhbGwgIFQxL2NhbGwgIG5hbWUKIDMzLjEzIDIwNjIzNy4wMCAyMDYyMzcuMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9kYl9pbnNlcnQKIDIyLjY3IDM0NzM4Ni4wMCAxNDExNDkuMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcF9idWZmZXJfdmFsdWUKICA5LjU2IDQwNjg4MS4wMCA1OTQ5NS4wMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BkX3B1dF9zYW1wbGUKICA3LjM0IDQ1MjU5OS4wMCA0NTcxOC4wMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BkX2ZpbmRfaW1hZ2UKICA3LjE5IDQ5NzMyNy4wMCA0NDcyOC4wMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BkX3Byb2Nlc3Nfc2FtcGxlcwo8L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNS4xLqBVc2FnZSBvZiBvcGdwcm9mIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9Im9wZ3Byb2YtZGV0YWlscyI+PC9hPjUuMS6gVXNhZ2Ugb2YgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3BncHJvZjwvc3Ryb25nPjwvc3Bhbj48L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgogICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taGVscCAvIC0/IC8gLS11c2FnZTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClNob3cgaGVscCBtZXNzYWdlLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1pbWFnZS1wYXRoIC8gLXAgW3BhdGhzXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CkNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFkZGl0aW9uYWwgcGF0aHMgdG8gc2VhcmNoIGZvciBiaW5hcmllcy4KVGhpcyBpcyBuZWVkZWQgdG8gZmluZCBtb2R1bGVzIGluIGtlcm5lbHMgMi42IGFuZCB1cHdhcmRzLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1yb290IC8gLVIgW3BhdGhdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KQSBwYXRoIHRvIGEgZmlsZXN5c3RlbSB0byBzZWFyY2ggZm9yIGFkZGl0aW9uYWwgYmluYXJpZXMuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW91dHB1dC1maWxlbmFtZSAvIC1vIFtmaWxlXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+Ck91dHB1dCB0byB0aGUgZ2l2ZW4gZmlsZSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0LCBnbW9uLm91dAo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10aHJlc2hvbGQgLyAtdCBbcGVyY2VudGFnZV08L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpPbmx5IG91dHB1dCBkYXRhIGZvciBzeW1ib2xzIHRoYXQgaGF2ZSBtb3JlIHRoYW4gdGhlIGdpdmVuIHBlcmNlbnRhZ2UKb2YgdG90YWwgc2FtcGxlcy4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmVyYm9zZSAvIC1WIFtvcHRpb25zXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CkdpdmUgdmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0Lgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXJzaW9uIC8gLXY8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpTaG93IHZlcnNpb24uCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjYuoEFyY2hpdmluZyBtZWFzdXJlbWVudHMgKG9wYXJjaGl2ZSkiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0ib3BhcmNoaXZlIj48L2E+Ni6gQXJjaGl2aW5nIG1lYXN1cmVtZW50cyAoPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3BhcmNoaXZlPC9zdHJvbmc+PC9zcGFuPik8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CglUaGUgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3BhcmNoaXZlPC9zdHJvbmc+PC9zcGFuPiB1dGlsaXR5IGdlbmVyYXRlcyBhIGRpcmVjdG9yeSBwb3B1bGF0ZWQKCXdpdGggZXhlY3V0YWJsZSwgZGVidWcsIGFuZCBvcHJvZmlsZSBzYW1wbGUgZmlsZXMuIFRoaXMgZGlyZWN0b3J5IGNhbiBiZQoJbW92ZWQgdG8gYW5vdGhlciBtYWNoaW5lIHZpYSA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz50YXI8L3N0cm9uZz48L3NwYW4+IGFuZCBhbmFseXplZCB3aXRob3V0CglmdXJ0aGVyIHVzZSBvZiB0aGUgZGF0YSBjb2xsZWN0aW9uIG1hY2hpbmUuCjwvcD4KICAgICAgICAgIDxwPgoJVGhlIGZvbGxvd2luZyBjb21tYW5kIHdvdWxkIGNvbGxlY3QgdGhlIHNhbXBsZSBmaWxlcywgdGhlIGV4ZWN1dGFibGVzCglhc3NvY2lhdGVkIHdpdGggdGhlIHNhbXBsZSBmaWxlcywgYW5kIHRoZSBkZWJ1Z2luZm8gZmlsZXMgYXNzb2NpYXRlZAoJd2l0aCB0aGUgZXhlY3V0YWJsZXMgYW5kIGNvcHkgdGhlbSBpbnRvCgk8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi90bXAvY3VycmVudF9kYXRhPC9jb2RlPjoKPC9wPgogICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CiMgb3BhcmNoaXZlIC1vIC90bXAvY3VycmVudF9kYXRhCjwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSI2LjEuoFVzYWdlIG9mIG9wYXJjaGl2ZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJvcGFyY2hpdmUtZGV0YWlscyI+PC9hPjYuMS6gVXNhZ2Ugb2YgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3BhcmNoaXZlPC9zdHJvbmc+PC9zcGFuPjwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oZWxwIC8gLT8gLyAtLXVzYWdlPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KU2hvdyBoZWxwIG1lc3NhZ2UuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV4Y2x1ZGUtZGVwZW5kZW50IC8gLXg8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpEbyBub3QgaW5jbHVkZSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBpbWFnZXMgZm9yIGxpYnJhcmllcywga2VybmVsIG1vZHVsZXMKYW5kIHRoZSBrZXJuZWwuIFRoaXMgb3B0aW9uIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIHByb2ZpbGUgc2Vzc2lvbgp1c2VkIC0tc2VwYXJhdGUuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWltYWdlLXBhdGggLyAtcCBbcGF0aHNdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWRkaXRpb25hbCBwYXRocyB0byBzZWFyY2ggZm9yIGJpbmFyaWVzLgpUaGlzIGlzIG5lZWRlZCB0byBmaW5kIG1vZHVsZXMgaW4ga2VybmVscyAyLjYgYW5kIHVwd2FyZHMuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJvb3QgLyAtUiBbcGF0aF08L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpBIHBhdGggdG8gYSBmaWxlc3lzdGVtIHRvIHNlYXJjaCBmb3IgYWRkaXRpb25hbCBiaW5hcmllcy4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tb3V0cHV0LWRpcmVjdG9yeSAvIC1vIFtkaXJlY3RvcnldPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KT3V0cHV0IHRvIHRoZSBnaXZlbiBkaXJlY3RvcnkuIFRoZXJlIGlzIG5vIGRlZmF1bHQuIFRoaXMgbXVzdCBiZSBzcGVjaWZpZWQuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxpc3QtZmlsZXMgLyAtbDwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+Ck9ubHkgbGlzdCB0aGUgZmlsZXMgdGhhdCB3b3VsZCBiZSBhcmNoaXZlZCwgZG9uJ3QgY29weSB0aGVtLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXJib3NlIC8gLVYgW29wdGlvbnNdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KR2l2ZSB2ZXJib3NlIGRlYnVnZ2luZyBvdXRwdXQuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZlcnNpb24gLyAtdjwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClNob3cgdmVyc2lvbi4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iNy6gQ29udmVydGluZyBzYW1wbGUgZGF0YWJhc2UgZmlsZXMgKG9waW1wb3J0KSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJvcGltcG9ydCI+PC9hPjcuoENvbnZlcnRpbmcgc2FtcGxlIGRhdGFiYXNlIGZpbGVzICg8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGltcG9ydDwvc3Ryb25nPjwvc3Bhbj4pPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgoJVGhpcyB1dGlsaXR5IGNvbnZlcnRzIHNhbXBsZSBkYXRhYmFzZSBmaWxlcyBmcm9tIGEgZm9yZWlnbiBiaW5hcnkgZm9ybWF0IChhYmkpIHRvCgl0aGUgbmF0aXZlIGZvcm1hdC4gVGhpcyBpcyB1c2VmdWwgb25seSB3aGVuIG1vdmluZyBzYW1wbGUgZmlsZXMgYmV0d2VlbiBob3N0cywKCWZvciBhbmFseXNpcyBvbiBwbGF0Zm9ybXMgb3RoZXIgdGhhbiB0aGUgb25lIHVzZWQgZm9yIGNvbGxlY3Rpb24uIFRoZSBhYmkgZm9ybWF0CglvZiB0aGUgZmlsZSB0byBiZSBpbXBvcnRlZCBpcyBkZXNjcmliZWQgaW4gYSB0ZXh0IGZpbGUgbG9jYXRlZCBpbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPiRTRVNTSU9OX0RJUi9hYmk8L2NvZGU+Lgo8L3A+CiAgICAgICAgICA8cD4KCVRoZSBmb2xsb3dpbmcgY29tbWFuZCB3b3VsZCBjb252ZXJ0IHRoZSBpbnB1dCBzYW1wbGVzIGZpbGVzIHRvIHRoZQoJb3V0cHV0IHNhbXBsZXMgZmlsZXMgdXNpbmcgdGhlIGdpdmVuIGFiaSBmaWxlIGFzIGEgYmluYXJ5IGRlc2NyaXB0aW9uCglvZiB0aGUgaW5wdXQgZmlsZSBhbmQgdGhlIGN1cmVudCBwbGF0Zm9ybSBhYmkgYXMgYSBiaW5hcnkgZGVzY3JpcHRpb24KCW9mIHRoZSBvdXRwdXQgZmlsZS4KPC9wPgogICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CiMgb3BpbXBvcnQgLWEgL3Zhci9saWIvb3Byb2ZpbGUvYWJpIC1vIC90bXAvY3VycmVudC8uLi4vR0xPQkFMX1BPV0VSX0VWRU5UUy4yMDAwMDAuMS5hbGwuYWxsLmFsbCAvdmFyL2xpYi8uLi4vbXByaW1lL0dMT0JBTF9QT1dFUl9FVkVOVFMuMjAwMDAwLjEuYWxsLmFsbC5hbGwKPC9wcmU+CiAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjcuMS6gVXNhZ2Ugb2Ygb3BpbXBvcnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0ib3BpbXBvcnQtZGV0YWlscyI+PC9hPjcuMS6gVXNhZ2Ugb2YgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3BpbXBvcnQ8L3N0cm9uZz48L3NwYW4+PC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWhlbHAgLyAtPyAvIC0tdXNhZ2U8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgIDxwPgpTaG93IGhlbHAgbWVzc2FnZS4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYWJpIC8gLWEgW2ZpbGVuYW1lXTwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+CklucHV0IGFiaSBmaWxlIGRlc2NyaXB0aW9uIGxvY2F0aW9uLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mb3JjZSAvIC1mPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KRm9yY2UgY29udmVyc2lvbiBldmVuIGlmIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGFiaSBhcmUgaWRlbnRpY2FsLgo8L3A+CiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1vdXRwdXQgLyAtbyBbZmlsZW5hbWVdPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KU3BlY2lmeSB0aGUgb3V0cHV0IGZpbGVuYW1lLiBJZiB0aGUgb3V0cHV0IGZpbGUgYWxyZWFkeSBleGlzdHMsIHRoZSBmaWxlIGlzCm5vdCBvdmVyd3JpdHRlbiBidXQgZGF0YSBhcmUgYWNjdW11bGF0ZWQgaW4uIFNhbXBsZSBmaWxlbmFtZSBhcmUgaW5mb3JtYXRpdmUKZm9yIHBvc3QgcHJvZmlsZSB0b29scyBhbmQgbXVzdCBiZSBrZXB0IGlkZW50aWNhbCwgaW4gb3RoZXIgd29yZCB0aGUgcGF0aG5hbWUKZnJvbSB0aGUgZmlyc3QgcGF0aCBjb21wb25lbnQgY29udGFpbmluZyBhICd7JyBtdXN0IGJlIGtlcHQgYXMgaXQgaW4gdGhlCm91dHB1dCBmaWxlbmFtZS4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmVyYm9zZSAvIC1WPC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICA8cD4KR2l2ZSB2ZXJib3NlIGRlYnVnZ2luZyBvdXRwdXQuCjwvcD4KICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZlcnNpb24gLyAtdjwvY29kZT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgPHA+ClNob3cgdmVyc2lvbi4KPC9wPgogICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcHRlciIgdGl0bGU9IkNoYXB0ZXKgNS6gSW50ZXJwcmV0aW5nIHByb2ZpbGluZyByZXN1bHRzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIj48YSBpZD0iaW50ZXJwcmV0aW5nIj48L2E+Q2hhcHRlcqA1LqBJbnRlcnByZXRpbmcgcHJvZmlsaW5nIHJlc3VsdHM8L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRvYyI+CiAgICAgICAgICA8cD4KICAgICAgICAgICAgPGI+VGFibGUgb2YgQ29udGVudHM8L2I+CiAgICAgICAgICA8L3A+CiAgICAgICAgICA8ZGw+CiAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI2lycS1sYXRlbmN5Ij4xLiBQcm9maWxpbmcgaW50ZXJydXB0IGxhdGVuY3k8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNrZXJuZWwtcHJvZmlsaW5nIj4yLiBLZXJuZWwgcHJvZmlsaW5nPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjaXJxLW1hc2tpbmciPjIuMS4gSW50ZXJydXB0IG1hc2tpbmc8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2lkbGUiPjIuMi4gSWRsZSB0aW1lPC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNrZXJuZWwtbW9kdWxlcyI+Mi4zLiBQcm9maWxpbmcga2VybmVsIG1vZHVsZXM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjaW50ZXJwcmV0aW5nLWNhbGxncmFwaCI+My4gSW50ZXJwcmV0aW5nIGNhbGwtZ3JhcGggcHJvZmlsZXM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNkZWJ1Zy1pbmZvIj40LiBJbmFjY3VyYWNpZXMgaW4gYW5ub3RhdGVkIHNvdXJjZTwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2VmZmVjdC1vZi1vcHRpbWl6YXRpb25zIj40LjEuIFNpZGUgZWZmZWN0cyBvZiBvcHRpbWl6YXRpb25zPC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwcm9sb2d1ZXMiPjQuMi4gUHJvbG9ndWVzIGFuZCBlcGlsb2d1ZXM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2lubGluZWQtZnVuY3Rpb24iPjQuMy4gSW5saW5lZCBmdW5jdGlvbnM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3dyb25nLWxpbmVuci1pbmZvIj40LjQuIEluYWNjdXJhY3kgaW4gbGluZSBudW1iZXIgaW5mb3JtYXRpb248L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc3ltYm9sLXdpdGhvdXQtZGVidWctaW5mbyI+NS4gQXNzZW1ibHkgZnVuY3Rpb25zPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjb3ZlcmxhcHBpbmctc3ltYm9scyI+Ni4gT3ZlcmxhcHBpbmcgc3ltYm9scyBpbiBKSVRlZCBjb2RlPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjaGlkZGVuLWNvc3QiPjcuIE90aGVyIGRpc2NyZXBhbmNpZXM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgPC9kbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cD4KVGhlIHN0YW5kYXJkIGNhdmVhdHMgb2YgcHJvZmlsaW5nIGFwcGx5IGluIGludGVycHJldGluZyB0aGUgcmVzdWx0cyBmcm9tIE9Qcm9maWxlOgpwcm9maWxlIHJlYWxpc3RpYyBzaXR1YXRpb25zLCBwcm9maWxlIGRpZmZlcmVudCBzY2VuYXJpb3MsIHByb2ZpbGUKZm9yIGFzIGxvbmcgYXMgYSB0aW1lIGFzIHBvc3NpYmxlLCBhdm9pZCBzeXN0ZW0tc3BlY2lmaWMgYXJ0aWZhY3RzLCBkb24ndCB0cnVzdAp0aGUgcHJvZmlsZSBkYXRhIHRvbyBtdWNoLiBBbHNvIGJlYXIgaW4gbWluZCB0aGUgY29tbWVudHMgb24gdGhlIHBlcmZvcm1hbmNlCmNvdW50ZXJzIGFib3ZlIC0geW91IDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmNhbm5vdDwvZW0+PC9zcGFuPiByZWx5IG9uIHRvdGFsbHkgYWNjdXJhdGUKaW5zdHJ1Y3Rpb24tbGV2ZWwgcHJvZmlsaW5nLiAgSG93ZXZlciwgZm9yIGFsbW9zdCBhbGwgY2lyY3Vtc3RhbmNlcyB0aGUgZGF0YQpjYW4gYmUgdXNlZnVsLiBJZGVhbGx5IGEgdXRpbGl0eSBzdWNoIGFzIEludGVsJ3MgVlRVTkUgd291bGQgYmUgYXZhaWxhYmxlIHRvCmFsbG93IGNhcmVmdWwgaW5zdHJ1Y3Rpb24tbGV2ZWwgYW5hbHlzaXM7IGdvIGhhc3NsZSBJbnRlbCBmb3IgdGhpcywgbm90IG1lIDspCjwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjEuoFByb2ZpbGluZyBpbnRlcnJ1cHQgbGF0ZW5jeSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJpcnEtbGF0ZW5jeSI+PC9hPjEuoFByb2ZpbGluZyBpbnRlcnJ1cHQgbGF0ZW5jeTwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyB0aGUgbGF0ZW5jeSBvZiBkZWxpdmVyeSBvZiBwcm9maWxpbmcgaW50ZXJydXB0cwpjYW4gaW1wYWN0IHRoZSByZWxpYWJpbGl0eSBvZiB0aGUgcHJvZmlsaW5nIGRhdGEuIFRoaXMgaXMgcHJldHR5IG11Y2ggYSAKd29yc3QtY2FzZS1zY2VuYXJpbyBleGFtcGxlOiB0aGVzZSBwcm9ibGVtcyBhcmUgZmFpcmx5IHJhcmUuCjwvcD4KICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgpkb3VibGUgZnVuKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMpCnsKIGRvdWJsZSByZXN1bHQgPSAwOwogZm9yIChpbnQgaSA9IDAgOyBpICZsdDsgMTAwMDA7ICsraSkgewogIHJlc3VsdCArPSBhOwogIHJlc3VsdCAqPSBiOwogIHJlc3VsdCAvPSBjOwogfQogcmV0dXJuIHJlc3VsdDsKfQo8L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxwPgpIZXJlIHRoZSBsYXN0IGluc3RydWN0aW9uIG9mIHRoZSBsb29wIGlzIHZlcnkgY29zdGx5LCBhbmQgeW91IHdvdWxkIGV4cGVjdCB0aGUgcmVzdWx0CnJlZmxlY3RpbmcgdGhhdCAtIGJ1dCAoY3V0dGluZyB0aGUgaW5zdHJ1Y3Rpb25zIGluc2lkZSB0aGUgbG9vcCk6CjwvcD4KICAgICAgICAgIDx0YWJsZSB4bWxucz0iIiBib3JkZXI9IjAiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjRTBFMEUwOyIgd2lkdGg9IjkwJSI+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzY3JlZW4iPgokIG9wYW5ub3RhdGUgLWEgLXQgMTAgLi9hLm91dAoKICAgICA4OCAxNS4zOCUgOiA4MDQ4MzM3OiAgICAgICBmYWRkICAgJXN0KDMpLCVzdAogICAgIDQ4IDguMzkxJSA6IDgwNDgzMzk6ICAgICAgIGZtdWwgICAlc3QoMiksJXN0CiAgICAgNjggMTEuODglIDogODA0ODMzYjogICAgICAgZmRpdiAgICVzdCgxKSwlc3QKICAgIDM2OCA2NC4zMyUgOiA4MDQ4MzNkOiAgICAgICBpbmMgICAgJWVheAogICAgICAgICAgICAgICA6IDgwNDgzM2U6ICAgICAgIGNtcCAgICAkMHgyNzBmLCVlYXgKICAgICAgICAgICAgICAgOiA4MDQ4MzQzOiAgICAgICBqbGUgICAgODA0ODMzNwo8L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxwPgpUaGUgcHJvYmxlbSBjb21lcyBmcm9tIHRoZSB4ODYgaGFyZHdhcmU7IHdoZW4gdGhlIGNvdW50ZXIgb3ZlcmZsb3dzIHRoZSBJUlEKaXMgYXNzZXJ0ZWQgYnV0IHRoZSBoYXJkd2FyZSBoYXMgZmVhdHVyZXMgdGhhdCBjYW4gZGVsYXkgdGhlIE5NSSBpbnRlcnJ1cHQ6Cng4NiBoYXJkd2FyZSBpcyBzeW5jaHJvbm91cyAoaS5lLiBjYW5ub3QgaW50ZXJydXB0IGR1cmluZyBhbiBpbnN0cnVjdGlvbik7CnRoZXJlIGlzIGFsc28gYSBsYXRlbmN5IHdoZW4gdGhlIElSUSBpcyBhc3NlcnRlZCwgYW5kIHRoZSBtdWx0aXBsZQpleGVjdXRpb24gdW5pdHMgYW5kIHRoZSBvdXQtb2Ytb3JkZXIgbW9kZWwgb2YgbW9kZXJuIHg4NiBDUFVzIGFsc28gY2F1c2VzCnByb2JsZW1zLiBUaGlzIGlzIHRoZSBzYW1lIGZ1bmN0aW9uLCB3aXRoIGFubm90YXRpb24gOgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KJCBvcGFubm90YXRlIC1zIC10IDEwIC4vYS5vdXQKCiAgICAgICAgICAgICAgIDpkb3VibGUgZnVuKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMpCiAgICAgICAgICAgICAgIDp7IC8qIF9aM2Z1bmRkZCB0b3RhbDogICAgIDU3MiAxMDAuMCUgKi8KICAgICAgICAgICAgICAgOiBkb3VibGUgcmVzdWx0ID0gMDsKICAgIDM2OCA2NC4zMyUgOiBmb3IgKGludCBpID0gMCA7IGkgJmx0OyAxMDAwMDsgKytpKSB7CiAgICAgODggMTUuMzglIDogIHJlc3VsdCArPSBhOwogICAgIDQ4IDguMzkxJSA6ICByZXN1bHQgKj0gYjsKICAgICA2OCAxMS44OCUgOiAgcmVzdWx0IC89IGM7CiAgICAgICAgICAgICAgIDogfQogICAgICAgICAgICAgICA6IHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgIDp9CjwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHA+ClRoZSBjb25jbHVzaW9uOiBkb24ndCB0cnVzdCBzYW1wbGVzIGNvbWluZyBhdCB0aGUgZW5kIG9mIGEgbG9vcCwKcGFydGljdWxhcmx5IGlmIHRoZSBsYXN0IGluc3RydWN0aW9uIGdlbmVyYXRlZCBieSB0aGUgY29tcGlsZXIgaXMgY29zdGx5LiBUaGlzCmNhc2UgY2FuIGFsc28gb2NjdXIgZm9yIGJyYW5jaGVzLiBBbHdheXMgYmVhciBpbiBtaW5kIHRoYXQgc2FtcGxlcwpjYW4gYmUgZGVsYXllZCBieSBhIGZldyBjeWNsZXMgZnJvbSBpdHMgcmVhbCBwb3NpdGlvbi4gVGhhdCdzIGEgaGFyZHdhcmUKcHJvYmxlbSBhbmQgT1Byb2ZpbGUgY2FuIGRvIG5vdGhpbmcgYWJvdXQgaXQuCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjIuoEtlcm5lbCBwcm9maWxpbmciPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0ia2VybmVsLXByb2ZpbGluZyI+PC9hPjIuoEtlcm5lbCBwcm9maWxpbmc8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIyLjEuoEludGVycnVwdCBtYXNraW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImlycS1tYXNraW5nIj48L2E+Mi4xLqBJbnRlcnJ1cHQgbWFza2luZzwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpPUHJvZmlsZSB1c2VzIG5vbi1tYXNrYWJsZSBpbnRlcnJ1cHRzIChOTUkpIG9uIHRoZSBQNiBnZW5lcmF0aW9uLCBQZW50aXVtIDQsCkF0aGxvbiwgT3B0ZXJvbiwgUGhlbm9tLCBhbmQgVHVyaW9uIHByb2Nlc3NvcnMuIFRoZXNlIGludGVycnVwdHMgY2FuIG9jY3VyIGV2ZW4gaW4gc2VjdGlvbiBvZiB0aGUKTGludXggd2hlcmUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQsIGFsbG93aW5nIGNvbGxlY3Rpb24gb2Ygc2FtcGxlcyBpbiB2aXJ0dWFsbHkKYWxsIGV4ZWN1dGFibGUgY29kZS4gIFRoZSBSVEMsIHRpbWVyIGludGVycnVwdCBtb2RlLCBhbmQgSXRhbml1bSAyIGNvbGxlY3Rpb24gbWVjaGFuaXNtcwp1c2UgbWFza2FibGUgaW50ZXJydXB0cy4gVGh1cywgdGhlIFJUQyBhbmQgSXRhbml1bSAyIGRhdGEgY29sbGVjdGlvbiBtZWNoYW5pc20gaGF2ZSAic2FtcGxlCnNoYWRvd3MiLCBvciBibGluZCBzcG90czogcmVnaW9ucyB3aGVyZSBubyBzYW1wbGVzIHdpbGwgYmUgY29sbGVjdGVkLiBUeXBpY2FsbHksIHRoZSBzYW1wbGVzCndpbGwgYmUgYXR0cmlidXRlZCB0byB0aGUgY29kZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgaW50ZXJydXB0cyBhcmUgcmUtZW5hYmxlZC4KPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjIuMi6gSWRsZSB0aW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImlkbGUiPjwvYT4yLjIuoElkbGUgdGltZTwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpZb3VyIGtlcm5lbCBpcyBsaWtlbHkgdG8gc3VwcG9ydCBoYWx0aW5nIHRoZSBwcm9jZXNzb3Igd2hlbiBhIENQVSBpcyBpZGxlLiBBcwp0aGUgdHlwaWNhbCBoYXJkd2FyZSBldmVudHMgbGlrZSA8Y29kZSBjbGFzcz0iY29uc3RhbnQiPkNQVV9DTEtfVU5IQUxURUQ8L2NvZGU+IGRvIG5vdApjb3VudCB3aGVuIHRoZSBDUFUgaXMgaGFsdGVkLCB0aGUga2VybmVsIHByb2ZpbGUgd2lsbCBub3QgcmVmbGVjdCB0aGUgYWN0dWFsCmFtb3VudCBvZiB0aW1lIHNwZW50IGlkbGUuIFlvdSBjYW4gY2hhbmdlIHRoaXMgYmVoYXZpb3VyIGJ5IGJvb3Rpbmcgd2l0aAp0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+aWRsZT1wb2xsPC9jb2RlPiBvcHRpb24sIHdoaWNoIHVzZXMgYSBkaWZmZXJlbnQgaWRsZSByb3V0aW5lLiBUaGlzCndpbGwgYXBwZWFyIGFzIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cG9sbF9pZGxlKCk8L2NvZGU+IGluIHlvdXIga2VybmVsIHByb2ZpbGUuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIHRpdGxlPSIyLjMuoFByb2ZpbGluZyBrZXJuZWwgbW9kdWxlcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJrZXJuZWwtbW9kdWxlcyI+PC9hPjIuMy6gUHJvZmlsaW5nIGtlcm5lbCBtb2R1bGVzPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+Ck9Qcm9maWxlIHByb2ZpbGVzIGtlcm5lbCBtb2R1bGVzIGJ5IGRlZmF1bHQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIGNvdXBsZSBvZiBwcm9ibGVtcwp5b3UgbWF5IGhhdmUgd2hlbiB0cnlpbmcgdG8gZ2V0IHJlc3VsdHMuIEZpcnN0LCB5b3UgbWF5IGhhdmUgYm9vdGVkIHZpYSBhbiBpbml0cmQ7CnRoaXMgbWVhbnMgdGhhdCB0aGUgYWN0dWFsIHBhdGggZm9yIHRoZSBtb2R1bGUgYmluYXJpZXMgY2Fubm90IGJlIGRldGVybWluZWQgYXV0b21hdGljYWxseS4KVG8gZ2V0IGFyb3VuZCB0aGlzLCB5b3UgY2FuIHVzZSB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LXA8L2NvZGU+IG9wdGlvbiB0byB0aGUgcHJvZmlsaW5nIHRvb2xzCnRvIHNwZWNpZnkgd2hlcmUgdG8gbG9vayBmb3IgdGhlIGtlcm5lbCBtb2R1bGVzLgo8L3A+CiAgICAgICAgICAgIDxwPgpJbiAyLjYsIHRoZSBpbmZvcm1hdGlvbiBvbiB3aGVyZSBrZXJuZWwgbW9kdWxlIGJpbmFyaWVzIGFyZSBsb2NhdGVkIGhhcyBiZWVuIHJlbW92ZWQuClRoaXMgbWVhbnMgT1Byb2ZpbGUgbmVlZHMgZ3VpZGluZyB3aXRoIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tcDwvY29kZT4gb3B0aW9uIHRvIGZpbmQgeW91cgptb2R1bGVzLiBOb3JtYWxseSwgeW91IGNhbiBqdXN0IHVzZSB5b3VyIHN0YW5kYXJkIG1vZHVsZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IGZvciB0aGlzLgpOb3RlIHRoYXQgZHVlIHRvIHRoaXMgcHJvYmxlbSwgT1Byb2ZpbGUgY2Fubm90IGNoZWNrIHRoYXQgdGhlIG1vZGlmaWNhdGlvbiB0aW1lcyBtYXRjaDsKaXQgaXMgeW91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgeW91IGRvIG5vdCBtb2RpZnkgYSBiaW5hcnkgYWZ0ZXIgYSBwcm9maWxlCmhhcyBiZWVuIGNyZWF0ZWQuCjwvcD4KICAgICAgICAgICAgPHA+CklmIHlvdSBoYXZlIHJ1biA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5pbnNtb2Q8L3N0cm9uZz48L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm1vZHByb2JlPC9zdHJvbmc+PC9zcGFuPiB0byBpbnNlcnQgYSBtb2R1bGUKaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdG9yeSwgaXQgaXMgaW1wb3J0YW50IHRoYXQgeW91IHNwZWNpZnkgdGhpcyBkaXJlY3Rvcnkgd2l0aCB0aGUgCjxjb2RlIGNsYXNzPSJvcHRpb24iPi1wPC9jb2RlPiBvcHRpb24gZmlyc3QsIHNvIHRoYXQgaXQgb3Zlci1yaWRlcyBhbiBvbGRlciBtb2R1bGUgYmluYXJ5IHRoYXQgbWlnaHQKZXhpc3QgaW4gb3RoZXIgZGlyZWN0b3JpZXMgeW91J3ZlIHNwZWNpZmllZCB3aXRoIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1wPC9jb2RlPi4gSXQgaXMgdXAgdG8geW91CnRvIG1ha2Ugc3VyZSB0aGF0IHRoZXNlIHZhbHVlcyBhcmUgY29ycmVjdDogMi42IGtlcm5lbHMgc2ltcGx5IGRvIG5vdCBwcm92aWRlIGVub3VnaAppbmZvcm1hdGlvbiBmb3IgT1Byb2ZpbGUgdG8gZ2V0IHRoaXMgaW5mb3JtYXRpb24uCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iMy6gSW50ZXJwcmV0aW5nIGNhbGwtZ3JhcGggcHJvZmlsZXMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0iaW50ZXJwcmV0aW5nLWNhbGxncmFwaCI+PC9hPjMuoEludGVycHJldGluZyBjYWxsLWdyYXBoIHByb2ZpbGVzPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpTb21ldGltZXMgdGhlIHJlc3VsdHMgZnJvbSBjYWxsLWdyYXBoIHByb2ZpbGVzIG1heSBiZSBkaWZmZXJlbnQgdG8gd2hhdAp5b3UgZXhwZWN0IHRvIHNlZS4gVGhlIGZpcnN0IHRoaW5nIHRvIGNoZWNrIGlzIHdoZXRoZXIgdGhlIHRhcmdldApiaW5hcmllcyB3aGVyZSBjb21waWxlZCB3aXRoIGZyYW1lIHBvaW50ZXJzIGVuYWJsZWQgKGlmIHRoZSBiaW5hcnkgd2FzCmNvbXBpbGVkIHVzaW5nIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPmdjYzwvc3Ryb25nPjwvc3Bhbj4ncwo8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZm9taXQtZnJhbWUtcG9pbnRlcjwvY29kZT4gb3B0aW9uLCB5b3Ugd2lsbCBub3QgZ2V0Cm1lYW5pbmdmdWwgcmVzdWx0cykuIE5vdGUgdGhhdCBhcyBvZiB0aGlzIHdyaXRpbmcsIHRoZSBHQ0MgZGV2ZWxvcGVycwpwbGFuIHRvIGRpc2FibGUgZnJhbWUgcG9pbnRlcnMgYnkgZGVmYXVsdC4gVGhlIExpbnV4IGtlcm5lbCBpcyBidWlsdAp3aXRob3V0IGZyYW1lIHBvaW50ZXJzIGJ5IGRlZmF1bHQ7IHRoZXJlIGlzIGEgY29uZmlndXJhdGlvbiBvcHRpb24geW91CmNhbiB1c2UgdG8gdHVybiBpdCBvbiB1bmRlciB0aGUgIktlcm5lbCBIYWNraW5nIiBtZW51Lgo8L3A+CiAgICAgICAgICA8cD4KT2Z0ZW4geW91IG1heSBzZWUgYSBjYWxsZXIgb2YgYSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IGFjdHVhbGx5IGRpcmVjdGx5CmNhbGwgdGhlIGZ1bmN0aW9uIHlvdSdyZSBsb29raW5nIGF0IChlLmcuIGlmIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+YSgpPC9jb2RlPgpjYWxscyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmIoKTwvY29kZT4sIHdoaWNoIGluIHR1cm4gY2FsbHMKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5jKCk8L2NvZGU+LCB5b3UgbWF5IHNlZSBhbiBlbnRyeSBmb3IKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5hKCktJmd0O2MoKTwvY29kZT4pLiAgV2hhdCdzIGFjdHVhbGx5IG9jY3VycmluZyBpcyB0aGF0IHdlCmFyZSB0YWtpbmcgc2FtcGxlcyBhdCB0aGUgdmVyeSBzdGFydCAob3IgdGhlIHZlcnkgZW5kKSBvZgo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmMoKTwvY29kZT47IGF0IHRoZXNlIGZldyBpbnN0cnVjdGlvbnMsIHdlIGhhdmVuJ3QgeWV0CmNyZWF0ZWQgdGhlIG5ldyBmdW5jdGlvbidzIGZyYW1lLCBzbyBpdCBhcHBlYXJzIGFzIGlmCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+YSgpPC9jb2RlPiBpcyBjYWxsaW5nIGRpcmVjdGx5IGludG8KPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5jKCk8L2NvZGU+LiBCZSBjYXJlZnVsIG5vdCB0byBiZSBtaXNsZWQgYnkgdGhlc2UKZW50cmllcy4KPC9wPgogICAgICAgICAgPHA+Ckxpa2UgdGhlIHJlc3Qgb2YgT1Byb2ZpbGUsIGNhbGwtZ3JhcGggcHJvZmlsaW5nIHVzZXMgYSBzdGF0aXN0aWNhbAphcHByb2FjaDsgdGhpcyBtZWFucyB0aGF0IHNvbWV0aW1lcyBhIGJhY2t0cmFjZSBzYW1wbGUgaXMgdHJ1bmNhdGVkLCBvcgpldmVuIHBhcnRpYWxseSB3cm9uZy4gQmVhciB0aGlzIGluIG1pbmQgd2hlbiBleGFtaW5pbmcgcmVzdWx0cy4KPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iNC6gSW5hY2N1cmFjaWVzIGluIGFubm90YXRlZCBzb3VyY2UiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0iZGVidWctaW5mbyI+PC9hPjQuoEluYWNjdXJhY2llcyBpbiBhbm5vdGF0ZWQgc291cmNlPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNC4xLqBTaWRlIGVmZmVjdHMgb2Ygb3B0aW1pemF0aW9ucyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJlZmZlY3Qtb2Ytb3B0aW1pemF0aW9ucyI+PC9hPjQuMS6gU2lkZSBlZmZlY3RzIG9mIG9wdGltaXphdGlvbnM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KVGhlIGNvbXBpbGVyIGNhbiBpbnRyb2R1Y2Ugc29tZSBwaXRmYWxscyBpbiB0aGUgYW5ub3RhdGVkIHNvdXJjZSBvdXRwdXQuClRoZSBvcHRpbWl6ZXIgY2FuIG1vdmUgcGllY2VzIG9mIGNvZGUgaW4gc3VjaCBtYW5uZXIgdGhhdCB0d28gbGluZSBvZiBjb2RlcwphcmUgaW50ZXJsYWNlZCAoaW5zdHJ1Y3Rpb24gc2NoZWR1bGluZykuIEFsc28gZGVidWcgaW5mbyBnZW5lcmF0ZWQgYnkgdGhlIGNvbXBpbGVyIApjYW4gc2hvdyBzdHJhbmdlIGJlaGF2aW9yLiBUaGlzIGlzIGVzcGVjaWFsbHkgdHJ1ZSBmb3IgY29tcGxleCBleHByZXNzaW9ucyBlLmcuIGluc2lkZQphbiBpZiBzdGF0ZW1lbnQ6CjwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CglpZiAoYSAmYW1wOyZhbXA7IC4uCgkgICAgYiAmYW1wOyZhbXA7IC4uCgkgICAgYyAmYW1wOyZhbXA7KQo8L3ByZT4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPHA+CmhlcmUgdGhlIHByb2JsZW0gY29tZSBmcm9tIHRoZSBwb3NpdGlvbiBvZiBsaW5lIG51bWJlci4gVGhlIGF2YWlsYWJsZSBkZWJ1ZwppbmZvIGRvZXMgbm90IGdpdmUgZW5vdWdoIGRldGFpbHMgZm9yIHRoZSBpZiBjb25kaXRpb24sIHNvIGFsbCBzYW1wbGVzIGFyZQphY2N1bXVsYXRlZCBhdCB0aGUgcG9zaXRpb24gb2YgdGhlIHJpZ2h0IGJyYWNlIG9mIHRoZSBleHByZXNzaW9uLiBVc2luZwo8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcGFubm90YXRlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1hPC9jb2RlPjwvc3Ryb25nPjwvc3Bhbj4gY2FuIGhlbHAgdG8gc2hvdyB0aGUgcmVhbApzYW1wbGVzIGF0IGFuIGFzc2VtYmx5IGxldmVsLgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNC4yLqBQcm9sb2d1ZXMgYW5kIGVwaWxvZ3VlcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJwcm9sb2d1ZXMiPjwvYT40LjIuoFByb2xvZ3VlcyBhbmQgZXBpbG9ndWVzPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+ClRoZSBjb21waWxlciBnZW5lcmFsbHkgbmVlZHMgdG8gZ2VuZXJhdGUgImdsdWUiIGNvZGUgYWNyb3NzIGZ1bmN0aW9uIGNhbGxzLCBkZXBlbmRlbnQKb24gdGhlIHBhcnRpY3VsYXIgZnVuY3Rpb24gY2FsbCBjb252ZW50aW9ucyB1c2VkLiBBZGRpdGlvbmFsbHkgb3RoZXIgdGhpbmdzCm5lZWQgdG8gaGFwcGVuLCBsaWtlIHN0YWNrIHBvaW50ZXIgYWRqdXN0bWVudCBmb3IgdGhlIGxvY2FsIHZhcmlhYmxlczsgdGhpcwpjb2RlIGlzIGtub3duIGFzIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZS4gU2ltaWxhciBjb2RlIGlzIG5lZWRlZCBhdCBmdW5jdGlvbiByZXR1cm4sCmFuZCBpcyBrbm93biBhcyB0aGUgZnVuY3Rpb24gZXBpbG9ndWUuIFRoaXMgd2lsbCBzaG93IHVwIGluIGFubm90YXRpb25zIGFzCnNhbXBsZXMgYXQgdGhlIHZlcnkgc3RhcnQgYW5kIGVuZCBvZiBhIGZ1bmN0aW9uLCB3aGVyZSB0aGVyZSBpcyBubyBhcHBhcmVudApleGVjdXRhYmxlIGNvZGUgaW4gdGhlIHNvdXJjZS4KPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgdGl0bGU9IjQuMy6gSW5saW5lZCBmdW5jdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0iaW5saW5lZC1mdW5jdGlvbiI+PC9hPjQuMy6gSW5saW5lZCBmdW5jdGlvbnM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KWW91IG1heSBzZWUgdGhhdCBhIGZ1bmN0aW9uIGlzIGNyZWRpdGVkIHdpdGggYSBjZXJ0YWluIG51bWJlciBvZiBzYW1wbGVzLCBidXQKdGhlIGxpc3RpbmcgZG9lcyBub3QgYWRkIHVwIHRvIHRoZSBjb3JyZWN0IHRvdGFsLiBUbyBwaWNrIGEgcmVhbCBleGFtcGxlIDoKPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KICAgICAgICAgICAgICAgOmludGVybmFsX3NrX2J1ZmZfYWxsb2Nfc2VjdXJpdHkoc3RydWN0IHNrX2J1ZmYgKnNrYikKIDM1MyAyLjM0MiUgICAgOnsgLyogaW50ZXJuYWxfc2tfYnVmZl9hbGxvY19zZWN1cml0eSB0b3RhbDogMTg4MiAxMi40OCUgKi8KICAgICAgICAgICAgICAgOgogICAgICAgICAgICAgICA6ICAgICAgICBza19idWZmX3NlY3VyaXR5X3QgKnNrc2VjOwogIDE1IDAuMDk5NSUgICA6ICAgICAgICBpbnQgcmMgPSAwOwogICAgICAgICAgICAgICA6CiAgMTAgMC4wNjYzMyUgIDogICAgICAgIHNrc2VjID0gc2tiLSZndDtsc21fc2VjdXJpdHk7CiA0NjggMy4xMDQlICAgIDogICAgICAgIGlmIChza3NlYyAmYW1wOyZhbXA7IHNrc2VjLSZndDttYWdpYyA9PSBEU0lfTUFHSUMpIHsKICAgICAgICAgICAgICAgOiAgICAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgICAgICAgOiAgICAgICAgfQogICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgIDogICAgICAgIHNrc2VjID0gKHNrX2J1ZmZfc2VjdXJpdHlfdCAqKSBnZXRfc2tfYnVmZl9tZW1vcnkoc2tiKTsKICAgMyAwLjAxOTklICAgOiAgICAgICAgaWYgKCFza3NlYykgewogIDM4IDAuMjUyMSUgICA6ICAgICAgICAgICAgICAgIHJjID0gLUVOT01FTTsKICAgICAgICAgICAgICAgOiAgICAgICAgICAgICAgICBnb3RvIG91dDsKICAxMCAwLjA2NjMzJSAgOiAgICAgICAgfQogICAgICAgICAgICAgICA6ICAgICAgICBtZW1zZXQoc2tzZWMsIDAsIHNpemVvZiAoc2tfYnVmZl9zZWN1cml0eV90KSk7CiAgNDQgMC4yOTE5JSAgIDogICAgICAgIHNrc2VjLSZndDttYWdpYyA9IERTSV9NQUdJQzsKICAzMiAwLjIxMjMlICAgOiAgICAgICAgc2tzZWMtJmd0O3NrYiA9IHNrYjsKICA0NSAwLjI5ODUlICAgOiAgICAgICAgc2tzZWMtJmd0O3NpZCA9IERTSV9TSURfTk9STUFMOwogIDMxIDAuMjA1NiUgICA6ICAgICAgICBza2ItJmd0O2xzbV9zZWN1cml0eSA9IHNrc2VjOwogICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgIDogICAgICBvdXQ6CiAgICAgICAgICAgICAgIDoKIDE0NiAwLjk2ODUlICAgOiAgICAgICAgcmV0dXJuIHJjOwogICAgICAgICAgICAgICA6CiAgOTggMC42NTAxJSAgIDp9CjwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8cD4KSGVyZSwgdGhlIGZ1bmN0aW9uIGlzIGNyZWRpdGVkIHdpdGggMSw4ODIgc2FtcGxlcywgYnV0IHRoZSBhbm5vdGF0aW9ucwpiZWxvdyBkbyBub3QgYWNjb3VudCBmb3IgdGhpcy4gVGhpcyBpcyB1c3VhbGx5IGJlY2F1c2Ugb2YgaW5saW5lIGZ1bmN0aW9ucyAtCnRoZSBjb21waWxlciBtYXJrcyBzdWNoIGNvZGUgd2l0aCBkZWJ1ZyBlbnRyaWVzIGZvciB0aGUgaW5saW5lIGZ1bmN0aW9uCmRlZmluaXRpb24sIGFuZCB0aGlzIGlzIHdoZXJlIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wYW5ub3RhdGU8L3N0cm9uZz48L3NwYW4+IGFubm90YXRlcwpzdWNoIHNhbXBsZXMuIEluIHRoZSBjYXNlIGFib3ZlLCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbXNldDwvY29kZT4gaXMgdGhlIG1vc3QKbGlrZWx5IGNhbmRpZGF0ZSBmb3IgdGhpcyBwcm9ibGVtLiBFeGFtaW5pbmcgdGhlIG1peGVkIHNvdXJjZS9hc3NlbWJseQpvdXRwdXQgY2FuIGhlbHAgaWRlbnRpZnkgc3VjaCByZXN1bHRzLgo8L3A+CiAgICAgICAgICAgIDxwPgpUaGlzIHByb2JsZW0gaXMgbW9yZSB2aXNpYmxlIHdoZW4gdGhlcmUgaXMgbm8gc291cmNlIGZpbGUgYXZhaWxhYmxlLCBpbiB0aGUKZm9sbG93aW5nIGV4YW1wbGUgaXQncyB0cml2aWFsbHkgdmlzaWJsZSB0aGUgc3VtcyBvZiBzeW1ib2xzIHNhbXBsZXMgaXMgbGVzcwp0aGFuIHRoZSBudW1iZXIgb2YgdGhlIHNhbXBsZXMgZm9yIHRoaXMgZmlsZS4gVGhlIGRpZmZlcmVuY2UgbXVzdCBiZSBhY2NvdW50ZWQKdG8gaW5saW5lIGZ1bmN0aW9ucy4KPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KLyoKICogVG90YWwgc2FtcGxlcyBmb3IgZmlsZSA6ICJhcmNoL2kzODYva2VybmVsL3Byb2Nlc3MuYyIKICoKICogICAgMTA5ICAyLjQ2MTYKICovCgogLyogZGVmYXVsdF9pZGxlIHRvdGFsOiAgICAgODQgIDEuODk3MCAqLwogLyogY3B1X2lkbGUgdG90YWw6ICAgICAgICAgMjEgIDAuNDc0MyAqLwogLyogZmx1c2hfdGhyZWFkIHRvdGFsOiAgICAgIDEgIDAuMDIyNiAqLwogLyogcHJlcGFyZV90b19jb3B5IHRvdGFsOiAgIDEgIDAuMDIyNiAqLwogLyogX19zd2l0Y2hfdG8gdG90YWw6ICAgICAgMTggIDAuNDA2NSAqLwo8L3ByZT4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPHA+ClRoZSBtaXNzaW5nIHNhbXBsZXMgYXJlIG5vdCBsb3N0LCB0aGV5IHdpbGwgYmUgY3JlZGl0ZWQgdG8gYW5vdGhlciBzb3VyY2UKbG9jYXRpb24gd2hlcmUgdGhlIGlubGluZWQgZnVuY3Rpb24gaXMgZGVmaW5lZC4gVGhlIGlubGluZWQgZnVuY3Rpb24gd2lsbCBiZQpjcmVkaXRlZCBmcm9tIG11bHRpcGxlIGNhbGwgc2l0ZSBhbmQgbWVyZ2VkIGluIG9uZSBwbGFjZSBpbiB0aGUgYW5ub3RhdGVkCnNvdXJjZSBmaWxlIHNvIHRoZXJlIGlzIG5vIHdheSB0byBzZWUgZnJvbSB3aGF0IGNhbGwgc2l0ZSBhcmUgY29taW5nIHRoZQpzYW1wbGVzIGZvciBhbiBpbmxpbmVkIGZ1bmN0aW9uLgo8L3A+CiAgICAgICAgICAgIDxwPgpXaGVuIHJ1bm5pbmcgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bhbm5vdGF0ZTwvc3Ryb25nPjwvc3Bhbj4sIHlvdSBtYXkgZ2V0IGEgd2FybmluZwoic29tZSBmdW5jdGlvbnMgY29tcGlsZWQgd2l0aG91dCBkZWJ1ZyBpbmZvcm1hdGlvbiBtYXkgaGF2ZSBpbmNvcnJlY3Qgc291cmNlIGxpbmUgYXR0cmlidXRpb25zIi4KSW4gc29tZSByYXJlIGNhc2VzLCBPUHJvZmlsZSBpcyBub3QgYWJsZSB0byB2ZXJpZnkgdGhhdCB0aGUgZGVyaXZlZCBzb3VyY2UgbGluZQppcyBjb3JyZWN0ICh3aGVuIHNvbWUgcGFydHMgb2YgdGhlIGJpbmFyeSBpbWFnZSBhcmUgY29tcGlsZWQgd2l0aG91dCBkZWJ1Z2dpbmcKaW5mb3JtYXRpb24pLiBCZSB3YXJ5IG9mIHJlc3VsdHMgaWYgdGhpcyB3YXJuaW5nIGFwcGVhcnMuCjwvcD4KICAgICAgICAgICAgPHA+CkZ1cnRoZXJtb3JlLCBmb3Igc29tZSBsYW5ndWFnZXMgdGhlIGNvbXBpbGVyIGNhbiBpbXBsaWNpdGx5IGdlbmVyYXRlIGZ1bmN0aW9ucywKc3VjaCBhcyBkZWZhdWx0IGNvcHkgY29uc3RydWN0b3JzLiBTdWNoIGZ1bmN0aW9ucyBhcmUgbGFiZWxsZWQgYnkgdGhlIGNvbXBpbGVyCmFzIGhhdmluZyBhIGxpbmUgbnVtYmVyIG9mIDAsIHdoaWNoIG1lYW5zIHRoZSBzb3VyY2UgYW5ub3RhdGlvbiBjYW4gYmUgY29uZnVzaW5nLgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiB0aXRsZT0iNC40LqBJbmFjY3VyYWN5IGluIGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9Indyb25nLWxpbmVuci1pbmZvIj48L2E+NC40LqBJbmFjY3VyYWN5IGluIGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+CkRlcGVuZGluZyBvbiB5b3VyIGNvbXBpbGVyIHlvdSBjYW4gZmFsbCBpbnRvIHRoZSBmb2xsb3dpbmcgcHJvYmxlbToKPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4Kc3RydWN0IGJpZ19vYmplY3QgeyBpbnQgYVs1MDBdOyB9OwoKaW50IG1haW4oKQp7CgliaWdfb2JqZWN0IGEsIGI7Cglmb3IgKGludCBpID0gMCA7IGkgIT0gMTAwMCAqIDEwMDA7ICsraSkKCQliID0gYTsKCXJldHVybiAwOwp9Cgo8L3ByZT4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPHA+CkNvbXBpbGVkIHdpdGggPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Z2NjPC9zdHJvbmc+PC9zcGFuPiAzLjAuNCB0aGUgYW5ub3RhdGVkIHNvdXJjZSBpcyBjbGVhcmx5IGluYWNjdXJhdGU6CjwvcD4KICAgICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CiAgICAgICAgICAgICAgIDppbnQgbWFpbigpCiAgICAgICAgICAgICAgIDp7ICAvKiBtYWluIHRvdGFsOiA3ODcxIDEwMCUgKi8KICAgICAgICAgICAgICAgOiAgICAgICAgYmlnX29iamVjdCBhLCBiOwogICAgICAgICAgICAgICA6ICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgIT0gMTAwMCAqIDEwMDA7ICsraSkKICAgICAgICAgICAgICAgOiAgICAgICAgICAgICAgICBiID0gYTsKIDc4NzEgMTAwJSAgICAgOiAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICAgIDp9CjwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8cD4KVGhlIHByb2JsZW0gaGVyZSBpcyBkaXN0aW5jdCBmcm9tIHRoZSBJUlEgbGF0ZW5jeSBwcm9ibGVtOyB0aGUgZGVidWcgbGluZSBudW1iZXIKaW5mb3JtYXRpb24gaXMgbm90IHByZWNpc2UgZW5vdWdoOyBhZ2FpbiwgbG9va2luZyBhdCBvdXRwdXQgb2YgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+b3Bhbm5vYXRhdGUgLWFzPC9zdHJvbmc+PC9zcGFuPiBjYW4gaGVscC4KPC9wPgogICAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KICAgICAgICAgICAgICAgOmludCBtYWluKCkKICAgICAgICAgICAgICAgOnsKICAgICAgICAgICAgICAgOiAgICAgICAgYmlnX29iamVjdCBhLCBiOwogICAgICAgICAgICAgICA6ICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgIT0gMTAwMCAqIDEwMDA7ICsraSkKICAgICAgICAgICAgICAgOiA4MDQ4NGMwOiAgICAgICBwdXNoICAgJWVicAogICAgICAgICAgICAgICA6IDgwNDg0YzE6ICAgICAgIG1vdiAgICAlZXNwLCVlYnAKICAgICAgICAgICAgICAgOiA4MDQ4NGMzOiAgICAgICBzdWIgICAgJDB4ZmFjLCVlc3AKICAgICAgICAgICAgICAgOiA4MDQ4NGM5OiAgICAgICBwdXNoICAgJWVkaQogICAgICAgICAgICAgICA6IDgwNDg0Y2E6ICAgICAgIHB1c2ggICAlZXNpCiAgICAgICAgICAgICAgIDogODA0ODRjYjogICAgICAgcHVzaCAgICVlYngKICAgICAgICAgICAgICAgOiAgICAgICAgICAgICAgICBiID0gYTsKICAgICAgICAgICAgICAgOiA4MDQ4NGNjOiAgICAgICBsZWEgICAgMHhmZmZmZjA2MCglZWJwKSwlZWR4CiAgICAgICAgICAgICAgIDogODA0ODRkMjogICAgICAgbGVhICAgIDB4ZmZmZmY4MzAoJWVicCksJWVheAogICAgICAgICAgICAgICA6IDgwNDg0ZDg6ICAgICAgIG1vdiAgICAkMHhmNDIzZiwlZWJ4CiAgICAgICAgICAgICAgIDogODA0ODRkZDogICAgICAgbGVhICAgIDB4MCglZXNpKSwlZXNpCiAgICAgICAgICAgICAgIDogICAgICAgIHJldHVybiAwOwogICAgMyAwLjAzODExJSA6IDgwNDg0ZTA6ICAgICAgIG1vdiAgICAlZWR4LCVlZGkKICAgICAgICAgICAgICAgOiA4MDQ4NGUyOiAgICAgICBtb3YgICAgJWVheCwlZXNpCiAgICAxIDAuMDEyNyUgIDogODA0ODRlNDogICAgICAgY2xkCiAgICA4IDAuMTAxNiUgIDogODA0ODRlNTogICAgICAgbW92ICAgICQweDFmNCwlZWN4CiA3ODUwIDk5LjczJSAgIDogODA0ODRlYTogICAgICAgcmVweiBtb3ZzbCAlZHM6KCVlc2kpLCVlczooJWVkaSkKICAgIDkgMC4xMTQzJSAgOiA4MDQ4NGVjOiAgICAgICBkZWMgICAgJWVieAogICAgICAgICAgICAgICA6IDgwNDg0ZWQ6ICAgICAgIGpucyAgICA4MDQ4NGUwCiAgICAgICAgICAgICAgIDogODA0ODRlZjogICAgICAgeG9yICAgICVlYXgsJWVheAogICAgICAgICAgICAgICA6IDgwNDg0ZjE6ICAgICAgIHBvcCAgICAlZWJ4CiAgICAgICAgICAgICAgIDogODA0ODRmMjogICAgICAgcG9wICAgICVlc2kKICAgICAgICAgICAgICAgOiA4MDQ4NGYzOiAgICAgICBwb3AgICAgJWVkaQogICAgICAgICAgICAgICA6IDgwNDg0ZjQ6ICAgICAgIGxlYXZlCiAgICAgICAgICAgICAgIDogODA0ODRmNTogICAgICAgcmV0CjwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8cD4KU28gaGVyZSBpdCdzIGNsZWFyIHRoYXQgY29weWluZyBpcyBjb3JyZWN0bHkgY3JlZGl0ZWQgd2l0aCBvZiBhbGwgdGhlIHNhbXBsZXMsIGJ1dCB0aGUKbGluZSBudW1iZXIgaW5mb3JtYXRpb24gaXMgbWlzcGxhY2VkLiA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vYmpkdW1wIC1kUzwvc3Ryb25nPjwvc3Bhbj4gZXhwb3NlcyB0aGUKc2FtZSBwcm9ibGVtLiBOb3RlIHRoYXQgbWFpbnRhaW5pbmcgYWNjdXJhdGUgZGVidWcgaW5mb3JtYXRpb24gZm9yIGNvbXBpbGVycyB3aGVuIG9wdGltaXppbmcgaXMgZGlmZmljdWx0LCBzbyB0aGlzIHByb2JsZW0gaXMgbm90IHN1cHJpc2luZy4KVGhlIHByb2JsZW0gb2YgZGVidWcgaW5mb3JtYXRpb24KYWNjdXJhY3kgaXMgYWxzbyBkZXBlbmRlbnQgb24gdGhlIGJpbnV0aWxzIHZlcnNpb24gdXNlZDsgc29tZSBCRkQgbGlicmFyeSB2ZXJzaW9ucwpjb250YWluIGEgd29yay1hcm91bmQgZm9yIGtub3duIHByb2JsZW1zIG9mIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPmdjYzwvc3Ryb25nPjwvc3Bhbj4sIHNvbWUgb3RoZXJzIGRvIG5vdC4gVGhpcyBpcyB1bmZvcnR1bmF0ZSBidXQgd2UgbXVzdCBsaXZlIHdpdGggdGhhdCwKc2luY2UgcHJvZmlsaW5nIGlzIHBvaW50bGVzcyB3aGVuIHlvdSBkaXNhYmxlIG9wdGltaXNhdGlvbiAod2hpY2ggd291bGQgZ2l2ZSBiZXR0ZXIgZGVidWdnaW5nIGVudHJpZXMpLgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjUuoEFzc2VtYmx5IGZ1bmN0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJzeW1ib2wtd2l0aG91dC1kZWJ1Zy1pbmZvIj48L2E+NS6gQXNzZW1ibHkgZnVuY3Rpb25zPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpPZnRlbiB0aGUgYXNzZW1ibGVyIGNhbm5vdCBnZW5lcmF0ZSBkZWJ1ZyBpbmZvcm1hdGlvbiBhdXRvbWF0aWNhbGx5LgpUaGlzIG1lYW5zIHRoYXQgeW91IGNhbm5vdCBnZXQgYSBzb3VyY2UgcmVwb3J0IHVubGVzcyAKeW91IG1hbnVhbGx5IGRlZmluZSB0aGUgbmVjY2Vzc2FyeSBkZWJ1ZyBpbmZvcm1hdGlvbjsgcmVhZCB5b3VyIGFzc2VtYmxlciBkb2N1bWVudGF0aW9uIGZvciBob3cgeW91IG1pZ2h0CmRvIHRoYXQuIFRoZSBvbmx5CmRlYnVnZ2luZyBpbmZvIG5lZWRlZCBjdXJyZW50bHkgYnkgT1Byb2ZpbGUgaXMgdGhlIGxpbmUtbnVtYmVyL2ZpbGVuYW1lLVZNQSBhc3NvY2lhdGlvbi4gV2hlbiBwcm9maWxpbmcgYXNzZW1ibHkKd2l0aG91dCBkZWJ1Z2dpbmcgaW5mbyB5b3UgY2FuIGFsd2F5cyBnZXQgcmVwb3J0IGZvciBzeW1ib2xzLCBhbmQgb3B0aW9uYWxseSBmb3IgVk1BLCB0aHJvdWdoIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm9wcmVwb3J0IC1sPC9zdHJvbmc+PC9zcGFuPgpvciA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5vcHJlcG9ydCAtZDwvc3Ryb25nPjwvc3Bhbj4sIGJ1dCB0aGlzIHdvcmtzIG9ubHkgZm9yIHN5bWJvbHMgd2l0aCB0aGUgcmlnaHQgYXR0cmlidXRlcy4KRm9yIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPmdhczwvc3Ryb25nPjwvc3Bhbj4geW91IGNhbiBnZXQgdGhpcyBieQo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KLmdsb2JsIGZvbwoJLnR5cGUJZm9vLEBmdW5jdGlvbgo8L3ByZT4KICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDxwPiAKd2hpbHN0IGZvciA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5uYXNtPC9zdHJvbmc+PC9zcGFuPiB5b3UgbXVzdCB1c2UKPC9wPgogICAgICAgICAgPHRhYmxlIHhtbG5zPSIiIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQ6ICNFMEUwRTA7IiB3aWR0aD0iOTAlIj4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNjcmVlbiI+CgkgIEdMT0JBTCBmb286ZnVuY3Rpb24JCTsgWzFdCjwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHA+Ck5vdGUgdGhhdCBPUHJvZmlsZSBkb2VzIG5vdCBuZWVkIHRoZSBnbG9iYWwgYXR0cmlidXRlLCBvbmx5IHRoZSBmdW5jdGlvbiBhdHRyaWJ1dGUuCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgdGl0bGU9IjYuoE92ZXJsYXBwaW5nIHN5bWJvbHMgaW4gSklUZWQgY29kZSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJvdmVybGFwcGluZy1zeW1ib2xzIj48L2E+Ni6gT3ZlcmxhcHBpbmcgc3ltYm9scyBpbiBKSVRlZCBjb2RlPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgoJU29tZSB2aXJ0dWFsIG1hY2hpbmVzIChlLmcuLCBKYXZhKSBtYXkgcmUtSklUIGEgbWV0aG9kLCByZXN1bHRpbmcgaW4gcHJldmlvdXNseQoJYWxsb2NhdGVkIHNwYWNlIGZvciBhIHBpZWNlIG9mIGNvbXBpbGVkIGNvZGUgdG8gYmUgcmV1c2VkLiBUaGlzIG1lYW5zIHRoYXQsIGF0IG9uZSBkaXN0aW5jdAoJY29kZSBhZGRyZXNzLCBtdWx0aXBsZSBzeW1ib2xzL21ldGhvZHMgbWF5IGJlIHByZXNlbnQgZHVyaW5nIHRoZSBydW4gdGltZSBvZiB0aGUgYXBwbGljYXRpb24uCgk8L3A+CiAgICAgICAgICA8cD4KCVNpbmNlIE9Qcm9maWxlIHNhbXBsZXMgYXJlIGJ1ZmZlcmVkIGFuZCBkb24mIzgyNDI7dCBoYXZlIHRpbWluZyBpbmZvcm1hdGlvbiwgdGhlcmUgaXMgbm8gd2F5Cgl0byBjb3JyZWxhdGUgc2FtcGxlcyB3aXRoIHRoZSAocG9zc2libHkpIHZhcnlpbmcgYWRkcmVzcyByYW5nZXMgaW4gd2hpY2ggdGhlIGNvZGUgZm9yIGEgc3ltYm9sCgltYXkgcmVzaWRlLgoJQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgZmx1c2hpbmcgdGhlIE9Qcm9maWxlIHNhbXBsaW5nIGJ1ZmZlciB3aGVuIHdlIGdldCBhbiB1bmxvYWQgZXZlbnQsCglidXQgdGhpcyBjb3VsZCByZXN1bHQgaW4gaGlnaCBvdmVyaGVhZC4KCTwvcD4KICAgICAgICAgIDxwPgoJVG8gbW9kZXJhdGUgdGhlIHByb2JsZW0gb2Ygb3ZlcmxhcHBpbmcgc3ltYm9scywgT1Byb2ZpbGUgdHJpZXMgdG8gc2VsZWN0IHRoZSBzeW1ib2wgdGhhdCB3YXMKCXByZXNlbnQgYXQgdGhpcyBhZGRyZXNzIHJhbmdlIG1vc3Qgb2YgdGhlIHRpbWUuIEFkZGl0aW9uYWxseSwgb3RoZXIgb3ZlcmxhcHBpbmcgc3ltYm9scwoJYXJlIHRydW5jYXRlZCBpbiB0aGUgb3ZlcmxhcHBpbmcgYXJlYS4KCVRoaXMgZ2l2ZXMgcmVhc29uYWJsZSByZXN1bHRzLCBiZWNhdXNlIGluIHJlYWxpdHksIGFkZHJlc3MgcmV1c2UgdHlwaWNhbGx5IHRha2VzIHBsYWNlCglkdXJpbmcgcGhhc2UgY2hhbmdlcyBvZiB0aGUgYXBwbGljYXRpb24gLS0gaW4gcGFydGljdWxhciwgZHVyaW5nIGFwcGxpY2F0aW9uICBzdGFydHVwLgoJVGh1cywgZm9yIG9wdGltdW0gcHJvZmlsaW5nIHJlc3VsdHMsIHN0YXJ0IHRoZSBzYW1wbGluZyBzZXNzaW9uIGFmdGVyIGFwcGxpY2F0aW9uIHN0YXJ0dXAKCWFuZCBidXJuIGluLgoJPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiB0aXRsZT0iNy6gT3RoZXIgZGlzY3JlcGFuY2llcyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJoaWRkZW4tY29zdCI+PC9hPjcuoE90aGVyIGRpc2NyZXBhbmNpZXM8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CkFub3RoZXIgY2F1c2Ugb2YgYXBwYXJlbnQgcHJvYmxlbXMgaXMgdGhlIGhpZGRlbiBjb3N0IG9mIGluc3RydWN0aW9ucy4gQSB2ZXJ5CmNvbW1vbiBleGFtcGxlIGlzIHR3byBtZW1vcnkgcmVhZHM6IG9uZSBmcm9tIEwxIGNhY2hlIGFuZCB0aGUgb3RoZXIgZnJvbSBtZW1vcnk6CnRoZSBzZWNvbmQgbWVtb3J5IHJlYWQgaXMgbGlrZWx5IHRvIGhhdmUgbW9yZSBzYW1wbGVzLgpUaGVyZSBhcmUgbWFueSBvdGhlciBjYXVzZXMgb2YgaGlkZGVuIGNvc3Qgb2YgaW5zdHJ1Y3Rpb25zLiBBIG5vbi1leGhhdXN0aXZlCmxpc3Q6IG1pcy1wcmVkaWN0ZWQgYnJhbmNoLCBUTEIgY2FjaGUgbWlzcywgcGFydGlhbCByZWdpc3RlciBzdGFsbCwKcGFydGlhbCByZWdpc3RlciBkZXBlbmRlbmNpZXMsIG1lbW9yeSBtaXNtYXRjaCBzdGFsbCwgcmUtZXhlY3V0ZWQgtW9wcy4gSWYgeW91IHdhbnQgdG8gd3JpdGUKcHJvZ3JhbXMgYXQgdGhlIGFzc2VtYmx5IGxldmVsLCBiZSBzdXJlIHRvIHRha2UgYSBsb29rIGF0IHRoZSBJbnRlbCBhbmQKQU1EIGRvY3VtZW50YXRpb24gYXQgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS8iPmh0dHA6Ly9kZXZlbG9wZXIuaW50ZWwuY29tLzwvYT4KYW5kIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2RldmVsb3Blci5hbWQuY29tL2Rldmd1aWRlcy5qc3AvIj5odHRwOi8vZGV2ZWxvcGVyLmFtZC5jb20vZGV2Z3VpZGVzLmpzcDwvYT4uCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXB0ZXIiIHRpdGxlPSJDaGFwdGVyoDYuoEFja25vd2xlZGdtZW50cyI+CiAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImFjayI+PC9hPkNoYXB0ZXKgNi6gQWNrbm93bGVkZ21lbnRzPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cD4KVGhhbmtzIHRvIChpbiBubyBwYXJ0aWN1bGFyIG9yZGVyKSA6IEFyamFuIHZhbiBkZSBWZW4sIFJpayB2YW4gUmllbCwgSnVhbiBRdWludGVsYSwgUGhpbGlwcGUgRWxpZSwKUGhpbGxpcHAgUnVtcGYsIFRpZ3JhbiBBaXZhemlhbiwgQWxleCBCcm93biwgQWxpc2RhaXIgUmF3c3Rob3JuZSwgQm9iIE1vbnRnb21lcnksIFJheSBCcnlhbnQsIEguSi4gTHUsCkplZmYgRXNwZXIsIFdpbGwgQ29oZW4sIEdyYXlkb24gSG9hcmUsIENsaWZmIFdvb2xsZXksIEFsZXggVHNhcmlvdW5vdiwgQWwgU3RvbmUsIEphc29uIFllaCwKUmFuZG9scGggQ2h1bmcsIEFudG9uIEJsYW5jaGFyZCwgUmljaGFyZCBIZW5kZXJzb24sIEFuZHJpZXMgQnJvdXdlciwgQnJ5YW4gUml0dG1leWVyLApNYXluYXJkIFAuIEpvaG5zb24sClJpY2hhcmQgUmVpY2ggKHJyZWljaEByZHJ0ZWNoLmNvbSksIFp3YW5lIE13YWlrYW1ibywgRGF2ZSBKb25lcywgQ2hhcmxlcyBGaWx0bmVzczsgYW5kIGZpbmFsbHkgUHVscCwgZm9yICJJbnRybyIuCjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2JvZHk+CjwvaHRtbD4K