PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPmNvbnZlcnRlciZsdDsmZ3Q7IGZ1bmN0aW9uIG9iamVjdDwvdGl0bGU+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vYm9vc3Rib29rLmNzcyIgdHlwZT0idGV4dC9jc3MiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc1LjIiPgo8bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJDaGFwdGVyoDEuoEJvb3N0Lk51bWVyaWNDb252ZXJzaW9uIj4KPGxpbmsgcmVsPSJ1cCIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IkNoYXB0ZXKgMS6gQm9vc3QuTnVtZXJpY0NvbnZlcnNpb24iPgo8bGluayByZWw9InByZXYiIGhyZWY9ImRlZmluaXRpb25zLmh0bWwiIHRpdGxlPSJEZWZpbml0aW9ucyI+CjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0idHlwZV9yZXF1aXJlbWVudHNfYW5kX3VzZXJfZGVmaW5lZF90eXBlc19zdXBwb3J0Lmh0bWwiIHRpdGxlPSJUeXBlIFJlcXVpcmVtZW50cyBhbmQgVXNlci1kZWZpbmVkLXR5cGVzIHN1cHBvcnQiPgo8L2hlYWQ+Cjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPgo8dGQgdmFsaWduPSJ0b3AiPjxpbWcgYWx0PSJCb29zdCBDKysgTGlicmFyaWVzIiB3aWR0aD0iMjc3IiBoZWlnaHQ9Ijg2IiBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2Jvb3N0LnBuZyI+PC90ZD4KPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD4KPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy5odG0iPkxpYnJhcmllczwvYT48L3RkPgo8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvcGVvcGxlLmh0bWwiPlBlb3BsZTwvYT48L3RkPgo8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvZmFxLmh0bWwiPkZBUTwvYT48L3RkPgo8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vbW9yZS9pbmRleC5odG0iPk1vcmU8L2E+PC90ZD4KPC90cj48L3RhYmxlPgo8aHI+CjxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgo8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRlZmluaXRpb25zLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy91cC5wbmciIGFsdD0iVXAiPjwvYT48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0idHlwZV9yZXF1aXJlbWVudHNfYW5kX3VzZXJfZGVmaW5lZF90eXBlc19zdXBwb3J0Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiIgdGl0bGU9ImNvbnZlcnRlciZsdDsmZ3Q7IGZ1bmN0aW9uIG9iamVjdCI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+CjxhIG5hbWU9ImJvb3N0X251bWVyaWNjb252ZXJzaW9uLmNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdCI+PC9hPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJjb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QuaHRtbCIgdGl0bGU9ImNvbnZlcnRlciZsdDsmZ3Q7IGZ1bmN0aW9uIG9iamVjdCI+Y29udmVydGVyJmx0OyZndDsKICAgIGZ1bmN0aW9uIG9iamVjdDwvYT4KPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0idG9jIj48ZGw+CjxkdD48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0Lmh0bWwjYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24uY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0LnN5bm9wc2lzIj5TeW5vcHNpczwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJjb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QuaHRtbCNib29zdF9udW1lcmljY29udmVyc2lvbi5jb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QudGVtcGxhdGVfcGFyYW1ldGVycyI+VGVtcGxhdGUKICAgICAgcGFyYW1ldGVyczwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJjb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QuaHRtbCNib29zdF9udW1lcmljY29udmVyc2lvbi5jb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QubWVtYmVyX2Z1bmN0aW9ucyI+TWVtYmVyCiAgICAgIGZ1bmN0aW9uczwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJjb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QuaHRtbCNib29zdF9udW1lcmljY29udmVyc2lvbi5jb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QucmFuZ2VfY2hlY2tpbmdfbG9naWMiPlJhbmdlCiAgICAgIENoZWNraW5nIExvZ2ljPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5odG1sI2Jvb3N0X251bWVyaWNjb252ZXJzaW9uLmNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5leGFtcGxlcyI+RXhhbXBsZXM8L2E+PC9zcGFuPjwvZHQ+CjwvZGw+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIHRpdGxlPSJTeW5vcHNpcyI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJib29zdF9udW1lcmljY29udmVyc2lvbi5jb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3Quc3lub3BzaXMiPjwvYT48YSBjbGFzcz0ibGluayIgaHJlZj0iY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0Lmh0bWwjYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24uY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0LnN5bm9wc2lzIiB0aXRsZT0iU3lub3BzaXMiPlN5bm9wc2lzPC9hPgo8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPm5hbWVzcGFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+ezwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPm5hbWVzcGFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm51bWVyaWM8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj57PC9zcGFuPgoKCiAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+dGVtcGxhdGU8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmNsYXNzPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+VDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+LDwvc3Bhbj4KICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jbGFzczwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+CiAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y2xhc3M8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5UcmFpdHM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+ICAgICAgICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y29udmVyc2lvbl90cmFpdHM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDs8L3NwYW4+CiAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y2xhc3M8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5PdmVyZmxvd0hhbmRsZXI8L3NwYW4+ICA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmRlZl9vdmVyZmxvd19oYW5kbGVyPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4sPC9zcGFuPgogICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNsYXNzPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+RmxvYXQySW50Um91bmRlcjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5UcnVuYzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPnR5cGVuYW1lPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+VHJhaXRzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c291cmNlX3R5cGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7LDwvc3Bhbj4KICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jbGFzczwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlJhd0NvbnZlcnRlcjwvc3Bhbj4gICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmF3X2NvbnZlcnRlcjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+VHJhaXRzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7LDwvc3Bhbj4KICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jbGFzczwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlVzZXJSYW5nZUNoZWNrZXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+VXNlSW50ZXJuYWxSYW5nZUNoZWNrZXI8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7PC9zcGFuPgogICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnN0cnVjdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnZlcnRlcjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj57PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlZGVmPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+VHJhaXRzPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+dHJhaXRzPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KCiAgICAgICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnR5cGVkZWY8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlbmFtZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlRyYWl0czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnNvdXJjZV90eXBlPC9zcGFuPiAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zb3VyY2VfdHlwZTwvc3Bhbj4gICA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+dHlwZWRlZjwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPnR5cGVuYW1lPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+VHJhaXRzPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFyZ3VtZW50X3R5cGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlZGVmPC9zcGFuPiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+dHlwZW5hbWU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5UcmFpdHM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5yZXN1bHRfdHlwZTwvc3Bhbj4gICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmVzdWx0X3R5cGU8L3NwYW4+ICAgPHNwYW4gY2xhc3M9InNwZWNpYWwiPjs8L3NwYW4+CgogICAgICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdGF0aWM8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5yZXN1bHRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnZlcnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KCiAgICAgICAgPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnJlc3VsdF90eXBlPC9zcGFuPiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+b3BlcmF0b3I8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFyZ3VtZW50X3R5cGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KCiAgICAgICAgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIEludGVybmFsIG1lbWJlciBmdW5jdGlvbnM6Cjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RhdGljPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmFuZ2VfY2hlY2tfcmVzdWx0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+b3V0X29mX3JhbmdlPC9zcGFuPiAgICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RhdGljPC9zcGFuPiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+dm9pZDwvc3Bhbj4gICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+dmFsaWRhdGVfcmFuZ2U8L3NwYW4+ICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RhdGljPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmVzdWx0X3R5cGU8L3NwYW4+ICAgICAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bG93X2xldmVsX2NvbnZlcnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RhdGljPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c291cmNlX3R5cGU8L3NwYW4+ICAgICAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bmVhcmJ5aW50PC9zcGFuPiAgICAgICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KCiAgICA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+fTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPjs8L3NwYW4+Cgo8c3BhbiBjbGFzcz0ic3BlY2lhbCI+fTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPn08L3NwYW4+IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBuYW1lc3BhY2UgbnVtZXJpYywgYm9vc3QKPC9zcGFuPjwvcHJlPgo8cD4KICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm51bWVyaWM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jb252ZXJ0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7PC9zcGFuPjwvY29kZT4KICAgICAgICBpcyBhIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2dpLmNvbS90ZWNoL3N0bC9VbmFyeUZ1bmN0aW9uLmh0bWwiIHRhcmdldD0iX3RvcCI+VW5hcnkgRnVuY3Rpb24KICAgICAgICBPYmplY3Q8L2E+IGVuY2Fwc3VsYXRpbmcgdGhlIGNvZGUgdG8gcGVyZm9ybSBhIG51bWVyaWMgY29udmVyc2lvbiB3aXRoCiAgICAgICAgdGhlIGRpcmVjdGlvbiBhbmQgcHJvcGVydGllcyBzcGVjaWZpZWQgYnkgdGhlIFRyYWl0cyB0ZW1wbGF0ZSBwYXJhbWV0ZXIuCiAgICAgICAgSXQgY2FuIG9wdGlvbmFsbHkgdGFrZSBzb21lIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJudW1lcmljX2NvbnZlcnRlcl9wb2xpY3lfY2xhc3Nlcy5odG1sIiB0aXRsZT0iTnVtZXJpYyBDb252ZXJ0ZXIgUG9saWN5IENsYXNzZXMiPnBvbGljaWVzPC9hPgogICAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGN1c3RvbWl6ZSBpdHMgYmVoYXZpb3IuIFRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5UcmFpdHM8L3NwYW4+PC9jb2RlPgogICAgICAgIHBhcmFtZXRlciBpcyBub3QgYSBwb2xpY3kgYnV0IHRoZSBwYXJhbWV0ZXIgdGhhdCBkZWZpbmVzIHRoZSBjb252ZXJzaW9uLgogICAgICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIiB0aXRsZT0iVGVtcGxhdGUgcGFyYW1ldGVycyI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJib29zdF9udW1lcmljY29udmVyc2lvbi5jb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QudGVtcGxhdGVfcGFyYW1ldGVycyI+PC9hPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJjb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QuaHRtbCNib29zdF9udW1lcmljY29udmVyc2lvbi5jb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QudGVtcGxhdGVfcGFyYW1ldGVycyIgdGl0bGU9IlRlbXBsYXRlIHBhcmFtZXRlcnMiPlRlbXBsYXRlCiAgICAgIHBhcmFtZXRlcnM8L2E+CjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImluZm9ybWFsdGFibGUiPjx0YWJsZSBjbGFzcz0idGFibGUiPgo8Y29sZ3JvdXA+Cjxjb2w+Cjxjb2w+CjwvY29sZ3JvdXA+Cjx0aGVhZD48dHI+Cjx0aD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgPC90aD4KPHRoPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8L3RoPgo8L3RyPjwvdGhlYWQ+Cjx0Ym9keT4KPHRyPgo8dGQ+CiAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5UPC9zcGFuPjwvY29kZT4KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgPC90ZD4KPHRkPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgVGhlIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJkZWZpbml0aW9ucy5odG1sI2Jvb3N0X251bWVyaWNjb252ZXJzaW9uLmRlZmluaXRpb25zLm51bWVyaWNfdHlwZXMiIHRpdGxlPSJOdW1lcmljIFR5cGVzIj5OdW1lcmljCiAgICAgICAgICAgICAgICBUeXBlPC9hPiB3aGljaCBpcyB0aGUgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+VGFyZ2V0PC9lbT48L3NwYW4+IG9mIHRoZSBjb252ZXJzaW9uLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlM8L3NwYW4+PC9jb2RlPgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8L3RkPgo8dGQ+CiAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICBUaGUgPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImRlZmluaXRpb25zLmh0bWwjYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24uZGVmaW5pdGlvbnMubnVtZXJpY190eXBlcyIgdGl0bGU9Ik51bWVyaWMgVHlwZXMiPk51bWVyaWMKICAgICAgICAgICAgICAgIFR5cGU8L2E+IHdoaWNoIGlzIHRoZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5Tb3VyY2U8L2VtPjwvc3Bhbj4gb2YgdGhlIGNvbnZlcnNpb24uCiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+VHJhaXRzPC9zcGFuPjwvY29kZT4KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgPC90ZD4KPHRkPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgY29udmVyc2lvbiB0cmFpdHMgY2xhc3Mgd2l0aCB0aGUgaW50ZXJmYWNlIG9mIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJjb252ZXJzaW9uX3RyYWl0c19fX3RyYWl0c19jbGFzcy5odG1sIiB0aXRsZT0iY29udmVyc2lvbl90cmFpdHMmbHQ7Jmd0OyB0cmFpdHMgY2xhc3MiPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bnVtZXJpYzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnZlcnNpb25fdHJhaXRzPC9zcGFuPjwvY29kZT48L2E+CiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+T3ZlcmZsb3dIYW5kbGVyPC9zcGFuPjwvY29kZT4KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgPC90ZD4KPHRkPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+U3RhdGVsZXNzIFBvbGljeTwvc3Ryb25nPjwvc3Bhbj4gY2FsbGVkIHRvIGFkbWluaXN0cmF0ZQogICAgICAgICAgICAgICAgdGhlIHJlc3VsdCBvZiB0aGUgcmFuZ2UgY2hlY2tpbmcuCiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgSXQgaXMgYSA8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz5GdW5jdGlvbiBPYmplY3Q8L3N0cm9uZz48L3NwYW4+IHdoaWNoIHJlY2VpdmVzCiAgICAgICAgICAgICAgICB0aGUgcmVzdWx0IG9mIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm91dF9vZl9yYW5nZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCk8L3NwYW4+PC9jb2RlPiBhbmQgaXMgY2FsbGVkIGluc2lkZSB0aGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+dmFsaWRhdGVfcmFuZ2U8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpPC9zcGFuPjwvY29kZT4KICAgICAgICAgICAgICAgIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gZXhwb3NlZCBieSB0aGUgY29udmVydGVyLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkZsb2F0MkludFJvdW5kZXI8L3NwYW4+PC9jb2RlPgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8L3RkPgo8dGQ+CiAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz5TdGF0ZWxlc3MgUG9saWN5PC9zdHJvbmc+PC9zcGFuPiB3aGljaCBzcGVjaWZpZXMKICAgICAgICAgICAgICAgIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZm9yIGZsb2F0IHRvIGludGVncmFsIGNvbnZlcnNpb25zLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIEl0IHN1cHBsaWVzIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5uZWFyYnlpbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpPC9zcGFuPjwvY29kZT4gc3RhdGljIG1lbWJlciBmdW5jdGlvbiBleHBvc2VkCiAgICAgICAgICAgICAgICBieSB0aGUgY29udmVydGVyLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlJhd0NvbnZlcnRlcjwvc3Bhbj48L2NvZGU+CiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDwvdGQ+Cjx0ZD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPlN0YXRlbGVzcyBQb2xpY3k8L3N0cm9uZz48L3NwYW4+IHdoaWNoIGlzIHVzZWQgdG8KICAgICAgICAgICAgICAgIHBlcmZvcm0gdGhlIGFjdHVhbCBjb252ZXJzaW9uLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIEl0IHN1cHBsaWVzIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5sb3dfbGV2ZWxfY29udmVydDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCk8L3NwYW4+PC9jb2RlPiBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9uIGV4cG9zZWQKICAgICAgICAgICAgICAgIGJ5IHRoZSBjb252ZXJ0ZXIuCiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+VXNlclJhbmdlQ2hlY2tlcjwvc3Bhbj48L2NvZGU+CiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDwvdGQ+Cjx0ZD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlNwZWNpYWwgYW5kIE9wdGlvbmFsPC9lbT48L3NwYW4+IDxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPlN0YXRlbGVzcwogICAgICAgICAgICAgICAgUG9saWN5PC9zdHJvbmc+PC9zcGFuPiB3aGljaCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgaW50ZXJuYWwgcmFuZ2UKICAgICAgICAgICAgICAgIGNoZWNraW5nIGxvZ2ljLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIElmIGdpdmVuLCBzdXBwbGllcyBhbHRlcm5hdGl2ZSBjb2RlIGZvciB0aGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+b3V0X29mX3JhbmdlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oKTwvc3Bhbj48L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj52YWxpZGF0ZV9yYW5nZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCk8L3NwYW4+PC9jb2RlPiBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9ucyBleHBvc2VkCiAgICAgICAgICAgICAgICBieSB0aGUgY29udmVydGVyLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8L3RkPgo8L3RyPgo8L3Rib2R5Pgo8L3RhYmxlPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiIgdGl0bGU9Ik1lbWJlciBmdW5jdGlvbnMiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0iYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24uY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0Lm1lbWJlcl9mdW5jdGlvbnMiPjwvYT48YSBjbGFzcz0ibGluayIgaHJlZj0iY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0Lmh0bWwjYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24uY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0Lm1lbWJlcl9mdW5jdGlvbnMiIHRpdGxlPSJNZW1iZXIgZnVuY3Rpb25zIj5NZW1iZXIKICAgICAgZnVuY3Rpb25zPC9hPgo8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJibG9ja3F1b3RlIj48YmxvY2txdW90ZSBjbGFzcz0iYmxvY2txdW90ZSI+CjxwPgogICAgICAgICAgPC9wPgo8cD4KICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RhdGljPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmVzdWx0X3R5cGU8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jb252ZXJ0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnZlcnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIHRocm93IDwvc3Bhbj48L2NvZGU+CiAgICAgICAgICA8L3A+CjxwPgogICAgICAgIDwvcD4KPC9ibG9ja3F1b3RlPjwvZGl2Pgo8cD4KICAgICAgICBUaGlzIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gY29udmVydHMgYW4gcnZhbHVlIG9mIHR5cGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+c291cmNlX3R5cGU8L3NwYW4+PC9jb2RlPgogICAgICAgIHRvIGFuIHJ2YWx1ZSBvZiB0eXBlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnRhcmdldF90eXBlPC9zcGFuPjwvY29kZT4uCiAgICAgIDwvcD4KPHA+CiAgICAgICAgSWYgdGhlIGNvbnZlcnNpb24gcmVxdWlyZXMgaXQsIGl0IHBlcmZvcm1zIGEgcmFuZ2UgY2hlY2tpbmcgYmVmb3JlIHRoZSBjb252ZXJzaW9uCiAgICAgICAgYW5kIHBhc3NlcyB0aGUgcmVzdWx0IG9mIHRoZSBjaGVjayB0byB0aGUgb3ZlcmZsb3cgaGFuZGxlciBwb2xpY3kgKHRoZSBkZWZhdWx0CiAgICAgICAgcG9saWN5IHRocm93cyBhbiBleGNlcHRpb24gaWYgb3V0LW9mLXJhbmdlIGlzIGRldGVjdGVkKQogICAgICA8L3A+CjxwPgogICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGJ1aWx0IGZyb20gdGhlIHBvbGljaWVzIGFuZAogICAgICAgIGlzIGJhc2ljYWxseSBhcyBmb2xsb3dzOgogICAgICA8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmVzdWx0X3R5cGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jb252ZXJ0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnZlcnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPgo8c3BhbiBjbGFzcz0ic3BlY2lhbCI+ezwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj52YWxpZGF0ZV9yYW5nZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBJbXBsZW1lbnRlZCBieSB0aGUgaW50ZXJuYWwgcmFuZ2UgY2hlY2tpbmcgbG9naWMKPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vICh3aGljaCBhbHNvIGNhbGxzIHRoZSBPdmVyZmxvd0hhbmRsZXIgcG9saWN5KQo8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gb3IgZXh0ZXJuYWxseSBzdXBwbGllZCBieSB0aGUgVXNlclJhbmdlQ2hlY2tlciBwb2xpY3kuCjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm5lYXJieWludDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+czwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBFeHRlcm5hbGx5IHN1cHBsaWVkIGJ5IHRoZSBGbG9hdDJJbnRSb3VuZGVyIHBvbGljeS4KPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gTk9URTogVGhpcyBpcyBhY3R1YWxseSBjYWxsZWQgb25seSBmb3IgZmxvYXQgdG8gaW50IGNvbnZlcnNpb25zLgo8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bG93X2xldmVsX2NvbnZlcnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPiA8c3BhbiBjbGFzcz0iY29tbWVudCI+Ly8gRXh0ZXJuYWxseSBzdXBwbGllZCBieSB0aGUgUmF3Q29udmVydGVyIHBvbGljeS4KPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj59PC9zcGFuPgo8L3ByZT4KPHA+CiAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y29udmVydGVyPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7Jmd0Ozo6PC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5vcGVyYXRvcjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCk8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj48L2NvZGU+IGp1c3QgY2FsbHMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y29udmVydDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCk8L3NwYW4+PC9jb2RlPgogICAgICA8L3A+CjxwPgogICAgICAgIDxzcGFuIGNsYXNzPSJpbmxpbmVtZWRpYW9iamVjdCI+PGltZyBzcmM9Ii4uL2ltYWdlcy9zcGFjZS5wbmciIGFsdD0ic3BhY2UiPjwvc3Bhbj4KICAgICAgPC9wPgo8ZGl2IGNsYXNzPSJibG9ja3F1b3RlIj48YmxvY2txdW90ZSBjbGFzcz0iYmxvY2txdW90ZSI+CjxwPgogICAgICAgICAgPC9wPgo8cD4KICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RhdGljPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cmFuZ2VfY2hlY2tfcmVzdWx0PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bnVtZXJpY19jb252ZXJ0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZsdDsmZ3Q7Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm91dF9vZl9yYW5nZTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5hcmd1bWVudF90eXBlPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPjwvY29kZT4KICAgICAgICAgIDwvcD4KPHA+CiAgICAgICAgPC9wPgo8L2Jsb2NrcXVvdGU+PC9kaXY+CjxwPgogICAgICAgIFRoaXMgPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5odG1sI251bWVyaWNfY29udmVyc2lvbl9jb252ZXJ0ZXJfaW50ZXJuYWwiPmludGVybmFsPC9hPgogICAgICAgIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gZGV0ZXJtaW5lcyBpZiB0aGUgdmFsdWUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+czwvc3Bhbj48L2NvZGU+CiAgICAgICAgY2FuIGJlIHJlcHJlc2VudGVkIGJ5IHRoZSB0YXJnZXQgdHlwZSB3aXRob3V0IG92ZXJmbG93LgogICAgICA8L3A+CjxwPgogICAgICAgIEl0IGRvZXMgbm90IGRldGVybWluZSBpZiB0aGUgY29udmVyc2lvbiBpcyA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5leGFjdDwvZW0+PC9zcGFuPjsgdGhhdAogICAgICAgIGlzLCBpdCBkb2VzIG5vdCBkZXRlY3QgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+aW5leGFjdDwvZW0+PC9zcGFuPiBjb252ZXJzaW9ucywgb25seSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5vdXQtb2YtcmFuZ2U8L2VtPjwvc3Bhbj4KICAgICAgICBjb252ZXJzaW9ucyAoc2VlIHRoZSA8YSBjbGFzcz0ibGluayIgaHJlZj0iZGVmaW5pdGlvbnMuaHRtbCNib29zdF9udW1lcmljY29udmVyc2lvbi5kZWZpbml0aW9ucy5leGFjdF9fY29ycmVjdGx5X3JvdW5kZWRfYW5kX291dF9vZl9yYW5nZV9yZXByZXNlbnRhdGlvbnMiIHRpdGxlPSJFeGFjdCwgQ29ycmVjdGx5IFJvdW5kZWQgYW5kIE91dC1PZi1SYW5nZSBSZXByZXNlbnRhdGlvbnMiPkRlZmluaXRpb25zPC9hPgogICAgICAgIGZvciBmdXJ0aGVyIGRldGFpbHMpLgogICAgICA8L3A+CjxwPgogICAgICAgIFRoZSByZXR1cm4gdmFsdWUgaXMgb2YgZW51bSB0eXBlIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJudW1lcmljX2NvbnZlcnRlcl9wb2xpY3lfY2xhc3Nlcy5odG1sI2Jvb3N0X251bWVyaWNjb252ZXJzaW9uLm51bWVyaWNfY29udmVydGVyX3BvbGljeV9jbGFzc2VzLmVudW1fcmFuZ2VfY2hlY2tfcmVzdWx0IiB0aXRsZT0iZW51bSByYW5nZV9jaGVja19yZXN1bHQiPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bnVtZXJpYzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnJhbmdlX2NoZWNrX3Jlc3VsdDwvc3Bhbj48L2NvZGU+PC9hPgogICAgICA8L3A+CjxwPgogICAgICAgIFRoZSBhY3R1YWwgY29kZSBmb3IgdGhlIHJhbmdlIGNoZWNraW5nIGxvZ2ljIGlzIG9wdGltaXplZCBmb3IgdGhlIGNvbWJpbmVkCiAgICAgICAgcHJvcGVydGllcyBvZiB0aGUgc291cmNlIGFuZCB0YXJnZXQgdHlwZXMuIEZvciBleGFtcGxlLCBhIG5vbi1zdWJyYW5nZWQgY29udmVyc2lvbgogICAgICAgIChpLmU6IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmludDwvc3Bhbj48L2NvZGU+LSZndDs8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5mbG9hdDwvc3Bhbj48L2NvZGU+KSwgcmVxdWlyZXMgbm8gcmFuZ2UgY2hlY2tpbmcsIHNvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm91dF9vZl9yYW5nZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCk8L3NwYW4+PC9jb2RlPgogICAgICAgIHJldHVybnMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y0luUmFuZ2U8L3NwYW4+PC9jb2RlPiBkaXJlY3RseS4KICAgICAgICBTZWUgdGhlIGZvbGxvd2luZyA8YSBjbGFzcz0ibGluayIgaHJlZj0iY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0Lmh0bWwjYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24uY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0LnJhbmdlX2NoZWNraW5nX2xvZ2ljIiB0aXRsZT0iUmFuZ2UgQ2hlY2tpbmcgTG9naWMiPnRhYmxlPC9hPgogICAgICAgIGZvciBtb3JlIGRldGFpbHMuCiAgICAgIDwvcD4KPHA+CiAgICAgICAgSWYgdGhlIHVzZXIgc3VwcGxpZWQgYSA8YSBjbGFzcz0ibGluayIgaHJlZj0ibnVtZXJpY19jb252ZXJ0ZXJfcG9saWN5X2NsYXNzZXMuaHRtbCNib29zdF9udW1lcmljY29udmVyc2lvbi5udW1lcmljX2NvbnZlcnRlcl9wb2xpY3lfY2xhc3Nlcy5wb2xpY3lfdXNlcnJhbmdlY2hlY2tlciIgdGl0bGU9IlBvbGljeSBVc2VyUmFuZ2VDaGVja2VyIj5Vc2VyUmFuZ2VDaGVja2VyPC9hPgogICAgICAgIHBvbGljeSwgaXMgdGhpcyBwb2xpY3kgd2hpY2ggaW1wbGVtZW50cyB0aGlzIGZ1bmN0aW9uLCBzbyB0aGUgaW1wbGVtZW50YXRpb24KICAgICAgICBpcyB1c2VyIGRlZmluZWQsIGFsdGhvdWdoIGl0IGlzIGV4cGVjdGVkIHRvIHBlcmZvcm0gdGhlIHNhbWUgY29uY2VwdHVhbCBjaGVjawogICAgICAgIGFuZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHJlc3VsdC4KICAgICAgPC9wPgo8cD4KICAgICAgICA8c3BhbiBjbGFzcz0iaW5saW5lbWVkaWFvYmplY3QiPjxpbWcgc3JjPSIuLi9pbWFnZXMvc3BhY2UucG5nIiBhbHQ9InNwYWNlIj48L3NwYW4+CiAgICAgIDwvcD4KPGRpdiBjbGFzcz0iYmxvY2txdW90ZSI+PGJsb2NrcXVvdGUgY2xhc3M9ImJsb2NrcXVvdGUiPgo8cD4KICAgICAgICAgIDwvcD4KPHA+CiAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPnN0YXRpYzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPnZvaWQ8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5udW1lcmljX2NvbnZlcnRlcjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0OyZndDs6Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+dmFsaWRhdGVfcmFuZ2U8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXJndW1lbnRfdHlwZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPnM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ozwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIG5vIHRocm93IDwvc3Bhbj48L2NvZGU+CiAgICAgICAgICA8L3A+CjxwPgogICAgICAgIDwvcD4KPC9ibG9ja3F1b3RlPjwvZGl2Pgo8cD4KICAgICAgICBUaGlzIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJjb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QuaHRtbCNudW1lcmljX2NvbnZlcnNpb25fY29udmVydGVyX2ludGVybmFsIj5pbnRlcm5hbDwvYT4KICAgICAgICBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9uIGNhbGxzIG91dF9vZl9yYW5nZShzKSwgYW5kIHBhc3NlcyB0aGUgcmVzdWx0IHRvIHRoZQogICAgICAgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJudW1lcmljX2NvbnZlcnRlcl9wb2xpY3lfY2xhc3Nlcy5odG1sI2Jvb3N0X251bWVyaWNjb252ZXJzaW9uLm51bWVyaWNfY29udmVydGVyX3BvbGljeV9jbGFzc2VzLnBvbGljeV9vdmVyZmxvd2hhbmRsZXIiIHRpdGxlPSJQb2xpY3kgT3ZlcmZsb3dIYW5kbGVyIj5PdmVyZmxvd0hhbmRsZXI8L2E+CiAgICAgICAgcG9saWN5IGNsYXNzLgogICAgICA8L3A+CjxwPgogICAgICAgIEZvciB0aG9zZSBUYXJnZXQvU291cmNlIGNvbWJpbmF0aW9ucyB3aGljaCBkb24ndCByZXF1aXJlIHJhbmdlIGNoZWNraW5nLAogICAgICAgIHRoaXMgaXMgYW4gZW1wdHkgaW5saW5lIGZ1bmN0aW9uLgogICAgICA8L3A+CjxwPgogICAgICAgIElmIHRoZSB1c2VyIHN1cHBsaWVkIGEgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Im51bWVyaWNfY29udmVydGVyX3BvbGljeV9jbGFzc2VzLmh0bWwjYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24ubnVtZXJpY19jb252ZXJ0ZXJfcG9saWN5X2NsYXNzZXMucG9saWN5X3VzZXJyYW5nZWNoZWNrZXIiIHRpdGxlPSJQb2xpY3kgVXNlclJhbmdlQ2hlY2tlciI+VXNlclJhbmdlQ2hlY2tlcjwvYT4KICAgICAgICBwb2xpY3ksIGlzIHRoaXMgcG9saWN5IHdoaWNoIGltcGxlbWVudHMgdGhpcyBmdW5jdGlvbiwgc28gdGhlIGltcGxlbWVudGF0aW9uCiAgICAgICAgaXMgdXNlciBkZWZpbmVkLCBhbHRob3VnaCBpdCBpcyBleHBlY3RlZCB0byBwZXJmb3JtIHRoZSBzYW1lIGFjdGlvbiBhcyB0aGUKICAgICAgICBkZWZhdWx0LiBJbiBwYXJ0aWN1bGFyLCBpdCBpcyBleHBlY3RlZCB0byBwYXNzIHRoZSByZXN1bHQgb2YgdGhlIGNoZWNrIHRvCiAgICAgICAgdGhlIG92ZXJmbG93IGhhbmRsZXIuCiAgICAgIDwvcD4KPHA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImlubGluZW1lZGlhb2JqZWN0Ij48aW1nIHNyYz0iLi4vaW1hZ2VzL3NwYWNlLnBuZyIgYWx0PSJzcGFjZSI+PC9zcGFuPgogICAgICA8L3A+CjxkaXYgY2xhc3M9ImJsb2NrcXVvdGUiPjxibG9ja3F1b3RlIGNsYXNzPSJibG9ja3F1b3RlIj4KPHA+CiAgICAgICAgICA8L3A+CjxwPgogICAgICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdGF0aWM8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5yZXN1bHRfdHlwZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm51bWVyaWNfY29udmVydGVyPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7Jmd0Ozo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5sb3dfbGV2ZWxfY29udmVydDwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5hcmd1bWVudF90eXBlPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPjwvY29kZT4KICAgICAgICAgIDwvcD4KPHA+CiAgICAgICAgPC9wPgo8L2Jsb2NrcXVvdGU+PC9kaXY+CjxwPgogICAgICAgIFRoaXMgPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5odG1sI251bWVyaWNfY29udmVyc2lvbl9jb252ZXJ0ZXJfaW50ZXJuYWwiPmludGVybmFsPC9hPgogICAgICAgIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gcGVyZm9ybXMgdGhlIGFjdHVhbCBjb252ZXJzaW9uLgogICAgICA8L3A+CjxwPgogICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgZXh0ZXJuYWxseSBzdXBwbGllZCBieSB0aGUgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Im51bWVyaWNfY29udmVydGVyX3BvbGljeV9jbGFzc2VzLmh0bWwjYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24ubnVtZXJpY19jb252ZXJ0ZXJfcG9saWN5X2NsYXNzZXMucG9saWN5X3Jhd2NvbnZlcnRlciIgdGl0bGU9IlBvbGljeSBSYXdDb252ZXJ0ZXIiPlJhd0NvbnZlcnRlcjwvYT4KICAgICAgICBwb2xpY3kgY2xhc3MuCiAgICAgIDwvcD4KPHA+CiAgICAgICAgPHNwYW4gY2xhc3M9ImlubGluZW1lZGlhb2JqZWN0Ij48aW1nIHNyYz0iLi4vaW1hZ2VzL3NwYWNlLnBuZyIgYWx0PSJzcGFjZSI+PC9zcGFuPgogICAgICA8L3A+CjxkaXYgY2xhc3M9ImJsb2NrcXVvdGUiPjxibG9ja3F1b3RlIGNsYXNzPSJibG9ja3F1b3RlIj4KPHA+CiAgICAgICAgICA8L3A+CjxwPgogICAgICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdGF0aWM8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zb3VyY2VfdHlwZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnZlcnRlcjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0OyZndDs6Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bmVhcmJ5aW50PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmFyZ3VtZW50X3R5cGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5zPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPjs8L3NwYW4+PC9jb2RlPgogICAgICAgICAgPC9wPgo8cD4KICAgICAgICA8L3A+CjwvYmxvY2txdW90ZT48L2Rpdj4KPHA+CiAgICAgICAgVGhpcyA8YSBjbGFzcz0ibGluayIgaHJlZj0iY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0Lmh0bWwjbnVtZXJpY19jb252ZXJzaW9uX2NvbnZlcnRlcl9pbnRlcm5hbCI+aW50ZXJuYWw8L2E+CiAgICAgICAgc3RhdGljIG1lbWJlciBmdW5jdGlvbiwgd2hpY2ggaXMgPHNwYW4gY2xhc3M9InVuZGVybGluZSI+b25seSB1c2VkPC9zcGFuPgogICAgICAgIGZvciA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5mbG9hdDwvc3Bhbj48L2NvZGU+IHRvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmludDwvc3Bhbj48L2NvZGU+CiAgICAgICAgY29udmVyc2lvbnMsIHJldHVybnMgYW4gPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+aW50ZWdlcjwvZW0+PC9zcGFuPiB2YWx1ZSBvZiA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT48c3BhbiBjbGFzcz0idW5kZXJsaW5lIj5mbG9hdGluZy1wb2ludCB0eXBlPC9zcGFuPjwvZW0+PC9zcGFuPiBhY2NvcmRpbmcgdG8gc29tZQogICAgICAgIHJvdW5kaW5nIGRpcmVjdGlvbi4KICAgICAgPC9wPgo8cD4KICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIGV4dGVybmFsbHkgc3VwcGxpZWQgYnkgdGhlIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJudW1lcmljX2NvbnZlcnRlcl9wb2xpY3lfY2xhc3Nlcy5odG1sI2Jvb3N0X251bWVyaWNjb252ZXJzaW9uLm51bWVyaWNfY29udmVydGVyX3BvbGljeV9jbGFzc2VzLnBvbGljeV9mbG9hdDJpbnRyb3VuZGVyIiB0aXRsZT0iUG9saWN5IEZsb2F0MkludFJvdW5kZXIiPkZsb2F0MkludFJvdW5kZXI8L2E+CiAgICAgICAgcG9saWN5IGNsYXNzIHdoaWNoIGVuY2Fwc3VsYXRlcyB0aGUgc3BlY2lmaWMgcm91bmRpbmcgbW9kZS4KICAgICAgPC9wPgo8cD4KICAgICAgICA8c3BhbiBjbGFzcz0iaW5saW5lbWVkaWFvYmplY3QiPjxpbWcgc3JjPSIuLi9pbWFnZXMvc3BhY2UucG5nIiBhbHQ9InNwYWNlIj48L3NwYW4+CiAgICAgIDwvcD4KPGEgbmFtZT0ibnVtZXJpY19jb252ZXJzaW9uX2NvbnZlcnRlcl9pbnRlcm5hbCI+PC9hPjxwPgogICAgICA8L3A+CjxhIG5hbWU9ImJvb3N0X251bWVyaWNjb252ZXJzaW9uLmNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5tZW1iZXJfZnVuY3Rpb25zLmludGVybmFsX21lbWJlcl9mdW5jdGlvbnMiPjwvYT48aDU+CjxhIG5hbWU9ImlkNTYzMjY4Ij48L2E+CiAgICAgICAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5odG1sI2Jvb3N0X251bWVyaWNjb252ZXJzaW9uLmNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5tZW1iZXJfZnVuY3Rpb25zLmludGVybmFsX21lbWJlcl9mdW5jdGlvbnMiPkludGVybmFsCiAgICAgICAgTWVtYmVyIEZ1bmN0aW9uczwvYT4KICAgICAgPC9oNT4KPHA+CiAgICAgICAgVGhlc2Ugc3RhdGljIG1lbWJlciBmdW5jdGlvbnMgYnVpbGQgdGhlIGFjdHVhbCBjb252ZXJzaW9uIGNvZGUgdXNlZCBieSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jb252ZXJ0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oKTwvc3Bhbj48L2NvZGU+LgogICAgICAgIFRoZSB1c2VyIGRvZXMgbm90IGhhdmUgdG8gY2FsbCB0aGVzZSBpZiBjYWxsaW5nIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnZlcnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpPC9zcGFuPjwvY29kZT4sIHNpbmNlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmNvbnZlcnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpPC9zcGFuPjwvY29kZT4gY2FsbHMgdGhlbSBpbmZlcm5hbGx5LCBidXQgdGhleSBjYW4gYmUKICAgICAgICBjYWxsZWQgc2VwYXJhdGVseSBmb3Igc3BlY2lmaWMgbmVlZHMuCiAgICAgIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIHRpdGxlPSJSYW5nZSBDaGVja2luZyBMb2dpYyI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJib29zdF9udW1lcmljY29udmVyc2lvbi5jb252ZXJ0ZXJfX19mdW5jdGlvbl9vYmplY3QucmFuZ2VfY2hlY2tpbmdfbG9naWMiPjwvYT48YSBjbGFzcz0ibGluayIgaHJlZj0iY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0Lmh0bWwjYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24uY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0LnJhbmdlX2NoZWNraW5nX2xvZ2ljIiB0aXRsZT0iUmFuZ2UgQ2hlY2tpbmcgTG9naWMiPlJhbmdlCiAgICAgIENoZWNraW5nIExvZ2ljPC9hPgo8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD4KICAgICAgICBUaGUgZm9sbG93aW5nIHRhYmxlIHN1bW1hcml6ZXMgdGhlIGludGVybmFsIHJhbmdlIGNoZWNraW5nIGxvZ2ljIHBlcmZvcm1lZAogICAgICAgIGZvciBlYWNoIGNvbWJpbmF0aW9uIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIFNvdXJjZSBhbmQgVGFyZ2V0LgogICAgICA8L3A+CjxwPgogICAgICAgIExvd2VzdFQvSGlnaGVzdFQgZGVub3RlcyB0aGUgaGlnaGVzdCBhbmQgbG93ZXN0IHZhbHVlcyBvZiB0aGUgVGFyZ2V0IHR5cGUsCiAgICAgICAgcmVzcGVjdGl2ZWx5LgogICAgICA8L3A+CjxwPgogICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPlM8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPig8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm48L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+PC9jb2RlPiBpcyBzaG9ydAogICAgICAgIGZvciA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdGF0aWNfY2FzdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Uzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Oyg8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPm48L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPik8L3NwYW4+PC9jb2RlPiAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Uzwvc3Bhbj48L2NvZGU+IGRlbm90ZXMgdGhlIFNvdXJjZSB0eXBlKS4KICAgICAgPC9wPgo8cD4KICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5OT05FPC9zcGFuPjwvY29kZT4gaW5kaWNhdGVzIHRoYXQgZm9yIHRoaXMKICAgICAgICBjYXNlIHRoZXJlIGlzIG5vIHJhbmdlIGNoZWNraW5nLgogICAgICA8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48Y29kZSBjbGFzcz0ibGl0ZXJhbCI+CmludF90b19pbnQgICAgfC0tJmd0OyBzaWdfdG9fc2lnICAgICB8LS0mZ3Q7IHN1YnJhbmdlZCAgICAgfC0tJmd0OyAoIHMgJmd0Oz0gUyhMb3dlc3RUKSApICZhbXA7JmFtcDsgKCBzICZsdDs9IFMoSGlnaGVzdFQpICkKICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwtLSZndDsgbm90IHN1YnJhbmdlZCB8LS0mZ3Q7IE5PTkUKICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgfC0tJmd0OyB1bnNpZ190b191bnNpZyB8LS0mZ3Q7IHN1YnJhbmdlZCAgICAgfC0tJmd0OyAoIHMgJmd0Oz0gUyhMb3dlc3RUKSApICZhbXA7JmFtcDsgKCBzICZsdDs9IFMoSGlnaGVzdFQpICkKICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwtLSZndDsgbm90IHN1YnJhbmdlZCB8LS0mZ3Q7IE5PTkUKICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgfC0tJmd0OyBzaWdfdG9fdW5zaWcgICB8LS0mZ3Q7IHBvcyBzdWJyYW5nZWQgICAgIHwtLSZndDsgKCBzICZndDs9IFMoMCkgKSAmYW1wOyZhbXA7ICggcyAmbHQ7PSBTKEhpZ2hlc3RUKSApCiAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8LS0mZ3Q7IG5vdCBwb3Mgc3VicmFuZ2VkIHwtLSZndDsgKCBzICZndDs9IFMoMCkgKQogICAgICAgICAgICAgIHwKICAgICAgICAgICAgICB8LS0mZ3Q7IHVuc2lnX3RvX3NpZyAgIHwtLSZndDsgc3VicmFuZ2VkICAgICB8LS0mZ3Q7ICggcyAmbHQ7PSBTKEhpZ2hlc3RUKSApCiAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8LS0mZ3Q7IG5vdCBzdWJyYW5nZWQgfC0tJmd0OyBOT05FCjwvY29kZT4KPGNvZGUgY2xhc3M9ImxpdGVyYWwiPgppbnRfdG9fZmxvYXQgICB8LS0mZ3Q7IE5PTkUKPC9jb2RlPgo8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+CmZsb2F0X3RvX2ludCAgIHwtLSZndDsgcm91bmRfdG9femVybyAgICAgICAgIHwtLSZndDsgKCBzICZndDsgIFMoTG93ZXN0VCktUygxKSAgICkgJmFtcDsmYW1wOyAoIHMgJmx0OyAgUyhIaWdoZXN0VCkrUygxKSAgICkKICAgICAgICAgICAgICAgfC0tJmd0OyByb3VuZF90b19ldmVuX25lYXJlc3QgfC0tJmd0OyAoIHMgJmd0Oz0gUyhMb3dlc3RUKS1TKDAuNSkgKSAmYW1wOyZhbXA7ICggcyAmbHQ7ICBTKEhpZ2hlc3RUKStTKDAuNSkgKQogICAgICAgICAgICAgICB8LS0mZ3Q7IHJvdW5kX3RvX2luZmluaXR5ICAgICB8LS0mZ3Q7ICggcyAmZ3Q7ICBTKExvd2VzdFQpLVMoMSkgICApICZhbXA7JmFtcDsgKCBzICZsdDs9IFMoSGlnaGVzdFQpICAgICAgICApCiAgICAgICAgICAgICAgIHwtLSZndDsgcm91bmRfdG9fbmVnX2luZmluaXR5IHwtLSZndDsgKCBzICZndDs9IFMoTG93ZXN0VCkgICAgICAgICkgJmFtcDsmYW1wOyAoIHMgJmx0OyAgUyhIaWdoZXN0VCkrUygxKSAgICkKPC9jb2RlPgo8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+CmZsb2F0X3RvX2Zsb2F0IHwtLSZndDsgc3VicmFuZ2VkICAgICB8LS0mZ3Q7ICggcyAmZ3Q7PSBTKExvd2VzdFQpICkgJmFtcDsmYW1wOyAoIHMgJmx0Oz0gUyhIaWdoZXN0VCkgKQogICAgICAgICAgICAgICB8LS0mZ3Q7IG5vdCBzdWJyYW5nZWQgfC0tJmd0OyBOT05FCjwvY29kZT4KPC9wcmU+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIiB0aXRsZT0iRXhhbXBsZXMiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0iYm9vc3RfbnVtZXJpY2NvbnZlcnNpb24uY29udmVydGVyX19fZnVuY3Rpb25fb2JqZWN0LmV4YW1wbGVzIj48L2E+PGEgY2xhc3M9ImxpbmsiIGhyZWY9ImNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5odG1sI2Jvb3N0X251bWVyaWNjb252ZXJzaW9uLmNvbnZlcnRlcl9fX2Z1bmN0aW9uX29iamVjdC5leGFtcGxlcyIgdGl0bGU9IkV4YW1wbGVzIj5FeGFtcGxlczwvYT4KPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxzcGFuIGNsYXNzPSJwcmVwcm9jZXNzb3IiPiNpbmNsdWRlPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y2Fzc2VydDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InByZXByb2Nlc3NvciI+I2luY2x1ZGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ib29zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Lzwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bnVtZXJpYzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Lzwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y29udmVyc2lvbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Lzwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y29udmVydGVyPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5ocHA8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiZndDs8L3NwYW4+Cgo8c3BhbiBjbGFzcz0ia2V5d29yZCI+aW50PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bWFpbjwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KCk8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj57PC9zcGFuPgoKICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj50eXBlZGVmPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5udW1lcmljPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y29udmVydGVyPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mbHQ7PC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5pbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPiw8L3NwYW4+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmRvdWJsZTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmd0Ozwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkRvdWJsZTJJbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPgoKICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5pbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj54PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkRvdWJsZTJJbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5jb252ZXJ0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJudW1iZXIiPjIuMDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+YXNzZXJ0PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPng8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj49PTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im51bWJlciI+Mjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPik7PC9zcGFuPgoKICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5pbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj55PC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPkRvdWJsZTJJbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpKDwvc3Bhbj48c3BhbiBjbGFzcz0ibnVtYmVyIj4zLjE0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pOzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8vIEFzIGEgZnVuY3Rpb24gb2JqZWN0Lgo8L3NwYW4+ICAgIDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5hc3NlcnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+eTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj09PC9zcGFuPiA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPjs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBUaGUgZGVmYXVsdCByb3VuZGluZyBpcyB0cnVuYy4KPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnRyeTwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzcGVjaWFsIj57PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5kb3VibGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5tPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvb3N0PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bnVtZXJpYzwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmJvdW5kczwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+Jmx0Ozwvc3Bhbj48c3BhbiBjbGFzcz0ia2V5d29yZCI+ZG91YmxlPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj4mZ3Q7Ojo8L3NwYW4+PHNwYW4gY2xhc3M9ImlkZW50aWZpZXIiPmhpZ2hlc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPigpOzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+aW50PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+ejwvc3Bhbj4gPHNwYW4gY2xhc3M9InNwZWNpYWwiPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5Eb3VibGUySW50PC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Y29udmVydDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+bTwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+KTs8L3NwYW4+IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vLyBCeSBkZWZhdWx0IHRocm93cyBwb3NpdGl2ZV9vdmVyZmxvdygpCjwvc3Bhbj4gICAgPHNwYW4gY2xhc3M9InNwZWNpYWwiPn08L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y2F0Y2g8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4oPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+Ym9vc3Q8L3NwYW4+PHNwYW4gY2xhc3M9InNwZWNpYWwiPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJpZGVudGlmaWVyIj5udW1lcmljPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj46Ojwvc3Bhbj48c3BhbiBjbGFzcz0iaWRlbnRpZmllciI+cG9zaXRpdmVfb3ZlcmZsb3c8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj48c3BhbiBjbGFzcz0ic3BlY2lhbCI+JmFtcDs8L3NwYW4+IDxzcGFuIGNsYXNzPSJzcGVjaWFsIj4pPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNwZWNpYWwiPns8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic3BlY2lhbCI+fTwvc3Bhbj4KCiAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz0ibnVtYmVyIj4wPC9zcGFuPjxzcGFuIGNsYXNzPSJzcGVjaWFsIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0ic3BlY2lhbCI+fTwvc3Bhbj4KPC9wcmU+CjwvZGl2Pgo8L2Rpdj4KPHRhYmxlIHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiB3aWR0aD0iMTAwJSI+PHRyPgo8dGQgYWxpZ249ImxlZnQiPjwvdGQ+Cjx0ZCBhbGlnbj0icmlnaHQiPjxkaXYgY2xhc3M9ImNvcHlyaWdodC1mb290ZXIiPkNvcHlyaWdodCCpIDIwMDQgLTIwMDcgRmVybmFuZG8gTHVpcyBDYWNjaW9sYSBDYXJiYWxsYWw8cD4KICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCiAgICAgICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiIHRhcmdldD0iX3RvcCI+aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPikKICAgICAgPC9wPgo8L2Rpdj48L3RkPgo8L3RyPjwvdGFibGU+Cjxocj4KPGRpdiBjbGFzcz0ic3Bpcml0LW5hdiI+CjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGVmaW5pdGlvbnMuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL3VwLnBuZyIgYWx0PSJVcCI+PC9hPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9ob21lLnBuZyIgYWx0PSJIb21lIj48L2E+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJ0eXBlX3JlcXVpcmVtZW50c19hbmRfdXNlcl9kZWZpbmVkX3R5cGVzX3N1cHBvcnQuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K