ZGlmZiAtLWdpdCBhL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL0phbWZpbGUudjIgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9KYW1maWxlLnYyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiY2Y2OWIKLS0tIC9kZXYvbnVsbAorKysgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9KYW1maWxlLnYyCkBAIC0wLDAgKzEsMzMgQEAKKworIyBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBMb3JlbnpvIENhbWluaXRpCisjIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMAorIyAoc2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBhIGNvcHkgYXQKKyMgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyBIb21lIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uCisKK2ltcG9ydCBxdWlja2Jvb2sgOwordXNpbmcgYm9vc3Rib29rIDsKKworZG94eWdlbiByZWZlcmVuY2UKKyAgICA6ICAgLi4vLi4vLi4vLi4vYm9vc3QvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uLmhwcAorICAgICAgICAuLi8uLi8uLi8uLi9ib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24vY29uZmlnLmhwcAorICAgIDogICA8cmVmdGl0bGU+IlJlZmVyZW5jZSIKKyAgICAgICAgPGRveHlnZW46cGFyYW0+UFJFREVGSU5FRD0iRE9YWUdFTiIKKyAgICAgICAgPGRveHlnZW46cGFyYW0+UVVJRVQ9WUVTCisgICAgICAgIDxkb3h5Z2VuOnBhcmFtPldBUk5fSUZfVU5ET0NVTUVOVEVEPU5PCisgICAgICAgIDxkb3h5Z2VuOnBhcmFtPkhJREVfVU5ET0NfTUVNQkVSUz1ZRVMKKyAgICAgICAgPGRveHlnZW46cGFyYW0+SElERV9VTkRPQ19DTEFTU0VTPVlFUworICAgICAgICA8ZG94eWdlbjpwYXJhbT5BTElBU0VTPSIgUGFyYW1zPVwiPGI+UGFyYW1ldGVyczo8L2I+IDx0YWJsZSBib3JkZXI9IjAiPlwiIFBhcmFtezJ9PVwiPHRyPjx0ZD48Yj48dHQ+XFwxPC90dD48L2I+PC90ZD48dGQ+XFwyPC90ZD48L3RyPlwiIEVuZFBhcmFtcz1cIjwvdGFibGU+XCIgUmV0dXJucz1cIjxiPlJldHVybnM6PC9iPlwiIE5vdGU9XCI8Yj5Ob3RlOjwvYj5cIiBXYXJuaW5nPVwiPGI+V2FybmluZzo8L2I+XCIgU2VlPVwiPGI+U2VlOjwvYj5cIiBSZWZTZWN0ezJ9PVwiXFx4bWxvbmx5PGxpbmsgbGlua2VuZD0nYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24uXFwxJz5cXDI8L2xpbms+XFxlbmR4bWxvbmx5XCIgUmVmQ2xhc3N7MX09XCJcXHhtbG9ubHk8Y29tcHV0ZXJvdXRwdXQ+PGNsYXNzbmFtZSBhbHQ9J1xcMSc+XFwxPC9jbGFzc25hbWU+PC9jb21wdXRlcm91dHB1dD5cXGVuZHhtbG9ubHlcIiBSZWZGdW5jezF9PVwiXFx4bWxvbmx5PGNvbXB1dGVyb3V0cHV0PjxmdW5jdGlvbm5hbWUgYWx0PSdcXDEnPlxcMTwvZnVuY3Rpb25uYW1lPjwvY29tcHV0ZXJvdXRwdXQ+XFxlbmR4bWxvbmx5XCIgUmVmTWFjcm97MX09XCJcXHhtbG9ubHk8Y29tcHV0ZXJvdXRwdXQ+PG1hY3JvbmFtZSBhbHQ9J1xcMSc+XFwxPC9tYWNyb25hbWU+PC9jb21wdXRlcm91dHB1dD5cXGVuZHhtbG9ubHlcIiAiCisgICAgOworCit4bWwgcWJrIDogb3ZlcmxvYWRlZF9mdW5jdGlvbi5xYmsgOiA8ZGVwZW5kZW5jeT5yZWZlcmVuY2UgOworCitib29zdGJvb2sgZG9jIDogcWJrCisgICAgOiAgIDx4c2w6cGFyYW0+Ym9vc3Qucm9vdD0uLi8uLi8uLi8uLi8uLgorICAgICAgICA8eHNsOnBhcmFtPmJvb3N0LmRlZmF1bHRzPUJvb3N0CisgICAgICAgIDx4c2w6cGFyYW0+Z2VuZXJhdGUuY29uc2lzdGVudC5pZHM9MQorICAgICAgICA8Zm9ybWF0PnBkZjo8eHNsOnBhcmFtPmJvb3N0LnVybC5wcmVmaXg9aHR0cDovL3d3dy5ib29zdC5vcmcvZG9jL2xpYnMvcmVsZWFzZS9saWJzL2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbAorICAgIDsKKworaW5zdGFsbCBwZGZpbnN0YWxsIDogZG9jLzxmb3JtYXQ+cGRmIDogPGxvY2F0aW9uPi4gPGluc3RhbGwtdHlwZT5QREYgPG5hbWU+b3ZlcmxvYWRlZF9mdW5jdGlvbi5wZGYgOworZXhwbGljaXQgcGRmaW5zdGFsbCA7CmRpZmYgLS1naXQgYS9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9odG1sL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18yLmh0bWwgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9odG1sL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlhMGFhYQotLS0gL2Rldi9udWxsCisrKyBiL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzIuaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVMtQVNDSUkiPgorPHRpdGxlPk1hY3JvIEJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfQVJJVFlfTUFYPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9ib29zdGJvb2suY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc3LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iQ2hhcHRlciYjMTYwOzEuJiMxNjA7Qm9vc3QuRnVuY3Rpb25hbC9PdmVybG9hZGVkRnVuY3Rpb24gMS4wLjAiPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0icmVmZXJlbmNlLmh0bWwjaGVhZGVyLmJvb3N0LmZ1bmN0aW9uYWwub3ZlcmxvYWRlZF9mdW5jdGlvbi5jb25maWdfaHBwIiB0aXRsZT0iSGVhZGVyICZsdDtib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24vY29uZmlnLmhwcCZndDsiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJib29zdC9tYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkZ1bmN0aW9uIHRlbXBsYXRlIG1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbiI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9IkJPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18zLmh0bWwiIHRpdGxlPSJNYWNybyBCT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX09WRVJMT0FEX01BWCI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8dGFibGUgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgdmFsaWduPSJ0b3AiPjxpbWcgYWx0PSJCb29zdCBDKysgTGlicmFyaWVzIiB3aWR0aD0iMjc3IiBoZWlnaHQ9Ijg2IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0LnBuZyI+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vbGlicy9saWJyYXJpZXMuaHRtIj5MaWJyYXJpZXM8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy91c2Vycy9wZW9wbGUuaHRtbCI+UGVvcGxlPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvZmFxLmh0bWwiPkZBUTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL21vcmUvaW5kZXguaHRtIj5Nb3JlPC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYm9vc3QvbWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJyZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uLmNvbmZpZ19ocHAiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy91cC5wbmciIGFsdD0iVXAiPjwvYT48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9ob21lLnBuZyIgYWx0PSJIb21lIj48L2E+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJCT09TVF9GVU5DVElPTkFMX09fMV83XzNfMy5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJyZWZlbnRyeSI+Cis8YSBuYW1lPSJCT09TVF9GVU5DVElPTkFMX09fMV83XzNfMiI+PC9hPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJyZWZuYW1lZGl2Ij4KKzxoMj48c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+TWFjcm8gQk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19BUklUWV9NQVg8L3NwYW4+PC9oMj4KKzxwPkJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfQVJJVFlfTUFYICYjODIxMjsgU3BlY2lmeSB0aGUgbWF4aW11bSBudW1iZXIgb2YgYXJndW1lbnRzIG9mIHRoZSBmdW5jdGlvbnMgYmVpbmcgb3ZlcmxvYWRlZC4gPC9wPgorPC9kaXY+Cis8aDIgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIGNsYXNzPSJyZWZzeW5vcHNpc2Rpdi10aXRsZSI+U3lub3BzaXM8L2gyPgorPGRpdiB4bWxuczpyZXY9Imh0dHA6Ly93d3cuY3MucnBpLmVkdS9+Z3JlZ29kL2Jvb3N0L3Rvb2xzL2RvYy9yZXZpc2lvbiIgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij48cHJlIGNsYXNzPSJzeW5vcHNpcyI+PHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIEluIGhlYWRlcjogJmx0OzxhIGNsYXNzPSJsaW5rIiBocmVmPSJyZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uLmNvbmZpZ19ocHAiIHRpdGxlPSJIZWFkZXIgJmx0O2Jvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi9jb25maWcuaHBwJmd0OyI+Ym9vc3QvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uL2NvbmZpZy5ocHA8L2E+Jmd0OworCis8L3NwYW4+Qk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19BUklUWV9NQVg8L3ByZT48L2Rpdj4KKzxkaXYgY2xhc3M9InJlZnNlY3QxIj4KKzxhIG5hbWU9ImlkLTEuNy4zLjQuNCI+PC9hPjxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8cD5JZiB0aGlzIG1hY3JvIGlzIGxlZnQgdW5kZWZpbmVkIGJ5IHRoZSB1c2VyLCBpdCBoYXMgYSBkZWZhdWx0IHZhbHVlIG9mIDUgKGluY3JlYXNpbmcgdGhpcyBudW1iZXIgbWlnaHQgaW5jcmVhc2UgY29tcGlsYXRpb24gdGltZSkuIFdoZW4gc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCB0aGlzIG1hY3JvIG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciBudW1iZXIuPC9wPgorPHA+PHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+U2VlOjwvc3Ryb25nPjwvc3Bhbj4gPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2dldHRpbmdfc3RhcnRlZC5odG1sIiB0aXRsZT0iR2V0dGluZyBTdGFydGVkIj4gR2V0dGluZyBTdGFydGVkPC9hPiwgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9ImJvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPmJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4uIDwvcD4KKzwvZGl2PgorPC9kaXY+Cis8dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgYWxpZ249ImxlZnQiPjwvdGQ+Cis8dGQgYWxpZ249InJpZ2h0Ij48ZGl2IGNsYXNzPSJjb3B5cmlnaHQtZm9vdGVyIj5Db3B5cmlnaHQgJiMxNjk7IDIwMTEsIDIwMTIgTG9yZW56byBDYW1pbml0aTxwPgorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHNlZSBhY2NvbXBhbnlpbmcKKyAgICAgICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiIHRhcmdldD0iX3RvcCI+aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPikKKyAgICAgIDwvcD4KKzwvZGl2PjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYm9vc3QvbWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJyZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uLmNvbmZpZ19ocHAiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy91cC5wbmciIGFsdD0iVXAiPjwvYT48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9ob21lLnBuZyIgYWx0PSJIb21lIj48L2E+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJCT09TVF9GVU5DVElPTkFMX09fMV83XzNfMy5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9odG1sL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18zLmh0bWwgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9odG1sL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThlNTI0MgotLS0gL2Rldi9udWxsCisrKyBiL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzMuaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVMtQVNDSUkiPgorPHRpdGxlPk1hY3JvIEJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfT1ZFUkxPQURfTUFYPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9ib29zdGJvb2suY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc3LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iQ2hhcHRlciYjMTYwOzEuJiMxNjA7Qm9vc3QuRnVuY3Rpb25hbC9PdmVybG9hZGVkRnVuY3Rpb24gMS4wLjAiPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0icmVmZXJlbmNlLmh0bWwjaGVhZGVyLmJvb3N0LmZ1bmN0aW9uYWwub3ZlcmxvYWRlZF9mdW5jdGlvbi5jb25maWdfaHBwIiB0aXRsZT0iSGVhZGVyICZsdDtib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24vY29uZmlnLmhwcCZndDsiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJCT09TVF9GVU5DVElPTkFMX09fMV83XzNfMi5odG1sIiB0aXRsZT0iTWFjcm8gQk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19BUklUWV9NQVgiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi9hY2tub3dsZWRnbWVudHMuaHRtbCIgdGl0bGU9IkFja25vd2xlZGdtZW50cyI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8dGFibGUgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgdmFsaWduPSJ0b3AiPjxpbWcgYWx0PSJCb29zdCBDKysgTGlicmFyaWVzIiB3aWR0aD0iMjc3IiBoZWlnaHQ9Ijg2IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0LnBuZyI+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vbGlicy9saWJyYXJpZXMuaHRtIj5MaWJyYXJpZXM8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy91c2Vycy9wZW9wbGUuaHRtbCI+UGVvcGxlPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvZmFxLmh0bWwiPkZBUTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL21vcmUvaW5kZXguaHRtIj5Nb3JlPC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzIuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9InJlZmVyZW5jZS5odG1sI2hlYWRlci5ib29zdC5mdW5jdGlvbmFsLm92ZXJsb2FkZWRfZnVuY3Rpb24uY29uZmlnX2hwcCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3VwLnBuZyIgYWx0PSJVcCI+PC9hPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL2hvbWUucG5nIiBhbHQ9IkhvbWUiPjwvYT48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2Fja25vd2xlZGdtZW50cy5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJyZWZlbnRyeSI+Cis8YSBuYW1lPSJCT09TVF9GVU5DVElPTkFMX09fMV83XzNfMyI+PC9hPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJyZWZuYW1lZGl2Ij4KKzxoMj48c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+TWFjcm8gQk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19PVkVSTE9BRF9NQVg8L3NwYW4+PC9oMj4KKzxwPkJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfT1ZFUkxPQURfTUFYICYjODIxMjsgU3BlY2lmeSB0aGUgbWF4aW11bSBudW1iZXIgb2YgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIG92ZXJsb2FkZWQuIDwvcD4KKzwvZGl2PgorPGgyIHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiBjbGFzcz0icmVmc3lub3BzaXNkaXYtdGl0bGUiPlN5bm9wc2lzPC9oMj4KKzxkaXYgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+PHByZSBjbGFzcz0ic3lub3BzaXMiPjxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBJbiBoZWFkZXI6ICZsdDs8YSBjbGFzcz0ibGluayIgaHJlZj0icmVmZXJlbmNlLmh0bWwjaGVhZGVyLmJvb3N0LmZ1bmN0aW9uYWwub3ZlcmxvYWRlZF9mdW5jdGlvbi5jb25maWdfaHBwIiB0aXRsZT0iSGVhZGVyICZsdDtib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24vY29uZmlnLmhwcCZndDsiPmJvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi9jb25maWcuaHBwPC9hPiZndDsKKworPC9zcGFuPkJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfT1ZFUkxPQURfTUFYPC9wcmU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJyZWZzZWN0MSI+Cis8YSBuYW1lPSJpZC0xLjcuMy41LjQiPjwvYT48aDI+RGVzY3JpcHRpb248L2gyPgorPHA+SWYgdGhpcyBtYWNybyBpcyBsZWZ0IHVuZGVmaW5lZCBieSB0aGUgdXNlciwgaXQgaGFzIGEgZGVmYXVsdCB2YWx1ZSBvZiA1IChpbmNyZWFzaW5nIHRoaXMgbnVtYmVyIG1pZ2h0IGluY3JlYXNlIGNvbXBpbGF0aW9uIHRpbWUpLiBXaGVuIGRlZmluZWQgYnkgdGhlIHVzZXIsIHRoaXMgbWFjcm8gbXVzdCBiZSBhbiBpbnRlZ2VyIG51bWJlciBncmVhdGVyIG9yIGVxdWFsIHRoYW4gMiAoYmVjYXVzZSBhdCBsZWFzdCB0d28gZGlzdGluY3QgZnVuY3Rpb25zIG5lZWQgdG8gYmUgc3BlY2lmaWVkIGluIG9yZGVyIHRvIGRlZmluZSBhbiBvdmVybG9hZCkuPC9wPgorPHA+PHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+U2VlOjwvc3Ryb25nPjwvc3Bhbj4gPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2dldHRpbmdfc3RhcnRlZC5odG1sIiB0aXRsZT0iR2V0dGluZyBTdGFydGVkIj4gR2V0dGluZyBTdGFydGVkPC9hPiwgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9ImJvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPmJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4uIDwvcD4KKzwvZGl2PgorPC9kaXY+Cis8dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgYWxpZ249ImxlZnQiPjwvdGQ+Cis8dGQgYWxpZ249InJpZ2h0Ij48ZGl2IGNsYXNzPSJjb3B5cmlnaHQtZm9vdGVyIj5Db3B5cmlnaHQgJiMxNjk7IDIwMTEsIDIwMTIgTG9yZW56byBDYW1pbml0aTxwPgorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHNlZSBhY2NvbXBhbnlpbmcKKyAgICAgICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiIHRhcmdldD0iX3RvcCI+aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPikKKyAgICAgIDwvcD4KKzwvZGl2PjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzIuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9InJlZmVyZW5jZS5odG1sI2hlYWRlci5ib29zdC5mdW5jdGlvbmFsLm92ZXJsb2FkZWRfZnVuY3Rpb24uY29uZmlnX2hwcCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3VwLnBuZyIgYWx0PSJVcCI+PC9hPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL2hvbWUucG5nIiBhbHQ9IkhvbWUiPjwvYT48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2Fja25vd2xlZGdtZW50cy5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9odG1sL2Jvb3N0L21ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbC9ib29zdC9tYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDA5YTJiCi0tLSAvZGV2L251bGwKKysrIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbC9ib29zdC9tYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbApAQCAtMCwwICsxLDYwIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVMtQVNDSUkiPgorPHRpdGxlPkZ1bmN0aW9uIHRlbXBsYXRlIG1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbjwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvYm9vc3Rib29rLmNzcyIgdHlwZT0idGV4dC9jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43Ny4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IkNoYXB0ZXImIzE2MDsxLiYjMTYwO0Jvb3N0LkZ1bmN0aW9uYWwvT3ZlcmxvYWRlZEZ1bmN0aW9uIDEuMC4wIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9Ii4uL3JlZmVyZW5jZS5odG1sI2hlYWRlci5ib29zdC5mdW5jdGlvbmFsLm92ZXJsb2FkZWRfZnVuY3Rpb25faHBwIiB0aXRsZT0iSGVhZGVyICZsdDtib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24uaHBwJmd0OyI+Cis8bGluayByZWw9InByZXYiIGhyZWY9Im92ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSIuLi9CT09TVF9GVU5DVElPTkFMX09fMV83XzNfMi5odG1sIiB0aXRsZT0iTWFjcm8gQk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19BUklUWV9NQVgiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPHRhYmxlIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPgorPHRkIHZhbGlnbj0idG9wIj48aW1nIGFsdD0iQm9vc3QgQysrIExpYnJhcmllcyIgd2lkdGg9IjI3NyIgaGVpZ2h0PSI4NiIgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9ib29zdC5wbmciPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGlicmFyaWVzLmh0bSI+TGlicmFyaWVzPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvcGVvcGxlLmh0bWwiPlBlb3BsZTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL3VzZXJzL2ZhcS5odG1sIj5GQVE8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9tb3JlL2luZGV4Lmh0bSI+TW9yZTwvYT48L3RkPgorPC90cj48L3RhYmxlPgorPGhyPgorPGRpdiBjbGFzcz0ic3Bpcml0LW5hdiI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9Im92ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Ii4uL3JlZmVyZW5jZS5odG1sI2hlYWRlci5ib29zdC5mdW5jdGlvbmFsLm92ZXJsb2FkZWRfZnVuY3Rpb25faHBwIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iLi4vQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzIuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL25leHQucG5nIiBhbHQ9Ik5leHQiPjwvYT4KKzwvZGl2PgorPGRpdiBjbGFzcz0icmVmZW50cnkiPgorPGEgbmFtZT0iYm9vc3QubWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uIj48L2E+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48L2Rpdj4KKzxkaXYgY2xhc3M9InJlZm5hbWVkaXYiPgorPGgyPjxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5GdW5jdGlvbiB0ZW1wbGF0ZSBtYWtlX292ZXJsb2FkZWRfZnVuY3Rpb248L3NwYW4+PC9oMj4KKzxwPmJvb3N0OjptYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24gJiM4MjEyOyBNYWtlIGFuIG92ZXJsb2FkZWQgZnVuY3Rpb24gb2JqZWN0IHdpdGhvdXQgZXhwbGljaXRseSBzcGVjaWZ5aW5nIHRoZSBmdW5jdGlvbiB0eXBlcy4gPC9wPgorPC9kaXY+Cis8aDIgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIGNsYXNzPSJyZWZzeW5vcHNpc2Rpdi10aXRsZSI+U3lub3BzaXM8L2gyPgorPGRpdiB4bWxuczpyZXY9Imh0dHA6Ly93d3cuY3MucnBpLmVkdS9+Z3JlZ29kL2Jvb3N0L3Rvb2xzL2RvYy9yZXZpc2lvbiIgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij48cHJlIGNsYXNzPSJzeW5vcHNpcyI+PHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIEluIGhlYWRlcjogJmx0OzxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9yZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uX2hwcCIgdGl0bGU9IkhlYWRlciAmbHQ7Ym9vc3QvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uLmhwcCZndDsiPmJvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi5ocHA8L2E+Jmd0OworCis8L3NwYW4+Cis8c3BhbiBjbGFzcz0ia2V5d29yZCI+dGVtcGxhdGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPnR5cGVuYW1lPC9zcGFuPiBGMTxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+dHlwZW5hbWU8L3NwYW4+IEYyPHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4uLi48L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPiAKKyAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Im92ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPm92ZXJsb2FkZWRfZnVuY3Rpb248L2E+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5fX2Z1bmN0aW9uX3R5cGVfXzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYxPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPl9fZnVuY3Rpb25fdHlwZV9fPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+RjI8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4uLi48L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPiAKKyAgPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+RjE8L3NwYW4+IGYxPHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5GMjwvc3Bhbj4gZjI8c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj48L3ByZT48L2Rpdj4KKzxkaXYgY2xhc3M9InJlZnNlY3QxIj4KKzxhIG5hbWU9ImlkLTEuNy4yLjUuNCI+PC9hPjxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8cD5UaGlzIGZ1bmN0aW9uIHRlbXBsYXRlIGNyZWF0ZXMgYW5kIHJldHVybnMgYW4gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJvdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiIHRpdGxlPSJDbGFzcyB0ZW1wbGF0ZSBvdmVybG9hZGVkX2Z1bmN0aW9uIj5vdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT48L2NvZGU+IG9iamVjdCB0aGF0IG92ZXJsb2FkcyBhbGwgdGhlIHNwZWNpZmllZCBmdW5jdGlvbnMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mMTwvY29kZT4sIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZjI8L2NvZGU+LCBldGMuPC9wPgorPHA+VGhlIGZ1bmN0aW9uIHR5cGVzIGFyZSBpbnRlcm5hbGx5IGRldGVybWluZWQgZnJvbSB0aGUgdGVtcGxhdGUgcGFyYW1ldGVyIHR5cGVzIHNvIHRoZXkgZG8gbm90IG5lZWQgdG8gYmUgZXhwbGljaXRseSBzcGVjaWZpZWQuIFRoZXJlZm9yZSwgdGhpcyBmdW5jdGlvbiB0ZW1wbGF0ZSB1c3VhbGx5IGhhcyBhIG1vcmUgY29uY2lzZSBzeW50YXggd2hlbiBjb21wYXJlZCB3aXRoIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0ib3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iQ2xhc3MgdGVtcGxhdGUgb3ZlcmxvYWRlZF9mdW5jdGlvbiI+b3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48L2NvZGU+PC9jb2RlPi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCB3aGVuIHRoZSBleHBsaWNpdCB0eXBlIG9mIHRoZSByZXR1cm5lZCAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJvdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiIHRpdGxlPSJDbGFzcyB0ZW1wbGF0ZSBvdmVybG9hZGVkX2Z1bmN0aW9uIj5vdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT48L2NvZGU+IG9iamVjdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGtub3duIChlLmcuLCB3aGVuIHVzZWQgd2l0aCBCb29zdC5UeXBlb2YncyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkJPT1NUX0FVVE88L2NvZGU+LCBDKysxMSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmF1dG88L2NvZGU+LCBvciB3aGVuIHRoZSBvdmVybG9hZGVkIGZ1bmN0aW9uIG9iamVjdCBpcyBoYW5kbGVkIHVzaW5nIGEgZnVuY3Rpb24gdGVtcGxhdGUgcGFyYW1ldGVyLCBzZWUgdGhlIDxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9ib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi90dXRvcmlhbC5odG1sIiB0aXRsZT0iVHV0b3JpYWwiPiBUdXRvcmlhbDwvYT4gc2VjdGlvbikuPC9wPgorPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIGZ1bmN0aW9ucyB0byBvdmVybG9hZCBpcyBnaXZlbiBieSB0aGUgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzMuaHRtbCIgdGl0bGU9Ik1hY3JvIEJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfT1ZFUkxPQURfTUFYIj5CT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX09WRVJMT0FEX01BWDwvYT48L2NvZGU+PC9jb2RlPiBjb25maWd1cmF0aW9uIG1hY3JvLjwvcD4KKzxwPjxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPk5vdGU6PC9zdHJvbmc+PC9zcGFuPiBJbiB0aGlzIGRvY3VtZW50YXRpb24sIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+X19mdW5jdGlvbl90eXBlX188L2NvZGU+IGlzIGEgcGxhY2Vob2xkZXIgZm9yIGEgc3ltYm9sIHRoYXQgaXMgc3BlY2lmaWMgdG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbGlicmFyeS48L3A+Cis8cD48c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz5TZWU6PC9zdHJvbmc+PC9zcGFuPiA8YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vdHV0b3JpYWwuaHRtbCIgdGl0bGU9IlR1dG9yaWFsIj4gVHV0b3JpYWw8L2E+IHNlY3Rpb24sIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0ib3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iQ2xhc3MgdGVtcGxhdGUgb3ZlcmxvYWRlZF9mdW5jdGlvbiI+b3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48L2NvZGU+PC9jb2RlPiwgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzMuaHRtbCIgdGl0bGU9Ik1hY3JvIEJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfT1ZFUkxPQURfTUFYIj5CT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX09WRVJMT0FEX01BWDwvYT48L2NvZGU+PC9jb2RlPi4gPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzx0YWJsZSB4bWxuczpyZXY9Imh0dHA6Ly93d3cuY3MucnBpLmVkdS9+Z3JlZ29kL2Jvb3N0L3Rvb2xzL2RvYy9yZXZpc2lvbiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCBhbGlnbj0ibGVmdCI+PC90ZD4KKzx0ZCBhbGlnbj0icmlnaHQiPjxkaXYgY2xhc3M9ImNvcHlyaWdodC1mb290ZXIiPkNvcHlyaWdodCAmIzE2OTsgMjAxMSwgMjAxMiBMb3JlbnpvIENhbWluaXRpPHA+CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMCAoc2VlIGFjY29tcGFueWluZworICAgICAgICBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCIgdGFyZ2V0PSJfdG9wIj5odHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KQorICAgICAgPC9wPgorPC9kaXY+PC90ZD4KKzwvdHI+PC90YWJsZT4KKzxocj4KKzxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJvdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSIuLi9yZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uX2hwcCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3VwLnBuZyIgYWx0PSJVcCI+PC9hPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL2hvbWUucG5nIiBhbHQ9IkhvbWUiPjwvYT48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9Ii4uL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18yLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvYm9vc3Qvb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbC9ib29zdC9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdmMTYwMQotLS0gL2Rldi9udWxsCisrKyBiL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvYm9vc3Qvb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sCkBAIC0wLDAgKzEsMTEyIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVMtQVNDSUkiPgorPHRpdGxlPkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2Jvb3N0Ym9vay5jc3MiIHR5cGU9InRleHQvY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzcuMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJDaGFwdGVyJiMxNjA7MS4mIzE2MDtCb29zdC5GdW5jdGlvbmFsL092ZXJsb2FkZWRGdW5jdGlvbiAxLjAuMCI+Cis8bGluayByZWw9InVwIiBocmVmPSIuLi9yZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uX2hwcCIgdGl0bGU9IkhlYWRlciAmbHQ7Ym9vc3QvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uLmhwcCZndDsiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSIuLi9yZWZlcmVuY2UuaHRtbCIgdGl0bGU9IlJlZmVyZW5jZSI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9Im1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iRnVuY3Rpb24gdGVtcGxhdGUgbWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzx0YWJsZSBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCI+PGltZyBhbHQ9IkJvb3N0IEMrKyBMaWJyYXJpZXMiIHdpZHRoPSIyNzciIGhlaWdodD0iODYiIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vYm9vc3QucG5nIj48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xpYnJhcmllcy5odG0iPkxpYnJhcmllczwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL3VzZXJzL3Blb3BsZS5odG1sIj5QZW9wbGU8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy91c2Vycy9mYXEuaHRtbCI+RkFRPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vbW9yZS9pbmRleC5odG0iPk1vcmU8L2E+PC90ZD4KKzwvdHI+PC90YWJsZT4KKzxocj4KKzxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSIuLi9yZWZlcmVuY2UuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Ii4uL3JlZmVyZW5jZS5odG1sI2hlYWRlci5ib29zdC5mdW5jdGlvbmFsLm92ZXJsb2FkZWRfZnVuY3Rpb25faHBwIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InJlZmVudHJ5Ij4KKzxhIG5hbWU9ImJvb3N0Lm92ZXJsb2FkZWRfZnVuY3Rpb24iPjwvYT48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjwvZGl2PgorPGRpdiBjbGFzcz0icmVmbmFtZWRpdiI+Cis8aDI+PHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb248L3NwYW4+PC9oMj4KKzxwPmJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uICYjODIxMjsgRnVuY3Rpb24gb2JqZWN0IHRvIG92ZXJsb2FkIGZ1bmN0aW9ucyB3aXRoIGRpc3RpbmN0IHNpZ25hdHVyZXMuIDwvcD4KKzwvZGl2PgorPGgyIHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiBjbGFzcz0icmVmc3lub3BzaXNkaXYtdGl0bGUiPlN5bm9wc2lzPC9oMj4KKzxkaXYgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+PHByZSBjbGFzcz0ic3lub3BzaXMiPjxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBJbiBoZWFkZXI6ICZsdDs8YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vcmVmZXJlbmNlLmh0bWwjaGVhZGVyLmJvb3N0LmZ1bmN0aW9uYWwub3ZlcmxvYWRlZF9mdW5jdGlvbl9ocHAiIHRpdGxlPSJIZWFkZXIgJmx0O2Jvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi5ocHAmZ3Q7Ij5ib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24uaHBwPC9hPiZndDsKKworPC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj50ZW1wbGF0ZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+dHlwZW5hbWU8L3NwYW4+IEYxPHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlbmFtZTwvc3Bhbj4gRjI8c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDs8L3NwYW4+IAorPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNsYXNzPC9zcGFuPiA8YSBjbGFzcz0ibGluayIgaHJlZj0ib3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iQ2xhc3MgdGVtcGxhdGUgb3ZlcmxvYWRlZF9mdW5jdGlvbiI+b3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPns8L3NwYW4+Cis8c3BhbiBjbGFzcz0ia2V5d29yZCI+cHVibGljPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46PC9zcGFuPgorICA8c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gPGEgY2xhc3M9ImxpbmsiIGhyZWY9Im92ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCNib29zdC5vdmVybG9hZGVkX2Z1bmN0aW9uY29uc3RydWN0LWNvcHktZGVzdHJ1Y3QiPmNvbnN0cnVjdC9jb3B5L2Rlc3RydWN0PC9hPjwvc3Bhbj4KKyAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Im92ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCNpZC0xXzdfMl8yXzFfNS1iYiI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm92ZXJsb2FkZWRfZnVuY3Rpb248L3NwYW4+PC9hPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+ZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5GMTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mYW1wOzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gCisgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYyPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPiZhbXA7PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Li4uPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPgorCisgIDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyA8YSBjbGFzcz0ibGluayIgaHJlZj0ib3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sI2lkLTFfN18yXzJfMV80LWJiIj5wdWJsaWMgbWVtYmVyIGZ1bmN0aW9uczwvYT48L3NwYW4+CisgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmZ1bmN0aW9uX3RyYWl0czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYxPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnJlc3VsdF90eXBlPC9zcGFuPiAKKyAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Im92ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCNpZC0xXzdfMl8yXzFfNF8xLWJiIj48c3BhbiBjbGFzcz0ia2V5d29yZCI+b3BlcmF0b3I8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+PC9hPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlbmFtZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+ZnVuY3Rpb25fdHJhaXRzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+RjE8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJnMV90eXBlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiAKKyAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+dHlwZW5hbWU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmZ1bmN0aW9uX3RyYWl0czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYxPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFyZzJfdHlwZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPgorICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5mdW5jdGlvbl90cmFpdHM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5GMjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDs8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5yZXN1bHRfdHlwZTwvc3Bhbj4gCisgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJvdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwjaWQtMV83XzJfMl8xXzRfMi1iYiI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPm9wZXJhdG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPjwvYT48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+dHlwZW5hbWU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmZ1bmN0aW9uX3RyYWl0czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYyPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFyZzFfdHlwZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gCisgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnR5cGVuYW1lPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5mdW5jdGlvbl90cmFpdHM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5GMjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDs8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5hcmcyX3R5cGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4uLi48L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJzcGVjaWFsIj59PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPjwvcHJlPjwvZGl2PgorPGRpdiBjbGFzcz0icmVmc2VjdDEiPgorPGEgbmFtZT0iaWQtMS43LjIuNC40Ij48L2E+PGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxwPlRoaXMgZnVuY3Rpb24gb2JqZWN0IGFnZ3JlZ2F0ZXMgdG9nZXRoZXIgY2FsbHMgdG8gZnVuY3Rpb25zIG9mIGFsbCB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHR5cGVzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+RjE8L2NvZGU+LCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkYyPC9jb2RlPiwgZXRjIHdoaWNoIG11c3QgaGF2ZSBkaXN0aW5jdCBmdW5jdGlvbiBzaWduYXR1cmVzIGZyb20gb25lIGFub3RoZXIuPC9wPgorPHA+PHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz48L3NwYW4+IDwvcD4KKzxkaXYgY2xhc3M9ImluZm9ybWFsdGFibGUiPjx0YWJsZSBjbGFzcz0idGFibGUiPgorPGNvbGdyb3VwPgorPGNvbD4KKzxjb2w+Cis8L2NvbGdyb3VwPgorPHRib2R5Pjx0cj4KKzx0ZD48c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkY8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5pPC9lbT48L3NwYW4+PC9jb2RlPjwvc3Ryb25nPjwvc3Bhbj48L3RkPgorPHRkPkVhY2ggZnVuY3Rpb24gdHlwZSBtdXN0IGJlIHNwZWNpZmllZCB1c2luZyB0aGUgZm9sbG93aW5nIHN5bnRheCAod2hpY2ggaXMgQm9vc3QuRnVuY3Rpb24ncyBwcmVmZXJyZWQgc3ludGF4KTogPHByZSB4bWxuczpyZXY9Imh0dHA6Ly93d3cuY3MucnBpLmVkdS9+Z3JlZ29kL2Jvb3N0L3Rvb2xzL2RvYy9yZXZpc2lvbiIgY2xhc3M9InRhYmxlLXByb2dyYW1saXN0aW5nIj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmVzdWx0X3R5cGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5hcmd1bWVudDFfdHlwZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFyZ3VtZ25ldDJfdHlwZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4KKzwvcHJlPiAgPC90ZD4KKzwvdHI+PC90Ym9keT4KKzwvdGFibGU+PC9kaXY+Cis8cD4KKzwvcD4KKzxwPkluIHNvbWUgY2FzZXMsIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJtYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkZ1bmN0aW9uIHRlbXBsYXRlIG1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbiI+bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4gZnVuY3Rpb24gdGVtcGxhdGUgY2FuIGJlIHVzZWZ1bCB0byBjb25zdHJ1Y3QgYW4gb3ZlcmxvYWRlZCBmdW5jdGlvbiBvYmplY3Qgd2l0aG91dCBleHBsaWNpdGx5IHNwZWNpZnlpbmcgdGhlIGZ1bmN0aW9uIHR5cGVzLjwvcD4KKzxwPkF0IGxlYXN0IHR3byBkaXN0aW5jdCBmdW5jdGlvbiB0eXBlcyBtdXN0IGJlIHNwZWNpZmllZCAoYmVjYXVzZSB0aGVyZSBpcyBub3RoaW5nIHRvIG92ZXJsb2FkIGJldHdlZW4gb25lIG9yIHplcm8gZnVuY3Rpb25zKS4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGZ1bmN0aW9ucyB0byBvdmVybG9hZCBpcyBnaXZlbiBieSB0aGUgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18zLmh0bWwiIHRpdGxlPSJNYWNybyBCT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX09WRVJMT0FEX01BWCI+Qk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19PVkVSTE9BRF9NQVg8L2E+PC9jb2RlPiBjb25maWd1cmF0aW9uIG1hY3JvLiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZnVuY3Rpb24gcGFyYW1ldGVycyBmb3IgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHR5cGVzIGlzIGdpdmVuIGJ5IHRoZSAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzIuaHRtbCIgdGl0bGU9Ik1hY3JvIEJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfQVJJVFlfTUFYIj5CT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX0FSSVRZX01BWDwvYT48L2NvZGU+IGNvbmZpZ3VyYXRpb24gbWFjcm8uPC9wPgorPHA+PHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+U2VlOjwvc3Ryb25nPjwvc3Bhbj4gPGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL3R1dG9yaWFsLmh0bWwiIHRpdGxlPSJUdXRvcmlhbCI+IFR1dG9yaWFsPC9hPiBzZWN0aW9uLCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJtYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkZ1bmN0aW9uIHRlbXBsYXRlIG1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbiI+bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4sICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9CT09TVF9GVU5DVElPTkFMX09fMV83XzNfMy5odG1sIiB0aXRsZT0iTWFjcm8gQk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19PVkVSTE9BRF9NQVgiPkJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfT1ZFUkxPQURfTUFYPC9hPjwvY29kZT4sICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9CT09TVF9GVU5DVElPTkFMX09fMV83XzNfMi5odG1sIiB0aXRsZT0iTWFjcm8gQk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19BUklUWV9NQVgiPkJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfQVJJVFlfTUFYPC9hPjwvY29kZT4sIEJvb3N0LkZ1bmN0aW9uLiA8L3A+Cis8ZGl2IGNsYXNzPSJyZWZzZWN0MiI+Cis8YSBuYW1lPSJpZC0xLjcuMi40LjQuNyI+PC9hPjxoMz4KKzxhIG5hbWU9ImJvb3N0Lm92ZXJsb2FkZWRfZnVuY3Rpb25jb25zdHJ1Y3QtY29weS1kZXN0cnVjdCI+PC9hPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+b3ZlcmxvYWRlZF9mdW5jdGlvbjwvY29kZT4gCisgICAgICAgIHB1YmxpYworICAgICAgIGNvbnN0cnVjdC9jb3B5L2Rlc3RydWN0PC9oMz4KKzxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj48bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwcmUgY2xhc3M9ImxpdGVyYWxsYXlvdXQiPjxhIG5hbWU9ImlkLTFfN18yXzJfMV81LWJiIj48L2E+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm92ZXJsb2FkZWRfZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYxPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPiZhbXA7PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiAKKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYyPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPiZhbXA7PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Li4uPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPjwvcHJlPkNvbnN0cnVjdCB0aGUgb3ZlcmxvYWRlZCBmdW5jdGlvbiBvYmplY3QuIDxwPkFueSBmdW5jdGlvbiBwb2ludGVyLCBmdW5jdGlvbiByZWZlcmVuY2UsIGFuZCBtb25vbW9ycGhpYyBmdW5jdGlvbiBvYmplY3QgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5ib29zdDo6ZnVuY3Rpb248L2NvZGU+IGZ1bmN0aW9uIG9iamVjdCBjYW4gYmUgc3BlY2lmaWVkIGFzIHBhcmFtZXRlci48L3A+Cis8cD48c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPjwvc3Bhbj4gVW5mb3J0dW5hdGVseSwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHN1cHBvcnQgcG9seW1vcnBoaWMgZnVuY3Rpb24gb2JqZWN0cyAoYXMgZXhwbGFpbmVkIDxhIGhyZWY9Imh0dHA6Ly9saXN0cy5ib29zdC5vcmcvQXJjaGl2ZXMvYm9vc3QvMjAxMi8wMy8xOTE3NDQucGhwIiB0YXJnZXQ9Il90b3AiPmhlcmU8L2E+KS4gPC9wPgorPC9saT48L29sPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJyZWZzZWN0MiI+Cis8YSBuYW1lPSJpZC0xLjcuMi40LjQuOCI+PC9hPjxoMz4KKzxhIG5hbWU9ImlkLTFfN18yXzJfMV80LWJiIj48L2E+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5vdmVybG9hZGVkX2Z1bmN0aW9uPC9jb2RlPiBwdWJsaWMgbWVtYmVyIGZ1bmN0aW9uczwvaDM+Cis8ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+PG9sIGNsYXNzPSJvcmRlcmVkbGlzdCIgdHlwZT0iMSI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwcmUgY2xhc3M9ImxpdGVyYWxsYXlvdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmZ1bmN0aW9uX3RyYWl0czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYxPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnJlc3VsdF90eXBlPC9zcGFuPiAKKzxhIG5hbWU9ImlkLTFfN18yXzJfMV80XzEtYmIiPjwvYT48c3BhbiBjbGFzcz0ia2V5d29yZCI+b3BlcmF0b3I8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPnR5cGVuYW1lPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5mdW5jdGlvbl90cmFpdHM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5GMTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDs8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5hcmcxX3R5cGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IAorICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+dHlwZW5hbWU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmZ1bmN0aW9uX3RyYWl0czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYxPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFyZzJfdHlwZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPjwvcHJlPkNhbGwgb3BlcmF0b3IgbWF0Y2hpbmcgdGhlIHNpZ25hdHVyZSBvZiB0aGUgZnVuY3Rpb24gdHlwZSBzcGVjaWZpZWQgYXMgMXN0IHRlbXBsYXRlIHBhcmFtZXRlci4gPHA+VGhpcyB3aWxsIGluIHR1cm4gaW52b2tlIHRoZSBjYWxsIG9wZXJhdG9yIG9mIHRoZSAxc3QgZnVuY3Rpb24gcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci4gPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHByZSBjbGFzcz0ibGl0ZXJhbGxheW91dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+ZnVuY3Rpb25fdHJhaXRzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+RjI8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmVzdWx0X3R5cGU8L3NwYW4+IAorPGEgbmFtZT0iaWQtMV83XzJfMl8xXzRfMi1iYiI+PC9hPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5vcGVyYXRvcjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+dHlwZW5hbWU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmZ1bmN0aW9uX3RyYWl0czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYyPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFyZzFfdHlwZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gCisgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlbmFtZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+ZnVuY3Rpb25fdHJhaXRzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+RjI8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJnMl90eXBlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Li4uPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjs8L3NwYW4+PC9wcmU+Q2FsbCBvcGVyYXRvciBtYXRjaGluZyB0aGUgc2lnbmF0dXJlIG9mIHRoZSBmdW5jdGlvbiB0eXBlIHNwZWNpZmllZCBhcyAybmQgdGVtcGxhdGUgcGFyYW1ldGVyLiA8cD5UaGlzIHdpbGwgaW4gdHVybiBpbnZva2UgdGhlIGNhbGwgb3BlcmF0b3Igb2YgdGhlIDJuZCBmdW5jdGlvbiBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLjwvcD4KKzxwPjxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPk5vdGU6PC9zdHJvbmc+PC9zcGFuPiBTaW1pbGFyIGNhbGwgb3BlcmF0b3JzIGFyZSBwcmVzZW50IGZvciBhbGwgc3BlY2lmaWVkIGZ1bmN0aW9uIHR5cGVzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+RjE8L2NvZGU+LCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkYyPC9jb2RlPiwgZXRjIChldmVuIGlmIG5vdCBleGhhdXN0aXZlbHkgbGlzdGVkIGJ5IHRoaXMgZG9jdW1lbnRhdGlvbikuIDwvcD4KKzwvbGk+Cis8L29sPjwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPHRhYmxlIHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiB3aWR0aD0iMTAwJSI+PHRyPgorPHRkIGFsaWduPSJsZWZ0Ij48L3RkPgorPHRkIGFsaWduPSJyaWdodCI+PGRpdiBjbGFzcz0iY29weXJpZ2h0LWZvb3RlciI+Q29weXJpZ2h0ICYjMTY5OyAyMDExLCAyMDEyIExvcmVuem8gQ2FtaW5pdGk8cD4KKyAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wIChzZWUgYWNjb21wYW55aW5nCisgICAgICAgIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0IiB0YXJnZXQ9Il90b3AiPmh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pCisgICAgICA8L3A+Cis8L2Rpdj48L3RkPgorPC90cj48L3RhYmxlPgorPGhyPgorPGRpdiBjbGFzcz0ic3Bpcml0LW5hdiI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9Ii4uL3JlZmVyZW5jZS5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iLi4vcmVmZXJlbmNlLmh0bWwjaGVhZGVyLmJvb3N0LmZ1bmN0aW9uYWwub3ZlcmxvYWRlZF9mdW5jdGlvbl9ocHAiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy91cC5wbmciIGFsdD0iVXAiPjwvYT48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9ob21lLnBuZyIgYWx0PSJIb21lIj48L2E+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJtYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL25leHQucG5nIiBhbHQ9Ik5leHQiPjwvYT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbC9ib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi9hY2tub3dsZWRnbWVudHMuaHRtbCBiL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vYWNrbm93bGVkZ21lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzcxYzQ2MAotLS0gL2Rldi9udWxsCisrKyBiL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vYWNrbm93bGVkZ21lbnRzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVTLUFTQ0lJIj4KKzx0aXRsZT5BY2tub3dsZWRnbWVudHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2Jvb3N0Ym9vay5jc3MiIHR5cGU9InRleHQvY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzcuMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJDaGFwdGVyJiMxNjA7MS4mIzE2MDtCb29zdC5GdW5jdGlvbmFsL092ZXJsb2FkZWRGdW5jdGlvbiAxLjAuMCI+Cis8bGluayByZWw9InVwIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iQ2hhcHRlciYjMTYwOzEuJiMxNjA7Qm9vc3QuRnVuY3Rpb25hbC9PdmVybG9hZGVkRnVuY3Rpb24gMS4wLjAiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSIuLi9CT09TVF9GVU5DVElPTkFMX09fMV83XzNfMy5odG1sIiB0aXRsZT0iTWFjcm8gQk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19PVkVSTE9BRF9NQVgiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPHRhYmxlIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPgorPHRkIHZhbGlnbj0idG9wIj48aW1nIGFsdD0iQm9vc3QgQysrIExpYnJhcmllcyIgd2lkdGg9IjI3NyIgaGVpZ2h0PSI4NiIgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9ib29zdC5wbmciPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGlicmFyaWVzLmh0bSI+TGlicmFyaWVzPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvcGVvcGxlLmh0bWwiPlBlb3BsZTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL3VzZXJzL2ZhcS5odG1sIj5GQVE8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9tb3JlL2luZGV4Lmh0bSI+TW9yZTwvYT48L3RkPgorPC90cj48L3RhYmxlPgorPGhyPgorPGRpdiBjbGFzcz0ic3Bpcml0LW5hdiI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9Ii4uL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18zLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi5hY2tub3dsZWRnbWVudHMiPjwvYT48YSBjbGFzcz0ibGluayIgaHJlZj0iYWNrbm93bGVkZ21lbnRzLmh0bWwiIHRpdGxlPSJBY2tub3dsZWRnbWVudHMiPkFja25vd2xlZGdtZW50czwvYT4KKzwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KKyAgICAgIE1hbnkgdGhhbmtzIHRvIE1hdGhpYXMgR2F1bmFyZCBmb3Igc3VnZ2VzdGluZyB0byBpbXBsZW1lbnQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vYm9vc3Qvb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iQ2xhc3MgdGVtcGxhdGUgb3ZlcmxvYWRlZF9mdW5jdGlvbiI+Ym9vc3Q6Om92ZXJsb2FkZWRfZnVuY3Rpb248L2E+PC9jb2RlPgorICAgICAgYW5kIGZvciBzb21lIHNhbXBsZSBjb2RlLgorICAgIDwvcD4KKzxwPgorICAgICAgVGhhbmtzIHRvIEpvaG4gQnl0aGV3YXkgZm9yIHN1Z2dlc3RpbmcgdG8gaW1wbGVtZW50IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0L21ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iRnVuY3Rpb24gdGVtcGxhdGUgbWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uIj5ib29zdDo6bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4uCisgICAgPC9wPgorPHA+CisgICAgICBUaGFua3MgdG8gTmF0aGFuIFJpZGdlIGZvciBzdWdnZXN0aW9ucyBvbiBob3cgdG8gaW1wbGVtZW50IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0L21ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iRnVuY3Rpb24gdGVtcGxhdGUgbWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uIj5ib29zdDo6bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4uCisgICAgPC9wPgorPHA+CisgICAgICBUaGFua3MgdG8gUm9iZXJ0IFN0ZXdhcnQgZm9yIGNvbW1lbnRpbmcgb24gdGhlIGxpYnJhcnkgbmFtZS4KKyAgICA8L3A+Cis8cD4KKyAgICAgIE1hbnkgdGhhbmtzIHRvIHRoZSBlbnRpcmUgPGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmciIHRhcmdldD0iX3RvcCI+Qm9vc3Q8L2E+IGNvbW11bml0eQorICAgICAgYW5kIG1haWxpbmcgbGlzdCBmb3IgcHJvdmlkaW5nIHZhbHVhYmxlIGNvbW1lbnRzIGFib3V0IHRoaXMgbGlicmFyeSBhbmQgZ3JlYXQKKyAgICAgIGluc2lnaHRzIG9uIHRoZSBDKysgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuCisgICAgPC9wPgorPC9kaXY+Cis8dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgYWxpZ249ImxlZnQiPjwvdGQ+Cis8dGQgYWxpZ249InJpZ2h0Ij48ZGl2IGNsYXNzPSJjb3B5cmlnaHQtZm9vdGVyIj5Db3B5cmlnaHQgJiMxNjk7IDIwMTEsIDIwMTIgTG9yZW56byBDYW1pbml0aTxwPgorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHNlZSBhY2NvbXBhbnlpbmcKKyAgICAgICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiIHRhcmdldD0iX3RvcCI+aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPikKKyAgICAgIDwvcD4KKzwvZGl2PjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iLi4vQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzMuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy91cC5wbmciIGFsdD0iVXAiPjwvYT48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9ob21lLnBuZyIgYWx0PSJIb21lIj48L2E+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vZ2V0dGluZ19zdGFydGVkLmh0bWwgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9odG1sL2Jvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2dldHRpbmdfc3RhcnRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4N2VhYWQKLS0tIC9kZXYvbnVsbAorKysgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9odG1sL2Jvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2dldHRpbmdfc3RhcnRlZC5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VUy1BU0NJSSI+Cis8dGl0bGU+R2V0dGluZyBTdGFydGVkPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9ib29zdGJvb2suY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc3LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iQ2hhcHRlciYjMTYwOzEuJiMxNjA7Qm9vc3QuRnVuY3Rpb25hbC9PdmVybG9hZGVkRnVuY3Rpb24gMS4wLjAiPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IkNoYXB0ZXImIzE2MDsxLiYjMTYwO0Jvb3N0LkZ1bmN0aW9uYWwvT3ZlcmxvYWRlZEZ1bmN0aW9uIDEuMC4wIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IkNoYXB0ZXImIzE2MDsxLiYjMTYwO0Jvb3N0LkZ1bmN0aW9uYWwvT3ZlcmxvYWRlZEZ1bmN0aW9uIDEuMC4wIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0idHV0b3JpYWwuaHRtbCIgdGl0bGU9IlR1dG9yaWFsIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzx0YWJsZSBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCI+PGltZyBhbHQ9IkJvb3N0IEMrKyBMaWJyYXJpZXMiIHdpZHRoPSIyNzciIGhlaWdodD0iODYiIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vYm9vc3QucG5nIj48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xpYnJhcmllcy5odG0iPkxpYnJhcmllczwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL3VzZXJzL3Blb3BsZS5odG1sIj5QZW9wbGU8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy91c2Vycy9mYXEuaHRtbCI+RkFRPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vbW9yZS9pbmRleC5odG0iPk1vcmU8L2E+PC90ZD4KKzwvdHI+PC90YWJsZT4KKzxocj4KKzxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3VwLnBuZyIgYWx0PSJVcCI+PC9hPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL2hvbWUucG5nIiBhbHQ9IkhvbWUiPjwvYT48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9InR1dG9yaWFsLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3Rpb24iPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLmdldHRpbmdfc3RhcnRlZCI+PC9hPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJnZXR0aW5nX3N0YXJ0ZWQuaHRtbCIgdGl0bGU9IkdldHRpbmcgU3RhcnRlZCI+R2V0dGluZworICAgIFN0YXJ0ZWQ8L2E+Cis8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImdldHRpbmdfc3RhcnRlZC5odG1sI2Jvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLmdldHRpbmdfc3RhcnRlZC5jb21waWxlcnNfYW5kX3BsYXRmb3JtcyI+Q29tcGlsZXJzCisgICAgICBhbmQgUGxhdGZvcm1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJnZXR0aW5nX3N0YXJ0ZWQuaHRtbCNib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi5nZXR0aW5nX3N0YXJ0ZWQuaW5zdGFsbGF0aW9uIj5JbnN0YWxsYXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGl2PgorPHA+CisgICAgICBUaGlzIHNlY3Rpb24gZXhwbGFpbnMgaG93IHRvIHNldHVwIGEgc3lzdGVtIHRvIHVzZSB0aGlzIGxpYnJhcnkuCisgICAgPC9wPgorPGRpdiBjbGFzcz0ic2VjdGlvbiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLmdldHRpbmdfc3RhcnRlZC5jb21waWxlcnNfYW5kX3BsYXRmb3JtcyI+PC9hPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJnZXR0aW5nX3N0YXJ0ZWQuaHRtbCNib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi5nZXR0aW5nX3N0YXJ0ZWQuY29tcGlsZXJzX2FuZF9wbGF0Zm9ybXMiIHRpdGxlPSJDb21waWxlcnMgYW5kIFBsYXRmb3JtcyI+Q29tcGlsZXJzCisgICAgICBhbmQgUGxhdGZvcm1zPC9hPgorPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorICAgICAgICBUaGUgYXV0aG9ycyBvcmlnaW5hbGx5IGRldmVsb3BlZCBhbmQgdGVzdGVkIHRoaXMgbGlicmFyeSBvbjoKKyAgICAgIDwvcD4KKzxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorICAgICAgICAgICAgR05VIENvbXBpbGVyIENvbGxlY3Rpb24gKEdDQykgQysrIDQuNS4zICh3aXRoIGFuZCB3aXRob3V0IEMrKzExIGZlYXR1cmVzCisgICAgICAgICAgICBlbmFibGVkIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9InNwZWNpYWwiPi08L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnN0ZDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+PTwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Yzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Kys8L3NwYW4+PHNwYW4gY2xhc3M9Im51bWJlciI+MDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+eDwvc3Bhbj48L2NvZGU+KQorICAgICAgICAgICAgb24gQ3lnd2luLgorICAgICAgICAgIDwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKyAgICAgICAgICAgIE1pc2Nyb3NvZnQgVmlzdWFsIEMrKyAoTVNWQykgOC4wIG9uIFdpbmRvd3MgNy4KKyAgICAgICAgICA8L2xpPgorPC9vbD48L2Rpdj4KKzxwPgorICAgICAgICBTZWUgdGhlIGxpYnJhcnkgPGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvZGV2ZWxvcG1lbnQvdGVzdHMvcmVsZWFzZS9kZXZlbG9wZXIvZnVuY3Rpb25hbC1vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiIHRhcmdldD0iX3RvcCI+cmVncmVzc2lvbnMKKyAgICAgICAgdGVzdCByZXN1bHRzPC9hPiBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gb24gc3VwcG9ydGVkIGNvbXBpbGVycyBhbmQKKyAgICAgICAgcGxhdGZvcm1zLiBDaGVjayB0aGUgbGlicmFyeSByZWdyZXNzaW9uIHRlc3QgPGEgaHJlZj0iLi4vLi4vLi4vdGVzdC9KYW1maWxlLnYyIiB0YXJnZXQ9Il90b3AiPjxjb2RlIGNsYXNzPSJsaXRlcmFsIj5KYW1maWxlLnYyPC9jb2RlPjwvYT4KKyAgICAgICAgZm9yIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gdGhhdCBtaWdodCBiZSByZXF1aXJlZCBmb3IgYSBzcGVjaWZpYyBjb21waWxlci4KKyAgICAgIDwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdGlvbiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLmdldHRpbmdfc3RhcnRlZC5pbnN0YWxsYXRpb24iPjwvYT48YSBjbGFzcz0ibGluayIgaHJlZj0iZ2V0dGluZ19zdGFydGVkLmh0bWwjYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24uZ2V0dGluZ19zdGFydGVkLmluc3RhbGxhdGlvbiIgdGl0bGU9Ikluc3RhbGxhdGlvbiI+SW5zdGFsbGF0aW9uPC9hPgorPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorICAgICAgICBUaGlzIGxpYnJhcnkgaXMgY29tcG9zZWQgb2YgaGVhZGVyIGZpbGVzIG9ubHkuIFRoZXJlZm9yZSB0aGVyZSBpcyBubyBwcmUtY29tcGlsZWQKKyAgICAgICAgb2JqZWN0IGZpbGUgd2hpY2ggbmVlZHMgdG8gYmUgaW5zdGFsbGVkLiBQcm9ncmFtbWVycyBjYW4gc2ltcGx5IGluc3RydWN0CisgICAgICAgIHRoZSBjb21waWxlciB3aGVyZSB0byBmaW5kIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LTwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+STwvc3Bhbj48L2NvZGU+IG9wdGlvbiBvbiBHQ0MsIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9InNwZWNpYWwiPi88L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkk8L3NwYW4+PC9jb2RlPiBvcHRpb24gb24gTVNWQywgZXRjKSBhbmQgY29tcGlsZSBjb2RlCisgICAgICAgIHVzaW5nIHRoZSBsaWJyYXJ5LgorICAgICAgPC9wPgorPHA+CisgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBmdW5jdGlvbnMgdG8gb3ZlcmxvYWQgaXMgZ2l2ZW4gYnkgdGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18zLmh0bWwiIHRpdGxlPSJNYWNybyBCT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX09WRVJMT0FEX01BWCI+Qk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19PVkVSTE9BRF9NQVg8L2E+PC9jb2RlPgorICAgICAgICBjb25maWd1cmF0aW9uIG1hY3JvLiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZnVuY3Rpb24gcGFyYW1ldGVycyBmb3IgZWFjaCBvZgorICAgICAgICB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHR5cGUgaXMgZ2l2ZW4gYnkgdGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL0JPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18yLmh0bWwiIHRpdGxlPSJNYWNybyBCT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX0FSSVRZX01BWCI+Qk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19BUklUWV9NQVg8L2E+PC9jb2RlPgorICAgICAgICBjb25maWd1cmF0aW9uIG1hY3JvLiBBbGwgY29uZmlndXJhdGlvbiBtYWNyb3MgaGF2ZSBhcHByb3ByaWF0ZSBkZWZhdWx0IHZhbHVlcworICAgICAgICB3aGVuIHRoZXkgYXJlIGxlZnQgdW5kZWZpbmVkLgorICAgICAgPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzx0YWJsZSB4bWxuczpyZXY9Imh0dHA6Ly93d3cuY3MucnBpLmVkdS9+Z3JlZ29kL2Jvb3N0L3Rvb2xzL2RvYy9yZXZpc2lvbiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCBhbGlnbj0ibGVmdCI+PC90ZD4KKzx0ZCBhbGlnbj0icmlnaHQiPjxkaXYgY2xhc3M9ImNvcHlyaWdodC1mb290ZXIiPkNvcHlyaWdodCAmIzE2OTsgMjAxMSwgMjAxMiBMb3JlbnpvIENhbWluaXRpPHA+CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMCAoc2VlIGFjY29tcGFueWluZworICAgICAgICBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCIgdGFyZ2V0PSJfdG9wIj5odHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KQorICAgICAgPC9wPgorPC9kaXY+PC90ZD4KKzwvdHI+PC90YWJsZT4KKzxocj4KKzxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3VwLnBuZyIgYWx0PSJVcCI+PC9hPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL2hvbWUucG5nIiBhbHQ9IkhvbWUiPjwvYT48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9InR1dG9yaWFsLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vdHV0b3JpYWwuaHRtbCBiL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vdHV0b3JpYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzJhZTFkCi0tLSAvZGV2L251bGwKKysrIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbC9ib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi90dXRvcmlhbC5odG1sCkBAIC0wLDAgKzEsMjI4IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVMtQVNDSUkiPgorPHRpdGxlPlR1dG9yaWFsPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9ib29zdGJvb2suY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc3LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iQ2hhcHRlciYjMTYwOzEuJiMxNjA7Qm9vc3QuRnVuY3Rpb25hbC9PdmVybG9hZGVkRnVuY3Rpb24gMS4wLjAiPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IkNoYXB0ZXImIzE2MDsxLiYjMTYwO0Jvb3N0LkZ1bmN0aW9uYWwvT3ZlcmxvYWRlZEZ1bmN0aW9uIDEuMC4wIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZ2V0dGluZ19zdGFydGVkLmh0bWwiIHRpdGxlPSJHZXR0aW5nIFN0YXJ0ZWQiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSIuLi9yZWZlcmVuY2UuaHRtbCIgdGl0bGU9IlJlZmVyZW5jZSI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8dGFibGUgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgdmFsaWduPSJ0b3AiPjxpbWcgYWx0PSJCb29zdCBDKysgTGlicmFyaWVzIiB3aWR0aD0iMjc3IiBoZWlnaHQ9Ijg2IiBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2Jvb3N0LnBuZyI+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9saWJyYXJpZXMuaHRtIj5MaWJyYXJpZXM8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy91c2Vycy9wZW9wbGUuaHRtbCI+UGVvcGxlPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvZmFxLmh0bWwiPkZBUTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL21vcmUvaW5kZXguaHRtIj5Nb3JlPC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZ2V0dGluZ19zdGFydGVkLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iLi4vcmVmZXJlbmNlLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3Rpb24iPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLnR1dG9yaWFsIj48L2E+PGEgY2xhc3M9ImxpbmsiIGhyZWY9InR1dG9yaWFsLmh0bWwiIHRpdGxlPSJUdXRvcmlhbCI+VHV0b3JpYWw8L2E+Cis8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InR1dG9yaWFsLmh0bWwjYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24udHV0b3JpYWwub3ZlcmxvYWRpbmciPk92ZXJsb2FkaW5nPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJ0dXRvcmlhbC5odG1sI2Jvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLnR1dG9yaWFsLndpdGhvdXRfZnVuY3Rpb25fdHlwZXMiPldpdGhvdXQKKyAgICAgIEZ1bmN0aW9uIFR5cGVzPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2Rpdj4KKzxwPgorICAgICAgVGhpcyBzZWN0aW9uIGV4cGxhaW5zIGhvdyB0byB1c2UgdGhpcyBsaWJyYXJ5LgorICAgIDwvcD4KKzxkaXYgY2xhc3M9InNlY3Rpb24iPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi50dXRvcmlhbC5vdmVybG9hZGluZyI+PC9hPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJ0dXRvcmlhbC5odG1sI2Jvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLnR1dG9yaWFsLm92ZXJsb2FkaW5nIiB0aXRsZT0iT3ZlcmxvYWRpbmciPk92ZXJsb2FkaW5nPC9hPgorPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorICAgICAgICBDb25zaWRlciB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyB3aGljaCBoYXZlIGRpc3RpbmN0IHNpZ25hdHVyZXM6CisgICAgICA8L3A+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdGQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdHJpbmc8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZhbXA7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfczwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdGQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdHJpbmc8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZhbXA7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+eDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIEZ1bmN0aW9uIChhcyBwb2ludGVyKS48L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9InNwZWNpYWwiPns8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5yZXR1cm48L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj54PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+fTwvc3Bhbj4KKworPHNwYW4gY2xhc3M9ImtleXdvcmQiPmludDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2lfaW1wbDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+aW50PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+eDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPns8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5yZXR1cm48L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj54PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+fTwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJrZXl3b3JkIj5pbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oJmFtcDs8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2k8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPikoPC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5pbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfaV9pbXBsPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPiA8c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gRnVuY3Rpb24gcmVmZXJlbmNlLjwvc3Bhbj4KKworPHNwYW4gY2xhc3M9ImtleXdvcmQiPmRvdWJsZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2RfaW1wbDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+ZG91YmxlPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+eDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPns8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5yZXR1cm48L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj54PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+fTwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmZ1bmN0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5kb3VibGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5kb3VibGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPikmZ3Q7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfZDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9kX2ltcGw8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBGdW5jdG9yLjwvc3Bhbj4KKzwvcHJlPgorPHA+CisgICAgICA8L3A+Cis8cD4KKyAgICAgICAgVGhpcyBsaWJyYXJ5IGhlYWRlciA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9yZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uX2hwcCIgdGl0bGU9IkhlYWRlciAmbHQ7Ym9vc3QvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uLmhwcCZndDsiPmJvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi5ocHA8L2E+PC9jb2RlPgorICAgICAgICBwcm92aWRlcyBhIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPmJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4KKyAgICAgICAgY2xhc3MgdGVtcGxhdGUgdGhhdCBjcmVhdGVzIGEgc2luZ2xlIG92ZXJsb2FkZWQgZnVuY3Rpb24gb2JqZWN0IHRoYXQgY2FuCisgICAgICAgIGJlIHVzZWQgdG8gY2FsbCB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBzZXBhcmF0ZSBmdW5jdGlvbgorICAgICAgICBuYW1lcyAoc2VlIGFsc28gPGEgaHJlZj0iLi4vLi4vLi4vdGVzdC9mdW5jdG9yLmNwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0ibGl0ZXJhbCI+ZnVuY3Rvci5jcHA8L2NvZGU+PC9hPgorICAgICAgICBhbmQgPGEgaHJlZj0iLi4vLi4vLi4vdGVzdC9pZGVudGl0eS5ocHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImxpdGVyYWwiPmlkZW50aXR5LmhwcDwvY29kZT48L2E+KToKKyAgICAgIDwvcD4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm92ZXJsb2FkZWRfZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+CisgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdGQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdHJpbmc8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZhbXA7PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdGQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdHJpbmc8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZhbXA7KTwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPmludDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmludDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPmRvdWJsZTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmRvdWJsZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X3M8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9pPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfZDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+CisKKzxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBBbGwgY2FsbHMgdmlhIHNpbmdsZSBgaWRlbnRpdHlgIGZ1bmN0aW9uLjwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5CT09TVF9URVNUPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RyaW5nIj4iYWJjIjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj09PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3RyaW5nIj4iYWJjIjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+Cis8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVEVTVDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im51bWJlciI+MTIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PT08L3NwYW4+IDxzcGFuIGNsYXNzPSJudW1iZXIiPjEyMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+Cis8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVEVTVDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im51bWJlciI+MS4yMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj09PC9zcGFuPiA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xLjIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzwvc3Bhbj4KKzwvcHJlPgorPHA+CisgICAgICA8L3A+Cis8cD4KKyAgICAgICAgTm90ZSBob3cgZWFjaCBmdW5jdGlvbiB0eXBlIGlzIHBhc3NlZCBhcyBhIHRlbXBsYXRlIHBhcmFtZXRlciBvZiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9ib29zdC9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiIHRpdGxlPSJDbGFzcyB0ZW1wbGF0ZSBvdmVybG9hZGVkX2Z1bmN0aW9uIj5ib29zdDo6b3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48L2NvZGU+IHVzaW5nCisgICAgICAgIHRoZSBmb2xsb3dpbmcgc3ludGF4ICh0aGlzIGlzIDxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvZnVuY3Rpb24iIHRhcmdldD0iX3RvcCI+Qm9vc3QuRnVuY3Rpb248L2E+J3MKKyAgICAgICAgcHJlZmVycmVkIHN5bnRheCk6CisgICAgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cmVzdWx0LXR5cGU8L2VtPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+YXJndW1lbnQxLXR5cGU8L2VtPjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+YXJndW1lbnQyLXR5cGU8L2VtPjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLik8L3NwYW4+Cis8L3ByZT4KKzxwPgorICAgICAgICBUaGVuIHRoZSByZWxhdGl2ZSBmdW5jdGlvbiBwb2ludGVycywgZnVuY3Rpb24gcmVmZXJlbmNlcywgb3IgPGEgaHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Qb2x5bW9ycGhpc21fKGNvbXB1dGVyX3NjaWVuY2UpIiB0YXJnZXQ9Il90b3AiPm1vbm9tb3JwaGljCisgICAgICAgIGZ1bmN0aW9uPC9hPiBvYmplY3RzIGFyZSBwYXNzZWQgdG8gdGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPmJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4KKyAgICAgICAgY29uc3RydWN0b3IgbWF0Y2hpbmcgdGhlIG9yZGVyIG9mIHRoZSBzcGVjaWZpZWQgdGVtcGxhdGUgcGFyYW1ldGVycy4gPGEgaHJlZj0iI2Z0bi5ib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi50dXRvcmlhbC5vdmVybG9hZGluZy5mMCIgY2xhc3M9ImZvb3Rub3RlIj48c3VwIGNsYXNzPSJmb290bm90ZSI+PGEgbmFtZT0iYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24udHV0b3JpYWwub3ZlcmxvYWRpbmcuZjAiPjwvYT5bMl08L3N1cD48L2E+IEluIHRoZSBhYm92ZSBleGFtcGxlLCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9zPC9zcGFuPjwvY29kZT4KKyAgICAgICAgaXMgcGFzc2VkIGFzIGEgZnVuY3Rpb24gcG9pbnRlciAodGhlIGZ1bmN0aW9uIGFkZHJlc3MgaXMgYXV0b21hdGljYWxseSB0YWtlbgorICAgICAgICBmcm9tIHRoZSBmdW5jdGlvbiBuYW1lIGJ5IHRoZSBjb21waWxlciksIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2k8L3NwYW4+PC9jb2RlPgorICAgICAgICBhcyBhIGZ1bmN0aW9uIHJlZmVyZW5jZSwgYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2Q8L3NwYW4+PC9jb2RlPgorICAgICAgICBhcyBhIGZ1bmN0aW9uIG9iamVjdC4KKyAgICAgIDwvcD4KKzxwPgorICAgICAgICBBbGwgc3BlY2lmaWVkIGZ1bmN0aW9uIHR5cGVzIG11c3QgaGF2ZSBkaXN0aW5jdCBwYXJhbWV0ZXJzIGZyb20gb25lIGFub3RoZXIKKyAgICAgICAgKHNvIHRoZSBvdmVybG9hZGVkIGNhbGxzIGNhbiBiZSByZXNvbHZlZCBieSB0aGlzIGxpYnJhcnkpLiA8YSBocmVmPSIjZnRuLmJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLnR1dG9yaWFsLm92ZXJsb2FkaW5nLmYxIiBjbGFzcz0iZm9vdG5vdGUiPjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBuYW1lPSJib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi50dXRvcmlhbC5vdmVybG9hZGluZy5mMSI+PC9hPlszXTwvc3VwPjwvYT4gSW4gb3JkZXIgdG8gY3JlYXRlIGFuIG92ZXJsb2FkZWQgZnVuY3Rpb24gb2JqZWN0LCBpdCBpcyBuZWNlc3NhcnkKKyAgICAgICAgdG8gc3BlY2lmeSBhdCBsZWFzdCB0d28gZnVuY3Rpb24gdHlwZXMgKGJlY2F1c2UgdGhlcmUgaXMgbm90aGluZyB0byBvdmVybG9hZAorICAgICAgICBiZXR3ZWVuIG9uZSBvciB6ZXJvIGZ1bmN0aW9ucykuCisgICAgICA8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3Rpb24iPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi50dXRvcmlhbC53aXRob3V0X2Z1bmN0aW9uX3R5cGVzIj48L2E+PGEgY2xhc3M9ImxpbmsiIGhyZWY9InR1dG9yaWFsLmh0bWwjYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24udHV0b3JpYWwud2l0aG91dF9mdW5jdGlvbl90eXBlcyIgdGl0bGU9IldpdGhvdXQgRnVuY3Rpb24gVHlwZXMiPldpdGhvdXQKKyAgICAgIEZ1bmN0aW9uIFR5cGVzPC9hPgorPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorICAgICAgICBGb3IgY29udmVuaWVuY2UsIHRoaXMgbGlicmFyeSBhbHNvIHByb3ZpZGVzIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9ib29zdC9tYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkZ1bmN0aW9uIHRlbXBsYXRlIG1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbiI+Ym9vc3Q6Om1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48L2NvZGU+CisgICAgICAgIGZ1bmN0aW9uIHRlbXBsYXRlIHdoaWNoIGFsbG93cyB0byBjcmVhdGUgdGhlIG92ZXJsb2FkZWQgZnVuY3Rpb24gb2JqZWN0IHdpdGhvdXQKKyAgICAgICAgZXhwbGljaXRseSBzcGVjaWZ5aW5nIHRoZSBmdW5jdGlvbiB0eXBlcy4gVGhlIGZ1bmN0aW9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5CisgICAgICAgIGRlZHVjZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9ucyBhbmQgdGhlIGFwcHJvcHJpYXRlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPmJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4KKyAgICAgICAgaW5zdGFudGlhdGlvbiBpcyByZXR1cm5lZCBieSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9ib29zdC9tYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkZ1bmN0aW9uIHRlbXBsYXRlIG1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbiI+Ym9vc3Q6Om1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48L2NvZGU+LgorICAgICAgPC9wPgorPHA+CisgICAgICAgIFRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9ib29zdC9tYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkZ1bmN0aW9uIHRlbXBsYXRlIG1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbiI+Ym9vc3Q6Om1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48L2NvZGU+CisgICAgICAgIGZ1bmN0aW9uIHRlbXBsYXRlIGNhbiBiZSB1c2VmdWwgd2hlbiB1c2VkIHRvZ2V0aGVyIHdpdGggPGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvZG9jL2xpYnMvdHlwZW9mIiB0YXJnZXQ9Il90b3AiPkJvb3N0LlR5cGVvZjwvYT4ncworICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5CT09TVF9BVVRPPC9zcGFuPjwvY29kZT4gKG9yIEMrKzExIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmF1dG88L3NwYW4+PC9jb2RlPikuIEZvciBleGFtcGxlIChzZWUgYWxzbyA8YSBocmVmPSIuLi8uLi8uLi90ZXN0L21ha2VfZGVjbC5jcHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImxpdGVyYWwiPm1ha2VfZGVjbC5jcHA8L2NvZGU+PC9hPgorICAgICAgICBhbmQgPGEgaHJlZj0iLi4vLi4vLi4vdGVzdC9pZGVudGl0eS5ocHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImxpdGVyYWwiPmlkZW50aXR5LmhwcDwvY29kZT48L2E+KToKKyAgICAgIDwvcD4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5CT09TVF9BVVRPPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPgorICAgICAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfczwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2k8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9kPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pKTs8L3NwYW4+CisKKzxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5CT09TVF9URVNUPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RyaW5nIj4iYWJjIjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj09PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3RyaW5nIj4iYWJjIjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+Cis8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVEVTVDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im51bWJlciI+MTIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PT08L3NwYW4+IDxzcGFuIGNsYXNzPSJudW1iZXIiPjEyMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+Cis8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVEVTVDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im51bWJlciI+MS4yMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj09PC9zcGFuPiA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xLjIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzwvc3Bhbj4KKzwvcHJlPgorPHA+CisgICAgICA8L3A+Cis8cD4KKyAgICAgICAgTm90ZSBob3cgdGhlIG92ZXJsb2FkZWQgZnVuY3Rpb24gb2JqZWN0IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5PC9zcGFuPjwvY29kZT4KKyAgICAgICAgaGFzIGJlZW4gY3JlYXRlZCBzcGVjaWZ5aW5nIG9ubHkgdGhlIGZ1bmN0aW9ucyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9zPC9zcGFuPjwvY29kZT4sCisgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2k8L3NwYW4+PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfZDwvc3Bhbj48L2NvZGU+IGFuZCB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIGZ1bmN0aW9uCisgICAgICAgIHR5cGVzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RkPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RyaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mYW1wOzwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPgorICAgICAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RkPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RyaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mYW1wOyk8L3NwYW4+PC9jb2RlPiwKKyAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ia2V5d29yZCI+aW50PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+aW50PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPjwvY29kZT4sIGFuZAorICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5kb3VibGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5kb3VibGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+PC9jb2RlPiBhcworICAgICAgICByZXF1aXJlZCBpbnN0ZWFkIGJ5IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPmJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4uCisgICAgICAgIFRoZXJlZm9yZSwgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vYm9vc3QvbWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiIHRpdGxlPSJGdW5jdGlvbiB0ZW1wbGF0ZSBtYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24iPmJvb3N0OjptYWtlX292ZXJsb2FkZWRfZnVuY3Rpb248L2E+PC9jb2RlPgorICAgICAgICBwcm92aWRlcyBhIG1vcmUgY29uY2lzZSBzeW50YXggaW4gdGhpcyBjb250ZXh0IHdoZW4gY29tcGFyZWQgd2l0aCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9ib29zdC9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiIHRpdGxlPSJDbGFzcyB0ZW1wbGF0ZSBvdmVybG9hZGVkX2Z1bmN0aW9uIj5ib29zdDo6b3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48L2NvZGU+LgorICAgICAgPC9wPgorPHA+CisgICAgICAgIEFub3RoZXIgY2FzZSB3aGVyZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9ib29zdC9tYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkZ1bmN0aW9uIHRlbXBsYXRlIG1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbiI+Ym9vc3Q6Om1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48L2NvZGU+CisgICAgICAgIGNhbiBiZSB1c2VmdWwgaXMgd2hlbiB0aGUgb3ZlcmxvYWRlZCBmdW5jdGlvbiBvYmplY3QgaXMgcGFzc2VkIHRvIGEgZnVuY3Rpb24KKyAgICAgICAgdGVtcGxhdGUgd2hpY2ggY2FuIGhvbGQgdGhlIHNwZWNpZmljIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPmJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4KKyAgICAgICAgdHlwZSB1c2luZyBhIHRlbXBsYXRlIHBhcmFtZXRlci4gRm9yIGV4YW1wbGUgKHNlZSBhbHNvIDxhIGhyZWY9Ii4uLy4uLy4uL3Rlc3QvbWFrZV9jYWxsLmNwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0ibGl0ZXJhbCI+bWFrZV9jYWxsLmNwcDwvY29kZT48L2E+CisgICAgICAgIGFuZCA8YSBocmVmPSIuLi8uLi8uLi90ZXN0L2lkZW50aXR5LmhwcCIgdGFyZ2V0PSJfdG9wIj48Y29kZSBjbGFzcz0ibGl0ZXJhbCI+aWRlbnRpdHkuaHBwPC9jb2RlPjwvYT4pOgorICAgICAgPC9wPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPnRlbXBsYXRlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlbmFtZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkY8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDs8L3NwYW4+Cis8c3BhbiBjbGFzcz0ia2V5d29yZCI+dm9pZDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNoZWNrPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5GPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj57PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5CT09TVF9URVNUPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RyaW5nIj4iYWJjIjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj09PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3RyaW5nIj4iYWJjIjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkJPT1NUX1RFU1Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJudW1iZXIiPjEyMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj09PC9zcGFuPiA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xMjM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5CT09TVF9URVNUPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibnVtYmVyIj4xLjIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PT08L3NwYW4+IDxzcGFuIGNsYXNzPSJudW1iZXIiPjEuMjM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPgorPHNwYW4gY2xhc3M9InNwZWNpYWwiPn08L3NwYW4+Cis8L3ByZT4KKzxwPgorICAgICAgPC9wPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNoZWNrPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfczwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2k8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9kPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pKTs8L3NwYW4+Cis8L3ByZT4KKzxwPgorICAgICAgPC9wPgorPHA+CisgICAgICAgIFRoZSBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIG9mIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uL2Jvb3N0L21ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iRnVuY3Rpb24gdGVtcGxhdGUgbWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uIj5ib29zdDo6bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uPC9hPjwvY29kZT4KKyAgICAgICAgdXNlcyA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9kb2MvbGlicy90eXBlb2YiIHRhcmdldD0iX3RvcCI+Qm9vc3QuVHlwZW9mPC9hPgorICAgICAgICB0byBhdXRvbWF0aWNhbGx5IGRlZHVjZSBzb21lIG9mIHRoZSBmdW5jdGlvbiB0eXBlcy4gSW4gb3JkZXIgdG8gY29tcGlsZSBjb2RlCisgICAgICAgIGluIDxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL2RvYy9saWJzL3R5cGVvZiIgdGFyZ2V0PSJfdG9wIj5Cb29zdC5UeXBlb2Y8L2E+CisgICAgICAgIGVtdWxhdGlvbiBtb2RlLCBhbGwgdHlwZXMgc2hvdWxkIGJlIHByb3Blcmx5IHJlZ2lzdGVyZWQgdXNpbmcgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEU8L3NwYW4+PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFPC9zcGFuPjwvY29kZT4sIG9yIGFwcHJvcHJpYXRlCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL2RvYy9saWJzL3R5cGVvZiIgdGFyZ2V0PSJfdG9wIj5Cb29zdC5UeXBlb2Y8L2E+IGhlYWRlcnMKKyAgICAgICAgc2hvdWxkIGJlIGluY2x1ZGVkIChzZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvZG9jL2xpYnMvdHlwZW9mIiB0YXJnZXQ9Il90b3AiPkJvb3N0LlR5cGVvZjwvYT4KKyAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24pLiBGb3IgdGhlIGFib3ZlIGV4YW1wbGVzLCBpdCBpcyBzdWZmaWNpZW50IHRvIGluY2x1ZGUKKyAgICAgICAgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL2RvYy9saWJzL3R5cGVvZiIgdGFyZ2V0PSJfdG9wIj5Cb29zdC5UeXBlb2Y8L2E+CisgICAgICAgIGhlYWRlciB0aGF0IHJlZ2lzdGVycyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdGQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdHJpbmc8L3NwYW4+PC9jb2RlPgorICAgICAgICAodGhpcyBsaWJyYXJ5IGRvZXMgbm90IHJlcXVpcmUgdG8gcmVnaXN0ZXIgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5mdW5jdGlvbjwvc3Bhbj48L2NvZGU+CisgICAgICAgIGZvciA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9kb2MvbGlicy90eXBlb2YiIHRhcmdldD0iX3RvcCI+Qm9vc3QuVHlwZW9mPC9hPgorICAgICAgICBlbXVsYXRpb24pOgorICAgICAgPC9wPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PHNwYW4gY2xhc3M9InByZXByb2Nlc3NvciI+I2luY2x1ZGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Lzwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+dHlwZW9mPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4vPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zdGQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPi88L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnN0cmluZzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ljwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aHBwPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPiA8c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gTm8gbmVlZCB0byByZWdpc3RlciBgYm9vc3Q6OmZ1bmN0aW9uYC48L3NwYW4+Cis8L3ByZT4KKzxwPgorICAgICAgPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJmb290bm90ZXMiPgorPGJyPjxociBzdHlsZT0id2lkdGg6MTAwOyBhbGlnbjpsZWZ0OyI+Cis8ZGl2IGlkPSJmdG4uYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24udHV0b3JpYWwub3ZlcmxvYWRpbmcuZjAiIGNsYXNzPSJmb290bm90ZSI+PHA+PGEgaHJlZj0iI2Jvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLnR1dG9yaWFsLm92ZXJsb2FkaW5nLmYwIiBjbGFzcz0icGFyYSI+PHN1cCBjbGFzcz0icGFyYSI+WzJdIDwvc3VwPjwvYT4KKyAgICAgICAgICBGdW5jdGlvbiBwb2ludGVycyBhcmUgb2YgdGhlIGZvcm0gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnJlc3VsdC10eXBlIDwvZW0+PC9zcGFuPjwvY29kZT48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oKikoPC9zcGFuPjwvY29kZT48Y29kZSBjbGFzcz0ibGl0ZXJhbCI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+YXJndW1lbnQxLXR5cGU8L2VtPjwvc3Bhbj48L2NvZGU+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLik8L3NwYW4+PC9jb2RlPiAodGhlCisgICAgICAgICAgQysrIGNvbXBpbGVyIGlzIHVzdWFsbHkgYWJsZSB0byBhdXRvbWF0aWNhbGx5IHByb21vdGUgYSBmdW5jdGlvbiBuYW1lIHRvCisgICAgICAgICAgYSBmdW5jdGlvbiBwb2ludGVyIGluIGEgY29udGV4dCB3aGVyZSBhIGZ1bmN0aW9uIHBvaW50ZXIgaXMgZXhwZWN0ZWQgZXZlbgorICAgICAgICAgIGlmIHRoZSBmdW5jdGlvbiBuYW1lIGlzIG5vdCBwcmVmaXhlZCBieSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mYW1wOzwvc3Bhbj48L2NvZGU+KS4KKyAgICAgICAgICBGdW5jdGlvbiByZWZlcmVuY2VzIGFyZSBvZiB0aGUgZm9ybSA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cmVzdWx0LXR5cGUgPC9lbT48L3NwYW4+PC9jb2RlPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigmYW1wOykoPC9zcGFuPjwvY29kZT48Y29kZSBjbGFzcz0ibGl0ZXJhbCI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+YXJndW1lbnQxLXR5cGU8L2VtPjwvc3Bhbj48L2NvZGU+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLik8L3NwYW4+PC9jb2RlPi4KKyAgICAgICAgICBGdW5jdGlvbiB0eXBlcyBhcmUgb2YgdGhlIGZvcm0gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnJlc3VsdC10eXBlIDwvZW0+PC9zcGFuPjwvY29kZT48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjwvY29kZT48Y29kZSBjbGFzcz0ibGl0ZXJhbCI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+YXJndW1lbnQxLXR5cGU8L2VtPjwvc3Bhbj48L2NvZGU+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPi4uLik8L3NwYW4+PC9jb2RlPiAobm90ZQorICAgICAgICAgIGhvdyB0aGV5IGxhY2sgb2YgYm90aCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4qPC9zcGFuPjwvY29kZT4gYW5kCisgICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ic3BlY2lhbCI+JmFtcDs8L3NwYW4+PC9jb2RlPiB3aGVuIGNvbXBhcmVkIHRvIGZ1bmN0aW9uCisgICAgICAgICAgcG9pbnRlcnMgYW5kIGZ1bmN0aW9uIHJlZmVyZW5jZXMpLiBGaW5hbGx5LCBtb25vbW9ycGhpYyBmdW5jdGlvbiBvYmplY3RzCisgICAgICAgICAgYXJlIGluc3RhbmNlcyBvZiBjbGFzc2VzIHdpdGggYSBub24tdGVtcGxhdGUgY2FsbCBvcGVyYXRvciBvZiB0aGUgZm9ybQorICAgICAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj48c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5yZXN1bHQtdHlwZSA8L2VtPjwvc3Bhbj48L2NvZGU+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ia2V5d29yZCI+b3BlcmF0b3I8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpKDwvc3Bhbj48L2NvZGU+PGNvZGUgY2xhc3M9ImxpdGVyYWwiPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmFyZ3VtZW50MS10eXBlPC9lbT48L3NwYW4+PC9jb2RlPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4uLi4pPC9zcGFuPjwvY29kZT4uCisgICAgICAgICAgVW5mb3J0dW5hdGVseSwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHN1cHBvcnQgcG9seW1vcnBoaWMgZnVuY3Rpb24gb2JqZWN0cworICAgICAgICAgIChzZWUgPGEgaHJlZj0iaHR0cDovL2xpc3RzLmJvb3N0Lm9yZy9BcmNoaXZlcy9ib29zdC8yMDEyLzAzLzE5MTc0NC5waHAiIHRhcmdldD0iX3RvcCI+aHR0cDovL2xpc3RzLmJvb3N0Lm9yZy9BcmNoaXZlcy9ib29zdC8yMDEyLzAzLzE5MTc0NC5waHA8L2E+KS4KKyAgICAgICAgPC9wPjwvZGl2PgorPGRpdiBpZD0iZnRuLmJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLnR1dG9yaWFsLm92ZXJsb2FkaW5nLmYxIiBjbGFzcz0iZm9vdG5vdGUiPjxwPjxhIGhyZWY9IiNib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi50dXRvcmlhbC5vdmVybG9hZGluZy5mMSIgY2xhc3M9InBhcmEiPjxzdXAgY2xhc3M9InBhcmEiPlszXSA8L3N1cD48L2E+CisgICAgICAgICAgTm90ZSB0aGF0IGluIEMrKyB0aGUgZnVuY3Rpb24gcmVzdWx0IHR5cGUgaXMgbm90IHVzZWQgZm9yIG92ZXJsb2FkIHJlc29sdXRpb24KKyAgICAgICAgICAodG8gYXZvaWQgbWFraW5nIHRoZSBvdmVybG9hZCByZXNvbHV0aW9uIGNvbnRleHQgZGVwZW5kZW50KS4gVGhlcmVmb3JlLAorICAgICAgICAgIGF0IGxlYXN0IG9uZSBvZiB0aGUgZnVuY3Rpb24gcGFyYW1ldGVycyBtdXN0IGJlIGRpc3RpbmN0IGZvciBlYWNoIHNwZWNpZmllZAorICAgICAgICAgIGZ1bmN0aW9uIHR5cGUuCisgICAgICAgIDwvcD48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgYWxpZ249ImxlZnQiPjwvdGQ+Cis8dGQgYWxpZ249InJpZ2h0Ij48ZGl2IGNsYXNzPSJjb3B5cmlnaHQtZm9vdGVyIj5Db3B5cmlnaHQgJiMxNjk7IDIwMTEsIDIwMTIgTG9yZW56byBDYW1pbml0aTxwPgorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHNlZSBhY2NvbXBhbnlpbmcKKyAgICAgICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiIHRhcmdldD0iX3RvcCI+aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPikKKyAgICAgIDwvcD4KKzwvZGl2PjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZ2V0dGluZ19zdGFydGVkLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iLi4vcmVmZXJlbmNlLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvaW5kZXguaHRtbCBiL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL2h0bWwvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDRmOGM0Ci0tLSAvZGV2L251bGwKKysrIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbC9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTQ3IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVMtQVNDSUkiPgorPHRpdGxlPkNoYXB0ZXImIzE2MDsxLiYjMTYwO0Jvb3N0LkZ1bmN0aW9uYWwvT3ZlcmxvYWRlZEZ1bmN0aW9uIDEuMC4wPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9ib29zdGJvb2suY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc3LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iQ2hhcHRlciYjMTYwOzEuJiMxNjA7Qm9vc3QuRnVuY3Rpb25hbC9PdmVybG9hZGVkRnVuY3Rpb24gMS4wLjAiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi9nZXR0aW5nX3N0YXJ0ZWQuaHRtbCIgdGl0bGU9IkdldHRpbmcgU3RhcnRlZCI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8dGFibGUgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgdmFsaWduPSJ0b3AiPjxpbWcgYWx0PSJCb29zdCBDKysgTGlicmFyaWVzIiB3aWR0aD0iMjc3IiBoZWlnaHQ9Ijg2IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0LnBuZyI+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vbGlicy9saWJyYXJpZXMuaHRtIj5MaWJyYXJpZXM8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy91c2Vycy9wZW9wbGUuaHRtbCI+UGVvcGxlPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvZmFxLmh0bWwiPkZBUTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL21vcmUvaW5kZXguaHRtIj5Nb3JlPC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2dldHRpbmdfc3RhcnRlZC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPjwvZGl2PgorPGRpdiBjbGFzcz0iY2hhcHRlciI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+Cis8ZGl2PjxoMiBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24iPjwvYT5DaGFwdGVyJiMxNjA7MS4mIzE2MDtCb29zdC5GdW5jdGlvbmFsL092ZXJsb2FkZWRGdW5jdGlvbiAxLjAuMDwvaDI+PC9kaXY+Cis8ZGl2PjxkaXYgY2xhc3M9ImF1dGhvciI+PGgzIGNsYXNzPSJhdXRob3IiPgorPHNwYW4gY2xhc3M9ImZpcnN0bmFtZSI+TG9yZW56bzwvc3Bhbj4gPHNwYW4gY2xhc3M9InN1cm5hbWUiPkNhbWluaXRpIDxjb2RlIGNsYXNzPSJlbWFpbCI+Jmx0OzxhIGNsYXNzPSJlbWFpbCIgaHJlZj0ibWFpbHRvOmxvcmNhbWluaXRpQGdtYWlsLmNvbSI+bG9yY2FtaW5pdGlAZ21haWwuY29tPC9hPiZndDs8L2NvZGU+PC9zcGFuPgorPC9oMz48L2Rpdj48L2Rpdj4KKzxkaXY+PHAgY2xhc3M9ImNvcHlyaWdodCI+Q29weXJpZ2h0ICYjMTY5OyAyMDExLCAyMDEyIExvcmVuem8gQ2FtaW5pdGk8L3A+PC9kaXY+Cis8ZGl2PjxkaXYgY2xhc3M9ImxlZ2Fsbm90aWNlIj4KKzxhIG5hbWU9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLmxlZ2FsIj48L2E+PHA+CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMCAoc2VlIGFjY29tcGFueWluZworICAgICAgICBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCIgdGFyZ2V0PSJfdG9wIj5odHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KQorICAgICAgPC9wPgorPC9kaXY+PC9kaXY+Cis8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InRvYyI+Cis8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+Cis8ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImluZGV4Lmh0bWwjYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24uaW50cm9kdWN0aW9uIj5JbnRyb2R1Y3Rpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2dldHRpbmdfc3RhcnRlZC5odG1sIj5HZXR0aW5nCisgICAgU3RhcnRlZDwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL2dldHRpbmdfc3RhcnRlZC5odG1sI2Jvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLmdldHRpbmdfc3RhcnRlZC5jb21waWxlcnNfYW5kX3BsYXRmb3JtcyI+Q29tcGlsZXJzCisgICAgICBhbmQgUGxhdGZvcm1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi9nZXR0aW5nX3N0YXJ0ZWQuaHRtbCNib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi5nZXR0aW5nX3N0YXJ0ZWQuaW5zdGFsbGF0aW9uIj5JbnN0YWxsYXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL3R1dG9yaWFsLmh0bWwiPlR1dG9yaWFsPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vdHV0b3JpYWwuaHRtbCNib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi50dXRvcmlhbC5vdmVybG9hZGluZyI+T3ZlcmxvYWRpbmc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL3R1dG9yaWFsLmh0bWwjYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24udHV0b3JpYWwud2l0aG91dF9mdW5jdGlvbl90eXBlcyI+V2l0aG91dAorICAgICAgRnVuY3Rpb24gVHlwZXM8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InJlZmVyZW5jZS5odG1sIj5SZWZlcmVuY2U8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJyZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uX2hwcCI+SGVhZGVyICZsdDtib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24uaHBwJmd0OzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0icmVmZXJlbmNlLmh0bWwjaGVhZGVyLmJvb3N0LmZ1bmN0aW9uYWwub3ZlcmxvYWRlZF9mdW5jdGlvbi5jb25maWdfaHBwIj5IZWFkZXIgJmx0O2Jvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi9jb25maWcuaHBwJmd0OzwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vYWNrbm93bGVkZ21lbnRzLmh0bWwiPkFja25vd2xlZGdtZW50czwvYT48L3NwYW4+PC9kdD4KKzwvZGw+Cis8L2Rpdj4KKzxwPgorICAgIFRoaXMgbGlicmFyeSBhbGxvd3MgdG8gb3ZlcmxvYWQgZGlmZmVyZW50IGZ1bmN0aW9ucyBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uIG9iamVjdC4KKyAgPC9wPgorPGRpdiBjbGFzcz0ic2VjdGlvbiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24uaW50cm9kdWN0aW9uIj48L2E+PGEgY2xhc3M9ImxpbmsiIGhyZWY9ImluZGV4Lmh0bWwjYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24uaW50cm9kdWN0aW9uIiB0aXRsZT0iSW50cm9kdWN0aW9uIj5JbnRyb2R1Y3Rpb248L2E+Cis8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CisgICAgICBDb25zaWRlciB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyB3aGljaCBoYXZlIGRpc3RpbmN0IHNpZ25hdHVyZXM6CisgICAgPC9wPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RkPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RyaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mYW1wOzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X3M8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RkPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RyaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mYW1wOzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPng8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBGdW5jdGlvbiAoYXMgcG9pbnRlcikuPC9zcGFuPgorICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj57PC9zcGFuPiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+eDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPn08L3NwYW4+CisKKzxzcGFuIGNsYXNzPSJrZXl3b3JkIj5pbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9pX2ltcGw8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmludDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPng8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj57PC9zcGFuPiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+eDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPn08L3NwYW4+Cis8c3BhbiBjbGFzcz0ia2V5d29yZCI+aW50PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCZhbXA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9pPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pKDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+aW50PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2lfaW1wbDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIEZ1bmN0aW9uIHJlZmVyZW5jZS48L3NwYW4+CisKKzxzcGFuIGNsYXNzPSJrZXl3b3JkIj5kb3VibGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9kX2ltcGw8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmRvdWJsZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPng8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj57PC9zcGFuPiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+eDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPn08L3NwYW4+Cis8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5mdW5jdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+ZG91YmxlPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+ZG91YmxlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pJmd0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfZF9pbXBsPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPiA8c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gRnVuY3Rvci48L3NwYW4+Cis8L3ByZT4KKzxwPgorICAgIDwvcD4KKzxwPgorICAgICAgSW5zdGVhZCBvZiBjYWxsaW5nIHRoZW0gdXNpbmcgdGhlaXIgc2VwYXJhdGUgbmFtZXMgKGhlcmUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVEVTVDwvc3Bhbj48L2NvZGU+CisgICAgICBpcyBlcXVpdmFsZW50IHRvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFzc2VydDwvc3Bhbj48L2NvZGU+KToKKyAgICAgIDxhIGhyZWY9IiNmdG4uYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24uaW50cm9kdWN0aW9uLmYwIiBjbGFzcz0iZm9vdG5vdGUiPjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBuYW1lPSJib29zdF9mdW5jdGlvbmFsX292ZXJsb2FkZWRmdW5jdGlvbi5pbnRyb2R1Y3Rpb24uZjAiPjwvYT5bMV08L3N1cD48L2E+CisgICAgPC9wPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkJPT1NUX1RFU1Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X3M8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9InN0cmluZyI+ImFiYyI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PTwvc3Bhbj4gPHNwYW4gY2xhc3M9InN0cmluZyI+ImFiYyI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPgorPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkJPT1NUX1RFU1Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2k8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9Im51bWJlciI+MTIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PT08L3NwYW4+IDxzcGFuIGNsYXNzPSJudW1iZXIiPjEyMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+Cis8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVEVTVDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfZDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibnVtYmVyIj4xLjIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PT08L3NwYW4+IDxzcGFuIGNsYXNzPSJudW1iZXIiPjEuMjM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPgorPC9wcmU+Cis8cD4KKyAgICA8L3A+Cis8cD4KKyAgICAgIEl0IGlzIHBvc3NpYmxlIHRvIHVzZSB0aGlzIGxpYnJhcnkgdG8gY3JlYXRlIGEgc2luZ2xlIDxhIGhyZWY9Imh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRnVuY3Rpb25fb3ZlcmxvYWRpbmciIHRhcmdldD0iX3RvcCI+b3ZlcmxvYWRlZDwvYT4KKyAgICAgIGZ1bmN0aW9uIG9iamVjdCAob3IgPGEgaHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GdW5jdG9yIiB0YXJnZXQ9Il90b3AiPmZ1bmN0b3I8L2E+KQorICAgICAgbmFtZWQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PC9jb2RlPiB0aGF0IGFnZ3JlZ2F0ZXMKKyAgICAgIHRvZ2V0aGVyIHRoZSBjYWxscyB0byB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIChzZWUgYWxzbyA8YSBocmVmPSIuLi8uLi90ZXN0L2Z1bmN0b3IuY3BwIiB0YXJnZXQ9Il90b3AiPjxjb2RlIGNsYXNzPSJsaXRlcmFsIj5mdW5jdG9yLmNwcDwvY29kZT48L2E+CisgICAgICBhbmQgPGEgaHJlZj0iLi4vLi4vdGVzdC9pZGVudGl0eS5ocHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImxpdGVyYWwiPmlkZW50aXR5LmhwcDwvY29kZT48L2E+KToKKyAgICA8L3A+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5vdmVybG9hZGVkX2Z1bmN0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPgorICAgICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RkPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RyaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mYW1wOzwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RkPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c3RyaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mYW1wOyk8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5pbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5pbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+CisgICAgPHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5kb3VibGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5kb3VibGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+Cis8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5pZGVudGl0eV9zPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfaTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5X2Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPgorCis8c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gQWxsIGNhbGxzIHZpYSBzaW5nbGUgYGlkZW50aXR5YCBmdW5jdGlvbi48L3NwYW4+Cis8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Qk9PU1RfVEVTVDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9InN0cmluZyI+ImFiYyI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PTwvc3Bhbj4gPHNwYW4gY2xhc3M9InN0cmluZyI+ImFiYyI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPgorPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkJPT1NUX1RFU1Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJudW1iZXIiPjEyMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj09PC9zcGFuPiA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xMjM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPgorPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkJPT1NUX1RFU1Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmlkZW50aXR5PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJudW1iZXIiPjEuMjM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im51bWJlciI+MS4yMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+Cis8L3ByZT4KKzxwPgorICAgIDwvcD4KKzxwPgorICAgICAgTm90ZSBob3cgdGhlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHZpYSBhIHNpbmdsZSBvdmVybG9hZGVkIGZ1bmN0aW9uIG9iamVjdAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHk8L3NwYW4+PC9jb2RlPiBpbnN0ZWFkIG9mIHVzaW5nIHRoZWlyCisgICAgICBkaWZmZXJlbnQgbmFtZXMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfczwvc3Bhbj48L2NvZGU+LAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfaTwvc3Bhbj48L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+aWRlbnRpdHlfZDwvc3Bhbj48L2NvZGU+LgorICAgIDwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0iZm9vdG5vdGVzIj4KKzxicj48aHIgc3R5bGU9IndpZHRoOjEwMDsgYWxpZ246bGVmdDsiPgorPGRpdiBpZD0iZnRuLmJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uLmludHJvZHVjdGlvbi5mMCIgY2xhc3M9ImZvb3Rub3RlIj48cD48YSBocmVmPSIjYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24uaW50cm9kdWN0aW9uLmYwIiBjbGFzcz0icGFyYSI+PHN1cCBjbGFzcz0icGFyYSI+WzFdIDwvc3VwPjwvYT4KKyAgICAgICAgSW4gbW9zdCBvZiB0aGUgZXhhbXBsZXMgcHJlc2VudGVkIGluIHRoaXMgZG9jdW1lbnRhdGlvbiwgdGhlIEJvb3N0LkNvcmUvTGlnaHR3ZWlnaHRUZXN0CisgICAgICAgICg8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+Ym9vc3QvY29yZS9saWdodHdlaWdodF90ZXN0LmhwcDwvY29kZT4pIG1hY3JvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkJPT1NUX1RFU1Q8L3NwYW4+PC9jb2RlPiBpcyB1c2VkIHRvIGNoZWNrIGNvcnJlY3RuZXNzCisgICAgICAgIGNvbmRpdGlvbnMgKGNvbmNlcHR1YWxseSBzaW1pbGFyIHRvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFzc2VydDwvc3Bhbj48L2NvZGU+KS4KKyAgICAgICAgQSBmYWlsdXJlIG9mIHRoZSBjaGVja2VkIGNvbmRpdGlvbiBkb2VzIG5vdCBhYm9ydCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBwcm9ncmFtLAorICAgICAgICBpdCB3aWxsIGluc3RlYWQgbWFrZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnJlcG9ydF9lcnJvcnM8L3NwYW4+PC9jb2RlPgorICAgICAgICByZXR1cm4gYSBub24temVybyBwcm9ncmFtIGV4aXQgY29kZS4gVXNpbmcgQm9vc3QuQ29yZS9MaWdodHdlaWdodFRlc3QgYWxsb3dzCisgICAgICAgIHRvIGFkZCB0aGUgZXhhbXBsZXMgdG8gdGhlIGxpYnJhcnkgcmVncmVzc2lvbiB0ZXN0cyBzbyB0byBtYWtlIHN1cmUgdGhhdAorICAgICAgICB0aGV5IGFsd2F5cyBjb21waWxlIGFuZCBydW4gY29ycmVjdGx5LgorICAgICAgPC9wPjwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzx0YWJsZSB4bWxuczpyZXY9Imh0dHA6Ly93d3cuY3MucnBpLmVkdS9+Z3JlZ29kL2Jvb3N0L3Rvb2xzL2RvYy9yZXZpc2lvbiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCBhbGlnbj0ibGVmdCI+PHA+PHNtYWxsPkxhc3QgcmV2aXNlZDogSmFudWFyeSAxMCwgMjAxOCBhdCAxNToxODo1MCBHTVQ8L3NtYWxsPjwvcD48L3RkPgorPHRkIGFsaWduPSJyaWdodCI+PGRpdiBjbGFzcz0iY29weXJpZ2h0LWZvb3RlciI+PC9kaXY+PC90ZD4KKzwvdHI+PC90YWJsZT4KKzxocj4KKzxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vZ2V0dGluZ19zdGFydGVkLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9vdmVybG9hZGVkX2Z1bmN0aW9uL2RvYy9odG1sL3JlZmVyZW5jZS5odG1sIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbC9yZWZlcmVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjM4ZjdkCi0tLSAvZGV2L251bGwKKysrIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2MvaHRtbC9yZWZlcmVuY2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVMtQVNDSUkiPgorPHRpdGxlPlJlZmVyZW5jZTwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvYm9vc3Rib29rLmNzcyIgdHlwZT0idGV4dC9jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43Ny4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkNoYXB0ZXImIzE2MDsxLiYjMTYwO0Jvb3N0LkZ1bmN0aW9uYWwvT3ZlcmxvYWRlZEZ1bmN0aW9uIDEuMC4wIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJDaGFwdGVyJiMxNjA7MS4mIzE2MDtCb29zdC5GdW5jdGlvbmFsL092ZXJsb2FkZWRGdW5jdGlvbiAxLjAuMCI+Cis8bGluayByZWw9InByZXYiIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL3R1dG9yaWFsLmh0bWwiIHRpdGxlPSJUdXRvcmlhbCI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9ImJvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPHRhYmxlIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPgorPHRkIHZhbGlnbj0idG9wIj48aW1nIGFsdD0iQm9vc3QgQysrIExpYnJhcmllcyIgd2lkdGg9IjI3NyIgaGVpZ2h0PSI4NiIgc3JjPSIuLi8uLi8uLi8uLi8uLi9ib29zdC5wbmciPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2xpYnMvbGlicmFyaWVzLmh0bSI+TGlicmFyaWVzPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvcGVvcGxlLmh0bWwiPlBlb3BsZTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL3VzZXJzL2ZhcS5odG1sIj5GQVE8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9tb3JlL2luZGV4Lmh0bSI+TW9yZTwvYT48L3RkPgorPC90cj48L3RhYmxlPgorPGhyPgorPGRpdiBjbGFzcz0ic3Bpcml0LW5hdiI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImJvb3N0X2Z1bmN0aW9uYWxfb3ZlcmxvYWRlZGZ1bmN0aW9uL3R1dG9yaWFsLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYm9vc3Qvb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL3NyYy9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJyZWZlcmVuY2UiPjwvYT5SZWZlcmVuY2U8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InJlZmVyZW5jZS5odG1sI2hlYWRlci5ib29zdC5mdW5jdGlvbmFsLm92ZXJsb2FkZWRfZnVuY3Rpb25faHBwIj5IZWFkZXIgJmx0O2Jvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi5ocHAmZ3Q7PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJyZWZlcmVuY2UuaHRtbCNoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uLmNvbmZpZ19ocHAiPkhlYWRlciAmbHQ7Ym9vc3QvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uL2NvbmZpZy5ocHAmZ3Q7PC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3Rpb24iPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uX2hwcCI+PC9hPkhlYWRlciAmbHQ7PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uLmhwcCIgdGFyZ2V0PSJfdG9wIj5ib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24uaHBwPC9hPiZndDs8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+T3ZlcmxvYWQgZGlzdGluY3QgZnVuY3Rpb24gcG9pbnRlcnMsIGZ1bmN0aW9uIHJlZmVyZW5jZXMsIGFuZCBtb25vbW9ycGhpYyBmdW5jdGlvbiBvYmplY3RzIGludG8gYSBzaW5nbGUgZnVuY3Rpb24gb2JqZWN0LiA8L3A+Cis8cHJlIGNsYXNzPSJzeW5vcHNpcyI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPm5hbWVzcGFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+ezwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnRlbXBsYXRlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlbmFtZTwvc3Bhbj4gRjE8c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPnR5cGVuYW1lPC9zcGFuPiBGMjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Li4uPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNsYXNzPC9zcGFuPiA8YSBjbGFzcz0ibGluayIgaHJlZj0iYm9vc3Qvb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIiB0aXRsZT0iQ2xhc3MgdGVtcGxhdGUgb3ZlcmxvYWRlZF9mdW5jdGlvbiI+b3ZlcmxvYWRlZF9mdW5jdGlvbjwvYT48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KKyAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnRlbXBsYXRlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlbmFtZTwvc3Bhbj4gRjE8c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPnR5cGVuYW1lPC9zcGFuPiBGMjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Li4uPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj4gCisgICAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImJvb3N0L292ZXJsb2FkZWRfZnVuY3Rpb24uaHRtbCIgdGl0bGU9IkNsYXNzIHRlbXBsYXRlIG92ZXJsb2FkZWRfZnVuY3Rpb24iPm92ZXJsb2FkZWRfZnVuY3Rpb248L2E+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5fX2Z1bmN0aW9uX3R5cGVfXzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYxPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPl9fZnVuY3Rpb25fdHlwZV9fPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+RjI8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4uLi48L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPiAKKyAgICA8YSBjbGFzcz0ibGluayIgaHJlZj0iYm9vc3QvbWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiIHRpdGxlPSJGdW5jdGlvbiB0ZW1wbGF0ZSBtYWtlX292ZXJsb2FkZWRfZnVuY3Rpb24iPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5tYWtlX292ZXJsb2FkZWRfZnVuY3Rpb248L3NwYW4+PC9hPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5GMTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkYyPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Li4uPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPgorPHNwYW4gY2xhc3M9InNwZWNpYWwiPn08L3NwYW4+PC9wcmU+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3Rpb24iPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJoZWFkZXIuYm9vc3QuZnVuY3Rpb25hbC5vdmVybG9hZGVkX2Z1bmN0aW9uLmNvbmZpZ19ocHAiPjwvYT5IZWFkZXIgJmx0OzxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Jvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi9jb25maWcuaHBwIiB0YXJnZXQ9Il90b3AiPmJvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi9jb25maWcuaHBwPC9hPiZndDs8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Q2hhbmdlIHRoZSBjb21waWxlLXRpbWUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGxpYnJhcnkuIDwvcD4KKzxwcmUgY2xhc3M9InN5bm9wc2lzIj4KKworPGEgY2xhc3M9ImxpbmsiIGhyZWY9IkJPT1NUX0ZVTkNUSU9OQUxfT18xXzdfM18yLmh0bWwiIHRpdGxlPSJNYWNybyBCT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX0FSSVRZX01BWCI+Qk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19BUklUWV9NQVg8L2E+Cis8YSBjbGFzcz0ibGluayIgaHJlZj0iQk9PU1RfRlVOQ1RJT05BTF9PXzFfN18zXzMuaHRtbCIgdGl0bGU9Ik1hY3JvIEJPT1NUX0ZVTkNUSU9OQUxfT1ZFUkxPQURFRF9GVU5DVElPTl9DT05GSUdfT1ZFUkxPQURfTUFYIj5CT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX09WRVJMT0FEX01BWDwvYT48L3ByZT4KKzwvZGl2PgorPC9kaXY+Cis8dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQgYWxpZ249ImxlZnQiPjwvdGQ+Cis8dGQgYWxpZ249InJpZ2h0Ij48ZGl2IGNsYXNzPSJjb3B5cmlnaHQtZm9vdGVyIj5Db3B5cmlnaHQgJiMxNjk7IDIwMTEsIDIwMTIgTG9yZW56byBDYW1pbml0aTxwPgorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHNlZSBhY2NvbXBhbnlpbmcKKyAgICAgICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiIHRhcmdldD0iX3RvcCI+aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPikKKyAgICAgIDwvcD4KKzwvZGl2PjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8aHI+Cis8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYm9vc3RfZnVuY3Rpb25hbF9vdmVybG9hZGVkZnVuY3Rpb24vdHV0b3JpYWwuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9zcmMvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy91cC5wbmciIGFsdD0iVXAiPjwvYT48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9ob21lLnBuZyIgYWx0PSJIb21lIj48L2E+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJib29zdC9vdmVybG9hZGVkX2Z1bmN0aW9uLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2Mvc3JjL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL292ZXJsb2FkZWRfZnVuY3Rpb24ucWJrIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi9kb2Mvb3ZlcmxvYWRlZF9mdW5jdGlvbi5xYmsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc4NzkzYwotLS0gL2Rldi9udWxsCisrKyBiL292ZXJsb2FkZWRfZnVuY3Rpb24vZG9jL292ZXJsb2FkZWRfZnVuY3Rpb24ucWJrCkBAIC0wLDAgKzEsMTcxIEBACisKK1svIENvcHlyaWdodCAoQykgMjAwOS0yMDEyIExvcmVuem8gQ2FtaW5pdGkgXQorWy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wIF0KK1svIChzZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGEgY29weSBhdCBdCitbLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpIF0KK1svIEhvbWUgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24gXQorCitbbGlicmFyeSBCb29zdC5GdW5jdGlvbmFsL092ZXJsb2FkZWRGdW5jdGlvbgorICAgIFtxdWlja2Jvb2sgMS41XQorICAgIFt2ZXJzaW9uIDEuMC4wXQorICAgIFtjb3B5cmlnaHQgMjAxMS0yMDEyIExvcmVuem8gQ2FtaW5pdGldCisgICAgW3B1cnBvc2Ugb3ZlcmxvYWQgZnVuY3Rpb25zIHdpdGggb25lIGZ1bmN0aW9uIG9iamVjdF0KKyAgICBbbGljZW5zZQorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAKKyAgICAgICAgKHNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorICAgICAgICBbQGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dF0pCisgICAgXQorICAgIFthdXRob3JzIFtDYW1pbml0aSA8ZW1haWw+bG9yY2FtaW5pdGlAZ21haWwuY29tPC9lbWFpbD4sIExvcmVuem9dXQorICAgIFtjYXRlZ29yeSBGdW5jdGlvbiBPYmplY3RzIGFuZCBIaWdoZXItT3JkZXIgUHJvZ3JhbW1pbmddCitdCisKK1tkZWYgX19JbnRyb2R1Y3Rpb25fXyBbbGluayBmdW5jdGlvbmFsX292ZXJsb2FkZWRfZnVuY3Rpb24uaW50cm9kdWN0aW9uIEludHJvZHVjdGlvbl1dCitbZGVmIF9fR2V0dGluZ19TdGFydGVkX18gW2xpbmsgZnVuY3Rpb25hbF9vdmVybG9hZGVkX2Z1bmN0aW9uLmdldHRpbmdfc3RhcnRlZCBHZXR0aW5nIFN0YXJ0ZWRdXQorW2RlZiBfX1R1dG9yaWFsX18gW2xpbmsgZnVuY3Rpb25hbF9vdmVybG9hZGVkX2Z1bmN0aW9uLnR1dG9yaWFsIFR1dG9yaWFsXV0KK1tkZWYgX19Cb29zdF9fIFtAaHR0cDovL3d3dy5ib29zdC5vcmcgQm9vc3RdXQorW2RlZiBfX0Jvb3N0X1Rlc3RfXyBbQGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBCb29zdC5UZXN0XV0KK1tkZWYgX19Cb29zdF9GdW5jdGlvbl9fIFtAaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9mdW5jdGlvbiBCb29zdC5GdW5jdGlvbl1dCitbZGVmIF9fQm9vc3RfVHlwZW9mX18gW0BodHRwOi8vd3d3LmJvb3N0Lm9yZy9kb2MvbGlicy90eXBlb2YgQm9vc3QuVHlwZW9mXV0KKworW2ltcG9ydCAuLi90ZXN0L2lkZW50aXR5LmhwcF0KK1tpbXBvcnQgLi4vdGVzdC9mdW5jdG9yLmNwcF0KK1tpbXBvcnQgLi4vdGVzdC9tYWtlX2RlY2wuY3BwXQorW2ltcG9ydCAuLi90ZXN0L21ha2VfY2FsbC5jcHBdCisKK1RoaXMgbGlicmFyeSBhbGxvd3MgdG8gb3ZlcmxvYWQgZGlmZmVyZW50IGZ1bmN0aW9ucyBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uIG9iamVjdC4KKworW3NlY3Rpb24gSW50cm9kdWN0aW9uXQorCitDb25zaWRlciB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyB3aGljaCBoYXZlIGRpc3RpbmN0IHNpZ25hdHVyZXM6CisKK1tpZGVudGl0eV9kZWNsc10KKworSW5zdGVhZCBvZiBjYWxsaW5nIHRoZW0gdXNpbmcgdGhlaXIgc2VwYXJhdGUgbmFtZXMgKGhlcmUgYEJPT1NUX1RFU1RgIGlzIGVxdWl2YWxlbnQgdG8gYGFzc2VydGApOgorW2Zvb3Rub3RlCitJbiBtb3N0IG9mIHRoZSBleGFtcGxlcyBwcmVzZW50ZWQgaW4gdGhpcyBkb2N1bWVudGF0aW9uLCB0aGUgQm9vc3QuQ29yZS9MaWdodHdlaWdodFRlc3QgKD1ib29zdC9jb3JlL2xpZ2h0d2VpZ2h0X3Rlc3QuaHBwPSkgbWFjcm8gYEJPT1NUX1RFU1RgIGlzIHVzZWQgdG8gY2hlY2sgY29ycmVjdG5lc3MgY29uZGl0aW9ucyAoY29uY2VwdHVhbGx5IHNpbWlsYXIgdG8gYGFzc2VydGApLgorQSBmYWlsdXJlIG9mIHRoZSBjaGVja2VkIGNvbmRpdGlvbiBkb2VzIG5vdCBhYm9ydCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBwcm9ncmFtLCBpdCB3aWxsIGluc3RlYWQgbWFrZSBgYm9vc3Q6OnJlcG9ydF9lcnJvcnNgIHJldHVybiBhIG5vbi16ZXJvIHByb2dyYW0gZXhpdCBjb2RlLgorVXNpbmcgQm9vc3QuQ29yZS9MaWdodHdlaWdodFRlc3QgYWxsb3dzIHRvIGFkZCB0aGUgZXhhbXBsZXMgdG8gdGhlIGxpYnJhcnkgcmVncmVzc2lvbiB0ZXN0cyBzbyB0byBtYWtlIHN1cmUgdGhhdCB0aGV5IGFsd2F5cyBjb21waWxlIGFuZCBydW4gY29ycmVjdGx5LgorXQorCitbaWRlbnRpdHlfY2FsbHNdCisKK0l0IGlzIHBvc3NpYmxlIHRvIHVzZSB0aGlzIGxpYnJhcnkgdG8gY3JlYXRlIGEgc2luZ2xlIFtAaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GdW5jdGlvbl9vdmVybG9hZGluZyBvdmVybG9hZGVkXSBmdW5jdGlvbiBvYmplY3QgKG9yIFtAaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GdW5jdG9yIGZ1bmN0b3JdKSBuYW1lZCBgaWRlbnRpdHlgIHRoYXQgYWdncmVnYXRlcyB0b2dldGhlciB0aGUgY2FsbHMgdG8gdGhlIHNwZWNpZmljIGZ1bmN0aW9ucyAoc2VlIGFsc28gW0AuLi8uLi90ZXN0L2Z1bmN0b3IuY3BwID1mdW5jdG9yLmNwcD1dIGFuZCBbQC4uLy4uL3Rlc3QvaWRlbnRpdHkuaHBwID1pZGVudGl0eS5ocHA9XSk6CisKK1tpZGVudGl0eV9mdW5jdG9yXQorCitOb3RlIGhvdyB0aGUgZnVuY3Rpb25zIGFyZSBjYWxsZWQgdmlhIGEgc2luZ2xlIG92ZXJsb2FkZWQgZnVuY3Rpb24gb2JqZWN0IGBpZGVudGl0eWAgaW5zdGVhZCBvZiB1c2luZyB0aGVpciBkaWZmZXJlbnQgbmFtZXMgYGlkZW50aXR5X3NgLCBgaWRlbnRpdHlfaWAsIGFuZCBgaWRlbnRpdHlfZGAuCisKK1tlbmRzZWN0XQorCitbc2VjdGlvbiBHZXR0aW5nIFN0YXJ0ZWRdCisKK1RoaXMgc2VjdGlvbiBleHBsYWlucyBob3cgdG8gc2V0dXAgYSBzeXN0ZW0gdG8gdXNlIHRoaXMgbGlicmFyeS4KKworW3NlY3Rpb24gQ29tcGlsZXJzIGFuZCBQbGF0Zm9ybXNdCisKK1RoZSBhdXRob3JzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkIGFuZCB0ZXN0ZWQgdGhpcyBsaWJyYXJ5IG9uOgorCisjIEdOVSBDb21waWxlciBDb2xsZWN0aW9uIChHQ0MpIEMrKyA0LjUuMyAod2l0aCBhbmQgd2l0aG91dCBDKysxMSBmZWF0dXJlcyBlbmFibGVkIGAtc3RkPWMrKzB4YCkgb24gQ3lnd2luLgorIyBNaXNjcm9zb2Z0IFZpc3VhbCBDKysgKE1TVkMpIDguMCBvbiBXaW5kb3dzIDcuCisKK1NlZSB0aGUgbGlicmFyeSBbQGh0dHA6Ly93d3cuYm9vc3Qub3JnL2RldmVsb3BtZW50L3Rlc3RzL3JlbGVhc2UvZGV2ZWxvcGVyL2Z1bmN0aW9uYWwtb3ZlcmxvYWRlZF9mdW5jdGlvbi5odG1sIHJlZ3Jlc3Npb25zIHRlc3QgcmVzdWx0c10gZm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIG9uIHN1cHBvcnRlZCBjb21waWxlcnMgYW5kIHBsYXRmb3Jtcy4KK0NoZWNrIHRoZSBsaWJyYXJ5IHJlZ3Jlc3Npb24gdGVzdCBbQC4uLy4uL3Rlc3QvSmFtZmlsZS52MiA9SmFtZmlsZS52Mj1dIGZvciBhbnkgc3BlY2lhbCBjb25maWd1cmF0aW9uIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQgZm9yIGEgc3BlY2lmaWMgY29tcGlsZXIuCisKK1tlbmRzZWN0XQorCitbc2VjdGlvbiBJbnN0YWxsYXRpb25dCisKK1RoaXMgbGlicmFyeSBpcyBjb21wb3NlZCBvZiBoZWFkZXIgZmlsZXMgb25seS4KK1RoZXJlZm9yZSB0aGVyZSBpcyBubyBwcmUtY29tcGlsZWQgb2JqZWN0IGZpbGUgd2hpY2ggbmVlZHMgdG8gYmUgaW5zdGFsbGVkLgorUHJvZ3JhbW1lcnMgY2FuIHNpbXBseSBpbnN0cnVjdCB0aGUgY29tcGlsZXIgd2hlcmUgdG8gZmluZCB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGAtSWAgb3B0aW9uIG9uIEdDQywgYC9JYCBvcHRpb24gb24gTVNWQywgZXRjKSBhbmQgY29tcGlsZSBjb2RlIHVzaW5nIHRoZSBsaWJyYXJ5LgorCitUaGUgbWF4aW11bSBudW1iZXIgb2YgZnVuY3Rpb25zIHRvIG92ZXJsb2FkIGlzIGdpdmVuIGJ5IHRoZSBbbWFjcm9yZWYgQk9PU1RfRlVOQ1RJT05BTF9PVkVSTE9BREVEX0ZVTkNUSU9OX0NPTkZJR19PVkVSTE9BRF9NQVhdIGNvbmZpZ3VyYXRpb24gbWFjcm8uCitUaGUgbWF4aW11bSBudW1iZXIgb2YgZnVuY3Rpb24gcGFyYW1ldGVycyBmb3IgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHR5cGUgaXMgZ2l2ZW4gYnkgdGhlIFttYWNyb3JlZiBCT09TVF9GVU5DVElPTkFMX09WRVJMT0FERURfRlVOQ1RJT05fQ09ORklHX0FSSVRZX01BWF0gY29uZmlndXJhdGlvbiBtYWNyby4KK0FsbCBjb25maWd1cmF0aW9uIG1hY3JvcyBoYXZlIGFwcHJvcHJpYXRlIGRlZmF1bHQgdmFsdWVzIHdoZW4gdGhleSBhcmUgbGVmdCB1bmRlZmluZWQuCisKK1tlbmRzZWN0XQorCitbZW5kc2VjdF0KKworW3NlY3Rpb24gVHV0b3JpYWxdCisKK1RoaXMgc2VjdGlvbiBleHBsYWlucyBob3cgdG8gdXNlIHRoaXMgbGlicmFyeS4KKworW3NlY3Rpb24gT3ZlcmxvYWRpbmddCisKK0NvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHdoaWNoIGhhdmUgZGlzdGluY3Qgc2lnbmF0dXJlczoKKworW2lkZW50aXR5X2RlY2xzXQorCitUaGlzIGxpYnJhcnkgaGVhZGVyIFtoZWFkZXJyZWYgYm9vc3QvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uLmhwcF0gcHJvdmlkZXMgYSBbY2xhc3NyZWYgYm9vc3Q6Om92ZXJsb2FkZWRfZnVuY3Rpb25dIGNsYXNzIHRlbXBsYXRlIHRoYXQgY3JlYXRlcyBhIHNpbmdsZSBvdmVybG9hZGVkIGZ1bmN0aW9uIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgdGhlIHNwZWNpZmllZCBmdW5jdGlvbnMgaW5zdGVhZCBvZiB1c2luZyB0aGUgc2VwYXJhdGUgZnVuY3Rpb24gbmFtZXMgKHNlZSBhbHNvIFtALi4vLi4vdGVzdC9mdW5jdG9yLmNwcCA9ZnVuY3Rvci5jcHA9XSBhbmQgW0AuLi8uLi90ZXN0L2lkZW50aXR5LmhwcCA9aWRlbnRpdHkuaHBwPV0pOgorCitbaWRlbnRpdHlfZnVuY3Rvcl0KKworTm90ZSBob3cgZWFjaCBmdW5jdGlvbiB0eXBlIGlzIHBhc3NlZCBhcyBhIHRlbXBsYXRlIHBhcmFtZXRlciBvZiBbY2xhc3NyZWYgYm9vc3Q6Om92ZXJsb2FkZWRfZnVuY3Rpb25dIHVzaW5nIHRoZSBmb2xsb3dpbmcgc3ludGF4ICh0aGlzIGlzIF9fQm9vc3RfRnVuY3Rpb25fXydzIHByZWZlcnJlZCBzeW50YXgpOgorCisgICAgYGAvcmVzdWx0LXR5cGUvYGAgKGBgL2FyZ3VtZW50MS10eXBlL2BgLCBgYC9hcmd1bWVudDItdHlwZS9gYCwgLi4uKQorCitUaGVuIHRoZSByZWxhdGl2ZSBmdW5jdGlvbiBwb2ludGVycywgZnVuY3Rpb24gcmVmZXJlbmNlcywgb3IgW0BodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1BvbHltb3JwaGlzbV8oY29tcHV0ZXJfc2NpZW5jZSkgbW9ub21vcnBoaWMgZnVuY3Rpb25dIG9iamVjdHMgYXJlIHBhc3NlZCB0byB0aGUgW2NsYXNzcmVmIGJvb3N0OjpvdmVybG9hZGVkX2Z1bmN0aW9uXSBjb25zdHJ1Y3RvciBtYXRjaGluZyB0aGUgb3JkZXIgb2YgdGhlIHNwZWNpZmllZCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzLgorW2Zvb3Rub3RlCitGdW5jdGlvbiBwb2ludGVycyBhcmUgb2YgdGhlIGZvcm0gW15bJ3Jlc3VsdC10eXBlIF1dYCgqKShgW15bJ2FyZ3VtZW50MS10eXBlXV1gLCAuLi4pYCAodGhlIEMrKyBjb21waWxlciBpcyB1c3VhbGx5IGFibGUgdG8gYXV0b21hdGljYWxseSBwcm9tb3RlIGEgZnVuY3Rpb24gbmFtZSB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgaW4gYSBjb250ZXh0IHdoZXJlIGEgZnVuY3Rpb24gcG9pbnRlciBpcyBleHBlY3RlZCBldmVuIGlmIHRoZSBmdW5jdGlvbiBuYW1lIGlzIG5vdCBwcmVmaXhlZCBieSBgJmApLgorRnVuY3Rpb24gcmVmZXJlbmNlcyBhcmUgb2YgdGhlIGZvcm0gW15bJ3Jlc3VsdC10eXBlIF1dYCgmKShgW15bJ2FyZ3VtZW50MS10eXBlXV1gLCAuLi4pYC4KK0Z1bmN0aW9uIHR5cGVzIGFyZSBvZiB0aGUgZm9ybSBbXlsncmVzdWx0LXR5cGUgXV1gKGBbXlsnYXJndW1lbnQxLXR5cGVdXWAsIC4uLilgIChub3RlIGhvdyB0aGV5IGxhY2sgb2YgYm90aCBgKmAgYW5kIGAmYCB3aGVuIGNvbXBhcmVkIHRvIGZ1bmN0aW9uIHBvaW50ZXJzIGFuZCBmdW5jdGlvbiByZWZlcmVuY2VzKS4KK0ZpbmFsbHksIG1vbm9tb3JwaGljIGZ1bmN0aW9uIG9iamVjdHMgYXJlIGluc3RhbmNlcyBvZiBjbGFzc2VzIHdpdGggYSBub24tdGVtcGxhdGUgY2FsbCBvcGVyYXRvciBvZiB0aGUgZm9ybSBbXlsncmVzdWx0LXR5cGUgXV1gb3BlcmF0b3IoKShgW15bJ2FyZ3VtZW50MS10eXBlXV1gLCAuLi4pYC4KK1VuZm9ydHVuYXRlbHksIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBzdXBwb3J0IHBvbHltb3JwaGljIGZ1bmN0aW9uIG9iamVjdHMgKHNlZSBbQGh0dHA6Ly9saXN0cy5ib29zdC5vcmcvQXJjaGl2ZXMvYm9vc3QvMjAxMi8wMy8xOTE3NDQucGhwXSkuCitdCitJbiB0aGUgYWJvdmUgZXhhbXBsZSwgYGlkZW50aXR5X3NgIGlzIHBhc3NlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgKHRoZSBmdW5jdGlvbiBhZGRyZXNzIGlzIGF1dG9tYXRpY2FsbHkgdGFrZW4gZnJvbSB0aGUgZnVuY3Rpb24gbmFtZSBieSB0aGUgY29tcGlsZXIpLCBgaWRlbnRpdHlfaWAgYXMgYSBmdW5jdGlvbiByZWZlcmVuY2UsIGFuZCBgaWRlbnRpdHlfZGAgYXMgYSBmdW5jdGlvbiBvYmplY3QuCisKK0FsbCBzcGVjaWZpZWQgZnVuY3Rpb24gdHlwZXMgbXVzdCBoYXZlIGRpc3RpbmN0IHBhcmFtZXRlcnMgZnJvbSBvbmUgYW5vdGhlciAoc28gdGhlIG92ZXJsb2FkZWQgY2FsbHMgY2FuIGJlIHJlc29sdmVkIGJ5IHRoaXMgbGlicmFyeSkuCitbZm9vdG5vdGUKK05vdGUgdGhhdCBpbiBDKysgdGhlIGZ1bmN0aW9uIHJlc3VsdCB0eXBlIGlzIG5vdCB1c2VkIGZvciBvdmVybG9hZCByZXNvbHV0aW9uICh0byBhdm9pZCBtYWtpbmcgdGhlIG92ZXJsb2FkIHJlc29sdXRpb24gY29udGV4dCBkZXBlbmRlbnQpLgorVGhlcmVmb3JlLCBhdCBsZWFzdCBvbmUgb2YgdGhlIGZ1bmN0aW9uIHBhcmFtZXRlcnMgbXVzdCBiZSBkaXN0aW5jdCBmb3IgZWFjaCBzcGVjaWZpZWQgZnVuY3Rpb24gdHlwZS4KK10KK0luIG9yZGVyIHRvIGNyZWF0ZSBhbiBvdmVybG9hZGVkIGZ1bmN0aW9uIG9iamVjdCwgaXQgaXMgbmVjZXNzYXJ5IHRvIHNwZWNpZnkgYXQgbGVhc3QgdHdvIGZ1bmN0aW9uIHR5cGVzIChiZWNhdXNlIHRoZXJlIGlzIG5vdGhpbmcgdG8gb3ZlcmxvYWQgYmV0d2VlbiBvbmUgb3IgemVybyBmdW5jdGlvbnMpLgorCitbZW5kc2VjdF0KKworW3NlY3Rpb24gV2l0aG91dCBGdW5jdGlvbiBUeXBlc10KKworRm9yIGNvbnZlbmllbmNlLCB0aGlzIGxpYnJhcnkgYWxzbyBwcm92aWRlcyB0aGUgW2Z1bmNyZWYgYm9vc3Q6Om1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbl0gZnVuY3Rpb24gdGVtcGxhdGUgd2hpY2ggYWxsb3dzIHRvIGNyZWF0ZSB0aGUgb3ZlcmxvYWRlZCBmdW5jdGlvbiBvYmplY3Qgd2l0aG91dCBleHBsaWNpdGx5IHNwZWNpZnlpbmcgdGhlIGZ1bmN0aW9uIHR5cGVzLgorVGhlIGZ1bmN0aW9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IGRlZHVjZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9ucyBhbmQgdGhlIGFwcHJvcHJpYXRlIFtjbGFzc3JlZiBib29zdDo6b3ZlcmxvYWRlZF9mdW5jdGlvbl0gaW5zdGFudGlhdGlvbiBpcyByZXR1cm5lZCBieSBbZnVuY3JlZiBib29zdDo6bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uXS4KKworVGhlIFtmdW5jcmVmIGJvb3N0OjptYWtlX292ZXJsb2FkZWRfZnVuY3Rpb25dIGZ1bmN0aW9uIHRlbXBsYXRlIGNhbiBiZSB1c2VmdWwgd2hlbiB1c2VkIHRvZ2V0aGVyIHdpdGggX19Cb29zdF9UeXBlb2ZfXydzIGBCT09TVF9BVVRPYCAob3IgQysrMTEgYGF1dG9gKS4KK0ZvciBleGFtcGxlIChzZWUgYWxzbyBbQC4uLy4uL3Rlc3QvbWFrZV9kZWNsLmNwcCA9bWFrZV9kZWNsLmNwcD1dIGFuZCBbQC4uLy4uL3Rlc3QvaWRlbnRpdHkuaHBwID1pZGVudGl0eS5ocHA9XSk6CisKK1tpZGVudGl0eV9tYWtlX2RlY2xdCisKK05vdGUgaG93IHRoZSBvdmVybG9hZGVkIGZ1bmN0aW9uIG9iamVjdCBgaWRlbnRpdHlgIGhhcyBiZWVuIGNyZWF0ZWQgc3BlY2lmeWluZyBvbmx5IHRoZSBmdW5jdGlvbnMgYGlkZW50aXR5X3NgLCBgaWRlbnRpdHlfaWAsIGBpZGVudGl0eV9kYCBhbmQgd2l0aG91dCBzcGVjaWZ5aW5nIHRoZSBmdW5jdGlvbiB0eXBlcyBgY29uc3Qgc3RkOjpzdHJpbmcmIChjb25zdCBzdGQ6OnN0cmluZyYpYCwgYGludCAoaW50KWAsIGFuZCBgZG91YmxlIChkb3VibGUpYCBhcyByZXF1aXJlZCBpbnN0ZWFkIGJ5IFtjbGFzc3JlZiBib29zdDo6b3ZlcmxvYWRlZF9mdW5jdGlvbl0uCitUaGVyZWZvcmUsIFtmdW5jcmVmIGJvb3N0OjptYWtlX292ZXJsb2FkZWRfZnVuY3Rpb25dIHByb3ZpZGVzIGEgbW9yZSBjb25jaXNlIHN5bnRheCBpbiB0aGlzIGNvbnRleHQgd2hlbiBjb21wYXJlZCB3aXRoIFtjbGFzc3JlZiBib29zdDo6b3ZlcmxvYWRlZF9mdW5jdGlvbl0uCisKK0Fub3RoZXIgY2FzZSB3aGVyZSBbZnVuY3JlZiBib29zdDo6bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uXSBjYW4gYmUgdXNlZnVsIGlzIHdoZW4gdGhlIG92ZXJsb2FkZWQgZnVuY3Rpb24gb2JqZWN0IGlzIHBhc3NlZCB0byBhIGZ1bmN0aW9uIHRlbXBsYXRlIHdoaWNoIGNhbiBob2xkIHRoZSBzcGVjaWZpYyBbY2xhc3NyZWYgYm9vc3Q6Om92ZXJsb2FkZWRfZnVuY3Rpb25dIHR5cGUgdXNpbmcgYSB0ZW1wbGF0ZSBwYXJhbWV0ZXIuCitGb3IgZXhhbXBsZSAoc2VlIGFsc28gW0AuLi8uLi90ZXN0L21ha2VfY2FsbC5jcHAgPW1ha2VfY2FsbC5jcHA9XSBhbmQgW0AuLi8uLi90ZXN0L2lkZW50aXR5LmhwcCA9aWRlbnRpdHkuaHBwPV0pOgorCitbaWRlbnRpdHlfbWFrZV9jaGVja3NdCitbaWRlbnRpdHlfbWFrZV9jYWxsXQorCitUaGUgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBbZnVuY3JlZiBib29zdDo6bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uXSB1c2VzIF9fQm9vc3RfVHlwZW9mX18gdG8gYXV0b21hdGljYWxseSBkZWR1Y2Ugc29tZSBvZiB0aGUgZnVuY3Rpb24gdHlwZXMuCitJbiBvcmRlciB0byBjb21waWxlIGNvZGUgaW4gX19Cb29zdF9UeXBlb2ZfXyBlbXVsYXRpb24gbW9kZSwgYWxsIHR5cGVzIHNob3VsZCBiZSBwcm9wZXJseSByZWdpc3RlcmVkIHVzaW5nIGBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRWAgYW5kIGBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEVgLCBvciBhcHByb3ByaWF0ZSBfX0Jvb3N0X1R5cGVvZl9fIGhlYWRlcnMgc2hvdWxkIGJlIGluY2x1ZGVkIChzZWUgX19Cb29zdF9UeXBlb2ZfXyBmb3IgbW9yZSBpbmZvcm1hdGlvbikuCitGb3IgdGhlIGFib3ZlIGV4YW1wbGVzLCBpdCBpcyBzdWZmaWNpZW50IHRvIGluY2x1ZGUgdGhlIF9fQm9vc3RfVHlwZW9mX18gaGVhZGVyIHRoYXQgcmVnaXN0ZXJzIGBzdGQ6OnN0cmluZ2AgKHRoaXMgbGlicmFyeSBkb2VzIG5vdCByZXF1aXJlIHRvIHJlZ2lzdGVyIGBib29zdDo6ZnVuY3Rpb25gIGZvciBfX0Jvb3N0X1R5cGVvZl9fIGVtdWxhdGlvbik6CisKK1tpZGVudGl0eV90eXBlb2ZdCisKK1tlbmRzZWN0XQorCitbZW5kc2VjdF0KKworW3hpbmNsdWRlIHJlZmVyZW5jZS54bWxdCisKK1tzZWN0aW9uIEFja25vd2xlZGdtZW50c10KKworTWFueSB0aGFua3MgdG8gTWF0aGlhcyBHYXVuYXJkIGZvciBzdWdnZXN0aW5nIHRvIGltcGxlbWVudCBbY2xhc3NyZWYgYm9vc3Q6Om92ZXJsb2FkZWRfZnVuY3Rpb25dIGFuZCBmb3Igc29tZSBzYW1wbGUgY29kZS4KKworVGhhbmtzIHRvIEpvaG4gQnl0aGV3YXkgZm9yIHN1Z2dlc3RpbmcgdG8gaW1wbGVtZW50IFtmdW5jcmVmIGJvb3N0OjptYWtlX292ZXJsb2FkZWRfZnVuY3Rpb25dLgorCitUaGFua3MgdG8gTmF0aGFuIFJpZGdlIGZvciBzdWdnZXN0aW9ucyBvbiBob3cgdG8gaW1wbGVtZW50IFtmdW5jcmVmIGJvb3N0OjptYWtlX292ZXJsb2FkZWRfZnVuY3Rpb25dLgorCitUaGFua3MgdG8gUm9iZXJ0IFN0ZXdhcnQgZm9yIGNvbW1lbnRpbmcgb24gdGhlIGxpYnJhcnkgbmFtZS4KKworTWFueSB0aGFua3MgdG8gdGhlIGVudGlyZSBfX0Jvb3N0X18gY29tbXVuaXR5IGFuZCBtYWlsaW5nIGxpc3QgZm9yIHByb3ZpZGluZyB2YWx1YWJsZSBjb21tZW50cyBhYm91dCB0aGlzIGxpYnJhcnkgYW5kIGdyZWF0IGluc2lnaHRzIG9uIHRoZSBDKysgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuCisKK1tlbmRzZWN0XQorCmRpZmYgLS1naXQgYS9vdmVybG9hZGVkX2Z1bmN0aW9uL2luZGV4Lmh0bWwgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBiMzM2MgotLS0gL2Rldi9udWxsCisrKyBiL292ZXJsb2FkZWRfZnVuY3Rpb24vaW5kZXguaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIwOyBVUkw9ZG9jL2h0bWwvaW5kZXguaHRtbCI+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgQXV0b21hdGljIHJlZGlyZWN0aW9uIGZhaWxlZCwgY2xpY2sgdGhpcyAKKyAgICA8YSBocmVmPSJkb2MvaHRtbC9pbmRleC5odG1sIj5saW5rPC9hPiAmbmJzcDs8aHI+CisgICAgPHA+qSBDb3B5cmlnaHQgTG9yZW56byBDYW1pbml0aSwgMjAwOS0yMDEyPC9wPgorICAgIDxwPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMCAoc2VlIAorICAgIGFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+CisgICAgTElDRU5TRV8xXzAudHh0PC9hPiBvciBhIGNvcHkgYXQKKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3A+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL292ZXJsb2FkZWRfZnVuY3Rpb24vdGVzdC9KYW1maWxlLnYyIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi90ZXN0L0phbWZpbGUudjIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg3MWVlNQotLS0gL2Rldi9udWxsCisrKyBiL292ZXJsb2FkZWRfZnVuY3Rpb24vdGVzdC9KYW1maWxlLnYyCkBAIC0wLDAgKzEsMTYgQEAKKworIyBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBMb3JlbnpvIENhbWluaXRpCisjIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMAorIyAoc2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBhIGNvcHkgYXQKKyMgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyBIb21lIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvZnVuY3Rpb25hbC9vdmVybG9hZGVkX2Z1bmN0aW9uCisKK2ltcG9ydCB0ZXN0aW5nIDsKKworIyBTdW4gZG9lcyBub3QgYXV0b21hdGljYWxseSBkZXRlY3QgdHlwZS1vZiBlbXVsYXRpb24gKGZvcmNlIGl0KS4KK3Byb2plY3QgOiByZXF1aXJlbWVudHMgPHRvb2xzZXQ+c3VuOjxkZWZpbmU+Qk9PU1RfVFlQRU9GX0VNVUxBVElPTiA7CisKK3J1biBmdW5jdG9yLmNwcCA7CitydW4gbWFrZV9kZWNsLmNwcCA7CitydW4gbWFrZV9jYWxsLmNwcCA7CisKZGlmZiAtLWdpdCBhL292ZXJsb2FkZWRfZnVuY3Rpb24vdGVzdC9mdW5jdG9yLmNwcCBiL292ZXJsb2FkZWRfZnVuY3Rpb24vdGVzdC9mdW5jdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGY1MmU3Ci0tLSAvZGV2L251bGwKKysrIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi90ZXN0L2Z1bmN0b3IuY3BwCkBAIC0wLDAgKzEsMzQgQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDA5LTIwMTIgTG9yZW56byBDYW1pbml0aQorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wCisvLyAoc2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBhIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vIEhvbWUgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24KKworI2luY2x1ZGUgImlkZW50aXR5LmhwcCIKKyNpbmNsdWRlIDxib29zdC9mdW5jdGlvbmFsL292ZXJsb2FkZWRfZnVuY3Rpb24uaHBwPgorI2luY2x1ZGUgPGJvb3N0L2NvcmUvbGlnaHR3ZWlnaHRfdGVzdC5ocHA+CisKK2ludCBtYWluKCkgeworICAgIC8vW2lkZW50aXR5X2NhbGxzCisgICAgQk9PU1RfVEVTVChpZGVudGl0eV9zKCJhYmMiKSA9PSAiYWJjIik7CisgICAgQk9PU1RfVEVTVChpZGVudGl0eV9pKDEyMykgPT0gMTIzKTsKKyAgICBCT09TVF9URVNUKGlkZW50aXR5X2QoMS4yMykgPT0gMS4yMyk7CisgICAgLy9dCisKKyAgICAvL1tpZGVudGl0eV9mdW5jdG9yCisgICAgYm9vc3Q6Om92ZXJsb2FkZWRfZnVuY3Rpb248CisgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIChjb25zdCBzdGQ6OnN0cmluZyYpCisgICAgICAgICwgaW50IChpbnQpCisgICAgICAgICwgZG91YmxlIChkb3VibGUpCisgICAgPiBpZGVudGl0eShpZGVudGl0eV9zLCBpZGVudGl0eV9pLCBpZGVudGl0eV9kKTsKKworICAgIC8vIEFsbCBjYWxscyB2aWEgc2luZ2xlIGBpZGVudGl0eWAgZnVuY3Rpb24uCisgICAgQk9PU1RfVEVTVChpZGVudGl0eSgiYWJjIikgPT0gImFiYyIpOworICAgIEJPT1NUX1RFU1QoaWRlbnRpdHkoMTIzKSA9PSAxMjMpOworICAgIEJPT1NUX1RFU1QoaWRlbnRpdHkoMS4yMykgPT0gMS4yMyk7CisgICAgLy9dCisKKyAgICByZXR1cm4gYm9vc3Q6OnJlcG9ydF9lcnJvcnMoKTsKK30KKwpkaWZmIC0tZ2l0IGEvb3ZlcmxvYWRlZF9mdW5jdGlvbi90ZXN0L2lkZW50aXR5LmhwcCBiL292ZXJsb2FkZWRfZnVuY3Rpb24vdGVzdC9pZGVudGl0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEzNDQyOQotLS0gL2Rldi9udWxsCisrKyBiL292ZXJsb2FkZWRfZnVuY3Rpb24vdGVzdC9pZGVudGl0eS5ocHAKQEAgLTAsMCArMSwyOSBAQAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBMb3JlbnpvIENhbWluaXRpCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAKKy8vIChzZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGEgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8gSG9tZSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbgorCisjaWZuZGVmIElERU5USVRZX0hQUF8KKyNkZWZpbmUgSURFTlRJVFlfSFBQXworCisvL1tpZGVudGl0eV90eXBlb2YKKyNpbmNsdWRlIDxib29zdC90eXBlb2Yvc3RkL3N0cmluZy5ocHA+IC8vIE5vIG5lZWQgdG8gcmVnaXN0ZXIgYGJvb3N0OjpmdW5jdGlvbmAuCisvL10KKyNpbmNsdWRlIDxib29zdC9mdW5jdGlvbi5ocHA+CisjaW5jbHVkZSA8c3RyaW5nPgorCisvL1tpZGVudGl0eV9kZWNscworY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aXR5X3MoY29uc3Qgc3RkOjpzdHJpbmcmIHgpIC8vIEZ1bmN0aW9uIChhcyBwb2ludGVyKS4KKyAgICB7IHJldHVybiB4OyB9CisKK2ludCBpZGVudGl0eV9pX2ltcGwoaW50IHgpIHsgcmV0dXJuIHg7IH0KK2ludCAoJmlkZW50aXR5X2kpKGludCkgPSBpZGVudGl0eV9pX2ltcGw7IC8vIEZ1bmN0aW9uIHJlZmVyZW5jZS4KKworZG91YmxlIGlkZW50aXR5X2RfaW1wbChkb3VibGUgeCkgeyByZXR1cm4geDsgfQorYm9vc3Q6OmZ1bmN0aW9uPGRvdWJsZSAoZG91YmxlKT4gaWRlbnRpdHlfZCA9IGlkZW50aXR5X2RfaW1wbDsgLy8gRnVuY3Rvci4KKy8vXQorCisjZW5kaWYgLy8gI2luY2x1ZGUgZ3VhcmQKKwpkaWZmIC0tZ2l0IGEvb3ZlcmxvYWRlZF9mdW5jdGlvbi90ZXN0L21ha2VfY2FsbC5jcHAgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL3Rlc3QvbWFrZV9jYWxsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWZmYWIwCi0tLSAvZGV2L251bGwKKysrIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi90ZXN0L21ha2VfY2FsbC5jcHAKQEAgLTAsMCArMSwyNyBAQAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBMb3JlbnpvIENhbWluaXRpCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAKKy8vIChzZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGEgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8gSG9tZSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbgorCisjaW5jbHVkZSAiaWRlbnRpdHkuaHBwIgorI2luY2x1ZGUgPGJvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvY29yZS9saWdodHdlaWdodF90ZXN0LmhwcD4KKworLy9baWRlbnRpdHlfbWFrZV9jaGVja3MKK3RlbXBsYXRlPHR5cGVuYW1lIEY+Cit2b2lkIGNoZWNrKEYgaWRlbnRpdHkpIHsKKyAgICBCT09TVF9URVNUKGlkZW50aXR5KCJhYmMiKSA9PSAiYWJjIik7CisgICAgQk9PU1RfVEVTVChpZGVudGl0eSgxMjMpID09IDEyMyk7CisgICAgQk9PU1RfVEVTVChpZGVudGl0eSgxLjIzKSA9PSAxLjIzKTsKK30KKy8vXQorCitpbnQgbWFpbigpIHsKKyAgICAvL1tpZGVudGl0eV9tYWtlX2NhbGwKKyAgICBjaGVjayhib29zdDo6bWFrZV9vdmVybG9hZGVkX2Z1bmN0aW9uKGlkZW50aXR5X3MsIGlkZW50aXR5X2ksIGlkZW50aXR5X2QpKTsKKyAgICAvL10KKyAgICByZXR1cm4gYm9vc3Q6OnJlcG9ydF9lcnJvcnMoKTsKK30KKwpkaWZmIC0tZ2l0IGEvb3ZlcmxvYWRlZF9mdW5jdGlvbi90ZXN0L21ha2VfZGVjbC5jcHAgYi9vdmVybG9hZGVkX2Z1bmN0aW9uL3Rlc3QvbWFrZV9kZWNsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTNiYWM2Ci0tLSAvZGV2L251bGwKKysrIGIvb3ZlcmxvYWRlZF9mdW5jdGlvbi90ZXN0L21ha2VfZGVjbC5jcHAKQEAgLTAsMCArMSwyNCBAQAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBMb3JlbnpvIENhbWluaXRpCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAKKy8vIChzZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGEgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8gSG9tZSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbgorCisjaW5jbHVkZSAiaWRlbnRpdHkuaHBwIgorI2luY2x1ZGUgPGJvb3N0L2Z1bmN0aW9uYWwvb3ZlcmxvYWRlZF9mdW5jdGlvbi5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZW9mL3R5cGVvZi5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvY29yZS9saWdodHdlaWdodF90ZXN0LmhwcD4KKworaW50IG1haW4oKSB7CisgICAgLy9baWRlbnRpdHlfbWFrZV9kZWNsCisgICAgQk9PU1RfQVVUTyhpZGVudGl0eSwgYm9vc3Q6Om1ha2Vfb3ZlcmxvYWRlZF9mdW5jdGlvbigKKyAgICAgICAgICAgIGlkZW50aXR5X3MsIGlkZW50aXR5X2ksIGlkZW50aXR5X2QpKTsKKworICAgIEJPT1NUX1RFU1QoaWRlbnRpdHkoImFiYyIpID09ICJhYmMiKTsKKyAgICBCT09TVF9URVNUKGlkZW50aXR5KDEyMykgPT0gMTIzKTsKKyAgICBCT09TVF9URVNUKGlkZW50aXR5KDEuMjMpID09IDEuMjMpOworICAgIC8vXQorICAgIHJldHVybiBib29zdDo6cmVwb3J0X2Vycm9ycygpOworfQorCg==