PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KICA8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+CiAgICA8dGl0bGU+T1Byb2ZpbGUgSW50ZXJuYWxzPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjguMSIgLz4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGNsYXNzPSJib29rIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGgxIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9Im9wcm9maWxlLWludGVybmFscyI+PC9hPk9Qcm9maWxlIEludGVybmFsczwvaDE+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dGhvcmdyb3VwIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdXRob3IiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJhdXRob3IiPjxzcGFuIGNsYXNzPSJmaXJzdG5hbWUiPkpvaG48L3NwYW4+IDxzcGFuIGNsYXNzPSJzdXJuYW1lIj5MZXZvbjwvc3Bhbj48L2gzPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWZmaWxpYXRpb24iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZGRyZXNzIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJlbWFpbCI+Jmx0OzxhIGhyZWY9Im1haWx0bzpsZXZvbkBtb3ZlbWVudGFyaWFuLm9yZyI+bGV2b25AbW92ZW1lbnRhcmlhbi5vcmc8L2E+Jmd0OzwvY29kZT4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgqSAyMDAzIEpvaG4gTGV2b248L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8aHIgLz4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvYyI+CiAgICAgICAgPHA+CiAgICAgICAgICA8Yj5UYWJsZSBvZiBDb250ZW50czwvYj4KICAgICAgICA8L3A+CiAgICAgICAgPGRsPgogICAgICAgICAgPGR0PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hhcHRlciI+CiAgICAgICAgICAgICAgPGEgaHJlZj0iI2ludHJvZHVjdGlvbiI+MS4gSW50cm9kdWN0aW9uPC9hPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2R0PgogICAgICAgICAgPGRkPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI292ZXJ2aWV3Ij4xLiBPdmVydmlldzwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjb21wb25lbnRzIj4yLiBDb21wb25lbnRzIG9mIHRoZSBPUHJvZmlsZSBzeXN0ZW08L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2FyY2gtc3BlY2lmaWMtY29tcG9uZW50cyI+Mi4xLiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29tcG9uZW50czwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2ZpbGVzeXN0ZW0iPjIuMi4gb3Byb2ZpbGVmczwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2RyaXZlciI+Mi4zLiBHZW5lcmljIGtlcm5lbCBkcml2ZXI8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNkYWVtb24iPjIuNC4gVGhlIE9Qcm9maWxlIGRhZW1vbjwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Bvc3QtcHJvZmlsaW5nIj4yLjUuIFBvc3QtcHJvZmlsaW5nIHRvb2xzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGFwdGVyIj4KICAgICAgICAgICAgICA8YSBocmVmPSIjcGVyZm9ybWFuY2UtY291bnRlcnMiPjIuIFBlcmZvcm1hbmNlIGNvdW50ZXIgbWFuYWdlbWVudDwvYT4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kdD4KICAgICAgICAgIDxkZD4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwZXJmb3JtYW5jZS1jb3VudGVycy11aSI+MS4gUHJvdmlkaW5nIGEgdXNlciBpbnRlcmZhY2U8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcGVyZm9ybWFuY2UtY291bnRlcnMtcHJvZ3JhbW1pbmciPjIuIFByb2dyYW1taW5nIHRoZSBwZXJmb3JtYW5jZSBjb3VudGVyIHJlZ2lzdGVyczwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcGVyZm9ybWFuY2UtY291bnRlcnMtc3RhcnQiPjIuMS4gU3RhcnRpbmcgYW5kIHN0b3BwaW5nIHRoZSBjb3VudGVyczwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2lkMjQ5NTAyMSI+Mi4yLiBJQTY0IGFuZCBwZXJmbW9uPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgPC9kbD4KICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGFwdGVyIj4KICAgICAgICAgICAgICA8YSBocmVmPSIjY29sbGVjdGluZy1zYW1wbGVzIj4zLiBDb2xsZWN0aW5nIGFuZCBwcm9jZXNzaW5nIHNhbXBsZXM8L2E+CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZHQ+CiAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcmVjZWl2aW5nLWludGVycnVwdHMiPjEuIFJlY2VpdmluZyBpbnRlcnJ1cHRzPC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2NvcmUtc3RydWN0dXJlIj4yLiBDb3JlIGRhdGEgc3RydWN0dXJlczwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNsb2dnaW5nLXNhbXBsZSI+My4gTG9nZ2luZyBhIHNhbXBsZTwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNsb2dnaW5nLXN0YWNrIj40LiBMb2dnaW5nIHN0YWNrIHRyYWNlczwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzeW5jaHJvbmlzaW5nLWJ1ZmZlcnMiPjUuIFN5bmNocm9uaXNpbmcgdGhlIENQVSBidWZmZXJzIHRvIHRoZSBldmVudCBidWZmZXI8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZGVudHJ5LWNvb2tpZXMiPjYuIElkZW50aWZ5aW5nIGJpbmFyeSBpbWFnZXM8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZmluZGluZy1kZW50cnkiPjcuIEZpbmRpbmcgYSBzYW1wbGUncyBiaW5hcnkgaW1hZ2UgYW5kIG9mZnNldDwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8L2RsPgogICAgICAgICAgPC9kZD4KICAgICAgICAgIDxkdD4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXB0ZXIiPgogICAgICAgICAgICAgIDxhIGhyZWY9IiNzYW1wbGUtZmlsZXMiPjQuIEdlbmVyYXRpbmcgc2FtcGxlIGZpbGVzPC9hPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2R0PgogICAgICAgICAgPGRkPgogICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Byb2Nlc3NpbmctYnVmZmVyIj4xLiBQcm9jZXNzaW5nIHRoZSBidWZmZXI8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2hhbmRsaW5nLWtlcm5lbC1zYW1wbGVzIj4xLjEuIEhhbmRsaW5nIGtlcm5lbCBzYW1wbGVzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjc2FtcGxlLWZpbGUtZ2VuZXJhdGlvbiI+Mi4gTG9jYXRpbmcgYW5kIGNyZWF0aW5nIHNhbXBsZSBmaWxlczwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzYW1wbGUtZmlsZS13cml0aW5nIj4zLiBXcml0aW5nIGRhdGEgdG8gYSBzYW1wbGUgZmlsZTwvYT4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8L2RsPgogICAgICAgICAgPC9kZD4KICAgICAgICAgIDxkdD4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYXB0ZXIiPgogICAgICAgICAgICAgIDxhIGhyZWY9IiNvdXRwdXQiPjUuIEdlbmVyYXRpbmcgdXNlZnVsIG91dHB1dDwvYT4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kdD4KICAgICAgICAgIDxkZD4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwcm9maWxlLXNwZWNpZmljYXRpb24iPjEuIEhhbmRsaW5nIHRoZSBwcm9maWxlIHNwZWNpZmljYXRpb248L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjc2FtcGxlLWZpbGUtY29sbGF0aW5nIj4yLiBDb2xsYXRpbmcgdGhlIGNhbmRpZGF0ZSBzYW1wbGUgZmlsZXM8L2E+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NhbXBsZS1maWxlLWNsYXNzaWZ5aW5nIj4yLjEuIENsYXNzaWZ5aW5nIHNhbXBsZSBmaWxlczwvYT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NhbXBsZS1maWxlLWludmVydGluZyI+Mi4yLiBDcmVhdGluZyBpbnZlcnRlZCBwcm9maWxlIGxpc3RzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZ2VuZXJhdGluZy1wcm9maWxlLWRhdGEiPjMuIEdlbmVyYXRpbmcgcHJvZmlsZSBkYXRhPC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNiZmQiPjMuMS4gUHJvY2Vzc2luZyB0aGUgYmluYXJ5IGltYWdlPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcHJvY2Vzc2luZy1zYW1wbGUtZmlsZXMiPjMuMi4gUHJvY2Vzc2luZyB0aGUgc2FtcGxlIGZpbGVzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZ2VuZXJhdGluZy1vdXRwdXQiPjQuIEdlbmVyYXRpbmcgb3V0cHV0PC9hPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICA8L2RkPgogICAgICAgICAgPGR0PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2xvc3NhcnkiPgogICAgICAgICAgICAgIDxhIGhyZWY9IiNnbG9zc2FyeSI+R2xvc3Nhcnkgb2YgT1Byb2ZpbGUgc291cmNlIGNvbmNlcHRzIGFuZCB0eXBlczwvYT4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kdD4KICAgICAgICA8L2RsPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGlzdC1vZi1maWd1cmVzIj4KICAgICAgICA8cD4KICAgICAgICAgIDxiPkxpc3Qgb2YgRmlndXJlczwvYj4KICAgICAgICA8L3A+CiAgICAgICAgPGRsPgogICAgICAgICAgPGR0PjMuMS4gPGEgaHJlZj0iI2lkMjQ5NTE5MyI+VGhlIE9Qcm9maWxlIGJ1ZmZlcnM8L2E+PC9kdD4KICAgICAgICA8L2RsPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcHRlciIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImludHJvZHVjdGlvbiI+PC9hPkNoYXB0ZXKgMS6gSW50cm9kdWN0aW9uPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2MiPgogICAgICAgICAgPHA+CiAgICAgICAgICAgIDxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPgogICAgICAgICAgPC9wPgogICAgICAgICAgPGRsPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNvdmVydmlldyI+MS4gT3ZlcnZpZXc8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjb21wb25lbnRzIj4yLiBDb21wb25lbnRzIG9mIHRoZSBPUHJvZmlsZSBzeXN0ZW08L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNhcmNoLXNwZWNpZmljLWNvbXBvbmVudHMiPjIuMS4gQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvbXBvbmVudHM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2ZpbGVzeXN0ZW0iPjIuMi4gb3Byb2ZpbGVmczwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZHJpdmVyIj4yLjMuIEdlbmVyaWMga2VybmVsIGRyaXZlcjwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZGFlbW9uIj4yLjQuIFRoZSBPUHJvZmlsZSBkYWVtb248L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Bvc3QtcHJvZmlsaW5nIj4yLjUuIFBvc3QtcHJvZmlsaW5nIHRvb2xzPC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwPgpUaGlzIGRvY3VtZW50IGlzIGN1cnJlbnQgZm9yIE9Qcm9maWxlIHZlcnNpb24gMC45LjFjdnMuClRoaXMgZG9jdW1lbnQgcHJvdmlkZXMgc29tZSBkZXRhaWxzIG9uIHRoZSBpbnRlcm5hbCB3b3JraW5ncyBvZiBPUHJvZmlsZSBmb3IgdGhlCmludGVyZXN0ZWQgaGFja2VyLiBUaGlzIGRvY3VtZW50IGFzc3VtZXMgc3Ryb25nIEMsIHdvcmtpbmcgQysrLCBwbHVzIHNvbWUga25vd2xlZGdlIG9mCmtlcm5lbCBpbnRlcm5hbHMgYW5kIENQVSBoYXJkd2FyZS4KPC9wPgogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47IG1hcmdpbi1yaWdodDogMC41aW47Ij4KICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPk5vdGU8L2gzPgogICAgICAgICAgPHA+Ck9ubHkgdGhlICJuZXciIGltcGxlbWVudGF0aW9uIGFzc29jaWF0ZWQgd2l0aCBrZXJuZWwgMi42IGFuZCBhYm92ZSBpcyBjb3ZlcmVkIGhlcmUuIDIuNAp1c2VzIGEgdmVyeSBkaWZmZXJlbnQga2VybmVsIG1vZHVsZSBpbXBsZW1lbnRhdGlvbiBhbmQgZGFlbW9uIHRvIHByb2R1Y2UgdGhlIHNhbXBsZSBmaWxlcy4KPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9Im92ZXJ2aWV3Ij48L2E+MS6gT3ZlcnZpZXc8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+Ck9Qcm9maWxlIGlzIGEgc3RhdGlzdGljYWwgY29udGludW91cyBwcm9maWxlci4gSW4gb3RoZXIgd29yZHMsIHByb2ZpbGVzIGFyZSBnZW5lcmF0ZWQgYnkKcmVndWxhcmx5IHNhbXBsaW5nIHRoZSBjdXJyZW50IHJlZ2lzdGVycyBvbiBlYWNoIENQVSAoZnJvbSBhbiBpbnRlcnJ1cHQgaGFuZGxlciwgdGhlCnNhdmVkIFBDIHZhbHVlIGF0IHRoZSB0aW1lIG9mIGludGVycnVwdCBpcyBzdG9yZWQpLCBhbmQgY29udmVydGluZyB0aGF0IHJ1bnRpbWUgUEMKdmFsdWUgaW50byBzb21ldGhpbmcgbWVhbmluZ2Z1bCB0byB0aGUgcHJvZ3JhbW1lci4KPC9wPgogICAgICAgICAgPHA+Ck9Qcm9maWxlIGFjaGlldmVzIHRoaXMgYnkgdGFraW5nIHRoZSBzdHJlYW0gb2Ygc2FtcGxlZCBQQyB2YWx1ZXMsIGFsb25nIHdpdGggdGhlIGRldGFpbApvZiB3aGljaCB0YXNrIHdhcyBydW5uaW5nIGF0IHRoZSB0aW1lIG9mIHRoZSBpbnRlcnJ1cHQsIGFuZCBjb252ZXJ0aW5nIGludG8gYSBmaWxlIG9mZnNldAphZ2FpbnN0IGEgcGFydGljdWxhciBiaW5hcnkgZmlsZS4gQmVjYXVzZSBhcHBsaWNhdGlvbnMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tbWFwKCk8L2NvZGU+CnRoZSBjb2RlIHRoZXkgcnVuIChiZSBpdCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9iaW4vYmFzaDwvY29kZT4sIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L2xpYi9saWJmb28uc288L2NvZGU+Cm9yIHdoYXRldmVyKSwgaXQncyBwb3NzaWJsZSB0byBmaW5kIHRoZSByZWxldmFudCBiaW5hcnkgZmlsZSBhbmQgb2Zmc2V0IGJ5IHdhbGtpbmcKdGhlIHRhc2sncyBsaXN0IG9mIG1hcHBlZCBtZW1vcnkgYXJlYXMuIEVhY2ggUEMgdmFsdWUgaXMgdGh1cyBjb252ZXJ0ZWQgaW50byBhIHR1cGxlCm9mIGJpbmFyeS1pbWFnZSxvZmZzZXQuIFRoaXMgaXMgc29tZXRoaW5nIHRoYXQgdGhlIHVzZXJzcGFjZSB0b29scyBjYW4gdXNlIGRpcmVjdGx5CnRvIHJlY29uc3RydWN0IHdoZXJlIHRoZSBjb2RlIGNhbWUgZnJvbSwgaW5jbHVkaW5nIHRoZSBwYXJ0aWN1bGFyIGFzc2VtYmx5IGluc3RydWN0aW9ucywKc3ltYm9sLCBhbmQgc291cmNlIGxpbmUgKHZpYSB0aGUgYmluYXJ5J3MgZGVidWcgaW5mb3JtYXRpb24gaWYgcHJlc2VudCkuCjwvcD4KICAgICAgICAgIDxwPgpSZWd1bGFybHkgc2FtcGxpbmcgdGhlIFBDIHZhbHVlIGxpa2UgdGhpcyBhcHByb3hpbWF0ZXMgd2hhdCBhY3R1YWxseSB3YXMgZXhlY3V0ZWQgYW5kCmhvdyBvZnRlbiAtIG1vcmUgb2Z0ZW4gdGhhbiBub3QsIHRoaXMgc3RhdGlzdGljYWwgYXBwcm94aW1hdGlvbiBpcyBnb29kIGVub3VnaCB0bwpyZWZsZWN0IHJlYWxpdHkuIEluIGNvbW1vbiBvcGVyYXRpb24sIHRoZSB0aW1lIGJldHdlZW4gZWFjaCBzYW1wbGUgaW50ZXJydXB0IGlzIHJlZ3VsYXRlZApieSBhIGZpeGVkIG51bWJlciBvZiBjbG9jayBjeWNsZXMuIFRoaXMgaW1wbGllcyB0aGF0IHRoZSByZXN1bHRzIHdpbGwgcmVmbGVjdCB3aGVyZQp0aGUgQ1BVIGlzIHNwZW5kaW5nIHRoZSBtb3N0IHRpbWU7IHRoaXMgaXMgb2J2aW91c2x5IGEgdmVyeSB1c2VmdWwgaW5mb3JtYXRpb24gc291cmNlCmZvciBwZXJmb3JtYW5jZSBhbmFseXNpcy4KPC9wPgogICAgICAgICAgPHA+ClNvbWV0aW1lcyB0aG91Z2gsIGFuIGFwcGxpY2F0aW9uIHByb2dyYW1tZXIgbmVlZHMgZGlmZmVyZW50IGtpbmRzIG9mIGluZm9ybWF0aW9uOiBmb3IgZXhhbXBsZSwKIndoaWNoIG9mIHRoZSBzb3VyY2Ugcm91dGluZXMgY2F1c2UgdGhlIG1vc3QgY2FjaGUgbWlzc2VzID8iLiBUaGUgcmlzZSBpbiBpbXBvcnRhbmNlIG9mCnN1Y2ggbWV0cmljcyBpbiByZWNlbnQgeWVhcnMgaGFzIGxlZCBtYW55IENQVSBtYW51ZmFjdHVyZXJzIHRvIHByb3ZpZGUgaGFyZHdhcmUgcGVyZm9ybWFuY2UKY291bnRlcnMgY2FwYWJsZSBvZiBtZWFzdXJpbmcgdGhlc2UgZXZlbnRzIG9uIHRoZSBoYXJkd2FyZSBsZXZlbC4gVHlwaWNhbGx5LCB0aGVzZSBjb3VudGVycwppbmNyZW1lbnQgb25jZSBwZXIgZWFjaCBldmVudCwgYW5kIGdlbmVyYXRlIGFuIGludGVycnVwdCBvbiByZWFjaGluZyBzb21lIHByZS1kZWZpbmVkCm51bWJlciBvZiBldmVudHMuIE9Qcm9maWxlIGNhbiB1c2UgdGhlc2UgaW50ZXJydXB0cyB0byBnZW5lcmF0ZSBzYW1wbGVzOiB0aGVuLCB0aGUKcHJvZmlsZSByZXN1bHRzIGFyZSBhIHN0YXRpc3RpY2FsIGFwcHJveGltYXRpb24gb2Ygd2hpY2ggY29kZSBjYXVzZWQgaG93IG1hbnkgb2YgdGhlCmdpdmVuIGV2ZW50Lgo8L3A+CiAgICAgICAgICA8cD4KQ29uc2lkZXIgYSBzaW1wbGlmaWVkIHN5c3RlbSB0aGF0IG9ubHkgZXhlY3V0ZXMgdHdvIGZ1bmN0aW9ucyBBIGFuZCBCLiBBCnRha2VzIG9uZSBjeWNsZSB0byBleGVjdXRlLCB3aGVyZWFzIEIgdGFrZXMgOTkgY3ljbGVzLiBJbWFnaW5lIHdlIHJ1biBhdAoxMDAgY3ljbGVzIGEgc2Vjb25kLCBhbmQgd2UndmUgc2V0IHRoZSBwZXJmb3JtYW5jZSBjb3VudGVyIHRvIGNyZWF0ZSBhbgppbnRlcnJ1cHQgYWZ0ZXIgYSBzZXQgbnVtYmVyIG9mICJldmVudHMiIChpbiB0aGlzIGNhc2UgYW4gZXZlbnQgaXMgb25lCmNsb2NrIGN5Y2xlKS4gSXQgc2hvdWxkIGJlIGNsZWFyIHRoYXQgdGhlIGNoYW5jZXMgb2YgdGhlIGludGVycnVwdApvY2N1cnJpbmcgaW4gZnVuY3Rpb24gQSBpcyAxLzEwMCwgYW5kIDk5LzEwMCBmb3IgZnVuY3Rpb24gQi4gVGh1cywgd2UKc3RhdGlzdGljYWxseSBhcHByb3hpbWF0ZSB0aGUgYWN0dWFsIHJlbGF0aXZlIHBlcmZvcm1hbmNlIGZlYXR1cmVzIG9mCnRoZSB0d28gZnVuY3Rpb25zIG92ZXIgdGltZS4gVGhpcyBzYW1lIGFuYWx5c2lzIHdvcmtzIGZvciBvdGhlciB0eXBlcyBvZgpldmVudHMsIHByb3ZpZGluZyB0aGF0IHRoZSBpbnRlcnJ1cHQgaXMgdGllZCB0byB0aGUgbnVtYmVyIG9mIGV2ZW50cwpvY2N1cnJpbmcgKHRoYXQgaXMsIGFmdGVyIE4gZXZlbnRzLCBhbiBpbnRlcnJ1cHQgaXMgZ2VuZXJhdGVkKS4KPC9wPgogICAgICAgICAgPHA+ClRoZXJlIGFyZSB0eXBpY2FsbHkgbW9yZSB0aGFuIG9uZSBvZiB0aGVzZSBjb3VudGVycywgc28gaXQncyBwb3NzaWJsZSB0byBzZXQgdXAgcHJvZmlsaW5nCmZvciBzZXZlcmFsIGRpZmZlcmVudCBldmVudCB0eXBlcy4gVXNpbmcgdGhlc2UgY291bnRlcnMgZ2l2ZXMgdXMgYSBwb3dlcmZ1bCwgbG93LW92ZXJoZWFkCndheSBvZiBnYWluaW5nIHBlcmZvcm1hbmNlIG1ldHJpY3MuIElmIE9Qcm9maWxlLCBvciB0aGUgQ1BVLCBkb2VzIG5vdCBzdXBwb3J0IHBlcmZvcm1hbmNlCmNvdW50ZXJzLCB0aGVuIGEgc2ltcGxlciBtZXRob2QgaXMgdXNlZDogdGhlIGtlcm5lbCB0aW1lciBpbnRlcnJ1cHQgZmVlZHMgc2FtcGxlcwppbnRvIE9Qcm9maWxlIGl0c2VsZi4KPC9wPgogICAgICAgICAgPHA+ClRoZSByZXN0IG9mIHRoaXMgZG9jdW1lbnQgY29uY2VybnMgaXRzZWxmIHdpdGggaG93IHdlIGdldCBmcm9tIHJlY2VpdmluZyBzYW1wbGVzIGF0CmludGVycnVwdCB0aW1lIHRvIHByb2R1Y2luZyB1c2VyLXJlYWRhYmxlIHByb2ZpbGUgaW5mb3JtYXRpb24uCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJjb21wb25lbnRzIj48L2E+Mi6gQ29tcG9uZW50cyBvZiB0aGUgT1Byb2ZpbGUgc3lzdGVtPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImFyY2gtc3BlY2lmaWMtY29tcG9uZW50cyI+PC9hPjIuMS6gQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvbXBvbmVudHM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KSWYgT1Byb2ZpbGUgc3VwcG9ydHMgdGhlIGhhcmR3YXJlIHBlcmZvcm1hbmNlIGNvdW50ZXJzIGZvdW5kIG9uCmEgcGFydGljdWxhciBhcmNoaXRlY3R1cmUsIGNvZGUgZm9yIG1hbmFnaW5nIHRoZSBkZXRhaWxzIG9mIHNldHRpbmcKdXAgYW5kIG1hbmFnaW5nIHRoZXNlIGNvdW50ZXJzIGNhbiBiZSBmb3VuZCBpbiB0aGUga2VybmVsIHNvdXJjZQp0cmVlIGluIHRoZSByZWxldmFudCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmFyY2gvPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+YXJjaDwvZW0+PC9zcGFuPi9vcHJvZmlsZS88L2NvZGU+CmRpcmVjdG9yeS4gVGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiB3b3JrcyB2aWEKZmlsbGluZyBpbiB0aGUgb3Byb2ZpbGVfb3BlcmF0aW9ucyBzdHJ1Y3R1cmUgYXQgaW5pdCB0aW1lLiBUaGlzCnByb3ZpZGVzIGEgc2V0IG9mIG9wZXJhdGlvbnMgc3VjaCBhcyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnNldHVwKCk8L2NvZGU+LAo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnN0YXJ0KCk8L2NvZGU+LCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnN0b3AoKTwvY29kZT4sIGV0Yy4KdGhhdCBtYW5hZ2UgdGhlIGhhcmR3YXJlLXNwZWNpZmljIGRldGFpbHMgb2YgZmlkZGxpbmcgd2l0aCB0aGUKcGVyZm9ybWFuY2UgY291bnRlciByZWdpc3RlcnMuCjwvcD4KICAgICAgICAgICAgPHA+ClRoZSBvdGhlciBpbXBvcnRhbnQgZmFjaWxpdHkgYXZhaWxhYmxlIHRvIHRoZSBhcmNoaXRlY3R1cmUgY29kZSBpcwo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm9wcm9maWxlX2FkZF9zYW1wbGUoKTwvY29kZT4uICBUaGlzIGlzIHdoZXJlIGEgcGFydGljdWxhciBzYW1wbGUKdGFrZW4gYXQgaW50ZXJydXB0IHRpbWUgaXMgZmVkIGludG8gdGhlIGdlbmVyaWMgT1Byb2ZpbGUgZHJpdmVyIGNvZGUuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0iZmlsZXN5c3RlbSI+PC9hPjIuMi6gb3Byb2ZpbGVmczwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpPUHJvZmlsZSBpbXBsZW1lbnRzIGEgcHNldWRvLWZpbGVzeXN0ZW0ga25vd24gYXMgIm9wcm9maWxlZnMiLCBtb3VudGVkIGZyb20KdXNlcnNwYWNlIGF0IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L2Rldi9vcHJvZmlsZTwvY29kZT4uIFRoaXMgY29uc2lzdHMgb2Ygc21hbGwKZmlsZXMgZm9yIHJlcG9ydGluZyBhbmQgcmVjZWl2aW5nIGNvbmZpZ3VyYXRpb24gZnJvbSB1c2Vyc3BhY2UsIGFzIHdlbGwKYXMgdGhlIGFjdHVhbCBjaGFyYWN0ZXIgZGV2aWNlIHRoYXQgdGhlIE9Qcm9maWxlIHVzZXJzcGFjZSByZWNlaXZlcyBzYW1wbGVzCmZyb20uIEF0IDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+c2V0dXAoKTwvY29kZT4gdGltZSwgdGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBtYXkKYWRkIGZ1cnRoZXIgY29uZmlndXJhdGlvbiBmaWxlcyByZWxhdGVkIHRvIHRoZSBkZXRhaWxzIG9mIHRoZSBwZXJmb3JtYW5jZQpjb3VudGVycy4gRm9yIGV4YW1wbGUsIG9uIHg4Niwgb25lIG51bWJlcmVkIGRpcmVjdG9yeSBmb3IgZWFjaCBoYXJkd2FyZQpwZXJmb3JtYW5jZSBjb3VudGVyIGlzIGFkZGVkLCB3aXRoIGZpbGVzIGluIGVhY2ggZm9yIHRoZSBldmVudCB0eXBlLApyZXNldCB2YWx1ZSwgZXRjLgo8L3A+CiAgICAgICAgICAgIDxwPgpUaGUgZmlsZXN5c3RlbSBhbHNvIGNvbnRhaW5zIGEgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5zdGF0czwvY29kZT4gZGlyZWN0b3J5IHdpdGgKYSBudW1iZXIgb2YgdXNlZnVsIGNvdW50ZXJzIGZvciB2YXJpb3VzIE9Qcm9maWxlIGV2ZW50cy4KPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJkcml2ZXIiPjwvYT4yLjMuoEdlbmVyaWMga2VybmVsIGRyaXZlcjwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpUaGlzIGxpdmVzIGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZHJpdmVycy9vcHJvZmlsZS88L2NvZGU+LCBhbmQgZm9ybXMgdGhlIGNvcmUgb2YKaG93IE9Qcm9maWxlIHdvcmtzIGluIHRoZSBrZXJuZWwuIEl0cyBqb2IgaXMgdG8gdGFrZSBzYW1wbGVzIGRlbGl2ZXJlZApmcm9tIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29kZSAodmlhIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+b3Byb2ZpbGVfYWRkX3NhbXBsZSgpPC9jb2RlPiksCmFuZCBidWZmZXIgdGhpcyBkYXRhLCBpbiBhIHRyYW5zZm9ybWVkIGZvcm0gYXMgZGVzY3JpYmVkIGxhdGVyLCB1bnRpbCByZWxlYXNpbmcKdGhlIGRhdGEgdG8gdGhlIHVzZXJzcGFjZSBkYWVtb24gdmlhIHRoZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9kZXYvb3Byb2ZpbGUvYnVmZmVyPC9jb2RlPgpjaGFyYWN0ZXIgZGV2aWNlLgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImRhZW1vbiI+PC9hPjIuNC6gVGhlIE9Qcm9maWxlIGRhZW1vbjwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpUaGUgT1Byb2ZpbGUgdXNlcnNwYWNlIGRhZW1vbidzIGpvYiBpcyB0byB0YWtlIHRoZSByYXcgZGF0YSBwcm92aWRlZCBieSB0aGUKa2VybmVsIGFuZCB3cml0ZSBpdCB0byB0aGUgZGlzay4gSXQgdGFrZXMgdGhlIHNpbmdsZSBkYXRhIHN0cmVhbSBmcm9tIHRoZQprZXJuZWwgYW5kIGxvZ3Mgc2FtcGxlIGRhdGEgYWdhaW5zdCBhIG51bWJlciBvZiBzYW1wbGUgZmlsZXMgKGZvdW5kIGluCjxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L3Zhci9saWIvb3Byb2ZpbGUvc2FtcGxlcy9jdXJyZW50LzwvY29kZT4uIEZvciB0aGUgYmVuZWZpdApvZiB0aGUgInNlcGFyYXRlIiBmdW5jdGlvbmFsaXR5LCB0aGUgbmFtZXMvcGF0aHMgb2YgdGhlc2Ugc2FtcGxlIGZpbGVzCmFyZSBtYW5nbGVkIHRvIHJlZmxlY3Qgd2hlcmUgdGhlIHNhbXBsZXMgd2VyZSBmcm9tOiB0aGlzIGNhbiBpbmNsdWRlCnRocmVhZCBJRHMsIHRoZSBiaW5hcnkgZmlsZSBwYXRoLCB0aGUgZXZlbnQgdHlwZSB1c2VkLCBhbmQgbW9yZS4KPC9wPgogICAgICAgICAgICA8cD4KQWZ0ZXIgdGhpcyBmaW5hbCBzdGVwIGZyb20gaW50ZXJydXB0IHRvIGRpc2sgZmlsZSwgdGhlIGRhdGEgaXMgbm93CnBlcnNpc3RlbnQgKHRoYXQgaXMsIGNoYW5nZXMgaW4gdGhlIHJ1bm5pbmcgb2YgdGhlIHN5c3RlbSBkbyBub3QgaW52YWxpZGF0ZQpzdG9yZWQgZGF0YSkuIFNvIHRoZSBwb3N0LXByb2ZpbGluZyB0b29scyBjYW4gcnVuIG9uIHRoaXMgZGF0YSBhdCBhbnkKdGltZSAoYXNzdW1pbmcgdGhlIG9yaWdpbmFsIGJpbmFyeSBmaWxlcyBhcmUgc3RpbGwgYXZhaWxhYmxlIGFuZCB1bmNoYW5nZWQsCm5hdHVyYWxseSkuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJwb3N0LXByb2ZpbGluZyI+PC9hPjIuNS6gUG9zdC1wcm9maWxpbmcgdG9vbHM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgpTbyBmYXIsIHdlJ3ZlIGNvbGxlY3RlZCBkYXRhLCBidXQgd2UndmUgeWV0IHRvIHByZXNlbnQgaXQgaW4gYSB1c2VmdWwgZm9ybQp0byB0aGUgdXNlci4gVGhpcyBpcyB0aGUgam9iIG9mIHRoZSBwb3N0LXByb2ZpbGluZyB0b29scy4gSW4gZ2VuZXJhbCBmb3JtLAp0aGV5IGNvbGxhdGUgYSBzdWJzZXQgb2YgdGhlIGF2YWlsYWJsZSBzYW1wbGUgZmlsZXMsIGxvYWQgYW5kIHByb2Nlc3MgZWFjaCBvbmUKY29ycmVsYXRlZCBhZ2FpbnN0IHRoZSByZWxldmFudCBiaW5hcnkgZmlsZSwgYW5kIGZpbmFsbHkgcHJvZHVjZSB1c2VyLXJlYWRhYmxlCmluZm9ybWF0aW9uLgo8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXB0ZXIiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiPjxhIGlkPSJwZXJmb3JtYW5jZS1jb3VudGVycyI+PC9hPkNoYXB0ZXKgMi6gUGVyZm9ybWFuY2UgY291bnRlciBtYW5hZ2VtZW50PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2MiPgogICAgICAgICAgPHA+CiAgICAgICAgICAgIDxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPgogICAgICAgICAgPC9wPgogICAgICAgICAgPGRsPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwZXJmb3JtYW5jZS1jb3VudGVycy11aSI+MS4gUHJvdmlkaW5nIGEgdXNlciBpbnRlcmZhY2U8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwZXJmb3JtYW5jZS1jb3VudGVycy1wcm9ncmFtbWluZyI+Mi4gUHJvZ3JhbW1pbmcgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVnaXN0ZXJzPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcGVyZm9ybWFuY2UtY291bnRlcnMtc3RhcnQiPjIuMS4gU3RhcnRpbmcgYW5kIHN0b3BwaW5nIHRoZSBjb3VudGVyczwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QyIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjaWQyNDk1MDIxIj4yLjIuIElBNjQgYW5kIHBlcmZtb248L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kZD4KICAgICAgICAgIDwvZGw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDEiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0icGVyZm9ybWFuY2UtY291bnRlcnMtdWkiPjwvYT4xLqBQcm92aWRpbmcgYSB1c2VyIGludGVyZmFjZTwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KVGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVnaXN0ZXJzIG5lZWQgcHJvZ3JhbW1pbmcgaW4gb3JkZXIgdG8gc2V0IHRoZQp0eXBlIG9mIGV2ZW50IHRvIGNvdW50LCBldGMuIE9Qcm9maWxlIHVzZXMgYSBzdGFuZGFyZCBtb2RlbCBhY3Jvc3MgYWxsCkNQVXMgZm9yIGRlZmluaW5nIHRoZXNlIGV2ZW50cyBhcyBmb2xsb3dzIDoKPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5mb3JtYWx0YWJsZSI+CiAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjEiPgogICAgICAgICAgICAgIDxjb2xncm91cD4KICAgICAgICAgICAgICAgIDxjb2wgLz4KICAgICAgICAgICAgICAgIDxjb2wgLz4KICAgICAgICAgICAgICA8L2NvbGdyb3VwPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPmV2ZW50PC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+VGhlIGV2ZW50IHR5cGUgZS5nLiBEQVRBX01FTV9SRUZTPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj51bml0IG1hc2s8L2NvZGU+CiAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5UaGUgc3ViLWV2ZW50cyB0byBjb3VudCAobW9yZSBkZXRhaWxlZCBzcGVjaWZpY2F0aW9uKTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+Y291bnRlcjwvY29kZT4KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlRoZSBoYXJkd2FyZSBjb3VudGVyKHMpIHRoYXQgY2FuIGNvdW50IHRoaXMgZXZlbnQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPmNvdW50PC9jb2RlPgogICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+VGhlIHJlc2V0IHZhbHVlIChob3cgbWFueSBldmVudHMgYmVmb3JlIGFuIGludGVycnVwdCk8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPmtlcm5lbDwvY29kZT4KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPldoZXRoZXIgdGhlIGNvdW50ZXIgc2hvdWxkIGluY3JlbWVudCB3aGVuIGluIGtlcm5lbCBzcGFjZTwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+dXNlcjwvY29kZT4KICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPldoZXRoZXIgdGhlIGNvdW50ZXIgc2hvdWxkIGluY3JlbWVudCB3aGVuIGluIHVzZXIgc3BhY2U8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KVGhlIHRlcm0gInVuaXQgbWFzayIgaXMgYm9ycm93ZWQgZnJvbSB0aGUgSW50ZWwgYXJjaGl0ZWN0dXJlcywgYW5kIGNhbgpmdXJ0aGVyIHNwZWNpZnkgZXhhY3RseSB3aGVuIGEgY291bnRlciBpcyBpbmNyZW1lbnRlZCAoZm9yIGV4YW1wbGUsCmNhY2hlLXJlbGF0ZWQgZXZlbnRzIGNhbiBiZSByZXN0cmljdGVkIHRvIHBhcnRpY3VsYXIgc3RhdGUgdHJhbnNpdGlvbnMKb2YgdGhlIGNhY2hlIGxpbmVzKS4KPC9wPgogICAgICAgICAgPHA+CkFsbCBvZiB0aGUgYXZhaWxhYmxlIGhhcmR3YXJlIGV2ZW50cyBhbmQgdGhlaXIgZGV0YWlscyBhcmUgc3BlY2lmaWVkIGluCnRoZSB0ZXh0dWFsIGZpbGVzIGluIHRoZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmV2ZW50czwvY29kZT4gZGlyZWN0b3J5LiBUaGUKc3ludGF4IG9mIHRoZXNlIGZpbGVzIHNob3VsZCBiZSBmYWlybHkgb2J2aW91cy4gVGhlIHVzZXIgc3BlY2lmaWVzIHRoZQpuYW1lcyBhbmQgY29uZmlndXJhdGlvbiBkZXRhaWxzIG9mIHRoZSBjaG9zZW4gY291bnRlcnMgdmlhCjxzcGFuPjxzdHJvbmcgY2xhc3M9ImNvbW1hbmQiPm9wY29udHJvbDwvc3Ryb25nPjwvc3Bhbj4uIFRoZXNlIGFyZSB0aGVuIHdyaXR0ZW4gdG8gdGhlIGtlcm5lbAptb2R1bGUgKGluIG51bWVyaWNhbCBmb3JtKSB2aWEgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vZGV2L29wcm9maWxlL04vPC9jb2RlPgp3aGVyZSBOIGlzIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBjb3VudGVyIChzb21lIGV2ZW50cyBjYW4gb25seSBiZSB1c2VkCm9uIHNwZWNpZmljIGNvdW50ZXJzOyBPUHJvZmlsZSBoaWRlcyB0aGVzZSBkZXRhaWxzIGZyb20gdGhlIHVzZXIgd2hlbgpwb3NzaWJsZSkuIE9uIElBNjQsIHRoZSBwZXJmbW9uLWJhc2VkIGludGVyZmFjZSBiZWhhdmVzIHNvbWV3aGF0CmRpZmZlcmVudGx5LCBhcyBkZXNjcmliZWQgbGF0ZXIuCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJwZXJmb3JtYW5jZS1jb3VudGVycy1wcm9ncmFtbWluZyI+PC9hPjIuoFByb2dyYW1taW5nIHRoZSBwZXJmb3JtYW5jZSBjb3VudGVyIHJlZ2lzdGVyczwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KV2UgaGF2ZSBkZXNjcmliZWQgaG93IHRoZSB1c2VyIGludGVyZmFjZSBmaWxscyBpbiB0aGUgZGVzaXJlZApjb25maWd1cmF0aW9uIG9mIHRoZSBjb3VudGVycyBhbmQgdHJhbnNtaXRzIHRoZSBpbmZvcm1hdGlvbiB0byB0aGUKa2VybmVsLiBJdCBpcyB0aGUgam9iIG9mIHRoZSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPi0mZ3Q7c2V0dXAoKTwvY29kZT4gbWV0aG9kCnRvIGFjdHVhbGx5IHByb2dyYW0gdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVnaXN0ZXJzLiBDbGVhcmx5LCB0aGUKZGV0YWlscyBvZiBob3cgdGhpcyBpcyBkb25lIGlzIGFyY2hpdGVjdHVyZS1zcGVjaWZpYzsgaXQgaXMgYWxzbwptb2RlbC1zcGVjaWZpYyBvbiBtYW55IGFyY2hpdGVjdHVyZXMuIEZvciBleGFtcGxlLCBpMzg2IHByb3ZpZGVzIG1ldGhvZHMKZm9yIGVhY2ggbW9kZWwgdHlwZSB0aGF0IHByb2dyYW1zIHRoZSBjb3VudGVyIHJlZ2lzdGVycyBjb3JyZWN0bHkKKHNlZSB0aGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vcF9tb2RlbF8qPC9jb2RlPiBmaWxlcyBpbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmFyY2gvaTM4Ni9vcHJvZmlsZTwvY29kZT4gZm9yIHRoZSBkZXRhaWxzKS4gVGhlIG1ldGhvZApyZWFkcyB0aGUgdmFsdWVzIHN0b3JlZCBpbiB0aGUgdmlydHVhbCBvcHJvZmlsZWZzIGZpbGVzIGFuZCBwcm9ncmFtcwp0aGUgcmVnaXN0ZXJzIGFwcHJvcHJpYXRlbHksIHJlYWR5IGZvciBzdGFydGluZyB0aGUgYWN0dWFsIHByb2ZpbGluZwpzZXNzaW9uLgo8L3A+CiAgICAgICAgICA8cD4KVGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBkcml2ZXJzIG1ha2Ugc3VyZSB0byBzYXZlIHRoZSBvbGQgcmVnaXN0ZXIKc2V0dGluZ3MgYmVmb3JlIGRvaW5nIE9Qcm9maWxlIHNldHVwLiBUaGV5IGFyZSByZXN0b3JlZCB3aGVuIE9Qcm9maWxlCnNodXRzIGRvd24uIFRoaXMgaXMgdXNlZnVsLCBmb3IgZXhhbXBsZSwgb24gaTM4Niwgd2hlcmUgdGhlIE5NSSB3YXRjaGRvZwp1c2VzIHRoZSBzYW1lIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVnaXN0ZXJzIGFzIE9Qcm9maWxlOyB0aGV5IGNhbm5vdApydW4gY29uY3VycmVudGx5LCBidXQgT1Byb2ZpbGUgbWFrZXMgc3VyZSB0byByZXN0b3JlIHRoZSBzZXR1cCBpdCBmb3VuZApiZWZvcmUgaXQgd2FzIHJ1bm5pbmcuCjwvcD4KICAgICAgICAgIDxwPgpJbiBhZGRpdGlvbiB0byBwcm9ncmFtbWluZyB0aGUgY291bnRlciByZWdpc3RlcnMgdGhlbXNlbHZlcywgb3RoZXIgc2V0dXAKaXMgb2Z0ZW4gbmVjZXNzYXJ5LiBGb3IgZXhhbXBsZSwgb24gaTM4NiwgdGhlIGxvY2FsIEFQSUMgbmVlZHMKcHJvZ3JhbW1pbmcgaW4gb3JkZXIgdG8gbWFrZSB0aGUgY291bnRlcidzIG92ZXJmbG93IGludGVycnVwdCBhcHBlYXIgYXMKYW4gTk1JIChub24tbWFza2FibGUgaW50ZXJydXB0KS4gVGhpcyBhbGxvd3Mgc2FtcGxpbmcgKGFuZCB0aGVyZWZvcmUKcHJvZmlsaW5nKSBvZiByZWdpb25zIHdoZXJlICJub3JtYWwiIGludGVycnVwdHMgYXJlIG1hc2tlZCwgZW5hYmxpbmcKbW9yZSByZWxpYWJsZSBwcm9maWxlcy4KPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0icGVyZm9ybWFuY2UtY291bnRlcnMtc3RhcnQiPjwvYT4yLjEuoFN0YXJ0aW5nIGFuZCBzdG9wcGluZyB0aGUgY291bnRlcnM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KSW5pdGlhdGluZyBhIHByb2ZpbGluZyBzZXNzaW9uIGlzIGRvbmUgdmlhIHdyaXRpbmcgYW4gQVNDSUkgJzEnCnRvIHRoZSBmaWxlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L2Rldi9vcHJvZmlsZS9lbmFibGU8L2NvZGU+LiBUaGlzIHNldHMgdXAgdGhlCmNvcmUsIGFuZCBjYWxscyBpbnRvIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgZHJpdmVyIHRvIGFjdHVhbGx5CmVuYWJsZSBlYWNoIGNvbmZpZ3VyZWQgY291bnRlci4gQWdhaW4sIHRoZSBkZXRhaWxzIG9mIGhvdyB0aGlzIGlzCmRvbmUgaXMgbW9kZWwtc3BlY2lmaWMgKGZvciBleGFtcGxlLCB0aGUgQXRobG9uIG1vZGVscyBjYW4gZGlzYWJsZQpvciBlbmFibGUgb24gYSBwZXItY291bnRlciBiYXNpcywgdW5saWtlIHRoZSBQUHJvIG1vZGVscykuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0iaWQyNDk1MDIxIj48L2E+Mi4yLqBJQTY0IGFuZCBwZXJmbW9uPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+ClRoZSBJQTY0IGFyY2hpdGVjdHVyZSBwcm92aWRlcyBhIGRpZmZlcmVudCBpbnRlcmZhY2UgZnJvbSB0aGUgb3RoZXIKYXJjaGl0ZWN0dXJlcywgdXNpbmcgdGhlIGV4aXN0aW5nIHBlcmZtb24gZHJpdmVyLiBSZWdpc3RlciBwcm9ncmFtbWluZwppcyBoYW5kbGVkIGVudGlyZWx5IGluIHVzZXItc3BhY2UgKHNlZQo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRhZW1vbi9vcGRfcGVyZm1vbi5jPC9jb2RlPiBmb3IgdGhlIGRldGFpbHMpLiBBIHByb2Nlc3MKaXMgZm9ya2VkIGZvciBlYWNoIENQVSwgd2hpY2ggY3JlYXRlcyBhIHBlcmZtb24gY29udGV4dCBhbmQgc2V0cyB0aGUKY291bnRlciByZWdpc3RlcnMgYXBwcm9wcmlhdGVseSB2aWEgdGhlCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+c3lzX3BlcmZtb25jdGw8L2NvZGU+IGludGVyZmFjZS4gSW4gYWRkaXRpb24sIHRoZSBhY3R1YWwKaW5pdGlhdGlvbiBhbmQgdGVybWluYXRpb24gb2YgdGhlIHByb2ZpbGluZyBzZXNzaW9uIGlzIGhhbmRsZWQgdmlhIHRoZQpzYW1lIGludGVyZmFjZSB1c2luZyA8Y29kZSBjbGFzcz0iY29uc3RhbnQiPlBGTV9TVEFSVDwvY29kZT4gYW5kCjxjb2RlIGNsYXNzPSJjb25zdGFudCI+UEZNX1NUT1A8L2NvZGU+LiBPbiBJQTY0LCB0aGVuLCB0aGVyZSBhcmUgbm8gb3Byb2ZpbGVmcwpmaWxlcyBmb3IgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLCBhcyB0aGUga2VybmVsIGRyaXZlciBkb2VzIG5vdApwcm9ncmFtIHRoZSByZWdpc3RlcnMgaXRzZWxmLgo8L3A+CiAgICAgICAgICAgIDxwPgpJbnN0ZWFkLCB0aGUgcGVyZm1vbiBkcml2ZXIgZm9yIE9Qcm9maWxlIHNpbXBseSByZWdpc3RlcnMgd2l0aCB0aGUKT1Byb2ZpbGUgY29yZSB3aXRoIGFuIE9Qcm9maWxlLXNwZWNpZmljIFVVSUQuIER1cmluZyBhIHByb2ZpbGluZwpzZXNzaW9uLCB0aGUgcGVyZm1vbiBjb3JlIGNhbGxzIGludG8gdGhlIE9Qcm9maWxlIHBlcmZtb24gZHJpdmVyIGFuZApzYW1wbGVzIGFyZSByZWdpc3RlcmVkIHdpdGggdGhlIE9Qcm9maWxlIGNvcmUgaXRzZWxmIGFzIHVzdWFsICh3aXRoCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+b3Byb2ZpbGVfYWRkX3NhbXBsZSgpPC9jb2RlPikuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcHRlciIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9ImNvbGxlY3Rpbmctc2FtcGxlcyI+PC9hPkNoYXB0ZXKgMy6gQ29sbGVjdGluZyBhbmQgcHJvY2Vzc2luZyBzYW1wbGVzPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2MiPgogICAgICAgICAgPHA+CiAgICAgICAgICAgIDxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPgogICAgICAgICAgPC9wPgogICAgICAgICAgPGRsPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNyZWNlaXZpbmctaW50ZXJydXB0cyI+MS4gUmVjZWl2aW5nIGludGVycnVwdHM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjb3JlLXN0cnVjdHVyZSI+Mi4gQ29yZSBkYXRhIHN0cnVjdHVyZXM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNsb2dnaW5nLXNhbXBsZSI+My4gTG9nZ2luZyBhIHNhbXBsZTwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI2xvZ2dpbmctc3RhY2siPjQuIExvZ2dpbmcgc3RhY2sgdHJhY2VzPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc3luY2hyb25pc2luZy1idWZmZXJzIj41LiBTeW5jaHJvbmlzaW5nIHRoZSBDUFUgYnVmZmVycyB0byB0aGUgZXZlbnQgYnVmZmVyPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjZGVudHJ5LWNvb2tpZXMiPjYuIElkZW50aWZ5aW5nIGJpbmFyeSBpbWFnZXM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNmaW5kaW5nLWRlbnRyeSI+Ny4gRmluZGluZyBhIHNhbXBsZSdzIGJpbmFyeSBpbWFnZSBhbmQgb2Zmc2V0PC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgIDwvZGw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDEiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0icmVjZWl2aW5nLWludGVycnVwdHMiPjwvYT4xLqBSZWNlaXZpbmcgaW50ZXJydXB0czwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KTmF0dXJhbGx5LCBob3cgdGhlIG92ZXJmbG93IGludGVycnVwdHMgYXJlIHJlY2VpdmVkIGlzIHNwZWNpZmljCnRvIHRoZSBoYXJkd2FyZSBhcmNoaXRlY3R1cmUsIHVubGVzcyB3ZSBhcmUgaW4gInRpbWVyIiBtb2RlLCB3aGVyZSB0aGUKbG9nZ2luZyByb3V0aW5lIGlzIGNhbGxlZCBkaXJlY3RseSBmcm9tIHRoZSBzdGFuZGFyZCBrZXJuZWwgdGltZXIKaW50ZXJydXB0IGhhbmRsZXIuCjwvcD4KICAgICAgICAgIDxwPgpPbiB0aGUgaTM4NiBhcmNoaXRlY3R1cmUsIHRoZSBsb2NhbCBBUElDIGlzIHByb2dyYW1tZWQgc3VjaCB0aGF0IHdoZW4gYQpjb3VudGVyIG92ZXJmbG93cyAodGhhdCBpcywgaXQgcmVjZWl2ZXMgYW4gZXZlbnQgdGhhdCBjYXVzZXMgYW4gaW50ZWdlcgpvdmVyZmxvdyBvZiB0aGUgcmVnaXN0ZXIgdmFsdWUgdG8gemVybyksIGFuIE5NSSBpcyBnZW5lcmF0ZWQuIFRoaXMgY2FsbHMKaW50byB0aGUgZ2VuZXJhbCBoYW5kbGVyIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZG9fbm1pKCk8L2NvZGU+OyBiZWNhdXNlIE9Qcm9maWxlCmhhcyByZWdpc3RlcmVkIGl0c2VsZiBhcyBjYXBhYmxlIG9mIGhhbmRsaW5nIE5NSSBpbnRlcnJ1cHRzLCB0aGlzIHdpbGwKY2FsbCBpbnRvIHRoZSBPUHJvZmlsZSBkcml2ZXIgY29kZSBpbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmFyY2gvaTM4Ni9vcHJvZmlsZTwvY29kZT4uIEhlcmUsIHRoZSBzYXZlZCBQQyB2YWx1ZSAodGhlCkNQVSBzYXZlcyB0aGUgcmVnaXN0ZXIgc2V0IGF0IHRoZSB0aW1lIG9mIGludGVycnVwdCBvbiB0aGUgc3RhY2sKYXZhaWxhYmxlIGZvciBpbnNwZWN0aW9uKSBpcyBleHRyYWN0ZWQsIGFuZCB0aGUgY291bnRlcnMgYXJlIGV4YW1pbmVkIHRvCmZpbmQgb3V0IHdoaWNoIG9uZSBnZW5lcmF0ZWQgdGhlIGludGVycnVwdC4gQWxzbyBkZXRlcm1pbmVkIGlzIHdoZXRoZXIKdGhlIHN5c3RlbSB3YXMgaW5zaWRlIGtlcm5lbCBvciB1c2VyIHNwYWNlIGF0IHRoZSB0aW1lIG9mIHRoZSBpbnRlcnJ1cHQuClRoZXNlIHRocmVlIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiBhcmUgdGhlbiBmb3J3YXJkZWQgb250byB0aGUgT1Byb2ZpbGUKY29yZSB2aWEgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5vcHJvZmlsZV9hZGRfc2FtcGxlKCk8L2NvZGU+LiBGaW5hbGx5LCB0aGUKY291bnRlciB2YWx1ZXMgYXJlIHJlc2V0IHRvIHRoZSBjaG9zZW4gY291bnQgdmFsdWUsIHRvIGVuc3VyZSBhbm90aGVyCmludGVycnVwdCBoYXBwZW5zIGFmdGVyIGFub3RoZXIgTiBldmVudHMgaGF2ZSBvY2N1cnJlZC4gT3RoZXIKYXJjaGl0ZWN0dXJlcyBiZWhhdmUgaW4gYSBzaW1pbGFyIG1hbm5lci4KPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9ImNvcmUtc3RydWN0dXJlIj48L2E+Mi6gQ29yZSBkYXRhIHN0cnVjdHVyZXM8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CkJlZm9yZSBjb25zaWRlcmluZyB3aGF0IGhhcHBlbnMgd2hlbiB3ZSBsb2cgYSBzYW1wbGUsIHdlIHNoYWxsIGRpZ3Jlc3MKZm9yIGEgbW9tZW50IGFuZCBsb29rIGF0IHRoZSBnZW5lcmFsIHN0cnVjdHVyZSBvZiB0aGUgZGF0YSBjb2xsZWN0aW9uCnN5c3RlbS4KPC9wPgogICAgICAgICAgPHA+Ck9Qcm9maWxlIG1haW50YWlucyBhIHNtYWxsIGJ1ZmZlciBmb3Igc3RvcmluZyB0aGUgbG9nZ2VkIHNhbXBsZXMgZm9yCmVhY2ggQ1BVIG9uIHRoZSBzeXN0ZW0uIE9ubHkgdGhpcyBidWZmZXIgaXMgYWx0ZXJlZCB3aGVuIHdlIGFjdHVhbGx5IGxvZwphIHNhbXBsZSAocmVtZW1iZXIsIHdlIG1heSBzdGlsbCBiZSBpbiBhbiBOTUkgY29udGV4dCwgc28gbm8gbG9ja2luZyBpcwpwb3NzaWJsZSkuIFRoZSBidWZmZXIgaXMgbWFuYWdlZCBieSBhIHR3by1oYW5kZWQgc3lzdGVtOyB0aGUgImhlYWQiCml0ZXJhdG9yIGRpY3RhdGVzIHdoZXJlIHRoZSBuZXh0IHNhbXBsZSBkYXRhIHNob3VsZCBiZSBwbGFjZWQgaW4gdGhlCmJ1ZmZlci4gT2YgY291cnNlLCBvdmVyZmxvdyBvZiB0aGUgYnVmZmVyIGlzIHBvc3NpYmxlLCBpbiB3aGljaCBjYXNlCnRoZSBzYW1wbGUgaXMgZGlzY2FyZGVkLgo8L3A+CiAgICAgICAgICA8cD4KSXQgaXMgY3JpdGljYWwgdG8gcmVtZW1iZXIgdGhhdCBhdCB0aGlzIHBvaW50LCB0aGUgUEMgdmFsdWUgaXMgYW4KYWJzb2x1dGUgdmFsdWUsIGFuZCBpcyB0aGVyZWZvcmUgb25seSBtZWFuaW5nZnVsIGluIHRoZSBjb250ZXh0IG9mIHdoaWNoCnRhc2sgaXQgd2FzIGxvZ2dlZCBhZ2FpbnN0LiBUaHVzLCB0aGVzZSBwZXItQ1BVIGJ1ZmZlcnMgYWxzbyBtYWludGFpbgpkZXRhaWxzIG9mIHdoaWNoIHRhc2sgZWFjaCBsb2dnZWQgc2FtcGxlIGlzIGZvciwgYXMgZGVzY3JpYmVkIGluIHRoZQpuZXh0IHNlY3Rpb24uIEluIGFkZGl0aW9uLCB3ZSBzdG9yZSB3aGV0aGVyIHRoZSBzYW1wbGUgd2FzIGluIGtlcm5lbApzcGFjZSBvciB1c2VyIHNwYWNlIChvbiBzb21lIGFyY2hpdGVjdHVyZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCB0aGUgYWRkcmVzcwpzcGFjZSBpcyBub3Qgc3ViLWRpdmlkZWQgbmVhdGx5IGF0IGEgc3BlY2lmaWMgUEMgdmFsdWUsIHNvIHdlIG11c3Qgc3RvcmUKdGhpcyBpbmZvcm1hdGlvbikuCjwvcD4KICAgICAgICAgIDxwPgpBcyB3ZWxsIGFzIHRoZXNlIHNtYWxsIHBlci1DUFUgYnVmZmVycywgd2UgaGF2ZSBhIGNvbnNpZGVyYWJseSBsYXJnZXIKc2luZ2xlIGJ1ZmZlci4gVGhpcyBob2xkcyB0aGUgZGF0YSB0aGF0IGlzIGV2ZW50dWFsbHkgY29waWVkIG91dCBpbnRvCnRoZSBPUHJvZmlsZSBkYWVtb24uIE9uIGNlcnRhaW4gc3lzdGVtIGV2ZW50cywgdGhlIHBlci1DUFUgYnVmZmVycyBhcmUKcHJvY2Vzc2VkIGFuZCBlbnRlcmVkIChpbiBtdXRhdGVkIGZvcm0pIGludG8gdGhlIG1haW4gYnVmZmVyLCBrbm93biBpbgp0aGUgc291cmNlIGFzIHRoZSAiZXZlbnQgYnVmZmVyIi4gVGhlICJ0YWlsIiBpdGVyYXRvciBpbmRpY2F0ZXMgdGhlCnBvaW50IGZyb20gd2hpY2ggdGhlIENQVSBtYXkgYmUgcmVhZCwgdXAgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSAiaGVhZCIKaXRlcmF0b3IuIFRoaXMgcHJvdmlkZXMgYW4gZW50aXJlbHkgbG9jay1mcmVlIG1ldGhvZCBmb3IgZXh0cmFjdGluZyBkYXRhCmZyb20gdGhlIENQVSBidWZmZXJzLiBUaGlzIHByb2Nlc3MgaXMgZGVzY3JpYmVkIGluIGRldGFpbCBsYXRlciBpbiB0aGlzIGNoYXB0ZXIuCjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZ3VyZSI+CiAgICAgICAgICAgIDxhIGlkPSJpZDI0OTUxOTMiPjwvYT4KICAgICAgICAgICAgPHAgY2xhc3M9InRpdGxlIj4KICAgICAgICAgICAgICA8Yj5GaWd1cmWgMy4xLqBUaGUgT1Byb2ZpbGUgYnVmZmVyczwvYj4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxpbWcgc3JjPSJidWZmZXJzLnBuZyIgYWx0PSJUaGUgT1Byb2ZpbGUgYnVmZmVycyIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJsb2dnaW5nLXNhbXBsZSI+PC9hPjMuoExvZ2dpbmcgYSBzYW1wbGU8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CkFzIG1lbnRpb25lZCwgdGhlIHNhbXBsZSBpcyBsb2dnZWQgaW50byB0aGUgYnVmZmVyIHNwZWNpZmljIHRvIHRoZQpjdXJyZW50IENQVS4gVGhlIENQVSBidWZmZXIgaXMgYSBzaW1wbGUgYXJyYXkgb2YgcGFpcnMgb2YgdW5zaWduZWQgbG9uZwp2YWx1ZXM7IGZvciBhIHNhbXBsZSwgdGhleSBob2xkIHRoZSBQQyB2YWx1ZSBhbmQgdGhlIGNvdW50ZXIgZm9yIHRoZQpzYW1wbGUuIChUaGUgY291bnRlciB2YWx1ZSBpcyBsYXRlciB1c2VkIHRvIHRyYW5zbGF0ZSBiYWNrIGludG8gdGhlIHJlbGV2YW50CmV2ZW50IHR5cGUgdGhlIGNvdW50ZXIgd2FzIHByb2dyYW1tZWQgdG8pLgo8L3A+CiAgICAgICAgICA8cD4KSW4gYWRkaXRpb24gdG8gbG9nZ2luZyB0aGUgc2FtcGxlIGl0c2VsZiwgd2UgYWxzbyBsb2cgdGFzayBzd2l0Y2hlcy4KVGhpcyBpcyBzaW1wbHkgZG9uZSBieSBzdG9yaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBsYXN0IHRhc2sgdG8gbG9nIGEKc2FtcGxlIG9uIHRoYXQgQ1BVIGluIGEgZGF0YSBzdHJ1Y3R1cmUsIGFuZCB3cml0aW5nIGEgdGFzayBzd2l0Y2ggZW50cnkKaW50byB0aGUgYnVmZmVyIGlmIHRoZSBuZXcgdmFsdWUgb2YgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5jdXJyZW50KCk8L2NvZGU+IGhhcwpjaGFuZ2VkLiBOb3RlIHRoYXQgbGF0ZXIgd2Ugd2lsbCBkaXJlY3RseSBkZS1yZWZlcmVuY2UgdGhpcyBwb2ludGVyOwp0aGlzIGltcG9zZXMgY2VydGFpbiByZXN0cmljdGlvbnMgb24gd2hlbiBhbmQgaG93IHRoZSBDUFUgYnVmZmVycyBuZWVkCnRvIGJlIHByb2Nlc3NlZC4KPC9wPgogICAgICAgICAgPHA+CkZpbmFsbHksIGFzIG1lbnRpb25lZCwgd2UgbG9nIHdoZXRoZXIgd2UgaGF2ZSBjaGFuZ2VkIGJldHdlZW4ga2VybmVsIGFuZAp1c2Vyc3BhY2UgdXNpbmcgYSBzaW1pbGFyIG1ldGhvZC4gQm90aCBvZiB0aGVzZSB2YXJpYWJsZXMKKDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5sYXN0X3Rhc2s8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0idmFybmFtZSI+bGFzdF9pc19rZXJuZWw8L2NvZGU+KSBhcmUKcmVzZXQgd2hlbiB0aGUgQ1BVIGJ1ZmZlciBpcyByZWFkLgo8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDEiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0ibG9nZ2luZy1zdGFjayI+PC9hPjQuoExvZ2dpbmcgc3RhY2sgdHJhY2VzPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpPUHJvZmlsZSBjYW4gYWxzbyBwcm92aWRlIHN0YXRpc3RpY2FsIHNhbXBsZXMgb2YgY2FsbCBjaGFpbnMgKG9uIHg4NikuIFRvCmRvIHRoaXMsIGF0IHNhbXBsZSB0aW1lLCB0aGUgZnJhbWUgcG9pbnRlciBjaGFpbiBpcyB0cmF2ZXJzZWQsIHJlY29yZGluZwp0aGUgcmV0dXJuIGFkZHJlc3MgZm9yIGVhY2ggc3RhY2sgZnJhbWUuIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgdGhlIGNvZGUKd2FzIGNvbXBpbGVkIHdpdGggZnJhbWUgcG9pbnRlcnMsIGJ1dCB3ZSdyZSBjYXJlZnVsIHRvIGFib3J0IHRoZQp0cmF2ZXJzYWwgaWYgdGhlIGZyYW1lIHBvaW50ZXIgYXBwZWFycyBiYWQuIFdlIHN0b3JlIHRoZSBzZXQgb2YgcmV0dXJuCmFkZHJlc3NlcyBzdHJhaWdodCBpbnRvIHRoZSBDUFUgYnVmZmVyLiBOb3RlIHRoYXQsIHNpbmNlIHRoaXMgdHJhdmVyc2FsCmlzIGtleWVkIG9mZiB0aGUgc3RhbmRhcmQgc2FtcGxlIGludGVycnVwdCwgdGhlIG51bWJlciBvZiB0aW1lcyBhCmZ1bmN0aW9uIGFwcGVhcnMgaW4gYSBzdGFjayB0cmFjZSBpcyBub3QgYW4gaW5kaWNhdG9yIG9mIGhvdyBtYW55IHRpbWVzCnRoZSBjYWxsIHNpdGUgd2FzIGV4ZWN1dGVkOiByYXRoZXIsIGl0J3MgcmVsYXRlZCB0byB0aGUgbnVtYmVyIG9mCnNhbXBsZXMgd2UgdG9vayB3aGVyZSB0aGF0IGNhbGwgc2l0ZSB3YXMgaW52b2x2ZWQuIFRodXMsIHRoZSByZXN1bHRzIGZvcgpzdGFjayB0cmFjZXMgYXJlIG5vdCBuZWNlc3NhcmlseSBwcm9wb3J0aW9uYWwgdG8gdGhlIGNhbGwgY291bnRzOgp0eXBpY2FsIHByb2dyYW1zIHdpbGwgaGF2ZSBtYW55IDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbigpPC9jb2RlPiBzYW1wbGVzLgo8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDEiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBpZD0ic3luY2hyb25pc2luZy1idWZmZXJzIj48L2E+NS6gU3luY2hyb25pc2luZyB0aGUgQ1BVIGJ1ZmZlcnMgdG8gdGhlIGV2ZW50IGJ1ZmZlcjwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KQXQgc29tZSBwb2ludCwgd2UgaGF2ZSB0byBwcm9jZXNzIHRoZSBkYXRhIGluIGVhY2ggQ1BVIGJ1ZmZlciBhbmQgZW50ZXIKaXQgaW50byB0aGUgbWFpbiAoZXZlbnQpIGJ1ZmZlci4gVGhlIGZpbGUKPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5idWZmZXJfc3luYy5jPC9jb2RlPiBjb250YWlucyB0aGUgcmVsZXZhbnQgY29kZS4gV2UKcGVyaW9kaWNhbGx5IChjdXJyZW50bHkgZXZlcnkgPGNvZGUgY2xhc3M9ImNvbnN0YW50Ij5IWjwvY29kZT4vNCBqaWZmaWVzKSBzdGFydAp0aGUgc3luY2hyb25pc2F0aW9uIHByb2Nlc3MuIEluIGFkZGl0aW9uLCB3ZSBwcm9jZXNzIHRoZSBidWZmZXJzIG9uCmNlcnRhaW4gZXZlbnRzLCBzdWNoIGFzIGFuIGFwcGxpY2F0aW9uIGNhbGxpbmcKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tdW5tYXAoKTwvY29kZT4uIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBmb3IKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5leGl0KCk8L2NvZGU+IC0gYmVjYXVzZSB0aGUgQ1BVIGJ1ZmZlcnMgY29udGFpbiBwb2ludGVycwp0byB0aGUgdGFzayBzdHJ1Y3R1cmUsIGlmIHdlIGRvbid0IHByb2Nlc3MgYWxsIHRoZSBidWZmZXJzIGJlZm9yZSB0aGUKdGFzayBpcyBhY3R1YWxseSBkZXN0cm95ZWQgYW5kIHRoZSB0YXNrIHN0cnVjdHVyZSBmcmVlZCwgdGhlbiB3ZSBjb3VsZAplbmQgdXAgdHJ5aW5nIHRvIGRlcmVmZXJlbmNlIGEgYm9ndXMgcG9pbnRlciBpbiBvbmUgb2YgdGhlIENQVSBidWZmZXJzLgo8L3A+CiAgICAgICAgICA8cD4KV2UgYWxzbyBhZGQgYSBub3RpZmljYXRpb24gd2hlbiBhIGtlcm5lbCBtb2R1bGUgaXMgbG9hZGVkOyB0aGlzIGlzIHNvCnRoYXQgdXNlci1zcGFjZSBjYW4gcmUtcmVhZCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9wcm9jL21vZHVsZXM8L2NvZGU+IHRvCmRldGVybWluZSB0aGUgbG9hZCBhZGRyZXNzZXMgb2Yga2VybmVsIG1vZHVsZSB0ZXh0IHNlY3Rpb25zLiBXaXRob3V0CnRoaXMgbm90aWZpY2F0aW9uLCBzYW1wbGVzIGZvciBhIG5ld2x5LWxvYWRlZCBtb2R1bGUgY291bGQgZ2V0IGxvc3Qgb3IKYmUgYXR0cmlidXRlZCB0byB0aGUgd3JvbmcgbW9kdWxlLgo8L3A+CiAgICAgICAgICA8cD4KVGhlIHN5bmNocm9uaXNhdGlvbiBpdHNlbGYgd29ya3MgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXI6IGZpcnN0LCBtdXR1YWwKZXhjbHVzaW9uIG9uIHRoZSBldmVudCBidWZmZXIgaXMgdGFrZW4uIFJlbWVtYmVyLCB3ZSBkbyBub3QgbmVlZCB0byBkbwp0aGF0IGZvciBlYWNoIENQVSBidWZmZXIsIGFzIHdlIG9ubHkgcmVhZCBmcm9tIHRoZSB0YWlsIGl0ZXJhdG9yICh3aGlsc3QKaW50ZXJydXB0cyBtaWdodCBiZSBhcnJpdmluZyBhdCB0aGUgc2FtZSBidWZmZXIsIGJ1dCB0aGV5IHdpbGwgd3JpdGUgdG8KdGhlIHBvc2l0aW9uIG9mIHRoZSBoZWFkIGl0ZXJhdG9yLCBsZWF2aW5nIHByZXZpb3VzbHkgd3JpdHRlbiBlbnRyaWVzCmludGFjdCkuIFRoZW4sIHdlIHByb2Nlc3MgZWFjaCBDUFUgYnVmZmVyIGluIHR1cm4uIEEgQ1BVIHN3aXRjaApub3RpZmljYXRpb24gaXMgYWRkZWQgdG8gdGhlIGJ1ZmZlciBmaXJzdCAoZm9yCjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGU9Y3B1PC9jb2RlPiBzdXBwb3J0KS4gVGhlbiB0aGUgcHJvY2Vzc2luZyBvZiB0aGUKYWN0dWFsIGRhdGEgc3RhcnRzLgo8L3A+CiAgICAgICAgICA8cD4KQXMgbWVudGlvbmVkLCB0aGUgQ1BVIGJ1ZmZlciBjb25zaXN0cyBvZiB0YXNrIHN3aXRjaCBlbnRyaWVzIGFuZCB0aGUKYWN0dWFsIHNhbXBsZXMuIFdoZW4gdGhlIHJvdXRpbmUgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zeW5jX2J1ZmZlcigpPC9jb2RlPiBzZWVzCmEgdGFzayBzd2l0Y2gsIHRoZSBwcm9jZXNzIElEIGFuZCBwcm9jZXNzIGdyb3VwIElEIGFyZSByZWNvcmRlZCBpbnRvIHRoZQpldmVudCBidWZmZXIsIGFsb25nIHdpdGggYSBkY29va2llIChzZWUgYmVsb3cpIGlkZW50aWZ5aW5nIHRoZQphcHBsaWNhdGlvbiBiaW5hcnkgKGUuZy4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vYmluL2Jhc2g8L2NvZGU+KS4gVGhlCjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5tbWFwX3NlbTwvY29kZT4gZm9yIHRoZSB0YXNrIGlzIHRoZW4gdGFrZW4sIHRvIGFsbG93IHNhZmUKaXRlcmF0aW9uIGFjcm9zcyB0aGUgdGFza3MnIGxpc3Qgb2YgbWFwcGVkIGFyZWFzLiBFYWNoIHNhbXBsZSBpcyB0aGVuCnByb2Nlc3NlZCBhcyBkZXNjcmliZWQgaW4gdGhlIG5leHQgc2VjdGlvbi4KPC9wPgogICAgICAgICAgPHA+CkFmdGVyIGEgYnVmZmVyIGhhcyBiZWVuIHJlYWQsIHRoZSB0YWlsIGl0ZXJhdG9yIGlzIHVwZGF0ZWQgdG8gcmVmbGVjdApob3cgbXVjaCBvZiB0aGUgYnVmZmVyIHdhcyBwcm9jZXNzZWQuIE5vdGUgdGhhdCB3aGVuIHdlIGRldGVybWluZWQgaG93Cm11Y2ggZGF0YSB0aGVyZSB3YXMgdG8gcmVhZCBpbiB0aGUgQ1BVIGJ1ZmZlciwgd2UgYWxzbyBjYWxsZWQKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5jcHVfYnVmZmVyX3Jlc2V0KCk8L2NvZGU+IHRvIHJlc2V0Cjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5sYXN0X3Rhc2s8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0idmFybmFtZSI+bGFzdF9pc19rZXJuZWw8L2NvZGU+LCBhcwp3ZSd2ZSBhbHJlYWR5IG1lbnRpb25lZC4gRHVyaW5nIHRoZSBwcm9jZXNzaW5nLCBtb3JlIHNhbXBsZXMgbWF5IGhhdmUKYmVlbiBhcnJpdmluZyBpbiB0aGUgQ1BVIGJ1ZmZlcjsgdGhpcyBpcyBPSyBiZWNhdXNlIHdlIGFyZSBjYXJlZnVsIHRvCm9ubHkgdXBkYXRlIHRoZSB0YWlsIGl0ZXJhdG9yIHRvIGhvdyBtdWNoIHdlIGFjdHVhbGx5IHJlYWQgLSBvbiB0aGUgbmV4dApidWZmZXIgc3luY2hyb25pc2F0aW9uLCB3ZSB3aWxsIHN0YXJ0IGFnYWluIGZyb20gdGhhdCBwb2ludC4KPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9ImRlbnRyeS1jb29raWVzIj48L2E+Ni6gSWRlbnRpZnlpbmcgYmluYXJ5IGltYWdlczwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KSW4gb3JkZXIgdG8gcHJvZHVjZSB1c2VmdWwgcHJvZmlsZXMsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBhc3NvY2lhdGUgYQpwYXJ0aWN1bGFyIFBDIHZhbHVlIHNhbXBsZSB3aXRoIGFuIGFjdHVhbCBFTEYgYmluYXJ5IG9uIHRoZSBkaXNrLiBUaGlzCmxlYXZlcyB1cyB3aXRoIHRoZSBwcm9ibGVtIG9mIGhvdyB0byBleHBvcnQgdGhpcyBpbmZvcm1hdGlvbiB0bwp1c2VyLXNwYWNlLiBXZSBjcmVhdGUgdW5pcXVlIElEcyB0aGF0IGlkZW50aWZ5IGEgcGFydGljdWxhciBkaXJlY3RvcnkKZW50cnkgKGRlbnRyeSksIGFuZCB3cml0ZSB0aG9zZSBJRHMgaW50byB0aGUgZXZlbnQgYnVmZmVyLiBMYXRlciBvbiwKdGhlIHVzZXItc3BhY2UgZGFlbW9uIGNhbiBjYWxsIHRoZSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmxvb2t1cF9kY29va2llPC9jb2RlPgpzeXN0ZW0gY2FsbCwgd2hpY2ggbG9va3MgdXAgdGhlIElEIGFuZCBmaWxscyBpbiB0aGUgZnVsbCBwYXRoIG9mCnRoZSBiaW5hcnkgaW1hZ2UgaW4gdGhlIGJ1ZmZlciB1c2VyLXNwYWNlIHBhc3NlcyBpbi4gVGhlc2UgSURzIGFyZQptYWludGFpbmVkIGJ5IHRoZSBjb2RlIGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZnMvZGNvb2tpZXMuYzwvY29kZT47IHRoZQpjYWNoZSBsYXN0cyBmb3IgYXMgbG9uZyBhcyB0aGUgZGFlbW9uIGhhcyB0aGUgZXZlbnQgYnVmZmVyIG9wZW4uCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJmaW5kaW5nLWRlbnRyeSI+PC9hPjcuoEZpbmRpbmcgYSBzYW1wbGUncyBiaW5hcnkgaW1hZ2UgYW5kIG9mZnNldDwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KV2UgaGF2ZW4ndCB5ZXQgZGVzY3JpYmVkIGhvdyB3ZSBwcm9jZXNzIHRoZSBhYnNvbHV0ZSBQQyB2YWx1ZSBpbnRvCnNvbWV0aGluZyB1c2FibGUgYnkgdGhlIHVzZXItc3BhY2UgZGFlbW9uLiBXaGVuIHdlIGZpbmQgYSBzYW1wbGUgZW50ZXJlZAppbnRvIHRoZSBDUFUgYnVmZmVyLCB3ZSB0cmF2ZXJzZSB0aGUgbGlzdCBvZiBtYXBwaW5ncyBmb3IgdGhlIHRhc2sKKHJlbWVtYmVyLCB3ZSB3aWxsIGhhdmUgc2VlbiBhIHRhc2sgc3dpdGNoIGVhcmxpZXIsIHNvIHdlIGtub3cgd2hpY2gKdGFzaydzIGxpc3RzIHRvIGxvb2sgYXQpLiBXaGVuIGEgbWFwcGluZyBpcyBmb3VuZCB0aGF0IGNvbnRhaW5zIHRoZSBQQwp2YWx1ZSwgd2UgbG9vayB1cCB0aGUgbWFwcGVkIGZpbGUncyBkZW50cnkgaW4gdGhlIGRjb29raWUgY2FjaGUuIFRoaXMKZ2l2ZXMgdGhlIGRjb29raWUgSUQgdGhhdCB3aWxsIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBtYXBwZWQgZmlsZS4gVGhlbgp3ZSBhbHRlciB0aGUgYWJzb2x1dGUgdmFsdWUgc3VjaCB0aGF0IGl0IGlzIGFuIG9mZnNldCBmcm9tIHRoZSBzdGFydCBvZgp0aGUgZmlsZSBiZWluZyBtYXBwZWQgKHRoZSBtYXBwaW5nIG5lZWQgbm90IHN0YXJ0IGF0IHRoZSBzdGFydCBvZiB0aGUKYWN0dWFsIGZpbGUsIHNvIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhlIG9mZnNldCB2YWx1ZSBvZiB0aGUgbWFwcGluZykuIFdlCnN0b3JlIHRoaXMgZGNvb2tpZSBJRCBpbnRvIHRoZSBldmVudCBidWZmZXI7IHRoaXMgaWRlbnRpZmllcyB3aGljaApiaW5hcnkgdGhlIHNhbXBsZXMgZm9sbG93aW5nIGl0IGFyZSBhZ2FpbnN0LgpJbiB0aGlzIG1hbm5lciwgd2UgaGF2ZSBjb252ZXJ0ZWQgYSBQQyB2YWx1ZSwgd2hpY2ggaGFzIHRyYW5zaXRvcnkKbWVhbmluZyBvbmx5LCBpbnRvIGEgc3RhdGljIG9mZnNldCB2YWx1ZSBmb3IgbGF0ZXIgcHJvY2Vzc2luZyBieSB0aGUKZGFlbW9uLgo8L3A+CiAgICAgICAgICA8cD4KV2UgYWxzbyBhdHRlbXB0IHRvIGF2b2lkIHRoZSByZWxhdGl2ZWx5IGV4cGVuc2l2ZSBsb29rdXAgb2YgdGhlIGRlbnRyeQpjb29raWUgdmFsdWUgYnkgc3RvcmluZyB0aGUgY29va2llIHZhbHVlIGRpcmVjdGx5IGludG8gdGhlIGRlbnRyeQppdHNlbGY7IHRoZW4gd2UgY2FuIHNpbXBseSBkZXJpdmUgdGhlIGNvb2tpZSB2YWx1ZSBpbW1lZGlhdGVseSB3aGVuIHdlCmZpbmQgdGhlIGNvcnJlY3QgbWFwcGluZy4KPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2hhcHRlciIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9InNhbXBsZS1maWxlcyI+PC9hPkNoYXB0ZXKgNC6gR2VuZXJhdGluZyBzYW1wbGUgZmlsZXM8L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRvYyI+CiAgICAgICAgICA8cD4KICAgICAgICAgICAgPGI+VGFibGUgb2YgQ29udGVudHM8L2I+CiAgICAgICAgICA8L3A+CiAgICAgICAgICA8ZGw+CiAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Byb2Nlc3NpbmctYnVmZmVyIj4xLiBQcm9jZXNzaW5nIHRoZSBidWZmZXI8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNoYW5kbGluZy1rZXJuZWwtc2FtcGxlcyI+MS4xLiBIYW5kbGluZyBrZXJuZWwgc2FtcGxlczwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzYW1wbGUtZmlsZS1nZW5lcmF0aW9uIj4yLiBMb2NhdGluZyBhbmQgY3JlYXRpbmcgc2FtcGxlIGZpbGVzPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc2FtcGxlLWZpbGUtd3JpdGluZyI+My4gV3JpdGluZyBkYXRhIHRvIGEgc2FtcGxlIGZpbGU8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgPC9kbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJwcm9jZXNzaW5nLWJ1ZmZlciI+PC9hPjEuoFByb2Nlc3NpbmcgdGhlIGJ1ZmZlcjwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KTm93IHdlIGNhbiBtb3ZlIG9udG8gdXNlci1zcGFjZSBpbiBvdXIgZGVzY3JpcHRpb24gb2YgaG93IHJhdyBpbnRlcnJ1cHQKc2FtcGxlcyBhcmUgcHJvY2Vzc2VkIGludG8gdXNlZnVsIGluZm9ybWF0aW9uLiBBcyB3ZSBkZXNjcmliZWQgaW4KcHJldmlvdXMgc2VjdGlvbnMsIHRoZSBrZXJuZWwgT1Byb2ZpbGUgZHJpdmVyIGNyZWF0ZXMgYSBsYXJnZSBidWZmZXIgb2YKc2FtcGxlIGRhdGEgY29uc2lzdGluZyBvZiBvZmZzZXQgdmFsdWVzLCBpbnRlcnNwZXJzZWQgd2l0aApub3RpZmljYXRpb24gb2YgY2hhbmdlcyBpbiBjb250ZXh0LiBUaGVzZSBjb250ZXh0IGNoYW5nZXMgaW5kaWNhdGUgaG93CmZvbGxvd2luZyBzYW1wbGVzIHNob3VsZCBiZSBhdHRyaWJ1dGVkLCBhbmQgaW5jbHVkZSB0YXNrIHN3aXRjaGVzLCBDUFUKY2hhbmdlcywgYW5kIHdoaWNoIGRjb29raWUgdGhlIHNhbXBsZSB2YWx1ZSBpcyBhZ2FpbnN0LiBCeSBwcm9jZXNzaW5nCnRoaXMgYnVmZmVyIGVudHJ5LWJ5LWVudHJ5LCB3ZSBjYW4gZGV0ZXJtaW5lIHdoZXJlIHRoZSBzYW1wbGVzIHNob3VsZApiZSBhY2NyZWRpdGVkIHRvLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgd2hlbiB1c2luZyB0aGUgCjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGU8L2NvZGU+Lgo8L3A+CiAgICAgICAgICA8cD4KVGhlIGZpbGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kYWVtb24vb3BkX3RyYW5zLmM8L2NvZGU+IGNvbnRhaW5zIHRoZSBiYXNpYyByb3V0aW5lCmZvciB0aGUgYnVmZmVyIHByb2Nlc3NpbmcuIFRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+c3RydWN0IHRyYW5zaWVudDwvY29kZT4Kc3RydWN0dXJlIGlzIHVzZWQgdG8gaG9sZCBjaGFuZ2VzIGluIGNvbnRleHQuIEl0cyBtZW1iZXJzIGFyZSBtb2RpZmllZAphcyB3ZSBwcm9jZXNzIGVhY2ggZW50cnk7IGl0IGlzIHBhc3NlZCBpbnRvIHRoZSByb3V0aW5lcyBpbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRhZW1vbi9vcGRfc2ZpbGUuYzwvY29kZT4gZm9yIGFjdHVhbGx5IGxvZ2dpbmcgdGhlIHNhbXBsZQp0byBhIHBhcnRpY3VsYXIgc2FtcGxlIGZpbGUgKHdoaWNoIHdpbGwgYmUgaGVsZCBpbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi92YXIvbGliL29wcm9maWxlL3NhbXBsZXMvY3VycmVudDwvY29kZT4pLgo8L3A+CiAgICAgICAgICA8cD4KVGhlIGJ1ZmZlciBmb3JtYXQgaXMgZGVzaWduZWQgZm9yIGNvbmNpc2VuZXNzLCBhcyBoaWdoIHNhbXBsaW5nIHJhdGVzCmNhbiBlYXNpbHkgZ2VuZXJhdGUgYSBsb3Qgb2YgZGF0YS4gVGh1cywgY29udGV4dCBjaGFuZ2VzIGFyZSBwcmVmaXhlZApieSBhbiBlc2NhcGUgY29kZSwgaWRlbnRpZmllZCBieSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmlzX2VzY2FwZV9jb2RlKCk8L2NvZGU+LgpJZiBhbiBlc2NhcGUgY29kZSBpcyBmb3VuZCwgdGhlIG5leHQgZW50cnkgaW4gdGhlIGJ1ZmZlciBpZGVudGlmaWVzCndoYXQgdHlwZSBvZiBjb250ZXh0IGNoYW5nZSBpcyBiZWluZyByZWFkLiBUaGVzZSBhcmUgaGFuZGVkIG9mZiB0bwp2YXJpb3VzIGhhbmRsZXJzIChzZWUgdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5oYW5kbGVyczwvY29kZT4gYXJyYXkpLCB3aGljaAptb2RpZnkgdGhlIHRyYW5zaWVudCBzdHJ1Y3R1cmUgYXMgYXBwcm9wcmlhdGUuIElmIGl0J3Mgbm90IGFuIGVzY2FwZQpjb2RlLCB0aGVuIGl0IG11c3QgYmUgYSBQQyBvZmZzZXQgdmFsdWUsIGFuZCB0aGUgdmVyeSBuZXh0IGVudHJ5IHdpbGwKYmUgdGhlIG51bWVyaWMgaGFyZHdhcmUgY291bnRlci4gVGhlc2UgdmFsdWVzIGFyZSByZWFkIGFuZCByZWNvcmRlZAppbiB0aGUgdHJhbnNpZW50IHN0cnVjdHVyZTsgd2UgdGhlbiBkbyBhIGxvb2t1cCB0byBmaW5kIHRoZSBjb3JyZWN0CnNhbXBsZSBmaWxlLCBhbmQgbG9nIHRoZSBzYW1wbGUsIGFzIGRlc2NyaWJlZCBpbiB0aGUgbmV4dCBzZWN0aW9uLgo8L3A+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJoYW5kbGluZy1rZXJuZWwtc2FtcGxlcyI+PC9hPjEuMS6gSGFuZGxpbmcga2VybmVsIHNhbXBsZXM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cD4KU2FtcGxlcyBmcm9tIGtlcm5lbCBjb2RlIHJlcXVpcmUgYSBsaXR0bGUgc3BlY2lhbCBoYW5kbGluZy4gQmVjYXVzZQp0aGUgYmluYXJ5IHRleHQgd2hpY2ggdGhlIHNhbXBsZSBpcyBhZ2FpbnN0IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8KYW55IGZpbGUgdGhhdCB0aGUga2VybmVsIGRpcmVjdGx5IGtub3dzIGFib3V0LCB0aGUgT1Byb2ZpbGUgZHJpdmVyCnN0b3JlcyB0aGUgYWJzb2x1dGUgUEMgdmFsdWUgaW4gdGhlIGJ1ZmZlciwgaW5zdGVhZCBvZiB0aGUgZmlsZSBvZmZzZXQuCk9mIGNvdXJzZSwgd2UgbmVlZCBhbiBvZmZzZXQgYWdhaW5zdCBzb21lIHBhcnRpY3VsYXIgYmluYXJ5LiBUbyBoYW5kbGUKdGhpcywgd2Uga2VlcCBhIGxpc3Qgb2YgbG9hZGVkIG1vZHVsZXMgYnkgcGFyc2luZwo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9wcm9jL21vZHVsZXM8L2NvZGU+IGFzIG5lZWRlZC4gV2hlbiBhIG1vZHVsZSBpcyBsb2FkZWQsCmEgbm90aWZpY2F0aW9uIGlzIHBsYWNlZCBpbiB0aGUgT1Byb2ZpbGUgYnVmZmVyLCBhbmQgdGhpcyB0cmlnZ2VycyBhCnJlLXJlYWQuIFdlIHN0b3JlIHRoZSBtb2R1bGUgbmFtZSwgYW5kIHRoZSBsb2FkaW5nIGFkZHJlc3MgYW5kIHNpemUuClRoaXMgaXMgYWxzbyBkb25lIGZvciB0aGUgbWFpbiBrZXJuZWwgaW1hZ2UsIGFzIHNwZWNpZmllZCBieSB0aGUgdXNlci4KVGhlIGFic29sdXRlIFBDIHZhbHVlIGlzIG1hdGNoZWQgYWdhaW5zdCBlYWNoIGFkZHJlc3MgcmFuZ2UsIGFuZAptb2RpZmllZCBpbnRvIGFuIG9mZnNldCB3aGVuIHRoZSBtYXRjaGluZyBtb2R1bGUgaXMgZm91bmQuIFNlZSAKPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kYWVtb24vb3BkX2tlcm5lbC5jPC9jb2RlPiBmb3IgdGhlIGRldGFpbHMuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9InNhbXBsZS1maWxlLWdlbmVyYXRpb24iPjwvYT4yLqBMb2NhdGluZyBhbmQgY3JlYXRpbmcgc2FtcGxlIGZpbGVzPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpXZSBoYXZlIGEgc2FtcGxlIHZhbHVlIGFuZCBpdHMgc2F0ZWxsaXRlIGRhdGEgc3RvcmVkIGluIGEKPGNvZGUgY2xhc3M9InZhcm5hbWUiPnN0cnVjdCB0cmFuc2llbnQ8L2NvZGU+LCBhbmQgd2UgbXVzdCBsb2NhdGUgYW4KYWN0dWFsIHNhbXBsZSBmaWxlIHRvIHN0b3JlIHRoZSBzYW1wbGUgaW4sIHVzaW5nIHRoZSBjb250ZXh0CmluZm9ybWF0aW9uIGluIHRoZSB0cmFuc2llbnQgc3RydWN0dXJlIGFzIGEga2V5LiBUaGUgdHJhbnNpZW50IGRhdGEgdG8Kc2FtcGxlIGZpbGUgbG9va3VwIGlzIGhhbmRsZWQgaW4KPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kYWVtb24vb3BkX3NmaWxlLmM8L2NvZGU+LiBBIGhhc2ggaXMgdGFrZW4gb2YgdGhlCnRyYW5zaWVudCB2YWx1ZXMgdGhhdCBhcmUgcmVsZXZhbnQgKGRlcGVuZGluZyB1cG9uIHRoZSBzZXR0aW5nIG9mCjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGU8L2NvZGU+LCBzb21lIHZhbHVlcyBtaWdodCBiZSBpcnJlbGV2YW50KSwgYW5kIHRoZQpoYXNoIHZhbHVlIGlzIHVzZWQgdG8gbG9va3VwIHRoZSBsaXN0IG9mIGN1cnJlbnRseSBvcGVuIHNhbXBsZSBmaWxlcy4KT2YgY291cnNlLCB0aGUgc2FtcGxlIGZpbGUgbWlnaHQgbm90IGJlIGZvdW5kLCBpbiB3aGljaCBjYXNlIHdlIG5lZWQKdG8gY3JlYXRlIGFuZCBvcGVuIGl0Lgo8L3A+CiAgICAgICAgICA8cD4KT1Byb2ZpbGUgdXNlcyBhIHJhdGhlciBjb21wbGV4IHNjaGVtZSBmb3IgbmFtaW5nIHNhbXBsZSBmaWxlcywgaW4gb3JkZXIKdG8gbWFrZSBzZWxlY3RpbmcgcmVsZXZhbnQgc2FtcGxlIGZpbGVzIGVhc2llciBmb3IgdGhlIHBvc3QtcHJvZmlsaW5nCnV0aWxpdGllcy4gVGhlIGV4YWN0IGRldGFpbHMgb2YgdGhlIHNjaGVtZSBhcmUgZ2l2ZW4gaW4KPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vcHJvZmlsZS10ZXN0cy9wcF9pbnRlcmZhY2U8L2NvZGU+LCBidXQgZm9yIG5vdyBpdCB3aWxsCnN1ZmZpY2UgdG8gcmVtZW1iZXIgdGhhdCB0aGUgZmlsZW5hbWUgd2lsbCBpbmNsdWRlIG9ubHkgcmVsZXZhbnQKaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50IHNldHRpbmdzLCB0YWtlbiBmcm9tIHRoZSB0cmFuc2llbnQgZGF0YS4gQQpmdWxseS1zcGVjaWZpZWQgZmlsZW5hbWUgbG9va3Mgc29tZXRoaW5nIGxpa2UgOgo8L3A+CiAgICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPgovdmFyL2xpYi9vcHJvZmlsZS9zYW1wbGVzL2N1cnJlbnQve3Jvb3R9L3Vzci9iaW4veG1tcy97ZGVwfS97cm9vdH0vbGliL3Rscy9saWJjLTIuMy4yLnNvL0NQVV9DTEtfVU5IQUxURUQuMTAwMDAwLjAuMjgwODIuMjgwODkuMAo8L2NvZGU+CiAgICAgICAgICA8cD4KSXQgc2hvdWxkIGJlIGNsZWFyIHRoYXQgdGhpcyBpZGVudGlmaWVzIHN1Y2ggaW5mb3JtYXRpb24gYXMgdGhlCmFwcGxpY2F0aW9uIGJpbmFyeSwgdGhlIGRlcGVuZGVudCAobGlicmFyeSkgYmluYXJ5LCB0aGUgaGFyZHdhcmUgZXZlbnQsCmFuZCB0aGUgcHJvY2VzcyBhbmQgdGhyZWFkIElELiBUeXBpY2FsbHksIG5vdCBhbGwgdGhpcyBpbmZvcm1hdGlvbiBpcwpuZWVkZWQsIGluIHdoaWNoIGNhc2VzIHNvbWUgdmFsdWVzIG1heSBiZSByZXBsYWNlZCB3aXRoIHRoZSB0b2tlbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmFsbDwvY29kZT4uCjwvcD4KICAgICAgICAgIDxwPgpUaGUgY29kZSB0aGF0IGdlbmVyYXRlcyB0aGlzIGZpbGVuYW1lIGFuZCBvcGVucyB0aGUgZmlsZSBpcyBmb3VuZCBpbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRhZW1vbi9vcGRfbWFuZ2xpbmcuYzwvY29kZT4uIFlvdSBtYXkgaGF2ZSByZWFsaXNlZCB0aGF0CmF0IHRoaXMgcG9pbnQsIHdlIGRvIG5vdCBoYXZlIHRoZSBiaW5hcnkgaW1hZ2UgZmlsZSBuYW1lcywgb25seSB0aGUKZGNvb2tpZSB2YWx1ZXMuIEluIG9yZGVyIHRvIGRldGVybWluZSBhIGZpbGUgbmFtZSwgYSBkY29va2llIHZhbHVlIGlzCmxvb2tlZCB1cCBpbiB0aGUgZGNvb2tpZSBjYWNoZS4gVGhpcyBpcyB0byBiZSBmb3VuZCBpbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRhZW1vbi9vcGRfY29va2llLmM8L2NvZGU+LiBTaW5jZSBkY29va2llcyBhcmUgYm90aApwZXJzaXN0ZW50IGFuZCB1bmlxdWUgZHVyaW5nIGEgc2FtcGxpbmcgc2Vzc2lvbiwgd2UgY2FuIGNhY2hlIHRoZQp2YWx1ZXMuIElmIHRoZSB2YWx1ZSBpcyBub3QgZm91bmQgaW4gdGhlIGNhY2hlLCB0aGVuIHdlIGFzayB0aGUga2VybmVsCnRvIGRvIHRoZSBsb29rdXAgZnJvbSB2YWx1ZSB0byBmaWxlIG5hbWUgZm9yIHVzIGJ5IGNhbGxpbmcKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5sb29rdXBfZGNvb2tpZSgpPC9jb2RlPi4gVGhpcyBsb29rcyB1cCB0aGUgdmFsdWUgaW4gYQprZXJuZWwtc2lkZSBjYWNoZSAoc2VlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZnMvZGNvb2tpZXMuYzwvY29kZT4pIGFuZCByZXR1cm5zCnRoZSBmdWxseS1xdWFsaWZpZWQgZmlsZSBuYW1lIHRvIHVzZXJzcGFjZS4KPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9InNhbXBsZS1maWxlLXdyaXRpbmciPjwvYT4zLqBXcml0aW5nIGRhdGEgdG8gYSBzYW1wbGUgZmlsZTwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KRWFjaCBzcGVjaWZpYyBzYW1wbGUgZmlsZSBpcyBhIGhhc2hlZCBjb2xsZWN0aW9uLCB3aGVyZSB0aGUga2V5IGlzCnRoZSBQQyBvZmZzZXQgZnJvbSB0aGUgdHJhbnNpZW50IGRhdGEsIGFuZCB0aGUgdmFsdWUgaXMgdGhlIG51bWJlciBvZgpzYW1wbGVzIHJlY29yZGVkIGFnYWluc3QgdGhhdCBvZmZzZXQuIFRoZSBmaWxlcyBhcmUKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tbWFwKCk8L2NvZGU+ZWQgaW50byB0aGUgZGFlbW9uJ3MgbWVtb3J5IHNwYWNlLiBUaGUgY29kZQp0byBhY3R1YWxseSBsb2cgdGhlIHdyaXRlIGFnYWluc3QgdGhlIHNhbXBsZSBmaWxlIGNhbiBiZSBmb3VuZCBpbgo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmxpYmRiLzwvY29kZT4uCjwvcD4KICAgICAgICAgIDxwPgpGb3IgcmVjb3JkaW5nIHN0YWNrIHRyYWNlcywgd2UgaGF2ZSBhIG1vcmUgY29tcGxpY2F0ZWQgc2FtcGxlIGZpbGVuYW1lCm1hbmdsaW5nIHNjaGVtZSB0aGF0IGFsbG93cyB1cyB0byBpZGVudGlmeSBjcm9zcy1iaW5hcnkgY2FsbHMuIFdlIHVzZQp0aGUgc2FtZSBzYW1wbGUgZmlsZSBmb3JtYXQsIHdoZXJlIHRoZSBrZXkgaXMgYSA2NC1iaXQgdmFsdWUgY29tcG9zZWQKZnJvbSB0aGUgZnJvbSx0byBwYWlyIG9mIG9mZnNldHMuCjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNoYXB0ZXIiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiPjxhIGlkPSJvdXRwdXQiPjwvYT5DaGFwdGVyoDUuoEdlbmVyYXRpbmcgdXNlZnVsIG91dHB1dDwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9jIj4KICAgICAgICAgIDxwPgogICAgICAgICAgICA8Yj5UYWJsZSBvZiBDb250ZW50czwvYj4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkbD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjcHJvZmlsZS1zcGVjaWZpY2F0aW9uIj4xLiBIYW5kbGluZyB0aGUgcHJvZmlsZSBzcGVjaWZpY2F0aW9uPC9hPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MSI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc2FtcGxlLWZpbGUtY29sbGF0aW5nIj4yLiBDb2xsYXRpbmcgdGhlIGNhbmRpZGF0ZSBzYW1wbGUgZmlsZXM8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzYW1wbGUtZmlsZS1jbGFzc2lmeWluZyI+Mi4xLiBDbGFzc2lmeWluZyBzYW1wbGUgZmlsZXM8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NhbXBsZS1maWxlLWludmVydGluZyI+Mi4yLiBDcmVhdGluZyBpbnZlcnRlZCBwcm9maWxlIGxpc3RzPC9hPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2R0PgogICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgIDxkdD4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VjdDEiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI2dlbmVyYXRpbmctcHJvZmlsZS1kYXRhIj4zLiBHZW5lcmF0aW5nIHByb2ZpbGUgZGF0YTwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2JmZCI+My4xLiBQcm9jZXNzaW5nIHRoZSBiaW5hcnkgaW1hZ2U8L2E+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZHQ+CiAgICAgICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWN0MiI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Byb2Nlc3Npbmctc2FtcGxlLWZpbGVzIj4zLjIuIFByb2Nlc3NpbmcgdGhlIHNhbXBsZSBmaWxlczwvYT4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kdD4KICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8ZHQ+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlY3QxIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNnZW5lcmF0aW5nLW91dHB1dCI+NC4gR2VuZXJhdGluZyBvdXRwdXQ8L2E+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2R0PgogICAgICAgICAgPC9kbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cD4KQWxsIG9mIHRoZSB0b29scyB1c2VkIHRvIGdlbmVyYXRlIGh1bWFuLXJlYWRhYmxlIG91dHB1dCBoYXZlIHRvIHRha2UKcm91Z2hseSB0aGUgc2FtZSBzdGVwcyB0byBjb2xsZWN0IHRoZSBkYXRhIGZvciBwcm9jZXNzaW5nLiBGaXJzdCwgdGhlCnByb2ZpbGUgc3BlY2lmaWNhdGlvbiBnaXZlbiBieSB0aGUgdXNlciBoYXMgdG8gYmUgcGFyc2VkLiBOZXh0LCBhIGxpc3QKb2Ygc2FtcGxlIGZpbGVzIG1hdGNoaW5nIHRoZSBzcGVjaWZpY2F0aW9uIGhhcyB0byBvYnRhaW5lZC4gVXNpbmcgdGhpcwpsaXN0LCB3ZSBuZWVkIHRvIGxvY2F0ZSB0aGUgYmluYXJ5IGZpbGUgZm9yIGVhY2ggc2FtcGxlIGZpbGUsIGFuZCB0aGVuCnVzZSB0aGVtIHRvIGV4dHJhY3QgbWVhbmluZ2Z1bCBkYXRhLCBiZWZvcmUgYSBmaW5hbCBjb2xsYXRpb24gYW5kCnByZXNlbnRhdGlvbiB0byB0aGUgdXNlci4KPC9wPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9InByb2ZpbGUtc3BlY2lmaWNhdGlvbiI+PC9hPjEuoEhhbmRsaW5nIHRoZSBwcm9maWxlIHNwZWNpZmljYXRpb248L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+ClRoZSBwcm9maWxlIHNwZWNpZmljYXRpb24gcHJlc2VudGVkIGJ5IHRoZSB1c2VyIGlzIHBhcnNlZCBpbgp0aGUgZnVuY3Rpb24gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wcm9maWxlX3NwZWM6OmNyZWF0ZSgpPC9jb2RlPi4gVGhpcwpjcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHNwZWNpZmljYXRpb24uIFRoZW4gd2UKdXNlIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHJvZmlsZV9zcGVjOjpnZW5lcmF0ZV9maWxlX2xpc3QoKTwvY29kZT4KdG8gc2VhcmNoIGZvciBhbGwgc2FtcGxlIGZpbGVzIGFuZCBtYXRjaCB0aGVtIGFnYWluc3QgdGhlCjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5wcm9maWxlX3NwZWM8L2NvZGU+Lgo8L3A+CiAgICAgICAgICA8cD4KVG8gZW5hYmxlIHRoaXMgbWF0Y2hpbmcgcHJvY2VzcyB0byB3b3JrLCB0aGUgYXR0cmlidXRlcyBvZgplYWNoIHNhbXBsZSBmaWxlIGlzIGVuY29kZWQgaW4gaXRzIGZpbGVuYW1lLiBUaGlzIGlzIGEgbG93LXRlY2gKYXBwcm9hY2ggdG8gbWF0Y2hpbmcgc3BlY2lmaWNhdGlvbnMgYWdhaW5zdCBjYW5kaWRhdGUgc2FtcGxlCmZpbGVzLCBidXQgaXQgd29ya3MgcmVhc29uYWJseSB3ZWxsLiBBIHR5cGljYWwgc2FtcGxlIGZpbGUKbWlnaHQgbG9vayBsaWtlIHRoZXNlOgo8L3A+CiAgICAgICAgICA8dGFibGUgeG1sbnM9IiIgYm9yZGVyPSIwIiBzdHlsZT0iYmFja2dyb3VuZDogI0UwRTBFMDsiIHdpZHRoPSI5MCUiPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2NyZWVuIj4KL3Zhci9saWIvb3Byb2ZpbGUvc2FtcGxlcy9jdXJyZW50L3tyb290fS9iaW4vbHMve2RlcH0ve3Jvb3R9L2Jpbi9scy97Y2d9L3tyb290fS9iaW4vbHMvQ1BVX0NMS19VTkhBTFRFRC4xMDAwMDAuMC5hbGwuYWxsLmFsbAovdmFyL2xpYi9vcHJvZmlsZS9zYW1wbGVzL2N1cnJlbnQve3Jvb3R9L2Jpbi9scy97ZGVwfS97cm9vdH0vYmluL2xzL0NQVV9DTEtfVU5IQUxURUQuMTAwMDAwLjAuYWxsLmFsbC5hbGwKL3Zhci9saWIvb3Byb2ZpbGUvc2FtcGxlcy9jdXJyZW50L3tyb290fS9iaW4vbHMve2RlcH0ve3Jvb3R9L2Jpbi9scy9DUFVfQ0xLX1VOSEFMVEVELjEwMDAwMC4wLjc0MjMuNzQyNC4wCi92YXIvbGliL29wcm9maWxlL3NhbXBsZXMvY3VycmVudC97a2Vybn0vcjEyOC97ZGVwfS97a2Vybn0vcjEyOC9DUFVfQ0xLX1VOSEFMVEVELjEwMDAwMC4wLmFsbC5hbGwuYWxsCjwvcHJlPgogICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgPHA+ClRoaXMgbG9va3MgdW5uZWNlc3NhcmlseSBjb21wbGV4LCBidXQgaXQncyBhY3R1YWxseSBmYWlybHkgc2ltcGxlLiBGaXJzdAp3ZSBoYXZlIHRoZSBzZXNzaW9uIG9mIHRoZSBzYW1wbGUsIGhlcmUKPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vdmFyL2xpYi9vcHJvZmlsZS9zYW1wbGVzL2N1cnJlbnQ8L2NvZGU+LiBUaGlzIGNvdWxkCmVxdWFsbHkgd2VsbCBiZSBpbnNpZGUgYW4gYXJjaGl2ZSBmcm9tIDxzcGFuPjxzdHJvbmcgY2xhc3M9ImNvbW1hbmQiPm9wYXJjaGl2ZTwvc3Ryb25nPjwvc3Bhbj4uCk5leHQgd2UgaGF2ZSBvbmUgb2YgdGhlIHRva2VucyA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPntyb290fTwvY29kZT4gb3IKPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj57a2Vybn08L2NvZGU+LiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPntyb290fTwvY29kZT4gaW5kaWNhdGVzCnRoYXQgdGhlIGJpbmFyeSBpcyBmb3VuZCBvbiBhIGZpbGUgc3lzdGVtLCBhbmQgd2Ugd2lsbCBlbmNvZGUgaXRzIHBhdGgKaW4gdGhlIG5leHQgc2VjdGlvbiAoZS5nLiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9iaW4vbHM8L2NvZGU+KS4KPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj57a2Vybn08L2NvZGU+IGluZGljYXRlcyBhIGtlcm5lbCBtb2R1bGUgLSBvbiAyLjYga2VybmVscwp0aGUgcGF0aCBpbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZyb20gdGhlIGtlcm5lbCwgc28gd2UgaGF2ZSB0bwpzcGVjaWFsLWNhc2Uga2VybmVsIG1vZHVsZXMgbGlrZSB0aGlzOyB3ZSBlbmNvZGUgbWVyZWx5IHRoZSBuYW1lIG9mIHRoZQptb2R1bGUgYXMgbG9hZGVkLgo8L3A+CiAgICAgICAgICA8cD4KTmV4dCB0aGVyZSBpcyBhIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+e2RlcH08L2NvZGU+IHRva2VuLCBpbmRpY2F0aW5nIGFub3RoZXIKdG9rZW4vcGF0aCB3aGljaCBpZGVudGlmaWVzIHRoZSBkZXBlbmRlbnQgYmluYXJ5IGltYWdlLiBUaGlzIGlzIHVzZWQgZXZlbiBmb3IKdGhlICJwcmltYXJ5IiBiaW5hcnkgKGkuZS4gdGhlIG9uZSB0aGF0IHdhcwo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmV4ZWN2ZSgpPC9jb2RlPmQpLCBhcyBpdCBzaW1wbGlmaWVzIHByb2Nlc3NpbmcuIEZpbmFsbHksCmlmIHRoaXMgc2FtcGxlIGZpbGUgaXMgYSBub3JtYWwgZmxhdCBwcm9maWxlLCB0aGUgYWN0dWFsIGZpbGUgaXMgbmV4dCBpbgp0aGUgcGF0aC4gSWYgaXQncyBhIGNhbGwtZ3JhcGggc2FtcGxlIGZpbGUsIHdlIG5lZWQgb25lIGZ1cnRoZXIKc3BlY2lmaWNhdGlvbiwgdG8gYWxsb3cgdXMgdG8gaWRlbnRpZnkgY3Jvc3MtYmluYXJ5IGFyY3MgaW4gdGhlIGNhbGwKZ3JhcGguCjwvcD4KICAgICAgICAgIDxwPgpUaGUgYWN0dWFsIHNhbXBsZSBmaWxlIG5hbWUgaXMgZG90LXNlcGFyYXRlZCwgd2hlcmUgdGhlIGZpZWxkcyBhcmUsIGluCm9yZGVyOiBldmVudCBuYW1lLCBldmVudCBjb3VudCwgdW5pdCBtYXNrLCB0YXNrIGdyb3VwIElELCB0YXNrIElELCBhbmQKQ1BVIG51bWJlci4KPC9wPgogICAgICAgICAgPHA+ClRoaXMgc2FtcGxlIGZpbGUgY2FuIGJlIHJlbGlhYmx5IHBhcnNlZCAod2l0aAo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnBhcnNlX2ZpbGVuYW1lKCk8L2NvZGU+KSBpbnRvIGEKPGNvZGUgY2xhc3M9InZhcm5hbWUiPmZpbGVuYW1lX3NwZWM8L2NvZGU+LiBGaW5hbGx5LCB3ZSBjYW4gY2hlY2sgd2hldGhlciB0bwppbmNsdWRlIHRoZSBzYW1wbGUgZmlsZSBpbiB0aGUgZmluYWwgcmVzdWx0cyBieSBjb21wYXJpbmcgdGhpcwo8Y29kZSBjbGFzcz0idmFybmFtZSI+ZmlsZW5hbWVfc3BlYzwvY29kZT4gYWdhaW5zdCB0aGUKPGNvZGUgY2xhc3M9InZhcm5hbWUiPnByb2ZpbGVfc3BlYzwvY29kZT4gdGhlIHVzZXIgc3BlY2lmaWVkIChmb3IgdGhlIGludGVyZXN0ZWQsCnNlZSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnZhbGlkX2NhbmRpZGF0ZSgpPC9jb2RlPiBhbmQKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wcm9maWxlX3NwZWM6Om1hdGNoPC9jb2RlPikuIFRoZW4gY29tZXMgdGhlIHJlYWxseQpjb21wbGljYXRlZCBiaXQuLi4KPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9InNhbXBsZS1maWxlLWNvbGxhdGluZyI+PC9hPjIuoENvbGxhdGluZyB0aGUgY2FuZGlkYXRlIHNhbXBsZSBmaWxlczwvaDI+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cD4KQXQgdGhpcyBwb2ludCB3ZSBoYXZlIGEgZHVwbGljYXRlLWZyZWUgbGlzdCBvZiBzYW1wbGUgZmlsZXMgd2UgbmVlZAp0byBwcm9jZXNzLiBCdXQgZmlyc3Qgd2UgbmVlZCB0byBkbyBzb21lIGZ1cnRoZXIgYXJyYW5nZW1lbnQ6IHdlCm5lZWQgdG8gY2xhc3NpZnkgZWFjaCBzYW1wbGUgZmlsZSwgYW5kIHdlIG1heSBhbHNvIG5lZWQgdG8gImludmVydCIKdGhlIHByb2ZpbGVzLgo8L3A+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJzYW1wbGUtZmlsZS1jbGFzc2lmeWluZyI+PC9hPjIuMS6gQ2xhc3NpZnlpbmcgc2FtcGxlIGZpbGVzPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHA+Ckl0J3MgcG9zc2libGUgZm9yIHV0aWxpdGllcyBsaWtlIDxzcGFuPjxzdHJvbmcgY2xhc3M9ImNvbW1hbmQiPm9wcmVwb3J0PC9zdHJvbmc+PC9zcGFuPiB0byBzaG93IApkYXRhIGluIGNvbHVtbmFyIGZvcm1hdDogZm9yIGV4YW1wbGUsIHdlIG1pZ2h0IHdhbnQgdG8gc2hvdyB0aGUgcmVzdWx0cwpvZiB0d28gdGhyZWFkcyB3aXRoaW4gYSBwcm9jZXNzIHNpZGUtYnktc2lkZS4gVG8gZG8gdGhpcywgd2UgbmVlZAp0byBjbGFzc2lmeSBlYWNoIHNhbXBsZSBmaWxlIGludG8gY2xhc3NlcyAtIHRoZSBjbGFzc2VzIGNvcnJlc3BvbmQKd2l0aCBlYWNoIDxzcGFuPjxzdHJvbmcgY2xhc3M9ImNvbW1hbmQiPm9wcmVwb3J0PC9zdHJvbmc+PC9zcGFuPiBjb2x1bW4uIFRoZSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMKdGhpcyBpcyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmFycmFuZ2VfcHJvZmlsZXMoKTwvY29kZT4uIEVhY2ggc2FtcGxlIGZpbGUKaXMgYWRkZWQgdG8gYSBwYXJ0aWN1bGFyIGNsYXNzLiBJZiB0aGUgc2FtcGxlIGZpbGUgaXMgdGhlIGZpcnN0IGluCml0cyBjbGFzcywgYSB0ZW1wbGF0ZSBpcyBnZW5lcmF0ZWQgZnJvbSB0aGUgc2FtcGxlIGZpbGUuIEVhY2ggdGVtcGxhdGUKZGVzY3JpYmVzIGEgcGFydGljdWxhciBjbGFzcyAodGh1cywgaW4gb3VyIGV4YW1wbGUgYWJvdmUsIGVhY2ggdGVtcGxhdGUKd2lsbCBoYXZlIGEgZGlmZmVyZW50IHRocmVhZCBJRCwgYW5kIHRoaXMgdW5pcXVlbHkgaWRlbnRpZmllcyBlYWNoCmNsYXNzKS4KPC9wPgogICAgICAgICAgICA8cD4KRWFjaCBjbGFzcyBoYXMgYSBsaXN0IG9mICJwcm9maWxlIHNldHMiIG1hdGNoaW5nIHRoYXQgY2xhc3MncyB0ZW1wbGF0ZS4KQSBwcm9maWxlIHNldCBpcyBlaXRoZXIgYSBwcm9maWxlIG9mIHRoZSBwcmltYXJ5IGJpbmFyeSBpbWFnZSwgb3IgYW55IG9mCml0cyBkZXBlbmRlbnQgaW1hZ2VzLiBBZnRlciBhbGwgc2FtcGxlIGZpbGVzIGhhdmUgYmVlbiBsaXN0ZWQgaW4gb25lIG9mCnRoZSBwcm9maWxlIHNldHMgYmVsb25naW5nIHRvIHRoZSBjbGFzc2VzLCB3ZSBoYXZlIHRvIG5hbWUgZWFjaCBjbGFzcyBhbmQKcGVyZm9ybSBlcnJvci1jaGVja2luZy4gVGhpcyBpcyBkb25lIGJ5Cjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+aWRlbnRpZnlfY2xhc3NlcygpPC9jb2RlPjsgZWFjaCBjbGFzcyBpcyBjaGVja2VkIHRvIGVuc3VyZQp0aGF0IGl0cyAiYXhpcyIgaXMgdGhlIHNhbWUgYXMgYWxsIHRoZSBvdGhlcnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UKPHNwYW4+PHN0cm9uZyBjbGFzcz0iY29tbWFuZCI+b3ByZXBvcnQ8L3N0cm9uZz48L3NwYW4+IGNhbid0IHByb2R1Y2UgcmVzdWx0cyBpbiAzRCBmb3JtYXQ6IHdlIGNhbgpvbmx5IGRpZmZlciBpbiBvbmUgYXNwZWN0LCBzdWNoIGFzIHRocmVhZCBJRCBvciBldmVudCBuYW1lLgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3QyIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+PGEgaWQ9InNhbXBsZS1maWxlLWludmVydGluZyI+PC9hPjIuMi6gQ3JlYXRpbmcgaW52ZXJ0ZWQgcHJvZmlsZSBsaXN0czwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpSZW1lbWJlciB0aGF0IGlmIHdlJ3JlIHVzaW5nIGNlcnRhaW4gcHJvZmlsZSBzZXBhcmF0aW9uIG9wdGlvbnMsIHN1Y2ggYXMKIi0tc2VwYXJhdGU9bGliIiwgYSBzaW5nbGUgYmluYXJ5IGNvdWxkIGJlIGEgZGVwZW5kZW50IGltYWdlIHRvIG1hbnkKZGlmZmVyZW50IGJpbmFyaWVzLiBGb3IgZXhhbXBsZSwgdGhlIEMgbGlicmFyeSBpbWFnZSB3b3VsZCBiZSBhCmRlcGVuZGVudCBpbWFnZSBmb3IgbW9zdCBwcm9ncmFtcyB0aGF0IGhhdmUgYmVlbiBwcm9maWxlZC4gQXMgaXQKaGFwcGVucywgdGhpcyBjYW4gY2F1c2Ugc2V2ZXJlIHBlcmZvcm1hbmNlIHByb2JsZW1zOiB3aXRob3V0IHNvbWUKcmUtYXJyYW5nZW1lbnQsIHRoZXNlIGRlcGVuZGVudCBiaW5hcnkgaW1hZ2VzIHdvdWxkIGJlIG9wZW5lZCBlYWNoCnRpbWUgd2UgbmVlZCB0byBwcm9jZXNzIHNhbXBsZSBmaWxlcyBmb3IgZWFjaCBwcm9ncmFtLgo8L3A+CiAgICAgICAgICAgIDxwPgpUaGUgc29sdXRpb24gaXMgdG8gImludmVydCIgdGhlIHByb2ZpbGVzIHZpYQo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmludmVydF9wcm9maWxlcygpPC9jb2RlPi4gV2UgY3JlYXRlIGEgbmV3IGRhdGEgc3RydWN0dXJlCndoZXJlIHRoZSBkZXBlbmRlbnQgYmluYXJ5IGlzIGZpcnN0LCBhbmQgdGhlIHByaW1hcnkgYmluYXJ5IGltYWdlcyB1c2luZwp0aGF0IGRlcGVuZGVudCBiaW5hcnkgYXJlIGxpc3RlZCBhcyBzdWItaW1hZ2VzLiBUaGlzIGhlbHBzIG91cgpwZXJmb3JtYW5jZSBwcm9ibGVtLCBhcyBub3cgd2Ugb25seSBuZWVkIHRvIG9wZW4gZWFjaCBkZXBlbmRlbnQgaW1hZ2UKb25jZSwgd2hlbiB3ZSBwcm9jZXNzIHRoZSBsaXN0IG9mIGludmVydGVkIHByb2ZpbGVzLgo8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIGlkPSJnZW5lcmF0aW5nLXByb2ZpbGUtZGF0YSI+PC9hPjMuoEdlbmVyYXRpbmcgcHJvZmlsZSBkYXRhPC9oMj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwPgpUaGluZ3MgZG9uJ3QgZ2V0IGFueSBzaW1wbGVyIGF0IHRoaXMgcG9pbnQsIHVuZm9ydHVuYXRlbHkuIEF0IHRoaXMgcG9pbnQKd2UndmUgY29sbGVjdGVkIGFuZCBjbGFzc2lmaWVkIHRoZSBzYW1wbGUgZmlsZXMgaW50byB0aGUgc2V0IG9mIGludmVydGVkCnByb2ZpbGVzLCBhcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIHNlY3Rpb24uIE5vdyB3ZSBuZWVkIHRvIHByb2Nlc3MKZWFjaCBpbnZlcnRlZCBwcm9maWxlIGFuZCBtYWtlIHNvbWV0aGluZyBvZiB0aGUgZGF0YS4gVGhlIGVudHJ5IHBvaW50CmZvciB0aGlzIGlzIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cG9wdWxhdGVfZm9yX2ltYWdlKCk8L2NvZGU+Lgo8L3A+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0MiIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPjxhIGlkPSJiZmQiPjwvYT4zLjEuoFByb2Nlc3NpbmcgdGhlIGJpbmFyeSBpbWFnZTwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpUaGUgZmlyc3QgdGhpbmcgd2UgZG8gd2l0aCBhbiBpbnZlcnRlZCBwcm9maWxlIGlzIGF0dGVtcHQgdG8gb3BlbiB0aGUKYmluYXJ5IGltYWdlIChyZW1lbWJlciBlYWNoIGludmVydGVkIHByb2ZpbGUgc2V0IGlzIG9ubHkgZm9yIG9uZSBiaW5hcnkKaW1hZ2UsIGJ1dCBtYXkgaGF2ZSBtYW55IHNhbXBsZSBmaWxlcyB0byBwcm9jZXNzKS4gVGhlCjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5vcF9iZmQ8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIGFuIGFic3RyYWN0ZWQgaW50ZXJmYWNlIHRvCnRoaXM7IGludGVybmFsbHkgaXQgdXNlcyA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmxpYmJmZDwvY29kZT4uIFRoZSBtYWluIHB1cnBvc2UKb2YgdGhpcyBjbGFzcyBpcyB0byBwcm9jZXNzIHRoZSBzeW1ib2xzIGZvciB0aGUgYmluYXJ5IGltYWdlOyB0aGlzIGlzCmFsc28gd2hlcmUgc3ltYm9sIGZpbHRlcmluZyBoYXBwZW5zLiBUaGlzIGlzIGFjdHVhbGx5IHF1aXRlIHRyaWNreSwgYnV0CnNob3VsZCBiZSBjbGVhciBmcm9tIHRoZSBzb3VyY2UuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdDIiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgogICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIj48YSBpZD0icHJvY2Vzc2luZy1zYW1wbGUtZmlsZXMiPjwvYT4zLjIuoFByb2Nlc3NpbmcgdGhlIHNhbXBsZSBmaWxlczwvaDM+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwPgpUaGUgY2xhc3MgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnByb2ZpbGVfY29udGFpbmVyPC9jb2RlPiBpcyBhIGhvbGQtYWxsIHRoYXQKY29udGFpbnMgYWxsIHRoZSBwcm9jZXNzZWQgcmVzdWx0cy4gSXQgaXMgYSBjb250YWluZXIgb2YKPGNvZGUgY2xhc3M9InZhcm5hbWUiPnByb2ZpbGVfdDwvY29kZT4gb2JqZWN0cy4gVGhlCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+YWRkX3NhbXBsZV9maWxlcygpPC9jb2RlPiBtZXRob2QgdXNlcwo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmxpYmRiPC9jb2RlPiB0byBvcGVuIHRoZSBnaXZlbiBzYW1wbGUgZmlsZSBhbmQgYWRkIHRoZQprZXkvdmFsdWUgdHlwZXMgdG8gdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5wcm9maWxlX3Q8L2NvZGU+LiBPbmNlIHRoaXMgaGFzIGJlZW4KZG9uZSwgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wcm9maWxlX2NvbnRhaW5lcjo6YWRkKCk8L2NvZGU+IGlzIHBhc3NlZCB0aGUKPGNvZGUgY2xhc3M9InZhcm5hbWUiPnByb2ZpbGVfdDwvY29kZT4gcGx1cyB0aGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm9wX2JmZDwvY29kZT4gZm9yCnByb2Nlc3NpbmcuCjwvcD4KICAgICAgICAgICAgPHA+Cjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHJvZmlsZV9jb250YWluZXI6OmFkZCgpPC9jb2RlPiB3YWxrcyB0aHJvdWdoIHRoZSBzeW1ib2xzCmNvbGxlY3RlZCBpbiB0aGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm9wX2JmZDwvY29kZT4uCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+b3BfYmZkOjpnZXRfc3ltYm9sX3JhbmdlKCk8L2NvZGU+IGdpdmVzIHVzIHRoZSBzdGFydCBhbmQKZW5kIG9mIHRoZSBzeW1ib2wgYXMgYW4gb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBiaW5hcnkgaW1hZ2UsCnRoZW4gd2UgaW50ZXJyb2dhdGUgdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5wcm9maWxlX3Q8L2NvZGU+IGZvciB0aGUgcmVsZXZhbnQgc2FtcGxlcwpmb3IgdGhhdCBvZmZzZXQgcmFuZ2UuIFdlIGNyZWF0ZSBhIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5zeW1ib2xfZW50cnk8L2NvZGU+Cm9iamVjdCBmb3IgdGhpcyBzeW1ib2wgYW5kIGZpbGwgaXQgaW4uIElmIG5lZWRlZCwgaGVyZSB3ZSBhbHNvIGNvbGxlY3QKZGVidWcgaW5mb3JtYXRpb24gZnJvbSB0aGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm9wX2JmZDwvY29kZT4sIGFuZCBwb3NzaWJseQpyZWNvcmQgdGhlIGRldGFpbGVkIHNhbXBsZSBpbmZvcm1hdGlvbiAoYXMgdXNlZCBieSA8c3Bhbj48c3Ryb25nIGNsYXNzPSJjb21tYW5kIj5vcHJlcG9ydAotZDwvc3Ryb25nPjwvc3Bhbj4gYW5kIDxzcGFuPjxzdHJvbmcgY2xhc3M9ImNvbW1hbmQiPm9wYW5ub3RhdGU8L3N0cm9uZz48L3NwYW4+KS4KRmluYWxseSB0aGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnN5bWJvbF9lbnRyeTwvY29kZT4gaXMgYWRkZWQgdG8KYSBwcml2YXRlIGNvbnRhaW5lciBvZiA8Y29kZSBjbGFzcz0idmFybmFtZSI+cHJvZmlsZV9jb250YWluZXI8L2NvZGU+IC0gdGhpcwo8Y29kZSBjbGFzcz0idmFybmFtZSI+c3ltYm9sX2NvbnRhaW5lcjwvY29kZT4gaG9sZHMgYWxsIHN1Y2ggcHJvY2Vzc2VkIHN5bWJvbHMuCjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgaWQ9ImdlbmVyYXRpbmctb3V0cHV0Ij48L2E+NC6gR2VuZXJhdGluZyBvdXRwdXQ8L2gyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHA+CkFmdGVyIHRoZSBwcm9jZXNzaW5nIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgc2VjdGlvbiwgd2UndmUgbm93IGdvdApmdWxsIGRldGFpbHMgb2Ygd2hhdCB3ZSBuZWVkIHRvIG91dHB1dCBzdG9yZWQgaW4gdGhlCjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5wcm9maWxlX2NvbnRhaW5lcjwvY29kZT4gb24gYSBzeW1ib2wtYnktc3ltYm9sIGJhc2lzLiBUbwpwcm9kdWNlIG91dHB1dCwgd2UgbmVlZCB0byByZXBsYXkgdGhhdCBkYXRhIGFuZCBmb3JtYXQgaXQgc3VpdGFibHkuCjwvcD4KICAgICAgICAgIDxwPgo8c3Bhbj48c3Ryb25nIGNsYXNzPSJjb21tYW5kIj5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4gZmlyc3QgYXNrcyB0aGUKPGNvZGUgY2xhc3M9InZhcm5hbWUiPnByb2ZpbGVfY29udGFpbmVyPC9jb2RlPiBmb3IgYQo8Y29kZSBjbGFzcz0idmFybmFtZSI+c3ltYm9sX2NvbGxlY3Rpb248L2NvZGU+ICh0aGlzIGlzIGFsc28gd2hlcmUgdGhyZXNob2xkaW5nCmhhcHBlbnMpLgpUaGlzIGlzIHNvcnRlZCwgdGhlbiBhCjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5vcHJlcG9ydF9mb3JtYXR0ZXI8L2NvZGU+IGlzIGluaXRpYWxpc2VkLgpUaGlzIG9iamVjdCBpbml0aWFsaXNlcyBhIHNldCBvZiBmaWVsZCBmb3JtYXR0ZXJzIGFzIHJlcXVlc3RlZC4gVGhlbgo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm9wcmVwb3J0X2Zvcm1hdHRlcjo6b3V0cHV0KCk8L2NvZGU+IGlzIGNhbGxlZC4gVGhpcwppdGVyYXRlcyB0aHJvdWdoIHRoZSAoc29ydGVkKSA8Y29kZSBjbGFzcz0idmFybmFtZSI+c3ltYm9sX2NvbGxlY3Rpb248L2NvZGU+Owpmb3IgZWFjaCBlbnRyeSwgdGhlIHNlbGVjdGVkIGZpZWxkcyAoYXMgc2V0IGJ5IHRoZQo8Y29kZSBjbGFzcz0idmFybmFtZSI+Zm9ybWF0X2ZsYWdzPC9jb2RlPiBvcHRpb25zKSBhcmUgb3V0cHV0IGJ5IGNhbGxpbmcgdGhlCmZpZWxkIGZvcm1hdHRlcnMsIHdpdGggdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5zeW1ib2xfZW50cnk8L2NvZGU+IHBhc3NlZCBpbi4KPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZ2xvc3NhcnkiPgogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUiPjxhIGlkPSJnbG9zc2FyeSI+PC9hPkdsb3NzYXJ5IG9mIE9Qcm9maWxlIHNvdXJjZSBjb25jZXB0cyBhbmQgdHlwZXM8L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkbD4KICAgICAgICAgIDxkdD5hcHBsaWNhdGlvbiBpbWFnZTwvZHQ+CiAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgIDxwPgpUaGUgcHJpbWFyeSBiaW5hcnkgaW1hZ2UgdXNlZCBieSBhbiBhcHBsaWNhdGlvbi4gVGhpcyBpcyBkZXJpdmVkCmZyb20gdGhlIGtlcm5lbCBhbmQgY29ycmVzcG9uZHMgdG8gdGhlIGJpbmFyeSBzdGFydGVkIHVwb24gcnVubmluZwphbiBhcHBsaWNhdGlvbjogZm9yIGV4YW1wbGUsIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L2Jpbi9iYXNoPC9jb2RlPi4KPC9wPgogICAgICAgICAgPC9kZD4KICAgICAgICAgIDxkdD5iaW5hcnkgaW1hZ2U8L2R0PgogICAgICAgICAgPGRkPgogICAgICAgICAgICA8cD4KQW4gRUxGIGZpbGUgY29udGFpbmluZyBleGVjdXRhYmxlIGNvZGU6IHRoaXMgaW5jbHVkZXMga2VybmVsIG1vZHVsZXMsCnRoZSBrZXJuZWwgaXRzZWxmIChhLmsuYS4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj52bWxpbnV4PC9jb2RlPiksIHNoYXJlZCBsaWJyYXJpZXMsCmFuZCBhcHBsaWNhdGlvbiBiaW5hcmllcy4KPC9wPgogICAgICAgICAgPC9kZD4KICAgICAgICAgIDxkdD5kY29va2llPC9kdD4KICAgICAgICAgIDxkZD4KICAgICAgICAgICAgPHA+ClNob3J0IGZvciAiZGVudHJ5IGNvb2tpZSIuIEEgdW5pcXVlIElEIHRoYXQgY2FuIGJlIGxvb2tlZCB1cCB0byBwcm92aWRlCnRoZSBmdWxsIHBhdGggbmFtZSBvZiBhIGJpbmFyeSBpbWFnZS4KPC9wPgogICAgICAgICAgPC9kZD4KICAgICAgICAgIDxkdD5kZXBlbmRlbnQgaW1hZ2U8L2R0PgogICAgICAgICAgPGRkPgogICAgICAgICAgICA8cD4KQSBiaW5hcnkgaW1hZ2UgdGhhdCBpcyBkZXBlbmRlbnQgdXBvbiBhbiBhcHBsaWNhdGlvbiwgdXNlZCB3aXRoCnBlci1hcHBsaWNhdGlvbiBzZXBhcmF0aW9uLiBNb3N0IGNvbW1vbmx5LCBzaGFyZWQgbGlicmFyaWVzLiBGb3IgZXhhbXBsZSwKaWYgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vYmluL2Jhc2g8L2NvZGU+IGlzIHJ1bm5pbmcgYW5kIHdlIHRha2UKc29tZSBzYW1wbGVzIGluc2lkZSB0aGUgQyBsaWJyYXJ5IGl0c2VsZiBkdWUgdG8gPHNwYW4+PHN0cm9uZyBjbGFzcz0iY29tbWFuZCI+YmFzaDwvc3Ryb25nPjwvc3Bhbj4KY2FsbGluZyBsaWJyYXJ5IGNvZGUsIHRoZW4gdGhlIGltYWdlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L2xpYi9saWJjLnNvPC9jb2RlPgp3b3VsZCBiZSBkZXBlbmRlbnQgdXBvbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9iaW4vYmFzaDwvY29kZT4uCjwvcD4KICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8ZHQ+bWVyZ2luZzwvZHQ+CiAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgIDxwPgpUaGlzIHJlZmVycyB0byB0aGUgYWJpbGl0eSB0byBtZXJnZSBzZXZlcmFsIGRpc3RpbmN0IHNhbXBsZSBmaWxlcwppbnRvIG9uZSBzZXQgb2YgZGF0YSBhdCBydW50aW1lLCBpbiB0aGUgcG9zdC1wcm9maWxpbmcgdG9vbHMuIEZvciBleGFtcGxlLApwZXItdGhyZWFkIHNhbXBsZSBmaWxlcyBjYW4gYmUgbWVyZ2VkIGludG8gb25lIHNldCBvZiBkYXRhLCBiZWNhdXNlCnRoZXkgYXJlIGNvbXBhdGlibGUgKGkuZS4gdGhlIGFnZ3JlZ2F0aW9uIG9mIHRoZSBkYXRhIGlzIG1lYW5pbmdmdWwpLApidXQgaXQncyBub3QgcG9zc2libGUgdG8gbWVyZ2Ugc2FtcGxlIGZpbGVzIGZvciB0d28gZGlmZmVyZW50IGV2ZW50cywKYmVjYXVzZSB0aGVyZSB3b3VsZCBiZSBubyB1c2VmdWwgbWVhbmluZyB0byB0aGUgcmVzdWx0cy4KPC9wPgogICAgICAgICAgPC9kZD4KICAgICAgICAgIDxkdD5wcm9maWxlIGNsYXNzPC9kdD4KICAgICAgICAgIDxkZD4KICAgICAgICAgICAgPHA+CkEgY29sbGVjdGlvbiBvZiBwcm9maWxlIGRhdGEgdGhhdCBoYXMgYmVlbiBjb2xsZWN0ZWQgdW5kZXIgdGhlIHNhbWUKY2xhc3MgdGVtcGxhdGUuIEZvciBleGFtcGxlLCBpZiB3ZSdyZSB1c2luZyA8c3Bhbj48c3Ryb25nIGNsYXNzPSJjb21tYW5kIj5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4KdG8gc2hvdyByZXN1bHRzIGFmdGVyIHByb2ZpbGluZyB3aXRoIHR3byBwZXJmb3JtYW5jZSBjb3VudGVycyBlbmFibGVkCnByb2ZpbGluZyA8Y29kZSBjbGFzcz0iY29uc3RhbnQiPkRBVEFfTUVNX1JFRlM8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iY29uc3RhbnQiPkNQVV9DTEtfVU5IQUxURUQ8L2NvZGU+LAp0aGVyZSB3b3VsZCBiZSB0d28gcHJvZmlsZSBjbGFzc2VzLCBvbmUgZm9yIGVhY2ggZXZlbnQuIE9yIGlmIHdlJ3JlIG9uCmFuIFNNUCBzeXN0ZW0gYW5kIGRvaW5nIHBlci1jcHUgcHJvZmlsaW5nLCBhbmQgd2UgcmVxdWVzdAo8c3Bhbj48c3Ryb25nIGNsYXNzPSJjb21tYW5kIj5vcHJlcG9ydDwvc3Ryb25nPjwvc3Bhbj4gdG8gc2hvdyByZXN1bHRzIGZvciBlYWNoIENQVSBzaWRlLWJ5LXNpZGUsCnRoZXJlIHdvdWxkIGJlIGEgcHJvZmlsZSBjbGFzcyBmb3IgZWFjaCBDUFUuCjwvcD4KICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8ZHQ+cHJvZmlsZSBzcGVjaWZpY2F0aW9uPC9kdD4KICAgICAgICAgIDxkZD4KICAgICAgICAgICAgPHA+ClRoZSBwYXJhbWV0ZXJzIHRoZSB1c2VyIHBhc3NlcyB0byB0aGUgcG9zdC1wcm9maWxpbmcgdG9vbHMgdGhhdCBsaW1pdAp3aGF0IHNhbXBsZSBmaWxlcyBhcmUgdXNlZC4gVGhpcyBzcGVjaWZpY2F0aW9uIGlzIG1hdGNoZWQgYWdhaW5zdAp0aGUgYXZhaWxhYmxlIHNhbXBsZSBmaWxlcyB0byBnZW5lcmF0ZSBhIHNlbGVjdGlvbiBvZiBwcm9maWxlIGRhdGEuCjwvcD4KICAgICAgICAgIDwvZGQ+CiAgICAgICAgICA8ZHQ+cHJvZmlsZSB0ZW1wbGF0ZTwvZHQ+CiAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgIDxwPgpUaGUgcGFyYW1ldGVycyB0aGF0IGRlZmluZSB3aGF0IGdvZXMgaW4gYSBwYXJ0aWN1bGFyIHByb2ZpbGUgY2xhc3MuClRoaXMgaW5jbHVkZXMgYSBzeW1ib2xpYyBuYW1lIChlLmcuICJjcHU6MSIpIGFuZCB0aGUgY29kZS11c2FibGUKZXF1aXZhbGVudC4KPC9wPgogICAgICAgICAgPC9kZD4KICAgICAgICA8L2RsPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvYm9keT4KPC9odG1sPgo=