ZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vLmdpdGlnbm9yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vLmdpdGlnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNjMzFmNy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS5tZXRhZGF0YS8KLQotIyBFY2xpcHNlIHRhcmdldCBkaXJlY3RvcmllcwotYmluLwotdGFyZ2V0LwotCi14dGVuZC1nZW4vCi1vdXRwdXQvKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vLm12bi9leHRlbnNpb25zLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vLm12bi9leHRlbnNpb25zLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y0ODZiMy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uLy5tdm4vZXh0ZW5zaW9ucy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08ZXh0ZW5zaW9ucz4KLSAgPGV4dGVuc2lvbj4KLSAgICA8Z3JvdXBJZD5vcmcuZWNsaXBzZS50eWNoby5leHRyYXM8L2dyb3VwSWQ+Ci0gICAgPGFydGlmYWN0SWQ+dHljaG8tcG9tbGVzczwvYXJ0aWZhY3RJZD4KLSAgICA8dmVyc2lvbj4yLjAuMDwvdmVyc2lvbj4KLSAgPC9leHRlbnNpb24+Ci08L2V4dGVuc2lvbnM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9SRUFETUUubWQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL1JFQURNRS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY5ZGUyOS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL1JFQURNRS5tZAorKysgL2Rldi9udWxsCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy8uZ2l0aWdub3JlIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvLmdpdGlnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNmYjk0Yy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0vYmluLwotL3RhcmdldC8KLS94dGVuZC1nZW4vClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvRGVzaWduRGlhZ3JhbS9UcmFuc2Zvcm1hdGlvbkZyYW1ld29ya19PU0dJX0RTX0Jhc2VkX0Rlc2lnbi5lYXAgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9EZXNpZ25EaWFncmFtL1RyYW5zZm9ybWF0aW9uRnJhbWV3b3JrX09TR0lfRFNfQmFzZWRfRGVzaWduLmVhcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdiZGZiYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9EZXNpZ25EaWFncmFtL1RyYW5zZm9ybWF0aW9uRnJhbWV3b3JrX09TR0lfRFNfQmFzZWRfRGVzaWduLmVhcAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0Rlc2lnbkRpYWdyYW0vVHJhbnNmb3JtYXRpb25GcmFtZXdvcmtfT1NHSV9EU19CYXNlZF9EZXNpZ24ubGRiIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvRGVzaWduRGlhZ3JhbS9UcmFuc2Zvcm1hdGlvbkZyYW1ld29ya19PU0dJX0RTX0Jhc2VkX0Rlc2lnbi5sZGIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1Nzg0MTUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvRGVzaWduRGlhZ3JhbS9UcmFuc2Zvcm1hdGlvbkZyYW1ld29ya19PU0dJX0RTX0Jhc2VkX0Rlc2lnbi5sZGIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9EZXNpZ25EaWFncmFtL2ltYWdlcy9jb25zdW1lci9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLnBuZyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0Rlc2lnbkRpYWdyYW0vaW1hZ2VzL2NvbnN1bWVyL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTViZmNmLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0Rlc2lnbkRpYWdyYW0vaW1hZ2VzL2NvbnN1bWVyL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvRGVzaWduRGlhZ3JhbS9pbWFnZXMvY29uc3VtZXIvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS5wbmcgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9EZXNpZ25EaWFncmFtL2ltYWdlcy9jb25zdW1lci9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzlkM2Y0OC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9EZXNpZ25EaWFncmFtL2ltYWdlcy9jb25zdW1lci9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0Rlc2lnbkRpYWdyYW0vaW1hZ2VzL2NvbnN1bWVyL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQucG5nIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvRGVzaWduRGlhZ3JhbS9pbWFnZXMvY29uc3VtZXIvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1ZTFkMzMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvRGVzaWduRGlhZ3JhbS9pbWFnZXMvY29uc3VtZXIvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9EZXNpZ25EaWFncmFtL2ltYWdlcy9mcmFtZXdvcmsvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLnBuZyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0Rlc2lnbkRpYWdyYW0vaW1hZ2VzL2ZyYW1ld29yay9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24ucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTc4MjBiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0Rlc2lnbkRpYWdyYW0vaW1hZ2VzL2ZyYW1ld29yay9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24ucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvRGVzaWduRGlhZ3JhbS9pbWFnZXMvZnJhbWV3b3JrL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb24ucG5nIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvRGVzaWduRGlhZ3JhbS9pbWFnZXMvZnJhbWV3b3JrL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb24ucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTJkNzI0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0Rlc2lnbkRpYWdyYW0vaW1hZ2VzL2ZyYW1ld29yay9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9uLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvQW1hbHRoZWFfdG9fSW5jaHJvbl9UcmFuc2Zvcm1hdGlvbi5wbmcgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hcmNoaXZlL0FtYWx0aGVhX3RvX0luY2hyb25fVHJhbnNmb3JtYXRpb24ucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWQ5ZTZiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvQW1hbHRoZWFfdG9fSW5jaHJvbl9UcmFuc2Zvcm1hdGlvbi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hcmNoaXZlL01vZGVsVHJhbnNmb3JtYXRpb25fU2xpZGVzLnBkZiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvTW9kZWxUcmFuc2Zvcm1hdGlvbl9TbGlkZXMucGRmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmQzMzk0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvTW9kZWxUcmFuc2Zvcm1hdGlvbl9TbGlkZXMucGRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvYXJjaGl2ZS9Nb2RlbFRyYW5zZm9ybWF0aW9uX1NsaWRlcy5wcHR4IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvYXJjaGl2ZS9Nb2RlbFRyYW5zZm9ybWF0aW9uX1NsaWRlcy5wcHR4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjZhZjY4Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvTW9kZWxUcmFuc2Zvcm1hdGlvbl9TbGlkZXMucHB0eAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvVHJhbnNmb3JtYXRpb25GcmFtZXdvcmstSW5oZXJpdGFuY2UuZ3JhcGhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvVHJhbnNmb3JtYXRpb25GcmFtZXdvcmstSW5oZXJpdGFuY2UuZ3JhcGhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmEzN2YzZi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hcmNoaXZlL1RyYW5zZm9ybWF0aW9uRnJhbWV3b3JrLUluaGVyaXRhbmNlLmdyYXBobWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Ci08Z3JhcGhtbCB4bWxucz0iaHR0cDovL2dyYXBobWwuZ3JhcGhkcmF3aW5nLm9yZy94bWxucyIgeG1sbnM6amF2YT0iaHR0cDovL3d3dy55d29ya3MuY29tL3htbC95ZmlsZXMtY29tbW9uLzEuMC9qYXZhIiB4bWxuczpzeXM9Imh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwveWZpbGVzLWNvbW1vbi9tYXJrdXAvcHJpbWl0aXZlcy8yLjAiIHhtbG5zOng9Imh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwveWZpbGVzLWNvbW1vbi9tYXJrdXAvMi4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp5PSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL2dyYXBobWwiIHhtbG5zOnllZD0iaHR0cDovL3d3dy55d29ya3MuY29tL3htbC95ZWQvMyIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZ3JhcGhtbC5ncmFwaGRyYXdpbmcub3JnL3htbG5zIGh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwvc2NoZW1hL2dyYXBobWwvMS4xL3lncmFwaG1sLnhzZCI+Ci0gIDwhLS1DcmVhdGVkIGJ5IHlFZCAzLjE4LjItLT4KLSAgPGtleSBhdHRyLm5hbWU9IkRlc2NyaXB0aW9uIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJncmFwaCIgaWQ9ImQwIi8+Ci0gIDxrZXkgZm9yPSJwb3J0IiBpZD0iZDEiIHlmaWxlcy50eXBlPSJwb3J0Z3JhcGhpY3MiLz4KLSAgPGtleSBmb3I9InBvcnQiIGlkPSJkMiIgeWZpbGVzLnR5cGU9InBvcnRnZW9tZXRyeSIvPgotICA8a2V5IGZvcj0icG9ydCIgaWQ9ImQzIiB5ZmlsZXMudHlwZT0icG9ydHVzZXJkYXRhIi8+Ci0gIDxrZXkgYXR0ci5uYW1lPSJ1cmwiIGF0dHIudHlwZT0ic3RyaW5nIiBmb3I9Im5vZGUiIGlkPSJkNCIvPgotICA8a2V5IGF0dHIubmFtZT0iZGVzY3JpcHRpb24iIGF0dHIudHlwZT0ic3RyaW5nIiBmb3I9Im5vZGUiIGlkPSJkNSIvPgotICA8a2V5IGZvcj0ibm9kZSIgaWQ9ImQ2IiB5ZmlsZXMudHlwZT0ibm9kZWdyYXBoaWNzIi8+Ci0gIDxrZXkgZm9yPSJncmFwaG1sIiBpZD0iZDciIHlmaWxlcy50eXBlPSJyZXNvdXJjZXMiLz4KLSAgPGtleSBhdHRyLm5hbWU9InVybCIgYXR0ci50eXBlPSJzdHJpbmciIGZvcj0iZWRnZSIgaWQ9ImQ4Ii8+Ci0gIDxrZXkgYXR0ci5uYW1lPSJkZXNjcmlwdGlvbiIgYXR0ci50eXBlPSJzdHJpbmciIGZvcj0iZWRnZSIgaWQ9ImQ5Ii8+Ci0gIDxrZXkgZm9yPSJlZGdlIiBpZD0iZDEwIiB5ZmlsZXMudHlwZT0iZWRnZWdyYXBoaWNzIi8+Ci0gIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJHIj4KLSAgICA8ZGF0YSBrZXk9ImQwIi8+Ci0gICAgPG5vZGUgaWQ9Im4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMTgwLjAiIHg9IjIwOC4wIiB5PSI5Mi4wIi8+Ci0gICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMTMuMzU5Mzc1IiB4PSIzMy4zMjAzMTI1IiB5PSI1LjY0OTQxNDA2MjUiPkFic3RyYWN0VHJhbnNmb3JtZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L25vZGU+Ci0gICAgPG5vZGUgaWQ9Im4xIj4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMjI1LjAiIHg9IjE4Ni4wIiB5PSIxNjAuMCIvPgotICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjA0LjA4MDA3ODEyNSIgeD0iMTAuNDU5OTYwOTM3NSIgeT0iNS42NDk0MTQwNjI1Ij5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9ub2RlPgotICAgIDxub2RlIGlkPSJuMiI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuMCIgd2lkdGg9IjE4MC4wIiB4PSIxMTIuMCIgeT0iMjM1LjAiLz4KLSAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjEwMi4wMjczNDM3NSIgeD0iMzguOTg2MzI4MTI1IiB5PSI1LjY0OTQxNDA2MjUiPk1vZGVsVHJhbnNmb3JtZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L25vZGU+Ci0gICAgPG5vZGUgaWQ9Im4zIj4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMTgwLjAiIHg9IjMwMy4wIiB5PSIyMzUuMCIvPgotICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iODQuNjc3NzM0Mzc1IiB4PSI0Ny42NjExMzI4MTI1IiB5PSI1LjY0OTQxNDA2MjUiPk9zVHJhbnNmb3JtZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L25vZGU+Ci0gICAgPG5vZGUgaWQ9Im40Ij4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMjEzLjAiIHg9Ijg0My4wIiB5PSIyMzUuMCIvPgotICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTQ3LjM5NjQ4NDM3NSIgeD0iMzIuODAxNzU3ODEyNSIgeT0iNS42NDk0MTQwNjI1Ij5EZWZhdWx0TTJNSW5qZWN0b3JNb2R1bGU8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L25vZGU+Ci0gICAgPG5vZGUgaWQ9Im41Ij4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMjIwLjAiIHg9IjgzOS41IiB5PSIxNjcuMCIvPgotICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjA3LjQxOTkyMTg3NSIgeD0iNi4yOTAwMzkwNjI1IiB5PSI1LjY0OTQxNDA2MjUiPkFic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZTx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgPC9kYXRhPgotICAgIDwvbm9kZT4KLSAgICA8bm9kZSBpZD0ibjYiPgotICAgICAgPGRhdGEga2V5PSJkNSIvPgotICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjAiIHdpZHRoPSIxNzIuMCIgeD0iMzk2LjAiIHk9IjkyLjAiLz4KLSAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZGRkZGIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iI0ZGRkZGRiIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE2OS40Mjc3MzQzNzUiIHg9IjEuMjg2MTMyODEyNSIgeT0iNS42NDk0MTQwNjI1Ij5jb250YWlucyBpbmplY3RvciwgbG9nZ2VyLCBjYWNoZTx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgPC9kYXRhPgotICAgIDwvbm9kZT4KLSAgICA8bm9kZSBpZD0ibjciPgotICAgICAgPGRhdGEga2V5PSJkNSIvPgotICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjAiIHdpZHRoPSIxNzIuMCIgeD0iNDIxLjAiIHk9IjE2MC4wIi8+Ci0gICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGRkZGRiIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiNGRkZGRkYiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyNDIuNzkyOTY4NzUiIHg9Ii00LjM5NjQ4NDM3NSIgeT0iNS42NDk0MTQwNjI1Ij5jb250YWlucyBtb2RlbCBmYWN0b3JpZXMsIG1vZGVsIHJvb3Qgbm9kZXMgLi48eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4xODAyMzI1NTgxMzk1MzQ4NyIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9ub2RlPgotICAgIDxub2RlIGlkPSJuOCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ1Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuMCIgd2lkdGg9IjE3Mi4wIiB4PSI0ODkuMCIgeT0iMjM1LjAiLz4KLSAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZGRkZGIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iI0ZGRkZGRiIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIxMS40Mzk0NTMxMjUiIHg9IjQuMCIgeT0iNC4wIj5hY3R1YWwgdHJhbnNmb3JtYXRpb24gb2YgbW9kZWwgZWxlbWVudDx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4yOTQ1NTM3MDA5MTU0MTQyIiBsYWJlbFJhdGlvWT0iLTAuNSIgbm9kZVJhdGlvWD0iMC41IiBub2RlUmF0aW9ZPSItMC41IiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjQuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9ub2RlPgotICAgIDxlZGdlIGlkPSJlMCIgc291cmNlPSJuMSIgdGFyZ2V0PSJuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0iZTEiIHNvdXJjZT0ibjIiIHRhcmdldD0ibjEiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9ImUyIiBzb3VyY2U9Im4zIiB0YXJnZXQ9Im4xIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlMyIgc291cmNlPSJuNCIgdGFyZ2V0PSJuNSI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgPC9ncmFwaD4KLSAgPGRhdGEga2V5PSJkNyI+Ci0gICAgPHk6UmVzb3VyY2VzLz4KLSAgPC9kYXRhPgotPC9ncmFwaG1sPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvYXJjaGl2ZS9UcmFuc2Zvcm1hdGlvbkZyYW1ld29yay1Jbmhlcml0YW5jZS5wbmcgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hcmNoaXZlL1RyYW5zZm9ybWF0aW9uRnJhbWV3b3JrLUluaGVyaXRhbmNlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdkOGY4Zi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hcmNoaXZlL1RyYW5zZm9ybWF0aW9uRnJhbWV3b3JrLUluaGVyaXRhbmNlLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvVHJhbnNmb3JtYXRpb25GcmFtZXdvcmstU3dBcmNoaXRlY3R1cmUuZ3JhcGhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvVHJhbnNmb3JtYXRpb25GcmFtZXdvcmstU3dBcmNoaXRlY3R1cmUuZ3JhcGhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQwMzcxZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hcmNoaXZlL1RyYW5zZm9ybWF0aW9uRnJhbWV3b3JrLVN3QXJjaGl0ZWN0dXJlLmdyYXBobWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDcyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgotPGdyYXBobWwgeG1sbnM9Imh0dHA6Ly9ncmFwaG1sLmdyYXBoZHJhd2luZy5vcmcveG1sbnMiIHhtbG5zOmphdmE9Imh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwveWZpbGVzLWNvbW1vbi8xLjAvamF2YSIgeG1sbnM6c3lzPSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3lmaWxlcy1jb21tb24vbWFya3VwL3ByaW1pdGl2ZXMvMi4wIiB4bWxuczp4PSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3lmaWxlcy1jb21tb24vbWFya3VwLzIuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eT0iaHR0cDovL3d3dy55d29ya3MuY29tL3htbC9ncmFwaG1sIiB4bWxuczp5ZWQ9Imh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwveWVkLzMiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL2dyYXBobWwuZ3JhcGhkcmF3aW5nLm9yZy94bWxucyBodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3NjaGVtYS9ncmFwaG1sLzEuMS95Z3JhcGhtbC54c2QiPgotICA8IS0tQ3JlYXRlZCBieSB5RWQgMy4xOC4yLS0+Ci0gIDxrZXkgYXR0ci5uYW1lPSJEZXNjcmlwdGlvbiIgYXR0ci50eXBlPSJzdHJpbmciIGZvcj0iZ3JhcGgiIGlkPSJkMCIvPgotICA8a2V5IGZvcj0icG9ydCIgaWQ9ImQxIiB5ZmlsZXMudHlwZT0icG9ydGdyYXBoaWNzIi8+Ci0gIDxrZXkgZm9yPSJwb3J0IiBpZD0iZDIiIHlmaWxlcy50eXBlPSJwb3J0Z2VvbWV0cnkiLz4KLSAgPGtleSBmb3I9InBvcnQiIGlkPSJkMyIgeWZpbGVzLnR5cGU9InBvcnR1c2VyZGF0YSIvPgotICA8a2V5IGF0dHIubmFtZT0idXJsIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJub2RlIiBpZD0iZDQiLz4KLSAgPGtleSBhdHRyLm5hbWU9ImRlc2NyaXB0aW9uIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJub2RlIiBpZD0iZDUiLz4KLSAgPGtleSBmb3I9Im5vZGUiIGlkPSJkNiIgeWZpbGVzLnR5cGU9Im5vZGVncmFwaGljcyIvPgotICA8a2V5IGZvcj0iZ3JhcGhtbCIgaWQ9ImQ3IiB5ZmlsZXMudHlwZT0icmVzb3VyY2VzIi8+Ci0gIDxrZXkgYXR0ci5uYW1lPSJ1cmwiIGF0dHIudHlwZT0ic3RyaW5nIiBmb3I9ImVkZ2UiIGlkPSJkOCIvPgotICA8a2V5IGF0dHIubmFtZT0iZGVzY3JpcHRpb24iIGF0dHIudHlwZT0ic3RyaW5nIiBmb3I9ImVkZ2UiIGlkPSJkOSIvPgotICA8a2V5IGZvcj0iZWRnZSIgaWQ9ImQxMCIgeWZpbGVzLnR5cGU9ImVkZ2VncmFwaGljcyIvPgotICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0iRyI+Ci0gICAgPGRhdGEga2V5PSJkMCIvPgotICAgIDxub2RlIGlkPSJuMCIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjEwNjEuNTM1Mjc4MzIwMzEyNSIgd2lkdGg9IjYwNy4zNzM4MjgxMjUwMDAzIiB4PSIxMzIuMjY4MzU5Mzc1MDAwMjciIHk9Ii0yLjI2NTg2OTE0MDYyNTAyODQiLz4KLSAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2MDcuMzczODI4MTI1MDAwMyIgeD0iMC4wIiB5PSIwLjAiPkZyYW1ld29yazwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iOTgiIHJpZ2h0Rj0iOTguMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjY3LjM2OTE0MDYyNSIgeD0iLTguNjg0NTcwMzEyNSIgeT0iMC4wIj5Gb2xkZXIgMTU8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgIDwvZGF0YT4KLSAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMDoiPgotICAgICAgICA8bm9kZSBpZD0ibjA6Om4wIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzcwLjEwNzA1NTY2NDA2MjUiIHdpZHRoPSI0NTAuMCIgeD0iMTYyLjI2ODM1OTM3NTAwMDI3IiB5PSIzNS4xMTA1OTU3MDMxMjQ5NyIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjQ1MC4wIiB4PSIwLjAiIHk9IjAuMCI+b3JnLmVjbGlwc2UuYXBwNGNtLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSI0OSIgbGVmdEY9IjQ5LjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjU5LjAyNjg1NTQ2ODc1IiB4PSItNC41MTM0Mjc3MzQzNzUiIHk9IjAuMCI+Rm9sZGVyIDE8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgPC9kYXRhPgotICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMDo6bjA6Ij4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjA6Om4wIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzE3LjczMDU5MDgyMDMxMjUiIHdpZHRoPSIzNzEuMCIgeD0iMjI2LjI2ODM1OTM3NTAwMDI3IiB5PSI3Mi40ODcwNjA1NDY4NzQ5NyIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjM3MS4wIiB4PSIwLjAiIHk9IjAuMCI+LmJhc2U8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMzQiIGJvdHRvbUY9IjM0LjM0OTA3ODk5MTgwNzM0NiIgbGVmdD0iOCIgbGVmdEY9IjguMCIgcmlnaHQ9IjI1IiByaWdodEY9IjI1LjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2Ny4zNjkxNDA2MjUiIHg9Ii04LjY4NDU3MDMxMjUiIHk9IjAuMCI+Rm9sZGVyIDE3PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjA6Om4wOjpuMDoiPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjA6Om4wOjpuMCI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE3MC4wIiB4PSIyOTAuMDE4MzU5Mzc1MDAwMyIgeT0iMTA5Ljg2MzUyNTM5MDYyNDk3Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTUzLjQ5MzY1MjM0Mzc1IiB4PSI4LjI1MzE3MzgyODEyNSIgeT0iMy4wIj5BcHBsaWNhdGlvbjpJQXBwbGljYXRpb248eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4wOjpuMDo6bjEiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIxNzAuMCIgeD0iMjcyLjI3ODk0NTY2Njg5MjIiIHk9IjE0Mi44MzQxMDY0NDUzMTI0NyIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjEyOC4yNDkwMjM0Mzc1IiB4PSIyMC44NzU0ODgyODEyNSIgeT0iMy4wIj5FeHRlbnNpb25FeGVjdXRpb248eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4wOjpuMDo6bjIiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIxNzAuMCIgeD0iMzA2LjI2ODM1OTM3NTAwMDMiIHk9IjE3NS44MDQ2ODc0OTk5OTk5NyIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE0MC40OTM2NTIzNDM3NSIgeD0iMTQuNzUzMTczODI4MTI1IiB5PSIzLjAiPlRyYW5zZm9ybWF0aW9uQ29uZmlnPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMDo6bjA6Om4zIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjM1My43NDE4OTM2NDUyNzA2IiB5PSIyMTAuNzAxNDQ2NTMzMjAzMSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE0OS4yMDI2MzY3MTg3NSIgeD0iMTAuMzk4NjgxNjQwNjI1IiB5PSIzLjAiPkV4ZWN1dGVUcmFuc2Zvcm1hdGlvbjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjA6Om4wOjpuNCI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuOTUxNjA2ODQ0MDAzNDM2IiB3aWR0aD0iMzA4LjAiIHg9IjI0OS4yNjgzNTkzNzUwMDAzMyIgeT0iMjY0LjI0OTQ3NzMzOTcxNzAzIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGRkZGRiIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIzMy40MDIzNDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjI2Ny40ODQzNzUiIHg9IjIwLjI1NzgxMjUiIHk9Ii0xLjIyNTM2ODQ1Mjk5ODI4MiI+ZXh0ZW5zaW9uICZsdDtvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuYXBwbGljYXRpb25zJmd0OwotImFwcGxpY2F0aW9uIjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9ImZhdGFycm93MiIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4wOjpuMDo6bjUiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjk1MTYwNjg0NDAwMzQzNiIgd2lkdGg9IjMwOC4wIiB4PSIyNDkuMjY4MzU5Mzc1MDAwMjciIHk9IjMwOC42OTE1OTcwNzgzNzg0NCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkZGRkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMzMuNDAyMzQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyNTAuMTM0NzY1NjI1IiB4PSIyOC45MzI2MTcxODc1IiB5PSItMS4yMjUzNjg0NTI5OTgyODIiPmV4dGVuc2lvbiAmbHQ7b3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLnByb2R1Y3RzJmd0OwotInByb2R1Y3QiPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0iZmF0YXJyb3cyIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICA8L2dyYXBoPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgIDwvbm9kZT4KLSAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMSIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjYyNC4wNTE3NTc4MTI1IiB3aWR0aD0iNDc5LjM3MzgyODEyNTAwMDMiIHg9IjE0Ny4yNjgzNTkzNzUwMDAyNyIgeT0iNDIwLjIxNzY1MTM2NzE4NzUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI0NzkuMzczODI4MTI1MDAwMyIgeD0iMC4wIiB5PSIwLjAiPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMjciIGJvdHRvbUY9IjI3LjI0NjM2NjQyMzU3MjU2NyIgbGVmdD0iMTEiIGxlZnRGPSIxMS4wIiByaWdodD0iMjMiIHJpZ2h0Rj0iMjMuMzczODI4MTI1MDAwMjczIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgNDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4wOjpuMToiPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMTo6bjAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjI1My4wIiB4PSIxNzMuMjY4MzU5Mzc1MDAwMjciIHk9IjQ1Ny41OTQxMTYyMTA5Mzc1Ii8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjQ0LjUyNTM5MDYyNSIgeD0iNC4yMzczMDQ2ODc1IiB5PSIzLjAiPkFic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZTx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4xOjpuMSI+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMjUzLjAiIHg9IjE5My4yNjgzNTkzNzUwMDAyNyIgeT0iNDk3LjUyOTQxODk0NTMxMjUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMzMuMzAxNzU3ODEyNSIgeD0iNTkuODQ5MTIxMDkzNzUiIHk9IjMuMCI+Q3VzdG9tT2JqZWN0c1N0b3JlPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjE6Om4yIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMTQ1LjM3MDYwNTQ2ODc1IiB3aWR0aD0iMzIzLjAiIHg9IjE5My4yNjgzNTkzNzUwMDAyNyIgeT0iNzQ5LjkwNTg4Mzc4OTA2MjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIzMjMuMCIgeD0iMC4wIiB5PSIwLjAiPmV4ZWN1dGlvbnR5cGU8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iNyIgYm90dG9tRj0iNi45OTQxNDA2MjUiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSI0MCIgcmlnaHRGPSI0MC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgMjwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4wOjpuMTo6bjI6Ij4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4xOjpuMjo6bjAiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIyNTMuMCIgeD0iMjA4LjI2ODM1OTM3NTAwMDI3IiB5PSI3ODcuMjgyMzQ4NjMyODEyNSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjEzOS43NTA5NzY1NjI1IiB4PSI1Ni42MjQ1MTE3MTg3NSIgeT0iMy4wIj5JTW9kZWxUb01vZGVsQ29uZmlnPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMTo6bjI6Om4xIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMjUzLjAiIHg9IjIwOC4yNjgzNTkzNzUwMDAyNyIgeT0iODQ1LjI4MjM0ODYzMjgxMjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMjguOTI4MjIyNjU2MjUiIHg9IjYyLjAzNTg4ODY3MTg3NSIgeT0iMy4wIj5JTW9kZWxUb1RleHRDb25maWc8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjE6Om4zIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMTQ4LjU2NDY5NzI2NTYyNSIgd2lkdGg9IjMwOC4wIiB4PSIxOTMuMjY4MzU5Mzc1MDAwMjciIHk9IjU4Ni4zNDExODY1MjM0Mzc1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMzA4LjAiIHg9IjAuMCIgeT0iMC4wIj5iYXNlLnRlbXBsYXRlczwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjI1IiBsZWZ0Rj0iMjUuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgMzwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4wOjpuMTo6bjM6Ij4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4xOjpuMzo6bjAiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIyNTMuMCIgeD0iMjMzLjI2ODM1OTM3NTAwMDI3IiB5PSI2MjMuNzE3NjUxMzY3MTg3NSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjEzMy4zMTQ0NTMxMjUiIHg9IjU5Ljg0Mjc3MzQzNzUiIHk9IjMuMCI+QWJzdHJhY3RUcmFuc2Zvcm1lcjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjE6Om4zOjpuMSI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjI1My4wIiB4PSIyMzMuMjY4MzU5Mzc1MDAwMjciIHk9IjY1OC45MDU4ODM3ODkwNjI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTkyLjUxMjY5NTMxMjUiIHg9IjMwLjI0MzY1MjM0Mzc1IiB5PSIzLjAiPk1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMTo6bjM6Om4yIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMjUzLjAiIHg9IjIzMy4yNjgzNTkzNzUwMDAyNyIgeT0iNjkxLjkwNTg4Mzc4OTA2MjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxODEuNjg5OTQxNDA2MjUiIHg9IjM1LjY1NTAyOTI5Njg3NSIgeT0iMy4wIj5Nb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4xOjpuNCI+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzguOTU1MzkyMjc0OTA3MjQiIHdpZHRoPSIzOTUuMCIgeD0iMTkzLjI2ODM1OTM3NTAwMDI3IiB5PSI5NjMuMDY3NjUwNDgxMjA3NyIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0MwQzBDMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMzMuNDAyMzQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIzNTguMjEwOTM3NSIgeD0iMTguMzk0NTMxMjUiIHk9IjIuNzc2NTI0MjYyNDUzNjc3Ij5leHRlbnNpb24gcG9pbnQgJmx0O29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb25maWd1cmF0aW9uJmd0OwotInRyYW5zZm9ybWF0aW9uLmNvbmZpZ3VyYXRpb24iPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJmYXRhcnJvdzIiLz4KLSAgICAgICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgPC9ub2RlPgotICAgICAgPC9ncmFwaD4KLSAgICA8L25vZGU+Ci0gICAgPG5vZGUgaWQ9Im4xIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMTA2OC43NDY5NDgyNDIxODc1IiB3aWR0aD0iNzc0LjY4NDU3MDMxMjUiIHg9Ijc1NS4yNjgzNTkzNzUwMDAzIiB5PSItMy45NTI4ODA4NTkzNzUiLz4KLSAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI3NzQuNjg0NTcwMzEyNSIgeD0iMC4wIiB5PSIwLjAiPlVzZSAgY2FzZSAoZS5nLiBJbmNocm9uIGNocm9uU0lNIHRyYW5zZm9ybWF0aW9uKTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2Ny4zNjkxNDA2MjUiIHg9Ii04LjY4NDU3MDMxMjUiIHk9IjAuMCI+Rm9sZGVyIDE2PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Ij4KLSAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMCIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjE0Ny45OTk5OTk5OTk5OTk5NyIgd2lkdGg9IjU5OS43NjAzOTcxMzU5Nzk1IiB4PSI4NTUuMTkyNTMyNTUxNTIwOCIgeT0iMTUwLjcwMTQ0NjUzMzIwMzEiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI1OTkuNzYwMzk3MTM1OTc5NSIgeD0iMC4wIiB5PSIwLjAiPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSI3IiBib3R0b21GPSI2LjY1NzA0MzQ1NzAzMTI1IiBsZWZ0PSIxNCIgbGVmdEY9IjE0LjIzMDkxOTEyNDE1NDc1MiIgcmlnaHQ9IjIyIiByaWdodEY9IjIyLjA1NTk4OTUxNDAyMDQ0IiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgNTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMDoiPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMDo6bjAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE3MC4wIiB4PSI4ODQuNDIzNDUxNjc1Njc1NiIgeT0iMTg4LjA3NzkxMTM3Njk1MzEiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMjIuNDQwOTE3OTY4NzUiIHg9IjIzLjc3OTU0MTAxNTYyNSIgeT0iMy4wIj5JbmNocm9uQXBwbGljYXRpb248eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMDo6bjEiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIzMjIuNDA3MjI2NTYyNSIgeD0iODg0LjQyMzQ1MTY3NTY3NTYiIHk9IjI0Ni4zNDMyMzEyMDExNzE4MiIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGRkZGRiIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMzMuNDAyMzQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyNjcuNDg0Mzc1IiB4PSIyNy40NjE0MjU3ODEyNSIgeT0iLTIuNzAxMTcxODc1Ij5leHRlbnNpb24gJmx0O29yZy5lY2xpcHNlLmNvcmUucnVudGltZS5hcHBsaWNhdGlvbnMmZ3Q7Ci0iYXBwbGljYXRpb24iPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJmYXRhcnJvdzIiLz4KLSAgICAgICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4wOjpuMiI+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuOTUxNjA2ODQ0MDAzNDM2IiB3aWR0aD0iMzIyLjQwNzIyNjU2MjUiIHg9IjEwOTUuNDg5NzEzNjEwOTc5OCIgeT0iMjAzLjMxOTc1OTMyMjEzODg1Ii8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZGRkZGIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIzMy40MDIzNDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjI2OS45ODA0Njg3NSIgeD0iMjYuMjEzMzc4OTA2MjUiIHk9Ii0xLjIyNTM2ODQ1Mjk5ODI4MiI+ZXh0ZW5zaW9uICZsdDtvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUucHJvZHVjdHMmZ3Q7Ci0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QiPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJmYXRhcnJvdzIiLz4KLSAgICAgICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgPC9ub2RlPgotICAgICAgICA8bm9kZSBpZD0ibjE6Om4xIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNzA0LjMyOTM0NTcwMzEyNDkiIHdpZHRoPSI3NDQuNjg0NTcwMzEyNSIgeD0iNzcwLjI2ODM1OTM3NTAwMDMiIHk9IjM0NS40NjQ3MjE2Nzk2ODc1Ii8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNzQ0LjY4NDU3MDMxMjUiIHg9IjAuMCIgeT0iMC4wIj5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMTciIGJvdHRvbUY9IjE3LjA3OTg4NjA0NTQwNTE0NiIgbGVmdD0iOSIgbGVmdEY9IjguNjg0NTcwMzEyNSIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNjcuMzY5MTQwNjI1IiB4PSItOC42ODQ1NzAzMTI1IiB5PSIwLjAiPkZvbGRlciAxNDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMToiPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjAiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI4MC4zNzY0NjQ4NDM3NSIgd2lkdGg9IjIwMC4wIiB4PSIxMDYxLjk1MjkyOTY4NzUwMDMiIHk9Ijg2NC42MjkzOTQ1MzEyNSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIwMC4wIiB4PSIwLjAiIHk9IjAuMCI+LmNvbmZpZ3VyYXRpb248L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI1OS4wMjY4NTU0Njg3NSIgeD0iLTQuNTEzNDI3NzM0Mzc1IiB5PSIwLjAiPkZvbGRlciA2PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Om4xOjpuMDoiPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4wOjpuMCI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE3MC4wIiB4PSIxMDc2Ljk1MjkyOTY4NzUwMDMiIHk9IjkwMi4wMDU4NTkzNzUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMjguMjI5OTgwNDY4NzUiIHg9IjIwLjg4NTAwOTc2NTYyNSIgeT0iMy4wIj5NMk1UcmFuc2Zvcm1hdGlvbjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICA8L2dyYXBoPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjEiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI4MC4zNzY0NjQ4NDM3NSIgd2lkdGg9IjIwMC4wIiB4PSIxMTQwLjQ1MjkyOTY4NzUwMDMiIHk9Ijc2OS4yNTI5Mjk2ODc1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjAwLjAiIHg9IjAuMCIgeT0iMC4wIj4ubW9kZWwubG9hZGVyPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgNzwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMTo6bjE6Ij4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMTo6bjAiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIxNzAuMCIgeD0iMTE1NS40NTI5Mjk2ODc1MDAzIiB5PSI4MDYuNjI5Mzk0NTMxMjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxNTguNTc4MTI1IiB4PSI1LjcxMDkzNzUiIHk9IjMuMCI+QW1hbHRoZWFNdWx0aUZpbGVMb2FkZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSItMC4wMzcwMzA5MDEyMjc2Nzg1NSIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICA8L2dyYXBoPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjIiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI4MC4zNzY0NjQ4NDM3NSIgd2lkdGg9IjIwMC4wIiB4PSI4NjEuOTUyOTI5Njg3NTAwMyIgeT0iNzU4LjA2NDY5NzI2NTYyNSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIwMC4wIiB4PSIwLjAiIHk9IjAuMCI+Lm1vZHVsZTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjU5LjAyNjg1NTQ2ODc1IiB4PSItNC41MTM0Mjc3MzQzNzUiIHk9IjAuMCI+Rm9sZGVyIDg8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMTo6bjE6Om4yOiI+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjI6Om4wIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9Ijg3Ni45NTI5Mjk2ODc1MDAzIiB5PSI3OTUuNDQxMTYyMTA5Mzc1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTY5LjM5NDUzMTI1IiB4PSIwLjMwMjczNDM3NSIgeT0iMy4wIj5EZWZhdWx0TTJNSW5qZWN0b3JNb2R1bGU8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4zIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzU2LjQ0MTE2MjEwOTM3NSIgd2lkdGg9IjcwNi4wIiB4PSI3OTMuOTUyOTI5Njg3NTAwMyIgeT0iMzgyLjg0MTE4NjUyMzQzNzUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI3MDYuMCIgeD0iMC4wIiB5PSIwLjAiPi50ZW1wbGF0ZXM8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSI4MDkuMDkyNzczNDM3NSIgeT0iMjIxLjQzNTMwMjczNDM3NSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjY3LjM2OTE0MDYyNSIgeD0iLTguNjg0NTcwMzEyNSIgeT0iMC4wIj5Gb2xkZXIgMTE8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMTo6bjE6Om4zOiI+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjM6Om4wIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIxMTIuODg1MTAyNzAyNzAyNzQiIHdpZHRoPSIyNTMuMCIgeD0iODA4Ljk1MjkyOTY4NzUwMDMiIHk9IjUyNS4yMjI4NjkxODA4NzUzIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjM5LjQ5ODA0Njg3NSIgeD0iNi43NTA5NzY1NjI1IiB5PSIzLjAiPkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSItMC4wMzcwMzA5MDEyMjc2Nzg1NSIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4zOjpuMSIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwNC4wNjQ2OTcyNjU2MjUiIHdpZHRoPSIzMjkuNSIgeD0iMTE1NS40NTI5Mjk2ODc1MDAzIiB5PSI0MjAuMjE3NjUxMzY3MTg3NSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjMyOS41IiB4PSIwLjAiIHk9IjAuMCI+Lm0ybTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2Ny4zNjkxNDA2MjUiIHg9Ii04LjY4NDU3MDMxMjUiIHk9IjAuMCI+Rm9sZGVyIDEwPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Om4xOjpuMzo6bjE6Ij4KLSAgICAgICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjM6Om4xOjpuMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIxNzAuMCIgeD0iMTIwNC45NTI5Mjk2ODc1MDAzIiB5PSI0NTcuNTk0MTE2MjEwOTM3NSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE2NC4zNjA4Mzk4NDM3NSIgeD0iMi44MTk1ODAwNzgxMjUiIHk9IjMuMCI+QW1sdDJJbmNocm9uVHJhbnNmb3JtZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4zOjpuMTo6bjEiPgotICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjEyODQuOTUyOTI5Njg3NTAwMyIgeT0iNDg4Ljc4MjM0ODYzMjgxMjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMTguMTMwODU5Mzc1IiB4PSIyNS45MzQ1NzAzMTI1IiB5PSIzLjAiPk1vZGVsVHJhbnNmb3JtZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4zOjpuMTo6bjIiPgotICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjEyNjYuOTUyOTI5Njg3NTAwMyIgeT0iNTE5Ljk3MDU4MTA1NDY4NzUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMzEuODYwODM5ODQzNzUiIHg9IjE5LjA2OTU4MDA3ODEyNSIgeT0iMy4wIj5TZXR0aW5nc1RyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjE6Om4zIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iODAuMzc2NDY0ODQzNzUiIHdpZHRoPSIyMTUuOTA3MjI2NTYyNSIgeD0iMTI1NC4wNDU3MDMxMjUwMDAzIiB5PSI1NTQuOTA1ODgzNzg5MDYyNSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIxNS45MDcyMjY1NjI1IiB4PSIwLjAiIHk9IjAuMCI+LmNvbnN0cmFpbnRzPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSI0IiBsZWZ0Rj0iNC40MDcyMjY1NjI1IiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2Ny4zNjkxNDA2MjUiIHg9Ii04LjY4NDU3MDMxMjUiIHk9IjAuMCI+Rm9sZGVyIDExPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Om4xOjpuMzo6bjE6Om4zOiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjE6Om4zOjpuMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTgxLjUiIHg9IjEyNzMuNDUyOTI5Njg3NTAwMyIgeT0iNTkyLjI4MjM0ODYzMjgxMjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxNzguODE0NDUzMTI1IiB4PSIxLjM0Mjc3MzQzNzUiIHk9IjMuMCI+ZS5nLiBDb25zdHJhaW50c1RyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8L2dyYXBoPgotICAgICAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4zOjpuMTo6bjQiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI4MC4zNzY0NjQ4NDM3NSIgd2lkdGg9IjIwMC4wIiB4PSIxMjE1LjQ1MjkyOTY4NzUwMDMiIHk9IjU5MS45MDU4ODM3ODkwNjI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjAwLjAiIHg9IjAuMCIgeT0iMC4wIj4uc3c8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjY3LjM2OTE0MDYyNSIgeD0iLTguNjg0NTcwMzEyNSIgeT0iMC4wIj5Gb2xkZXIgMTI8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMTo6bjE6Om4zOjpuMTo6bjQ6Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4zOjpuMTo6bjQ6Om4wIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIxNzAuMCIgeD0iMTIzMC40NTI5Mjk2ODc1MDAzIiB5PSI2MjkuMjgyMzQ4NjMyODEyNSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjEzNi4yMDI2MzY3MTg3NSIgeD0iMTYuODk4NjgxNjQwNjI1IiB5PSIzLjAiPiAgICBlLmcgU3dUcmFuc2Zyb21lcjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjE6Om41IiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iODAuMzc2NDY0ODQzNzUiIHdpZHRoPSIyMDAuMCIgeD0iMTE3MC40NTI5Mjk2ODc1MDAzIiB5PSI2MjguOTA1ODgzNzg5MDYyNSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIwMC4wIiB4PSIwLjAiIHk9IjAuMCI+Lmh3PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2Ny4zNjkxNDA2MjUiIHg9Ii04LjY4NDU3MDMxMjUiIHk9IjAuMCI+Rm9sZGVyIDEzPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Om4xOjpuMzo6bjE6Om41OiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjE6Om41OjpuMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjExODUuNDUyOTI5Njg3NTAwMyIgeT0iNjY2LjI4MjM0ODYzMjgxMjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMjIuNDcyNjU2MjUiIHg9IjIzLjc2MzY3MTg3NSIgeT0iMy4wIj5lLmcgSHdUcmFuc2Zyb21lcjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuNCI+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzguOTU1MzkyMjc0OTA3MjQiIHdpZHRoPSIzOTIuNDczNTM0MjcwMjY5OTciIHg9Ijg3Ni45NTI5Mjk2ODc1MDA0IiB5PSI5NzguNzU4Nzg5MDYyNSIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGRkZGRiIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMzMuNDAyMzQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIzMjguODU1NDY4NzUiIHg9IjMxLjgwOTAzMjc2MDEzNDk4MyIgeT0iMi43NzY1MjQyNjI0NTM2NzciPmV4dGVuc2lvbiAmbHQ7b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvbmZpZ3VyYXRpb24mZ3Q7Ci0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS5jb25maWciPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJmYXRhcnJvdzIiLz4KLSAgICAgICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgPC9ub2RlPgotICAgICAgICA8bm9kZSBpZD0ibjE6Om4yIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iODAuMzc2NDY0ODQzNzUiIHdpZHRoPSIzNTIuNDA3MjI2NTYyNTAwMiIgeD0iODk3Ljg1NjY4NTQ2NjIxNjUiIHk9IjMzLjQyMzU4Mzk4NDM3NSIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjM1Mi40MDcyMjY1NjI1MDAyIiB4PSIwLjAiIHk9IjAuMCI+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3Q8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9Ijc1IiBsZWZ0Rj0iNzQuNTYyOTE2MjgyMDk1MSIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNjcuMzY5MTQwNjI1IiB4PSItOC42ODQ1NzAzMTI1IiB5PSIwLjAiPkZvbGRlciAxODwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMjoiPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMjo6bjAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjI0Ny44NDQzMTAyODA0MDUxMyIgeD0iOTg3LjQxOTYwMTc0ODMxMTYiIHk9IjcwLjgwMDA0ODgyODEyNSIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjI0Mi4zNDgxNDQ1MzEyNSIgeD0iMi43NDgwODI4NzQ1Nzc1NjI1IiB5PSIzLjAiPkFtbHQySW5jaHJvbl9UcmFuc2Zvcm1hdGlvbi5wcm9kdWN0PHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICA8L2dyYXBoPgotICAgICAgICA8L25vZGU+Ci0gICAgICA8L2dyYXBoPgotICAgIDwvbm9kZT4KLSAgICA8ZWRnZSBpZD0iZTAiIHNvdXJjZT0ibjE6Om4wOjpuMCIgdGFyZ2V0PSJuMDo6bjA6Om4wOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjA6OmUwIiBzb3VyY2U9Im4wOjpuMDo6bjA6Om4yIiB0YXJnZXQ9Im4wOjpuMTo6bjI6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCI+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSI3OS4yNjgzNTkzNzUwMDAyNyIgeT0iMjgzLjg2NzIyNzA1NTMyMDQiLz4KLSAgICAgICAgICAgIDx5OlBvaW50IHg9Ijc5LjI2ODM1OTM3NTAwMDI3IiB5PSI2NjYuNjg4MjMyNDIxODc1Ii8+Ci0gICAgICAgICAgPC95OlBhdGg+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0iZGlhbW9uZCIgdGFyZ2V0PSJub25lIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjA6OmUxIiBzb3VyY2U9Im4wOjpuMDo6bjA6Om4yIiB0YXJnZXQ9Im4wOjpuMTo6bjI6Om4xIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCI+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSI1My4yNjgzNTkzNzUwMDAyNyIgeT0iMjY5LjEyMzUzNTE1NjI1Ii8+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSI1My4yNjgzNTkzNzUwMDAyNyIgeT0iNjkxLjY4ODIzMjQyMTg3NSIvPgotICAgICAgICAgIDwveTpQYXRoPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9ImRpYW1vbmQiIHRhcmdldD0ibm9uZSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4wOjplMiIgc291cmNlPSJuMDo6bjA6Om4wOjpuMiIgdGFyZ2V0PSJuMDo6bjE6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCI+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSIxMTcuMjY4MzU5Mzc1MDAwMjciIHk9IjI5Ny41NTc3OTgxMDQ0NTcxIi8+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSIxMTcuMjY4MzU5Mzc1MDAwMjciIHk9IjQwOC4wIi8+Ci0gICAgICAgICAgPC95OlBhdGg+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0iZGlhbW9uZCIgdGFyZ2V0PSJub25lIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0iZTEiIHNvdXJjZT0ibjE6Om4xOjpuMDo6bjAiIHRhcmdldD0ibjA6Om4xOjpuMjo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9ImUyIiBzb3VyY2U9Im4xOjpuMTo6bjI6Om4wIiB0YXJnZXQ9Im4wOjpuMTo6bjM6Om4xIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkVkZ2VMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgY29uZmlndXJhdGlvbj0iQXV0b0ZsaXBwaW5nTGFiZWwiIGRpc3RhbmNlPSIyLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHByZWZlcnJlZFBsYWNlbWVudD0iYW55d2hlcmUiIHJhdGlvPSIwLjUiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjEwNC43Mjg1MTU2MjUiIHg9Ii0yNjIuODM5MzgzNjUyNDA2NyIgeT0iLTcwLjA3NzgzMjQ5NTI4MDg2Ij5bZ3VpY2VdIGJpbmQgc291cmNlPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnRFZGdlTGFiZWxNb2RlbCBhdXRvUm90YXRpb25FbmFibGVkPSJmYWxzZSIgZGVmYXVsdEFuZ2xlPSIwLjAiIGRlZmF1bHREaXN0YW5jZT0iMTAuMCIvPgotICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPHk6U21hcnRFZGdlTGFiZWxNb2RlbFBhcmFtZXRlciBhbmdsZT0iNi4yODMxODUzMDcxNzk1ODYiIGRpc3RhbmNlPSIxMi42ODM2MTYyMzEyNzk1MzciIGRpc3RhbmNlVG9DZW50ZXI9InRydWUiIHBvc2l0aW9uPSJyaWdodCIgcmF0aW89IjAuNTgwODExMTk3MjMyNjM0OSIgc2VnbWVudD0iLTEiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgIDx5OlByZWZlcnJlZFBsYWNlbWVudERlc2NyaXB0b3IgYW5nbGU9IjAuMCIgYW5nbGVPZmZzZXRPblJpZ2h0U2lkZT0iMCIgYW5nbGVSZWZlcmVuY2U9ImFic29sdXRlIiBhbmdsZVJvdGF0aW9uT25SaWdodFNpZGU9ImNvIiBkaXN0YW5jZT0iLTEuMCIgZnJvemVuPSJ0cnVlIiBwbGFjZW1lbnQ9ImFueXdoZXJlIiBzaWRlPSJhbnl3aGVyZSIgc2lkZVJlZmVyZW5jZT0icmVsYXRpdmVfdG9fZWRnZV9mbG93Ii8+Ci0gICAgICAgICAgPC95OkVkZ2VMYWJlbD4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMTo6bjE6OmUwIiBzb3VyY2U9Im4xOjpuMTo6bjI6Om4wIiB0YXJnZXQ9Im4xOjpuMTo6bjM6Om4xOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSItNC41NDc0NzM1MDg4NjQ2NDFFLTEzIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6RWRnZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBjb25maWd1cmF0aW9uPSJBdXRvRmxpcHBpbmdMYWJlbCIgZGlzdGFuY2U9IjIuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgcHJlZmVycmVkUGxhY2VtZW50PSJhbnl3aGVyZSIgcmF0aW89IjAuNSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iOTkuMzk2NDg0Mzc1IiB4PSIzMy40MTQ5NjY2ODAzMzk4MyIgeT0iLTk0Ljk1ODk5NzgzMTkwNjgiPltndWljZV0gYmluZCB0YXJnZXQ8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydEVkZ2VMYWJlbE1vZGVsIGF1dG9Sb3RhdGlvbkVuYWJsZWQ9ImZhbHNlIiBkZWZhdWx0QW5nbGU9IjAuMCIgZGVmYXVsdERpc3RhbmNlPSIxMC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydEVkZ2VMYWJlbE1vZGVsUGFyYW1ldGVyIGFuZ2xlPSIwLjAiIGRpc3RhbmNlPSIzMC4wIiBkaXN0YW5jZVRvQ2VudGVyPSJ0cnVlIiBwb3NpdGlvbj0iY2VudGVyIiByYXRpbz0iMC4yNTM0NTk3NzA1ODMwMjQyIiBzZWdtZW50PSItMSIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgPHk6UHJlZmVycmVkUGxhY2VtZW50RGVzY3JpcHRvciBhbmdsZT0iMC4wIiBhbmdsZU9mZnNldE9uUmlnaHRTaWRlPSIwIiBhbmdsZVJlZmVyZW5jZT0iYWJzb2x1dGUiIGFuZ2xlUm90YXRpb25PblJpZ2h0U2lkZT0iY28iIGRpc3RhbmNlPSItMS4wIiBmcm96ZW49InRydWUiIHBsYWNlbWVudD0iYW55d2hlcmUiIHNpZGU9ImFueXdoZXJlIiBzaWRlUmVmZXJlbmNlPSJyZWxhdGl2ZV90b19lZGdlX2Zsb3ciLz4KLSAgICAgICAgICA8L3k6RWRnZUxhYmVsPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9ImUzIiBzb3VyY2U9Im4xOjpuMTo6bjI6Om4wIiB0YXJnZXQ9Im4wOjpuMTo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4wOjpuMTo6ZTAiIHNvdXJjZT0ibjA6Om4xOjpuMSIgdGFyZ2V0PSJuMDo6bjE6Om4zOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9ImRpYW1vbmQiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlNCIgc291cmNlPSJuMTo6bjE6Om40IiB0YXJnZXQ9Im4wOjpuMTo6bjQiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6RWRnZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBjb25maWd1cmF0aW9uPSJBdXRvRmxpcHBpbmdMYWJlbCIgZGlzdGFuY2U9IjIuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgcHJlZmVycmVkUGxhY2VtZW50PSJhbnl3aGVyZSIgcmF0aW89IjAuNSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTQzLjQyOTY4NzUiIHg9Ii0yMjkuMzY4ODkxNTU3MDM2NDgiIHk9Ii0yNy41Njk4ODE3Nzg1NDI4MjIiPmV4dGVudGlvbiBwb2ludCAvIGV4dGVuc2lvbjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWwgYXV0b1JvdGF0aW9uRW5hYmxlZD0iZmFsc2UiIGRlZmF1bHRBbmdsZT0iMC4wIiBkZWZhdWx0RGlzdGFuY2U9IjEwLjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWxQYXJhbWV0ZXIgYW5nbGU9IjYuMjgzMTg1MzA3MTc5NTg2IiBkaXN0YW5jZT0iMTQuNTkwNDcxMzQ2OTA4NTgiIGRpc3RhbmNlVG9DZW50ZXI9InRydWUiIHBvc2l0aW9uPSJyaWdodCIgcmF0aW89IjAuNTM0MjUwNTI4NTQ3ODQ4NyIgc2VnbWVudD0iLTEiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgIDx5OlByZWZlcnJlZFBsYWNlbWVudERlc2NyaXB0b3IgYW5nbGU9IjAuMCIgYW5nbGVPZmZzZXRPblJpZ2h0U2lkZT0iMCIgYW5nbGVSZWZlcmVuY2U9ImFic29sdXRlIiBhbmdsZVJvdGF0aW9uT25SaWdodFNpZGU9ImNvIiBkaXN0YW5jZT0iLTEuMCIgZnJvemVuPSJ0cnVlIiBwbGFjZW1lbnQ9ImFueXdoZXJlIiBzaWRlPSJhbnl3aGVyZSIgc2lkZVJlZmVyZW5jZT0icmVsYXRpdmVfdG9fZWRnZV9mbG93Ii8+Ci0gICAgICAgICAgPC95OkVkZ2VMYWJlbD4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMTo6bjE6OmUxIiBzb3VyY2U9Im4xOjpuMTo6bjQiIHRhcmdldD0ibjE6Om4xOjpuMjo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkVkZ2VMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgY29uZmlndXJhdGlvbj0iQXV0b0ZsaXBwaW5nTGFiZWwiIGRpc3RhbmNlPSIyLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHByZWZlcnJlZFBsYWNlbWVudD0iYW55d2hlcmUiIHJhdGlvPSIwLjUiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9Ijc0LjAzMTI1IiB4PSItNzIuMjIyNDI3ODY3MTQwNDgiIHk9Ii0xMjguMjAyNzM5NTYzMjIzNTMiPm1vZHVsZSBjbGFzczx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWwgYXV0b1JvdGF0aW9uRW5hYmxlZD0iZmFsc2UiIGRlZmF1bHRBbmdsZT0iMC4wIiBkZWZhdWx0RGlzdGFuY2U9IjEwLjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWxQYXJhbWV0ZXIgYW5nbGU9IjAuMCIgZGlzdGFuY2U9IjMwLjAiIGRpc3RhbmNlVG9DZW50ZXI9InRydWUiIHBvc2l0aW9uPSJyaWdodCIgcmF0aW89IjAuODI0MDkxMjMzNjAyNjM3OCIgc2VnbWVudD0iLTEiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgIDx5OlByZWZlcnJlZFBsYWNlbWVudERlc2NyaXB0b3IgYW5nbGU9IjAuMCIgYW5nbGVPZmZzZXRPblJpZ2h0U2lkZT0iMCIgYW5nbGVSZWZlcmVuY2U9ImFic29sdXRlIiBhbmdsZVJvdGF0aW9uT25SaWdodFNpZGU9ImNvIiBkaXN0YW5jZT0iLTEuMCIgZnJvemVuPSJ0cnVlIiBwbGFjZW1lbnQ9ImFueXdoZXJlIiBzaWRlPSJhbnl3aGVyZSIgc2lkZVJlZmVyZW5jZT0icmVsYXRpdmVfdG9fZWRnZV9mbG93Ii8+Ci0gICAgICAgICAgPC95OkVkZ2VMYWJlbD4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMTo6bjE6OmUyIiBzb3VyY2U9Im4xOjpuMTo6bjQiIHRhcmdldD0ibjE6Om4xOjpuMDo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkVkZ2VMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgY29uZmlndXJhdGlvbj0iQXV0b0ZsaXBwaW5nTGFiZWwiIGRpc3RhbmNlPSIyLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHByZWZlcnJlZFBsYWNlbWVudD0iYW55d2hlcmUiIHJhdGlvPSIwLjUiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjYxLjMzOTg0Mzc1IiB4PSItNC4zNzQxMTMxODkwMDk2NzciIHk9Ii0zMy43MTExMjA2MDU0Njg3NSI+bTJtIGNsYXNzPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnRFZGdlTGFiZWxNb2RlbCBhdXRvUm90YXRpb25FbmFibGVkPSJmYWxzZSIgZGVmYXVsdEFuZ2xlPSIwLjAiIGRlZmF1bHREaXN0YW5jZT0iMTAuMCIvPgotICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPHk6U21hcnRFZGdlTGFiZWxNb2RlbFBhcmFtZXRlciBhbmdsZT0iMC4wIiBkaXN0YW5jZT0iMzAuMCIgZGlzdGFuY2VUb0NlbnRlcj0idHJ1ZSIgcG9zaXRpb249ImNlbnRlciIgcmF0aW89IjAuNSIgc2VnbWVudD0iMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgPHk6UHJlZmVycmVkUGxhY2VtZW50RGVzY3JpcHRvciBhbmdsZT0iMC4wIiBhbmdsZU9mZnNldE9uUmlnaHRTaWRlPSIwIiBhbmdsZVJlZmVyZW5jZT0iYWJzb2x1dGUiIGFuZ2xlUm90YXRpb25PblJpZ2h0U2lkZT0iY28iIGRpc3RhbmNlPSItMS4wIiBmcm96ZW49InRydWUiIHBsYWNlbWVudD0iYW55d2hlcmUiIHNpZGU9ImFueXdoZXJlIiBzaWRlUmVmZXJlbmNlPSJyZWxhdGl2ZV90b19lZGdlX2Zsb3ciLz4KLSAgICAgICAgICA8L3k6RWRnZUxhYmVsPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4wOjplMyIgc291cmNlPSJuMDo6bjA6Om4wOjpuMSIgdGFyZ2V0PSJuMDo6bjE6Om40Ij4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCI+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSI5Ljk2ODM1OTM3NTAwMDU0NiIgeT0iMjQ3LjYyMzUzNTE1NjI0OTk3Ii8+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSIyLjQ2ODM1OTM3NTAwMDU0NTciIHk9IjgzOS42MjM1MzUxNTYyNSIvPgotICAgICAgICAgIDwveTpQYXRoPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkVkZ2VMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgY29uZmlndXJhdGlvbj0iQXV0b0ZsaXBwaW5nTGFiZWwiIGRpc3RhbmNlPSIyLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHByZWZlcnJlZFBsYWNlbWVudD0iYW55d2hlcmUiIHJhdGlvPSIwLjUiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE0Mi4wODIwMzEyNSIgeD0iLTMzMi41NDgxMTkxNDg0NzIyIiB5PSI0Ni4wODkxOTAxMjc5MTgwNyI+Z2V0Q29uZmlndXJhdGlvbkVsZW1lbnRzPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnRFZGdlTGFiZWxNb2RlbCBhdXRvUm90YXRpb25FbmFibGVkPSJmYWxzZSIgZGVmYXVsdEFuZ2xlPSIwLjAiIGRlZmF1bHREaXN0YW5jZT0iMTAuMCIvPgotICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPHk6U21hcnRFZGdlTGFiZWxNb2RlbFBhcmFtZXRlciBhbmdsZT0iNi4yODMxODUzMDcxNzk1ODYiIGRpc3RhbmNlPSIxMi40OTk5OTk5OTk5OTk3MDkiIGRpc3RhbmNlVG9DZW50ZXI9InRydWUiIHBvc2l0aW9uPSJyaWdodCIgcmF0aW89IjAuODE2MDk3OTMyMDExODg0NCIgc2VnbWVudD0iMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgPHk6UHJlZmVycmVkUGxhY2VtZW50RGVzY3JpcHRvciBhbmdsZT0iMC4wIiBhbmdsZU9mZnNldE9uUmlnaHRTaWRlPSIwIiBhbmdsZVJlZmVyZW5jZT0iYWJzb2x1dGUiIGFuZ2xlUm90YXRpb25PblJpZ2h0U2lkZT0iY28iIGRpc3RhbmNlPSItMS4wIiBmcm96ZW49InRydWUiIHBsYWNlbWVudD0iYW55d2hlcmUiIHNpZGU9ImFueXdoZXJlIiBzaWRlUmVmZXJlbmNlPSJyZWxhdGl2ZV90b19lZGdlX2Zsb3ciLz4KLSAgICAgICAgICA8L3k6RWRnZUxhYmVsPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9ImU1IiBzb3VyY2U9Im4xOjpuMTo6bjM6Om4wIiB0YXJnZXQ9Im4wOjpuMTo6bjM6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9Ii0yLjI3MzczNjc1NDQzMjMyMDZFLTEzIiBzeT0iLTQuMzM1NjU4OTAyNzUzNDIwNUUtMTQiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4xOjpuMzo6ZTAiIHNvdXJjZT0ibjE6Om4xOjpuMzo6bjE6Om4wIiB0YXJnZXQ9Im4xOjpuMTo6bjM6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMTo6bjE6Om4zOjplMSIgc291cmNlPSJuMTo6bjE6Om4zOjpuMTo6bjEiIHRhcmdldD0ibjE6Om4xOjpuMzo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4xOjpuMTo6bjM6OmUyIiBzb3VyY2U9Im4xOjpuMTo6bjM6Om4xOjpuMiIgdGFyZ2V0PSJuMTo6bjE6Om4zOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4xOjpuMzo6ZTMiIHNvdXJjZT0ibjE6Om4xOjpuMzo6bjE6Om4zOjpuMCIgdGFyZ2V0PSJuMTo6bjE6Om4zOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4xOjpuMzo6ZTQiIHNvdXJjZT0ibjE6Om4xOjpuMzo6bjE6Om40OjpuMCIgdGFyZ2V0PSJuMTo6bjE6Om4zOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4xOjpuMzo6ZTUiIHNvdXJjZT0ibjE6Om4xOjpuMzo6bjE6Om41OjpuMCIgdGFyZ2V0PSJuMTo6bjE6Om4zOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6OmUwIiBzb3VyY2U9Im4xOjpuMjo6bjAiIHRhcmdldD0ibjE6Om4wOjpuMiI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMTo6ZTEiIHNvdXJjZT0ibjE6Om4yOjpuMCIgdGFyZ2V0PSJuMTo6bjA6Om4xIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gIDwvZ3JhcGg+Ci0gIDxkYXRhIGtleT0iZDciPgotICAgIDx5OlJlc291cmNlcy8+Ci0gIDwvZGF0YT4KLTwvZ3JhcGhtbD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2FyY2hpdmUvZGV2ZWxvcGVyc19ndWlkZS5kb2N4IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvYXJjaGl2ZS9kZXZlbG9wZXJzX2d1aWRlLmRvY3gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjYmE2NTEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvYXJjaGl2ZS9kZXZlbG9wZXJzX2d1aWRlLmRvY3gKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hcmNoaXZlL2RldmVsb3BlcnNfZ3VpZGUucGRmIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvYXJjaGl2ZS9kZXZlbG9wZXJzX2d1aWRlLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2M2NTgzYS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hcmNoaXZlL2RldmVsb3BlcnNfZ3VpZGUucGRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvZGV2ZWxvcGVyc19ndWlkZS5kb2N4IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvZGV2ZWxvcGVyc19ndWlkZS5kb2N4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Y2Y3MWE0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2RldmVsb3BlcnNfZ3VpZGUuZG9jeAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5jbGFzc3BhdGggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2E3YmRiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8uZ2l0aWdub3JlIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLmdpdGlnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U5MDJlOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotb3V0cHV0LyoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzNmOTgyLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+YXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHA8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OWYyNmMwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLWVuY29kaW5nLzxwcm9qZWN0Pj1VVEYtOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzY4YTYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL0N1c3RUcmFuc2Zvcm1hdGlvbi5wcm9kdWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvQ3VzdFRyYW5zZm9ybWF0aW9uLnByb2R1Y3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlMDE3Y2IuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvQ3VzdFRyYW5zZm9ybWF0aW9uLnByb2R1Y3QKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/cGRlIHZlcnNpb249IjMuNSI/PgotCi08cHJvZHVjdCB1aWQ9ImFwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLkN1c3RUcmFuc2Zvcm1hdGlvbi5wcm9kdWN0IiB1c2VGZWF0dXJlcz0iZmFsc2UiIGluY2x1ZGVMYXVuY2hlcnM9InRydWUiPgotCi0gICA8Y29uZmlnSW5pIHVzZT0iZGVmYXVsdCI+Ci0gICA8L2NvbmZpZ0luaT4KLQotICAgPGxhdW5jaGVyQXJncz4KLSAgICAgIDxwcm9ncmFtQXJncz4tLXByb3BlcnRpZXMgJnF1b3Q7JHtwcm9qZWN0X2xvYzovYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHB9L2N1c3RvbUlucHV0LnByb3BlcnRpZXMmcXVvdDsgLWNvbnNvbGUKLSAgICAgIDwvcHJvZ3JhbUFyZ3M+Ci0gICAgICA8dm1BcmdzPi1EZWNsaXBzZS5pZ25vcmVBcHA9dHJ1ZSAtRG9zZ2kubm9TaHV0ZG93bj10cnVlIC1EbG9nNGouY29uZmlndXJhdGlvbj1oZWFkbGVzc19sb2c0ai54bWwKLSAgICAgIDwvdm1BcmdzPgotICAgICAgPHZtQXJnc01hYz4tWHN0YXJ0T25GaXJzdFRocmVhZCAtRG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5jYXJib24uc21hbGxGb250cwotICAgICAgPC92bUFyZ3NNYWM+Ci0gICA8L2xhdW5jaGVyQXJncz4KLQotICAgPGxhdW5jaGVyPgotICAgICAgPHdpbiB1c2VJY289ImZhbHNlIj4KLSAgICAgICAgIDxibXAvPgotICAgICAgPC93aW4+Ci0gICA8L2xhdW5jaGVyPgotCi0gICA8dm0+Ci0gICA8L3ZtPgotCi0gICA8cGx1Z2lucz4KLSAgICAgIDxwbHVnaW4gaWQ9ImFwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbCIvPgotICAgICAgPHBsdWdpbiBpZD0iYml6LmFRdXRlLmJuZC5lbWJlZGRlZC1yZXBvIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0iYml6LmFRdXRlLmJuZGxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0iYml6LmFRdXRlLnJlcG9zaXRvcnkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImJpei5hUXV0ZS5yZXNvbHZlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJjb20uZ29vZ2xlLmd1YXZhIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJjb20uZ29vZ2xlLmluamVjdCIvPgotICAgICAgPHBsdWdpbiBpZD0iY29tLmlibS5pY3UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImphdmF4LmFubm90YXRpb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImphdmF4LmluamVjdCIvPgotICAgICAgPHBsdWdpbiBpZD0iamF2YXgueG1sIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJqYXZheC54bWwuc3RyZWFtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMuY2xpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMubGFuZyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmciLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5tYXRoMyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLmNvbW1hbmQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZ29nby5jb21tYW5kLnNvdXJjZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLnJ1bnRpbWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZ29nby5ydW50aW1lLnNvdXJjZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLnNoZWxsIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28uc2hlbGwuc291cmNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LnNjciIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5zY3Iuc291cmNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmxvZzRqIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLnhlcmNlcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS54bWwucmVzb2x2ZXIiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUueG1sLnNlcmlhbGl6ZXIiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5jb252ZXJ0ZXJzLmxvZzRqLmNvbmZpZ3VyYXRpb24iIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5oZWFkbGVzcy5jb25maWd1cmF0aW9uIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5jb21tYW5kcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5jb250ZW50dHlwZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5leHByZXNzaW9ucyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5maWxlc3lzdGVtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmZpbGVzeXN0ZW0ud2luMzIueDg2XzY0IiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5qb2JzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMud2luMzIueDg2XzY0IiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5ydW50aW1lIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5jb21tb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lY29yZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLmNoYW5nZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhjb3JlLmxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVkaXQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi50cmFuc2FjdGlvbiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLnZhbGlkYXRpb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi53b3Jrc3BhY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guYXBwIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmNvbW1vbiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5jb25zb2xlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnByZWZlcmVuY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnJlZ2lvbiIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucmVnaXN0cnkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guc3VwcGxlbWVudCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC50cmFuc2Zvcm1zLmhvb2siIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LndlYXZpbmcuaG9vayIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmZ4Lm9zZ2kiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5vc2dpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5vc2dpLmNvbXBhdGliaWxpdHkuc3RhdGUiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5vc2dpLnNlcnZpY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguZW1mIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguZW1mLndvcmtzcGFjZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnBsYXRmb3JtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS54dGVuZC5saWIiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZW5kLmxpYi5tYWNybyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UueHRleHQubG9nZ2luZyIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZXh0LnhiYXNlLmxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmpkb20iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zbGY0ai5hcGkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zbGY0ai5pbXBsLmxvZzRqMTIiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICA8L3BsdWdpbnM+Ci0KLSAgIDxjb25maWd1cmF0aW9ucz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguc2NyIiBhdXRvU3RhcnQ9InRydWUiIHN0YXJ0TGV2ZWw9IjIiIC8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24iIGF1dG9TdGFydD0iZmFsc2UiIHN0YXJ0TGV2ZWw9IjUiIC8+Ci0gICAgICA8cHJvcGVydHkgbmFtZT0ibG9nNGouY29uZmlndXJhdGlvbiIgdmFsdWU9ImhlYWRsZXNzX2xvZzRqLnhtbCIgLz4KLSAgICAgIDxwcm9wZXJ0eSBuYW1lPSJhcHA0bWN0cmFuc2Zvcm1hdGlvbi5sb2cubGV2ZWwiIHZhbHVlPSJkZWJ1ZyIgLz4KLSAgIDwvY29uZmlndXJhdGlvbnM+Ci0KLTwvcHJvZHVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNzQ5ODYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEFwcAotQnVuZGxlLVN5bWJvbGljTmFtZTogYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUF1dG9tYXRpYy1Nb2R1bGUtTmFtZTogYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAKLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRkMmU0ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1zb3VyY2UuLiA9IHNyYy8KLW91dHB1dC4uID0gYmluLwotYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIC4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL2N1c3RvbUlucHV0LnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9jdXN0b21JbnB1dC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2NhMDlhLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL2N1c3RvbUlucHV0LnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1pbnB1dF9tb2RlbHNfZm9sZGVyPS4vaW5wdXQvYW1hbHRoZWFfbW9kZWxzCi1tMm1fb3V0cHV0X2ZvbGRlcj0uL291dHB1dC9tMm1fb3V0cHV0X21vZGVscwotbTJ0X291dHB1dF9mb2xkZXI9Li9vdXRwdXQvbTJ0X291dHB1dF90ZXh0X2ZpbGVzCi1sb2dfZmlsZT0uL291dHB1dC90cmFuc2Zvcm1hdGlvbi50eHQKLW0ybVRyYW5zZm9ybWVycy50YXJnZXQ9KHRyYW5zZm9ybWF0aW9uPUFtYWx0aGVhMlNhbXBsZU1vZGVsKQotYWxsTW9kZWxUb01vZGVsQ29uZmlnLnRhcmdldD0odHJhbnNmb3JtYXRpb249QW1hbHRoZWEyU2FtcGxlTW9kZWwpCi1tMnRUcmFuc2Zvcm1lcnMudGFyZ2V0PSh0cmFuc2Zvcm1hdGlvbj1BbWFsdGhlYTJUZXh0KQotYWxsTW9kZWxUb1RleHRDb25maWcudGFyZ2V0PSh0cmFuc2Zvcm1hdGlvbj1BbWFsdGhlYTJUZXh0KQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvaW5wdXQvYW1hbHRoZWFfbW9kZWxzL2RlbW9jYXIuYW14bWkgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvZGVtb2Nhci5hbXhtaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBkYTY2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvZGVtb2Nhci5hbXhtaQorKysgL2Rldi9udWxsCkBAIC0xLDc5OSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGFtOkFtYWx0aGVhIHhtbG5zOmFtPSJodHRwOi8vYXBwNG1jLmVjbGlwc2Uub3JnL2FtYWx0aGVhLzAuOS45IiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtaTp2ZXJzaW9uPSIyLjAiPgotICA8Y29tbW9uRWxlbWVudHM+Ci0gICAgPHRhZ3MgbmFtZT0iU3djRW5naW5lQ29udHJvbGxlciIgdGFnVHlwZT0iU09GVFdBUkVfQ09NUE9ORU5UIiAvPgotICAgIDx0YWdzIG5hbWU9IlN3Y0FjdHVhdG9ycyIgdGFnVHlwZT0iU09GVFdBUkVfQ09NUE9ORU5UIiAvPgotICAgIDx0YWdzIG5hbWU9IlN3Y0JyYWtlRm9yY2VBcmJpdGVyIiB0YWdUeXBlPSJTT0ZUV0FSRV9DT01QT05FTlQiIC8+Ci0gICAgPHRhZ3MgbmFtZT0iU3djQUJTQ2FsY3VsYXRpb24iIHRhZ1R5cGU9IlNPRlRXQVJFX0NPTVBPTkVOVCIgLz4KLSAgICA8dGFncyBuYW1lPSJTd2NTZW5zb3JzIiB0YWdUeXBlPSJTT0ZUV0FSRV9DT01QT05FTlQiIC8+Ci0gICAgPHRhZ3MgbmFtZT0iU3djU2Vuc29yUG9zdHByb2Nlc3NpbmciIHRhZ1R5cGU9IlNPRlRXQVJFX0NPTVBPTkVOVCIgLz4KLSAgICA8dGFncyBuYW1lPSJTd2NDeWxOdW1PYnNlcnZlciIgdGFnVHlwZT0iU09GVFdBUkVfQ09NUE9ORU5UIiAvPgotICAgIDx0YWdzIG5hbWU9IlN3Y0JyYWtlRm9yY2VDYWxjdWxhdGlvbiIgdGFnVHlwZT0iU09GVFdBUkVfQ09NUE9ORU5UIiAvPgotICAgIDx0YWdzIG5hbWU9IlN3Y0VuZ2luZVNlbnNvcnMiIHRhZ1R5cGU9IlNPRlRXQVJFX0NPTVBPTkVOVCIgLz4KLSAgICA8dGFncyBuYW1lPSJTd2NJbmpJZ25BY3R1YXRpb24iIHRhZ1R5cGU9IlNPRlRXQVJFX0NPTVBPTkVOVCIgLz4KLSAgPC9jb21tb25FbGVtZW50cz4KLSAgPHN3TW9kZWw+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tfMTBNUyIgc3RpbXVsaT0iVGltZXJfMTBNUz90eXBlPVBlcmlvZGljU3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMTAiPgotICAgICAgPGN1c3RvbVByb3BlcnRpZXMga2V5PSJwcmlvcml0eSI+Ci0gICAgICAgIDx2YWx1ZSB4c2k6dHlwZT0iYW06U3RyaW5nT2JqZWN0IiB2YWx1ZT0iMTAiIC8+Ci0gICAgICA8L2N1c3RvbVByb3BlcnRpZXM+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpHcm91cCIgbmFtZT0iQ2FsbFNlcXVlbmNlIiBvcmRlcmVkPSJ0cnVlIj4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkNoZWNrUGxhdXNhYmlsaXR5P3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJCcmFrZUFjdHVhdG9yTW9uaXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iRGlhZ25vc2lzQXJiaXRlcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVmVoaWNsZVN0YXRlTW9uaXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iQnJha2VGb3JjZUNhbGN1bGF0aW9uP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJCcmFrZVNhZmV0eU1vbml0b3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkFCU0NhbGN1bGF0aW9uP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJCcmFrZUZvcmNlQWN0dWF0aW9uP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJDYWxpcGVyUG9zaXRpb25DYWxjdWxhdGlvbj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iQnJha2VBY3R1YXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iU3RvcExpZ2h0QWN0dWF0b3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkJyYWtlUGVkYWxTZW5zb3JEaWFnbm9zaXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkJyYWtlUGVkYWxTZW5zb3JUcmFuc2xhdGlvbj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iQnJha2VQZWRhbFNlbnNvclZvdGVyP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJEZWNlbGVyYXRpb25TZW5zb3JEaWFnbm9zaXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkRlY2VsZXJhdGlvblNlbnNvclRyYW5zbGF0aW9uP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJWZWhpY2xlU3BlZWRTZW5zb3JEaWFnbm9zaXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkRlY2VsZXJhdGlvblNlbnNvclZvdGVyP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJWZWhpY2xlU3BlZWRTZW5zb3JWb3Rlcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVmVoaWNsZVNwZWVkU2Vuc29yVHJhbnNsYXRpb24/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IldoZWVsU3BlZWRTZW5zb3JUcmFuc2xhdGlvbj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iV2hlZWxTcGVlZFNlbnNvckRpYWdub3Npcz90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iQ3lsTnVtT2JzZXJ2ZXI/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IldoZWVsU3BlZWRTZW5zb3JWb3Rlcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVGhyb3R0bGVDb250cm9sbGVyP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJBUGVkVm90ZXI/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkJhc2VGdWVsTWFzcz90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVGhyb3R0bGVBY3R1YXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVG90YWxGdWVsTWFzcz90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVHJhbnNpZW50RnVlbE1hc3M/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkluamVjdGlvblRpbWVBY3R1YXRpb24/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9Iklnbml0aW9uVGltaW5nP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJJZ25pdGlvblRpbWVBY3R1YXRpb24/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrXzIwTVMiIHN0aW11bGk9IlRpbWVyXzIwTVM/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjEwIj4KLSAgICAgIDxjdXN0b21Qcm9wZXJ0aWVzIGtleT0icHJpb3JpdHkiPgotICAgICAgICA8dmFsdWUgeHNpOnR5cGU9ImFtOlN0cmluZ09iamVjdCIgdmFsdWU9IjEwIiAvPgotICAgICAgPC9jdXN0b21Qcm9wZXJ0aWVzPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06R3JvdXAiIG5hbWU9IkNhbGxTZXF1ZW5jZSIgb3JkZXJlZD0idHJ1ZSI+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJCcmFrZUZvcmNlQXJiaXRlcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tfNU1TIiBzdGltdWxpPSJUaW1lcl81TVM/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjEwIj4KLSAgICAgIDxjdXN0b21Qcm9wZXJ0aWVzIGtleT0icHJpb3JpdHkiPgotICAgICAgICA8dmFsdWUgeHNpOnR5cGU9ImFtOlN0cmluZ09iamVjdCIgdmFsdWU9IjEwIiAvPgotICAgICAgPC9jdXN0b21Qcm9wZXJ0aWVzPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06R3JvdXAiIG5hbWU9IkNhbGxTZXF1ZW5jZSIgb3JkZXJlZD0idHJ1ZSI+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJFY3VCcmFrZUFjdHVhdG9yP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJFY3VTdG9wTGlnaHRBY3R1YXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iRWN1QnJha2VQZWRhbFNlbnNvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iRWN1RGVjZWxlcmF0aW9uU2Vuc29yP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJFY3VWZWhpY2xlU3BlZWRTZW5zb3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkVjdVdoZWVsU3BlZWRTZW5zb3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkFQZWRTZW5zb3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlRocm90dGxlU2Vuc29yP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJNYXNzQWlyRmxvd1NlbnNvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJBQlNDYWxjdWxhdGlvbiIgdGFncz0iU3djQUJTQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZvdGVkRGVjZWxlcmF0aW9uUmF0ZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVm90ZWRWZWhpY2xlU3BlZWQ/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZvdGVkV2hlZWxTcGVlZD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQXJiaXRyYXRlZEJyYWtlRm9yY2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJBQlNBY3RpdmF0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQUJTTW9kZT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJBUGVkU2Vuc29yIiB0YWdzPSJTd2NFbmdpbmVTZW5zb3JzP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJBUGVkU2Vuc29yMVZvbHRhZ2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFQZWRTZW5zb3IyVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFQZWRQb3NpdGlvbjE/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJBUGVkUG9zaXRpb24yP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkFQZWRWb3RlciIgdGFncz0iU3djRW5naW5lQ29udHJvbGxlcj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQVBlZFBvc2l0aW9uMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQVBlZFBvc2l0aW9uMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZvdGVkQVBlZFBvc2l0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkJhc2VGdWVsTWFzcyIgdGFncz0iU3djRW5naW5lQ29udHJvbGxlcj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iTWFzc0FpckZsb3c/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCYXNlRnVlbE1hc3NQZXJTdHJva2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJNQUZSYXRlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkJyYWtlQWN0dWF0b3IiIHRhZ3M9IlN3Y0FCU0NhbGN1bGF0aW9uP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJDYWxpcGVyUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJCcmFrZUFjdHVhdG9yTW9uaXRvciIgdGFncz0iU3djQnJha2VGb3JjZUNhbGN1bGF0aW9uP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlRmVlZGJhY2s/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iQnJha2VGb3JjZUFjdHVhdGlvbiIgdGFncz0iU3djQUJTQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFCU0FjdGl2YXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFCU01vZGU/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VGb3JjZUN1cnJlbnQ/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iQnJha2VGb3JjZUFyYml0ZXIiIHRhZ3M9IlN3Y0JyYWtlRm9yY2VBcmJpdGVyP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJDYWxjdWxhdGVkQnJha2VGb3JjZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VTYWZldHlTdGF0ZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFyYml0cmF0ZWRCcmFrZUZvcmNlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkJyYWtlRm9yY2VDYWxjdWxhdGlvbiIgdGFncz0iU3djQnJha2VGb3JjZUNhbGN1bGF0aW9uP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlRm9yY2VGZWVkYmFjaz90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQXJiaXRyYXRlZERpYWdub3Npc1JlcXVlc3Q/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9Ik1vbml0b3JlZFZlaGljbGVTdGF0ZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VTYWZldHlMZXZlbD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkNhbGN1bGF0ZWRCcmFrZUZvcmNlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VNb25pdG9yTGV2ZWw/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iQnJha2VQZWRhbFNlbnNvckRpYWdub3NpcyIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlUGVkYWxQb3NpdGlvblZvbHRhZ2UxP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb25Wb2x0YWdlMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJCcmFrZVBlZGFsU2Vuc29yVHJhbnNsYXRpb24iIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb25Wb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VQZWRhbFBvc2l0aW9uVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb24xP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VQZWRhbFBvc2l0aW9uMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJCcmFrZVBlZGFsU2Vuc29yVm90ZXIiIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb24xP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb24yP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVm90ZWRCcmFrZVBlZGFsUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iQnJha2VTYWZldHlNb25pdG9yIiB0YWdzPSJTd2NCcmFrZUZvcmNlQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlUGVkYWxQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VGb3JjZUZlZWRiYWNrP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJBcmJpdHJhdGVkRGlhZ25vc2lzUmVxdWVzdD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iTW9uaXRvcmVkVmVoaWNsZVN0YXRlP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZU1vbml0b3JMZXZlbD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlU2FmZXR5TGV2ZWw/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVNhZmV0eVN0YXRlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkNhbGlwZXJQb3NpdGlvbkNhbGN1bGF0aW9uIiB0YWdzPSJTd2NBQlNDYWxjdWxhdGlvbj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQ2FsaXBlclBvc2l0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlQ3VycmVudD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkNhbGlwZXJQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJDaGVja1BsYXVzYWJpbGl0eSIgdGFncz0iU3djQnJha2VGb3JjZUNhbGN1bGF0aW9uP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWb3RlZEJyYWtlUGVkYWxQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlUGVkYWxQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJDeWxOdW1PYnNlcnZlciIgdGFncz0iU3djQ3lsTnVtT2JzZXJ2ZXI/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkN5bGluZGVyTnVtYmVyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVHJpZ2dlcmVkQ3lsaW5kZXJOdW1iZXI/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iRGVjZWxlcmF0aW9uU2Vuc29yRGlhZ25vc2lzIiB0YWdzPSJTd2NTZW5zb3JQb3N0cHJvY2Vzc2luZz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVjZWxlcmF0aW9uVm9sdGFnZTE/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkRlY2VsZXJhdGlvblZvbHRhZ2UyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkRlY2VsZXJhdGlvblNlbnNvclRyYW5zbGF0aW9uIiB0YWdzPSJTd2NTZW5zb3JQb3N0cHJvY2Vzc2luZz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVjZWxlcmF0aW9uVm9sdGFnZTE/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkRlY2VsZXJhdGlvblZvbHRhZ2UyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVjZWxlcmF0aW9uUmF0ZTE/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJEZWNlbGVyYXRpb25SYXRlMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJEZWNlbGVyYXRpb25TZW5zb3JWb3RlciIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkRlY2VsZXJhdGlvblJhdGUxP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJEZWNlbGVyYXRpb25SYXRlMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZvdGVkRGVjZWxlcmF0aW9uUmF0ZT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJEaWFnbm9zaXNBcmJpdGVyIiB0YWdzPSJTd2NCcmFrZUZvcmNlQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFyYml0cmF0ZWREaWFnbm9zaXNSZXF1ZXN0P3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkVjdUJyYWtlQWN0dWF0b3IiIHRhZ3M9IlN3Y0FjdHVhdG9ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VGb3JjZVZvbHRhZ2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iRWN1QnJha2VQZWRhbFNlbnNvciIgdGFncz0iU3djU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iMTQ0MDAwIiB1cHBlckJvdW5kPSIxNzYwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSIxNjAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlUGVkYWxQb3NpdGlvblZvbHRhZ2UxP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VQZWRhbFBvc2l0aW9uVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iRWN1RGVjZWxlcmF0aW9uU2Vuc29yIiB0YWdzPSJTd2NTZW5zb3JzP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSIxNDQwMDAiIHVwcGVyQm91bmQ9IjE3NjAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjE2MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVjZWxlcmF0aW9uVm9sdGFnZTE/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJEZWNlbGVyYXRpb25Wb2x0YWdlMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJFY3VTdG9wTGlnaHRBY3R1YXRvciIgdGFncz0iU3djQWN0dWF0b3JzP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUFwcGxpY2F0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkVjdVZlaGljbGVTcGVlZFNlbnNvciIgdGFncz0iU3djU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZlaGljbGVTcGVlZFZvbHRhZ2UxP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVmVoaWNsZVNwZWVkVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iRWN1V2hlZWxTcGVlZFNlbnNvciIgdGFncz0iU3djU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IldoZWVsU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IldoZWVsU3BlZWRWb2x0YWdlMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJJZ25pdGlvblRpbWVBY3R1YXRpb24iIHRhZ3M9IlN3Y0luaklnbkFjdHVhdGlvbj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVHJpZ2dlcmVkQ3lsaW5kZXJOdW1iZXI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9Iklnbml0aW9uVGltZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lMz90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lND90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lNT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lNj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9Iklnbml0aW9uVGltZTc/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJJZ25pdGlvblRpbWU4P3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9Iklnbml0aW9uVGltaW5nIiB0YWdzPSJTd2NFbmdpbmVDb250cm9sbGVyP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJNQUZSYXRlP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkluamVjdGlvblRpbWVBY3R1YXRpb24iIHRhZ3M9IlN3Y0luaklnbkFjdHVhdGlvbj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVHJpZ2dlcmVkQ3lsaW5kZXJOdW1iZXI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlRvdGFsRnVlbE1hc3NQZXJTdHJva2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkluamVjdGlvblRpbWUxP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJJbmplY3Rpb25UaW1lMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSW5qZWN0aW9uVGltZTM/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkluamVjdGlvblRpbWU0P3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJJbmplY3Rpb25UaW1lNT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSW5qZWN0aW9uVGltZTY/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkluamVjdGlvblRpbWU3P3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJJbmplY3Rpb25UaW1lOD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJNYXNzQWlyRmxvd1NlbnNvciIgdGFncz0iU3djRW5naW5lU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iTUFGU2Vuc29yVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9Ik1hc3NBaXJGbG93P3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlN0b3BMaWdodEFjdHVhdG9yIiB0YWdzPSJTd2NBQlNDYWxjdWxhdGlvbj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQXJiaXRyYXRlZEJyYWtlRm9yY2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUFwcGxpY2F0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlRocm90dGxlQWN0dWF0b3IiIHRhZ3M9IlN3Y0VuZ2luZUNvbnRyb2xsZXI/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkRlc2lyZWRUaHJvdHRsZVBvc2l0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVzaXJlZFRocm90dGxlUG9zaXRpb25Wb2x0YWdlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlRocm90dGxlQ29udHJvbGxlciIgdGFncz0iU3djRW5naW5lQ29udHJvbGxlcj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVm90ZWRBUGVkUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlRocm90dGxlUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJEZXNpcmVkVGhyb3R0bGVQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJUaHJvdHRsZVNlbnNvciIgdGFncz0iU3djRW5naW5lU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVGhyb3R0bGVTZW5zb3IxVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVGhyb3R0bGVTZW5zb3IyVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlRocm90dGxlUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iVG90YWxGdWVsTWFzcyIgdGFncz0iU3djRW5naW5lQ29udHJvbGxlcj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVHJhbnNpZW50RnVlbE1hc3NQZXJTdHJva2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJUb3RhbEZ1ZWxNYXNzUGVyU3Ryb2tlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlRyYW5zaWVudEZ1ZWxNYXNzIiB0YWdzPSJTd2NFbmdpbmVDb250cm9sbGVyP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCYXNlRnVlbE1hc3NQZXJTdHJva2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJUcmFuc2llbnRGdWVsTWFzc1BlclN0cm9rZT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJWZWhpY2xlU3BlZWRTZW5zb3JEaWFnbm9zaXMiIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWZWhpY2xlU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVmVoaWNsZVNwZWVkVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iVmVoaWNsZVNwZWVkU2Vuc29yVHJhbnNsYXRpb24iIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWZWhpY2xlU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVmVoaWNsZVNwZWVkVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWZWhpY2xlU3BlZWQxP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVmVoaWNsZVNwZWVkMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJWZWhpY2xlU3BlZWRTZW5zb3JWb3RlciIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZlaGljbGVTcGVlZDE/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZlaGljbGVTcGVlZDI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWb3RlZFZlaGljbGVTcGVlZD90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJWZWhpY2xlU3RhdGVNb25pdG9yIiB0YWdzPSJTd2NCcmFrZUZvcmNlQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJNb25pdG9yZWRWZWhpY2xlU3RhdGU/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iV2hlZWxTcGVlZFNlbnNvckRpYWdub3NpcyIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IldoZWVsU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iV2hlZWxTcGVlZFZvbHRhZ2UyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IldoZWVsU3BlZWRTZW5zb3JUcmFuc2xhdGlvbiIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IldoZWVsU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iV2hlZWxTcGVlZFZvbHRhZ2UyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iV2hlZWxTcGVlZDE/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJXaGVlbFNwZWVkMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJXaGVlbFNwZWVkU2Vuc29yVm90ZXIiIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJXaGVlbFNwZWVkMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iV2hlZWxTcGVlZDI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWb3RlZFdoZWVsU3BlZWQ/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxsYWJlbHMgbmFtZT0iQUJTQWN0aXZhdGlvbiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkFCU01vZGUiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJBUGVkUG9zaXRpb24xIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQVBlZFBvc2l0aW9uMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkFQZWRTZW5zb3IxVm9sdGFnZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJBUGVkU2Vuc29yMlZvbHRhZ2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQXJiaXRyYXRlZEJyYWtlRm9yY2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJBcmJpdHJhdGVkRGlhZ25vc2lzUmVxdWVzdCIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJhc2VGdWVsTWFzc1BlclN0cm9rZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJCcmFrZUFwcGxpY2F0aW9uIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VGb3JjZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJyYWtlRm9yY2VDdXJyZW50IiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VGb3JjZUZlZWRiYWNrIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VGb3JjZVZvbHRhZ2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VNb25pdG9yTGV2ZWwiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJCcmFrZVBlZGFsUG9zaXRpb24iIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJCcmFrZVBlZGFsUG9zaXRpb24xIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VQZWRhbFBvc2l0aW9uMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJyYWtlUGVkYWxQb3NpdGlvblZvbHRhZ2UxIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJyYWtlUGVkYWxQb3NpdGlvblZvbHRhZ2UyIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJyYWtlU2FmZXR5TGV2ZWwiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJCcmFrZVNhZmV0eVN0YXRlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQ2FsY3VsYXRlZEJyYWtlRm9yY2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJDYWxpcGVyUG9zaXRpb24iIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJDeWxpbmRlck51bWJlciIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkRlY2VsZXJhdGlvblJhdGUxIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iRGVjZWxlcmF0aW9uUmF0ZTIiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJEZWNlbGVyYXRpb25Wb2x0YWdlMSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJEZWNlbGVyYXRpb25Wb2x0YWdlMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJEZXNpcmVkVGhyb3R0bGVQb3NpdGlvbiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJEZXNpcmVkVGhyb3R0bGVQb3NpdGlvblZvbHRhZ2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJJZ25pdGlvblRpbWUiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJJZ25pdGlvblRpbWUxIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9Iklnbml0aW9uVGltZTIiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSWduaXRpb25UaW1lMyIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJJZ25pdGlvblRpbWU0IiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9Iklnbml0aW9uVGltZTUiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSWduaXRpb25UaW1lNiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJJZ25pdGlvblRpbWU3IiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9Iklnbml0aW9uVGltZTgiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTEiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTIiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTMiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTQiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTUiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTYiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTciIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTgiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iTUFGUmF0ZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJNQUZTZW5zb3JWb2x0YWdlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9Ik1hc3NBaXJGbG93IiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iTW9uaXRvcmVkVmVoaWNsZVN0YXRlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVGhyb3R0bGVQb3NpdGlvbiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJUaHJvdHRsZVNlbnNvcjFWb2x0YWdlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVGhyb3R0bGVTZW5zb3IyVm9sdGFnZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IlRvdGFsRnVlbE1hc3NQZXJTdHJva2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJUcmFuc2llbnRGdWVsTWFzc1BlclN0cm9rZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IlRyaWdnZXJlZEN5bGluZGVyTnVtYmVyIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVmVoaWNsZVNwZWVkMSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IlZlaGljbGVTcGVlZDIiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJWZWhpY2xlU3BlZWRWb2x0YWdlMSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJWZWhpY2xlU3BlZWRWb2x0YWdlMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJWb3RlZEFQZWRQb3NpdGlvbiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IlZvdGVkQnJha2VQZWRhbFBvc2l0aW9uIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVm90ZWREZWNlbGVyYXRpb25SYXRlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVm90ZWRWZWhpY2xlU3BlZWQiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJWb3RlZFdoZWVsU3BlZWQiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJXaGVlbFNwZWVkMSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IldoZWVsU3BlZWQyIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iV2hlZWxTcGVlZFZvbHRhZ2UxIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IldoZWVsU3BlZWRWb2x0YWdlMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gIDwvc3dNb2RlbD4KLSAgPGh3TW9kZWw+Ci0gICAgPGRlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdERlZmluaXRpb24iIG5hbWU9IkRlZmF1bHRDb3JlIiBwdVR5cGU9IkNQVSIgZmVhdHVyZXM9Ikluc3RydWN0aW9ucy9JUENfMT90eXBlPUh3RmVhdHVyZSIgLz4KLSAgICA8ZGVmaW5pdGlvbnMgeHNpOnR5cGU9ImFtOk1lbW9yeURlZmluaXRpb24iIG5hbWU9IkRlZmF1bHRNZW1vcnkiPgotICAgICAgPHNpemUgdmFsdWU9IjQiIHVuaXQ9Ik1CIiAvPgotICAgICAgPGFjY2Vzc0xhdGVuY3kgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVDb25zdGFudCIgdmFsdWU9IjIiIC8+Ci0gICAgPC9kZWZpbml0aW9ucz4KLSAgICA8ZmVhdHVyZUNhdGVnb3JpZXMgbmFtZT0iSW5zdHJ1Y3Rpb25zIiBmZWF0dXJlVHlwZT0icGVyZm9ybWFuY2UiPgotICAgICAgPGZlYXR1cmVzIG5hbWU9IklQQ18xIiB2YWx1ZT0iMS4wIiAvPgotICAgIDwvZmVhdHVyZUNhdGVnb3JpZXM+Ci0gICAgPHN0cnVjdHVyZXMgbmFtZT0iRGVtb2NhciIgc3RydWN0dXJlVHlwZT0iU3lzdGVtIj4KLSAgICAgIDxzdHJ1Y3R1cmVzIG5hbWU9IkVDVV8xIiBzdHJ1Y3R1cmVUeXBlPSJFQ1UiPgotICAgICAgICA8c3RydWN0dXJlcyBuYW1lPSJNaWNyb2NvbnRyb2xsZXJfMSIgc3RydWN0dXJlVHlwZT0iTWljcm9jb250cm9sbGVyIj4KLSAgICAgICAgICA8bW9kdWxlcyB4c2k6dHlwZT0iYW06TWVtb3J5IiBuYW1lPSJNZW1fMSIgZnJlcXVlbmN5RG9tYWluPSJGcmVxdWVuY3lEb21haW5fMT90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iRGVmYXVsdE1lbW9yeT90eXBlPU1lbW9yeURlZmluaXRpb24iPgotICAgICAgICAgICAgPHBvcnRzIG5hbWU9InBvcnQiIGJpdFdpZHRoPSIzMiIgcHJpb3JpdHk9IjAiIHBvcnRUeXBlPSJyZXNwb25kZXIiIC8+Ci0gICAgICAgICAgPC9tb2R1bGVzPgotICAgICAgICAgIDxtb2R1bGVzIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdCIgbmFtZT0iQ29yZV8xIiBmcmVxdWVuY3lEb21haW49IkZyZXF1ZW5jeURvbWFpbl8xP3R5cGU9RnJlcXVlbmN5RG9tYWluIiBkZWZpbml0aW9uPSJEZWZhdWx0Q29yZT90eXBlPVByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbiI+Ci0gICAgICAgICAgICA8cG9ydHMgbmFtZT0icG9ydCIgYml0V2lkdGg9IjMyIiBwcmlvcml0eT0iMCIgcG9ydFR5cGU9ImluaXRpYXRvciIgLz4KLSAgICAgICAgICA8L21vZHVsZXM+Ci0gICAgICAgICAgPGNvbm5lY3Rpb25zIG5hbWU9ImNvbjEiIHBvcnQxPSJDb3JlXzEvcG9ydD90eXBlPUh3UG9ydCIgcG9ydDI9Ik1lbV8xL3BvcnQ/dHlwZT1Id1BvcnQiIC8+Ci0gICAgICAgIDwvc3RydWN0dXJlcz4KLSAgICAgIDwvc3RydWN0dXJlcz4KLSAgICA8L3N0cnVjdHVyZXM+Ci0gICAgPGRvbWFpbnMgeHNpOnR5cGU9ImFtOkZyZXF1ZW5jeURvbWFpbiIgbmFtZT0iRnJlcXVlbmN5RG9tYWluXzEiIGNsb2NrR2F0aW5nPSJmYWxzZSI+Ci0gICAgICA8ZGVmYXVsdFZhbHVlIHZhbHVlPSIyMDAuMCIgdW5pdD0iTUh6IiAvPgotICAgIDwvZG9tYWlucz4KLSAgPC9od01vZGVsPgotICA8b3NNb2RlbD4KLSAgICA8b3BlcmF0aW5nU3lzdGVtcyBuYW1lPSJPcGVyYXRpbmdTeXN0ZW0iPgotICAgICAgPHRhc2tTY2hlZHVsZXJzIG5hbWU9IlRhc2tfU2NoZWR1bGVyX0NvcmVfMSI+Ci0gICAgICAgIDxzY2hlZHVsaW5nQWxnb3JpdGhtIHhzaTp0eXBlPSJhbTpPU0VLIiAvPgotICAgICAgPC90YXNrU2NoZWR1bGVycz4KLSAgICA8L29wZXJhdGluZ1N5c3RlbXM+Ci0gIDwvb3NNb2RlbD4KLSAgPHN0aW11bGlNb2RlbD4KLSAgICA8c3RpbXVsaSB4c2k6dHlwZT0iYW06UGVyaW9kaWNTdGltdWx1cyIgbmFtZT0iVGltZXJfMTBNUyI+Ci0gICAgICA8b2Zmc2V0IHZhbHVlPSIwIiB1bml0PSJtcyIgLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSIxMCIgdW5pdD0ibXMiIC8+Ci0gICAgPC9zdGltdWxpPgotICAgIDxzdGltdWxpIHhzaTp0eXBlPSJhbTpQZXJpb2RpY1N0aW11bHVzIiBuYW1lPSJUaW1lcl8yME1TIj4KLSAgICAgIDxvZmZzZXQgdmFsdWU9IjAiIHVuaXQ9Im1zIiAvPgotICAgICAgPHJlY3VycmVuY2UgdmFsdWU9IjIwIiB1bml0PSJtcyIgLz4KLSAgICA8L3N0aW11bGk+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOlBlcmlvZGljU3RpbXVsdXMiIG5hbWU9IlRpbWVyXzVNUyI+Ci0gICAgICA8b2Zmc2V0IHZhbHVlPSIwIiB1bml0PSJtcyIgLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSI1IiB1bml0PSJtcyIgLz4KLSAgICA8L3N0aW11bGk+Ci0gIDwvc3RpbXVsaU1vZGVsPgotICA8Y29uc3RyYWludHNNb2RlbD4KLSAgICA8cmVxdWlyZW1lbnRzIHhzaTp0eXBlPSJhbTpQcm9jZXNzUmVxdWlyZW1lbnQiIG5hbWU9IkRlYWRsaW5lXzA1IiBzZXZlcml0eT0iQ3JpdGljYWwiIHByb2Nlc3M9IlRhc2tfNU1TP3R5cGU9VGFzayI+Ci0gICAgICA8bGltaXQgeHNpOnR5cGU9ImFtOlRpbWVSZXF1aXJlbWVudExpbWl0IiBsaW1pdFR5cGU9IlVwcGVyTGltaXQiIG1ldHJpYz0iUmVzcG9uc2VUaW1lIj4KLSAgICAgICAgPGxpbWl0VmFsdWUgdmFsdWU9IjUiIHVuaXQ9Im1zIiAvPgotICAgICAgPC9saW1pdD4KLSAgICA8L3JlcXVpcmVtZW50cz4KLSAgICA8cmVxdWlyZW1lbnRzIHhzaTp0eXBlPSJhbTpQcm9jZXNzUmVxdWlyZW1lbnQiIG5hbWU9IkRlYWRsaW5lXzEwIiBzZXZlcml0eT0iQ3JpdGljYWwiIHByb2Nlc3M9IlRhc2tfMTBNUz90eXBlPVRhc2siPgotICAgICAgPGxpbWl0IHhzaTp0eXBlPSJhbTpUaW1lUmVxdWlyZW1lbnRMaW1pdCIgbGltaXRUeXBlPSJVcHBlckxpbWl0IiBtZXRyaWM9IlJlc3BvbnNlVGltZSI+Ci0gICAgICAgIDxsaW1pdFZhbHVlIHZhbHVlPSIxMCIgdW5pdD0ibXMiIC8+Ci0gICAgICA8L2xpbWl0PgotICAgIDwvcmVxdWlyZW1lbnRzPgotICAgIDxyZXF1aXJlbWVudHMgeHNpOnR5cGU9ImFtOlByb2Nlc3NSZXF1aXJlbWVudCIgbmFtZT0iRGVhZGxpbmVfMjAiIHNldmVyaXR5PSJDcml0aWNhbCIgcHJvY2Vzcz0iVGFza18yME1TP3R5cGU9VGFzayI+Ci0gICAgICA8bGltaXQgeHNpOnR5cGU9ImFtOlRpbWVSZXF1aXJlbWVudExpbWl0IiBsaW1pdFR5cGU9IlVwcGVyTGltaXQiIG1ldHJpYz0iUmVzcG9uc2VUaW1lIj4KLSAgICAgICAgPGxpbWl0VmFsdWUgdmFsdWU9IjIwIiB1bml0PSJtcyIgLz4KLSAgICAgIDwvbGltaXQ+Ci0gICAgPC9yZXF1aXJlbWVudHM+Ci0gIDwvY29uc3RyYWludHNNb2RlbD4KLTwvYW06QW1hbHRoZWE+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9zcmMvLmdpdGlnbm9yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL3NyYy8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL3NyYy8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmNsYXNzcGF0aCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWNhN2JkYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLmxhdW5jaCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAubGF1bmNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWYxZTk2Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAubGF1bmNoCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Ci08bGF1bmNoQ29uZmlndXJhdGlvbiB0eXBlPSJvcmcuZWNsaXBzZS5hbnQuQW50QnVpbGRlckxhdW5jaENvbmZpZ3VyYXRpb25UeXBlIj4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuYW50LnVpLkFUVFJfVEFSR0VUU19VUERBVEVEIiB2YWx1ZT0idHJ1ZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWkuREVGQVVMVF9WTV9JTlNUQUxMIiB2YWx1ZT0iZmFsc2UiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuYW50LnVpU0VUX0lOUFVUSEFORExFUiIgdmFsdWU9ImZhbHNlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5BVFRSX1JFRlJFU0hfU0NPUEUiIHZhbHVlPSIke3dvcmtpbmdfc2V0OiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3Jlc291cmNlcyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24mcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0Oy9yZXNvdXJjZXMmZ3Q7fSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLmNhcHR1cmVfb3V0cHV0IiB2YWx1ZT0iZmFsc2UiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuQVRUUl9DT05TT0xFX09VVFBVVF9PTiIgdmFsdWU9ImZhbHNlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLnVpLkFUVFJfTEFVTkNIX0lOX0JBQ0tHUk9VTkQiIHZhbHVlPSJmYWxzZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuQ0xBU1NQQVRIX1BST1ZJREVSIiB2YWx1ZT0ib3JnLmVjbGlwc2UuYW50LnVpLkFudENsYXNzcGF0aFByb3ZpZGVyIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuREVGQVVMVF9DTEFTU1BBVEgiIHZhbHVlPSJ0cnVlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5QUk9KRUNUX0FUVFIiIHZhbHVlPSIiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0JVSUxERVJfRU5BQkxFRCIgdmFsdWU9InRydWUiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfQlVJTERfU0NPUEUiIHZhbHVlPSIke3dvcmtpbmdfc2V0OiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3Jlc291cmNlcyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8mcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uY2xhc3NwYXRoJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmV4dGVybmFsVG9vbEJ1aWxkZXJzJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmdpdGlnbm9yZSZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5wcm9qZWN0JnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLnNldHRpbmdzJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvQVBQNE1DX0V4YW1wbGVfVHJhbnNmb3JtYXRpb24ucHJvZHVjdCZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2J1aWxkLnByb3BlcnRpZXMmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9pbnB1dCZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2lucHV0LnByb3BlcnRpZXMmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9NRVRBLUlORiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL291dHB1dCZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3BsdWdpbi54bWwmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9wb20ueG1sJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvc3JjJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvdGFyZ2V0JnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDsvcmVzb3VyY2VzJmd0O30iLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfTE9DQVRJT04iIHZhbHVlPSIke3Byb2plY3RfbG9jOi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwfS8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvY29weUV4YW1wbGUuYW50Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX1JVTl9CVUlMRF9LSU5EUyIgdmFsdWU9ImluY3JlbWVudGFsLGF1dG8sIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX1RPT0xfQVJHVU1FTlRTIiB2YWx1ZT0iLURidWlsZC5wcm9qZWN0PSR7cHJvamVjdF9sb2M6L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHB9Ii8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9UUklHR0VSU19DT05GSUdVUkVEIiB2YWx1ZT0idHJ1ZSIvPgotPC9sYXVuY2hDb25maWd1cmF0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvY29weUV4YW1wbGUuYW50IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvY29weUV4YW1wbGUuYW50CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjZjZThlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/PgotPHByb2plY3QgbmFtZT0iY29weUV4YW1wbGUiIGRlZmF1bHQ9Im1haW4iIGJhc2VkaXI9Ii4uLy4uIj4KLQotCTxwcm9wZXJ0eSBuYW1lPSJpbnN0YWxsZXIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyIiAvPgotCTxpbXBvcnQgZmlsZT0iLi4vLi4vLi4vLi4vYnVpbGQvJHtpbnN0YWxsZXJ9L2NvcHlFeGFtcGxlTGliLmFudCIgb3B0aW9uYWw9InRydWUiIC8+Ci0JPGJhc2VuYW1lIGZpbGU9IiR7YnVpbGQucHJvamVjdH0iIHByb3BlcnR5PSJwcm9qZWN0IiAvPgotCi0JPHRhcmdldCBuYW1lPSJtYWluIj4KLQkJPGNvcHlFeGFtcGxlIHByb2plY3Q9IiR7cHJvamVjdH0iIC8+Ci0JPC90YXJnZXQ+Ci0KLTwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmdpdGlnbm9yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmdpdGlnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U5MDJlOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1vdXRwdXQvKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDQ5MzZhLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXI8L25hbWU+Ci0JCQk8dHJpZ2dlcnM+YXV0byxmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+Ci0JCQk8YXJndW1lbnRzPgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PkxhdW5jaENvbmZpZ0hhbmRsZTwva2V5PgotCQkJCQk8dmFsdWU+Jmx0O3Byb2plY3QmZ3Q7Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLmxhdW5jaDwvdmFsdWU+Ci0JCQkJPC9kaWN0aW9uYXJ5PgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PmluY2NsZWFuPC9rZXk+Ci0JCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4KLQkJCQk8L2RpY3Rpb25hcnk+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5ZjI2YzAuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1lbmNvZGluZy88cHJvamVjdD49VVRGLTgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNjhhNjEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLmlubGluZUpzckJ5dGVjb2RlPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udGFyZ2V0UGxhdGZvcm09MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hc3NlcnRJZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS44CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA0MmU0OS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL01FVEEtSU5GL01BTklGRVNULk1GCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjAKLUJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKLUJ1bmRsZS1OYW1lOiBBUFA0TUMgTW9kZWwgVHJhbnNmb3JtYXRpb24gRXhhbXBsZSAtIEFwcGxpY2F0aW9uCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDEuMC4wLnF1YWxpZmllcgotQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEphdmFTRS0xLjgKLUJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgQVBQNE1DCi1BdXRvbWF0aWMtTW9kdWxlLU5hbWU6IGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvVHJhbnNmb3JtYXRpb24ucHJvZHVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvVHJhbnNmb3JtYXRpb24ucHJvZHVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE4MGM1OC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL1RyYW5zZm9ybWF0aW9uLnByb2R1Y3QKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/cGRlIHZlcnNpb249IjMuNSI/PgotCi08cHJvZHVjdCB1aWQ9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAuVHJhbnNmb3JtYXRpb24ucHJvZHVjdCIgdXNlRmVhdHVyZXM9ImZhbHNlIiBpbmNsdWRlTGF1bmNoZXJzPSJ0cnVlIj4KLQotICAgPGNvbmZpZ0luaSB1c2U9ImRlZmF1bHQiPgotICAgPC9jb25maWdJbmk+Ci0KLSAgIDxsYXVuY2hlckFyZ3M+Ci0gICAgICA8cHJvZ3JhbUFyZ3M+LS1wcm9wZXJ0aWVzICZxdW90OyR7cHJvamVjdF9sb2M6L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHB9L2lucHV0LnByb3BlcnRpZXMmcXVvdDsgLWNvbnNvbGUKLSAgICAgIDwvcHJvZ3JhbUFyZ3M+Ci0gICAgICA8dm1BcmdzPi1EZWNsaXBzZS5pZ25vcmVBcHA9dHJ1ZSAtRG9zZ2kubm9TaHV0ZG93bj10cnVlIC1EbG9nNGouY29uZmlndXJhdGlvbj1oZWFkbGVzc19sb2c0ai54bWwKLSAgICAgIDwvdm1BcmdzPgotICAgICAgPHZtQXJnc01hYz4tWHN0YXJ0T25GaXJzdFRocmVhZCAtRG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5jYXJib24uc21hbGxGb250cwotICAgICAgPC92bUFyZ3NNYWM+Ci0gICA8L2xhdW5jaGVyQXJncz4KLQotICAgPHdpbmRvd0ltYWdlcy8+Ci0KLSAgIDxsYXVuY2hlcj4KLSAgICAgIDx3aW4gdXNlSWNvPSJmYWxzZSI+Ci0gICAgICAgICA8Ym1wLz4KLSAgICAgIDwvd2luPgotICAgPC9sYXVuY2hlcj4KLQotICAgPHZtPgotICAgPC92bT4KLQotICAgPHBsdWdpbnM+Ci0gICAgICA8cGx1Z2luIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImNvbS5nb29nbGUuZ3VhdmEiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImNvbS5pYm0uaWN1Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJqYXZheC5pbmplY3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImphdmF4LnhtbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5jb21tb25zLmNsaSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5jb21tb25zLmxhbmciLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMubWF0aDMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZ29nby5jb21tYW5kIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28ucnVudGltZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLnNoZWxsIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LnNjciIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5sb2c0aiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS54ZXJjZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUueG1sLnJlc29sdmVyIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLnhtbC5zZXJpYWxpemVyIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5jb21tYW5kcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5jb250ZW50dHlwZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5leHByZXNzaW9ucyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5maWxlc3lzdGVtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmpvYnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmNvbW1vbiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUuY2hhbmdlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUueGNvcmUubGliIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYuZWRpdCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLnRyYW5zYWN0aW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYudmFsaWRhdGlvbiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLndvcmtzcGFjZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5hcHAiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guY29tbW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmNvbnNvbGUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucHJlZmVyZW5jZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucmVnaXN0cnkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kuc2VydmljZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kudXRpbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LmVtZiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LmVtZi53b3Jrc3BhY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5wbGF0Zm9ybSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UueHRlbmQubGliIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS54dGVuZC5saWIubWFjcm8iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZXh0LnhiYXNlLmxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmpkb20iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zbGY0ai5hcGkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zbGY0ai5pbXBsLmxvZzRqMTIiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICA8L3BsdWdpbnM+Ci0KLSAgIDxjb25maWd1cmF0aW9ucz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguc2NyIiBhdXRvU3RhcnQ9InRydWUiIHN0YXJ0TGV2ZWw9IjIiIC8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24iIGF1dG9TdGFydD0iZmFsc2UiIHN0YXJ0TGV2ZWw9IjUiIC8+Ci0gICAgICA8cHJvcGVydHkgbmFtZT0ibG9nNGouY29uZmlndXJhdGlvbiIgdmFsdWU9ImhlYWRsZXNzX2xvZzRqLnhtbCIgLz4KLSAgICAgIDxwcm9wZXJ0eSBuYW1lPSJhcHA0bWN0cmFuc2Zvcm1hdGlvbi5sb2cubGV2ZWwiIHZhbHVlPSJkZWJ1ZyIgLz4KLSAgIDwvY29uZmlndXJhdGlvbnM+Ci0KLSAgIDxwcmVmZXJlbmNlc0luZm8+Ci0gICAgICA8dGFyZ2V0ZmlsZSBvdmVyd3JpdGU9ImZhbHNlIi8+Ci0gICA8L3ByZWZlcmVuY2VzSW5mbz4KLQotICAgPGNzc0luZm8+Ci0gICA8L2Nzc0luZm8+Ci0KLTwvcHJvZHVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KLTx0aXRsZT5BYm91dDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keSBsYW5nPSJFTi1VUyI+Ci0JPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+Ci0KLQk8cD5Ob3ZlbWJlciAzMCwgMjAxNzwvcD4KLQk8aDM+TGljZW5zZTwvaDM+Ci0KLQk8cD4KLQkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluCi0JCSgmcXVvdDtDb250ZW50JnF1b3Q7KS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50Ci0JCWlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UKLQkJUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUgRVBMIGlzCi0JCWF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCi0JCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC4KLQk8L3A+Ci0KLQk8cD4KLQkJSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZQotCQlGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyBiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkKLQkJKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5Ci0JCWFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlCi0JCVJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuIElmIG5vIHN1Y2gKLQkJbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkCi0JCWJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlCi0JCWNvZGUgaW4gdGhlIENvbnRlbnQgYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhCi0JCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnLyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uCi0JPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTQ4NTVlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIyAgQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0jICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotIyAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0jIAotIyAgIENvbnRyaWJ1dG9yczoKLSMgIAkgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSMgCi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLXNvdXJjZS4uID0gc3JjLwotb3V0cHV0Li4gPSBiaW4vCi1iaW4uaW5jbHVkZXMgPSBNRVRBLUlORi8sXAotICAgICAgICAgICAgICAgLixcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbAotc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvZXBsLTIuMC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KLSAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICAgICAgYm9keSB7Ci0gICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOwotICAgICAgfQotICAgICAgaDF7Ci0gICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKLSAgICAgIH0KLSAgICAgIGgyewotICAgICAgICBmb250LXNpemU6MWVtOwotICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOwotICAgICAgICBtYXJnaW4tdG9wOjFlbTsKLSAgICAgIH0KLSAgICAgIHAgewotICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwotICAgICAgfQotICAgICAgdWwsIG9sewotICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKLSAgICAgIH0KLSAgICA8L3N0eWxlPgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgotICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCi0gICAgICBQVUJMSUMgTElDRU5TRSAoJmxkcXVvO0FHUkVFTUVOVCZyZHF1bzspLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCi0gICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQmIzAzOTtTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0aW9uJnJkcXVvOyBtZWFuczo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50Ci0gICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKLSAgICAgICAgPHVsPgotICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgotICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCi0gICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgotICAgICAgICAmbGRxdW87b3JpZ2luYXRlcyZyZHF1bzsgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCi0gICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3ImIzAzOTtzIGJlaGFsZi4KLSAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0Ci0gICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+JmxkcXVvO0NvbnRyaWJ1dG9yJnJkcXVvOyBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KLSAgICA8cD4mbGRxdW87TGljZW5zZWQgUGF0ZW50cyZyZHF1bzsgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAotICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQotICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UHJvZ3JhbSZyZHF1bzsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKLSAgICAgIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1JlY2lwaWVudCZyZHF1bzsgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAotICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO0Rlcml2YXRpdmUgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKLSAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKLSAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87TW9kaWZpZWQgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0Ci0gICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKLSAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQotICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKLSAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKLSAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCi0gICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCi0gICAgICBXb3JrcyB0aGVyZW9mLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGlzdHJpYnV0ZSZyZHF1bzsgbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKLSAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTb3VyY2UgQ29kZSZyZHF1bzsgbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCi0gICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAotICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87U2Vjb25kYXJ5IExpY2Vuc2UmcmRxdW87IG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCi0gICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQotICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKLSAgICAgIENvbnRyaWJ1dG9yLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKLSAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKLSAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKLSAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKLSAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAotICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKLSAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAotICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAotICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLSAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55Ci0gICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgotICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQotICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQotICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKLSAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KLSAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcwotICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKLSAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCi0gICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCi0gICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KLSAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCYjMDM5O3MKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAotICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCi0gICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCi0gICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmVjZWlwdCBvZiB0aGUKLSAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCi0gICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgotICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgotICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKLSAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KLSAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bwotICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5Ci0gICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKLSAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKLSAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAotICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJiMwMzk7IHJpZ2h0cyBpbiB0aGUKLSAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQotICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCi0gICAgICAgICAgPC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQotICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQotICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bwotICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAotICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKLSAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKLSAgICAgICgmbHNxdW87bm90aWNlcyZyc3F1bzspIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAotICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQotICAgICAgbm90aWNlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgotICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCi0gICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKLSAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQotICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAotICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCi0gICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCi0gICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZsZHF1bztDb21tZXJjaWFsIENvbnRyaWJ1dG9yJnJkcXVvOykKLSAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKLSAgICAgICgmbGRxdW87SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcmRxdW87KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCi0gICAgICAoY29sbGVjdGl2ZWx5ICZsZHF1bztMb3NzZXMmcmRxdW87KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucwotICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKLSAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KLSAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KLSAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCi0gICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KLSAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKLSAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKLSAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKLSAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCi0gICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgotICAgIDwvcD4KLSAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCi0gICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLSAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcwotICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciYjMDM5O3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCi0gICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcwotICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcwotICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJmxkcXVvO0FTIElTJnJkcXVvOyBCQVNJUywgV0lUSE9VVAotICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLSAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLSAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKLSAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKLSAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cwotICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQotICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKLSAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLSAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKLSAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAotICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUwotICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgotICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCi0gICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCi0gICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKLSAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKLSAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KLSAgICA8L3A+Ci0gICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKLSAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCi0gICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQmIzAzOTtzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIGdyYW50ZWQKLSAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotICAgIDwvcD4KLSAgICA8cD5BbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCi0gICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCi0gICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKLSAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KLSAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50JiMwMzk7cyBvYmxpZ2F0aW9ucyB1bmRlcgotICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKLSAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCi0gICAgPC9wPgotICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKLSAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQotICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCi0gICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50Ci0gICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKLSAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKLSAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKLSAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgotICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCi0gICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgotICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldwotICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKLSAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KLSAgICA8L3A+Ci0gICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50Ci0gICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKLSAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCi0gICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCi0gICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKLSAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCi0gICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEgJm5kYXNoOyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgotICAgIDxwPiZsZHF1bztUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCi0gICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCi0gICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKLSAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS4mcmRxdW87Ci0gICAgPC9wPgotICAgIDxibG9ja3F1b3RlPgotICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQotICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCi0gICAgICA8L3A+Ci0gICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAotICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQotICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgotICAgICAgICBzdWNoIGEgbm90aWNlLgotICAgICAgPC9wPgotICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvaW5wdXQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvaW5wdXQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTNjYTA5YS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2lucHV0LnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1pbnB1dF9tb2RlbHNfZm9sZGVyPS4vaW5wdXQvYW1hbHRoZWFfbW9kZWxzCi1tMm1fb3V0cHV0X2ZvbGRlcj0uL291dHB1dC9tMm1fb3V0cHV0X21vZGVscwotbTJ0X291dHB1dF9mb2xkZXI9Li9vdXRwdXQvbTJ0X291dHB1dF90ZXh0X2ZpbGVzCi1sb2dfZmlsZT0uL291dHB1dC90cmFuc2Zvcm1hdGlvbi50eHQKLW0ybVRyYW5zZm9ybWVycy50YXJnZXQ9KHRyYW5zZm9ybWF0aW9uPUFtYWx0aGVhMlNhbXBsZU1vZGVsKQotYWxsTW9kZWxUb01vZGVsQ29uZmlnLnRhcmdldD0odHJhbnNmb3JtYXRpb249QW1hbHRoZWEyU2FtcGxlTW9kZWwpCi1tMnRUcmFuc2Zvcm1lcnMudGFyZ2V0PSh0cmFuc2Zvcm1hdGlvbj1BbWFsdGhlYTJUZXh0KQotYWxsTW9kZWxUb1RleHRDb25maWcudGFyZ2V0PSh0cmFuc2Zvcm1hdGlvbj1BbWFsdGhlYTJUZXh0KQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvZGVtb2Nhci5hbXhtaSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvaW5wdXQvYW1hbHRoZWFfbW9kZWxzL2RlbW9jYXIuYW14bWkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwZGE2NjEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvZGVtb2Nhci5hbXhtaQorKysgL2Rldi9udWxsCkBAIC0xLDc5OSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGFtOkFtYWx0aGVhIHhtbG5zOmFtPSJodHRwOi8vYXBwNG1jLmVjbGlwc2Uub3JnL2FtYWx0aGVhLzAuOS45IiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtaTp2ZXJzaW9uPSIyLjAiPgotICA8Y29tbW9uRWxlbWVudHM+Ci0gICAgPHRhZ3MgbmFtZT0iU3djRW5naW5lQ29udHJvbGxlciIgdGFnVHlwZT0iU09GVFdBUkVfQ09NUE9ORU5UIiAvPgotICAgIDx0YWdzIG5hbWU9IlN3Y0FjdHVhdG9ycyIgdGFnVHlwZT0iU09GVFdBUkVfQ09NUE9ORU5UIiAvPgotICAgIDx0YWdzIG5hbWU9IlN3Y0JyYWtlRm9yY2VBcmJpdGVyIiB0YWdUeXBlPSJTT0ZUV0FSRV9DT01QT05FTlQiIC8+Ci0gICAgPHRhZ3MgbmFtZT0iU3djQUJTQ2FsY3VsYXRpb24iIHRhZ1R5cGU9IlNPRlRXQVJFX0NPTVBPTkVOVCIgLz4KLSAgICA8dGFncyBuYW1lPSJTd2NTZW5zb3JzIiB0YWdUeXBlPSJTT0ZUV0FSRV9DT01QT05FTlQiIC8+Ci0gICAgPHRhZ3MgbmFtZT0iU3djU2Vuc29yUG9zdHByb2Nlc3NpbmciIHRhZ1R5cGU9IlNPRlRXQVJFX0NPTVBPTkVOVCIgLz4KLSAgICA8dGFncyBuYW1lPSJTd2NDeWxOdW1PYnNlcnZlciIgdGFnVHlwZT0iU09GVFdBUkVfQ09NUE9ORU5UIiAvPgotICAgIDx0YWdzIG5hbWU9IlN3Y0JyYWtlRm9yY2VDYWxjdWxhdGlvbiIgdGFnVHlwZT0iU09GVFdBUkVfQ09NUE9ORU5UIiAvPgotICAgIDx0YWdzIG5hbWU9IlN3Y0VuZ2luZVNlbnNvcnMiIHRhZ1R5cGU9IlNPRlRXQVJFX0NPTVBPTkVOVCIgLz4KLSAgICA8dGFncyBuYW1lPSJTd2NJbmpJZ25BY3R1YXRpb24iIHRhZ1R5cGU9IlNPRlRXQVJFX0NPTVBPTkVOVCIgLz4KLSAgPC9jb21tb25FbGVtZW50cz4KLSAgPHN3TW9kZWw+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tfMTBNUyIgc3RpbXVsaT0iVGltZXJfMTBNUz90eXBlPVBlcmlvZGljU3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMTAiPgotICAgICAgPGN1c3RvbVByb3BlcnRpZXMga2V5PSJwcmlvcml0eSI+Ci0gICAgICAgIDx2YWx1ZSB4c2k6dHlwZT0iYW06U3RyaW5nT2JqZWN0IiB2YWx1ZT0iMTAiIC8+Ci0gICAgICA8L2N1c3RvbVByb3BlcnRpZXM+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpHcm91cCIgbmFtZT0iQ2FsbFNlcXVlbmNlIiBvcmRlcmVkPSJ0cnVlIj4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkNoZWNrUGxhdXNhYmlsaXR5P3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJCcmFrZUFjdHVhdG9yTW9uaXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iRGlhZ25vc2lzQXJiaXRlcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVmVoaWNsZVN0YXRlTW9uaXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iQnJha2VGb3JjZUNhbGN1bGF0aW9uP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJCcmFrZVNhZmV0eU1vbml0b3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkFCU0NhbGN1bGF0aW9uP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJCcmFrZUZvcmNlQWN0dWF0aW9uP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJDYWxpcGVyUG9zaXRpb25DYWxjdWxhdGlvbj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iQnJha2VBY3R1YXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iU3RvcExpZ2h0QWN0dWF0b3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkJyYWtlUGVkYWxTZW5zb3JEaWFnbm9zaXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkJyYWtlUGVkYWxTZW5zb3JUcmFuc2xhdGlvbj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iQnJha2VQZWRhbFNlbnNvclZvdGVyP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJEZWNlbGVyYXRpb25TZW5zb3JEaWFnbm9zaXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkRlY2VsZXJhdGlvblNlbnNvclRyYW5zbGF0aW9uP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJWZWhpY2xlU3BlZWRTZW5zb3JEaWFnbm9zaXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkRlY2VsZXJhdGlvblNlbnNvclZvdGVyP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJWZWhpY2xlU3BlZWRTZW5zb3JWb3Rlcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVmVoaWNsZVNwZWVkU2Vuc29yVHJhbnNsYXRpb24/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IldoZWVsU3BlZWRTZW5zb3JUcmFuc2xhdGlvbj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iV2hlZWxTcGVlZFNlbnNvckRpYWdub3Npcz90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iQ3lsTnVtT2JzZXJ2ZXI/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IldoZWVsU3BlZWRTZW5zb3JWb3Rlcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVGhyb3R0bGVDb250cm9sbGVyP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJBUGVkVm90ZXI/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkJhc2VGdWVsTWFzcz90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVGhyb3R0bGVBY3R1YXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVG90YWxGdWVsTWFzcz90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iVHJhbnNpZW50RnVlbE1hc3M/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkluamVjdGlvblRpbWVBY3R1YXRpb24/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9Iklnbml0aW9uVGltaW5nP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJJZ25pdGlvblRpbWVBY3R1YXRpb24/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrXzIwTVMiIHN0aW11bGk9IlRpbWVyXzIwTVM/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjEwIj4KLSAgICAgIDxjdXN0b21Qcm9wZXJ0aWVzIGtleT0icHJpb3JpdHkiPgotICAgICAgICA8dmFsdWUgeHNpOnR5cGU9ImFtOlN0cmluZ09iamVjdCIgdmFsdWU9IjEwIiAvPgotICAgICAgPC9jdXN0b21Qcm9wZXJ0aWVzPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06R3JvdXAiIG5hbWU9IkNhbGxTZXF1ZW5jZSIgb3JkZXJlZD0idHJ1ZSI+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJCcmFrZUZvcmNlQXJiaXRlcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tfNU1TIiBzdGltdWxpPSJUaW1lcl81TVM/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjEwIj4KLSAgICAgIDxjdXN0b21Qcm9wZXJ0aWVzIGtleT0icHJpb3JpdHkiPgotICAgICAgICA8dmFsdWUgeHNpOnR5cGU9ImFtOlN0cmluZ09iamVjdCIgdmFsdWU9IjEwIiAvPgotICAgICAgPC9jdXN0b21Qcm9wZXJ0aWVzPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06R3JvdXAiIG5hbWU9IkNhbGxTZXF1ZW5jZSIgb3JkZXJlZD0idHJ1ZSI+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJFY3VCcmFrZUFjdHVhdG9yP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJFY3VTdG9wTGlnaHRBY3R1YXRvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iRWN1QnJha2VQZWRhbFNlbnNvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06UnVubmFibGVDYWxsIiBydW5uYWJsZT0iRWN1RGVjZWxlcmF0aW9uU2Vuc29yP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJFY3VWZWhpY2xlU3BlZWRTZW5zb3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkVjdVdoZWVsU3BlZWRTZW5zb3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IkFQZWRTZW5zb3I/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlRocm90dGxlU2Vuc29yP3R5cGU9UnVubmFibGUiIC8+Ci0gICAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJNYXNzQWlyRmxvd1NlbnNvcj90eXBlPVJ1bm5hYmxlIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJBQlNDYWxjdWxhdGlvbiIgdGFncz0iU3djQUJTQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZvdGVkRGVjZWxlcmF0aW9uUmF0ZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVm90ZWRWZWhpY2xlU3BlZWQ/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZvdGVkV2hlZWxTcGVlZD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQXJiaXRyYXRlZEJyYWtlRm9yY2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJBQlNBY3RpdmF0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQUJTTW9kZT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJBUGVkU2Vuc29yIiB0YWdzPSJTd2NFbmdpbmVTZW5zb3JzP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJBUGVkU2Vuc29yMVZvbHRhZ2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFQZWRTZW5zb3IyVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFQZWRQb3NpdGlvbjE/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJBUGVkUG9zaXRpb24yP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkFQZWRWb3RlciIgdGFncz0iU3djRW5naW5lQ29udHJvbGxlcj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQVBlZFBvc2l0aW9uMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQVBlZFBvc2l0aW9uMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZvdGVkQVBlZFBvc2l0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkJhc2VGdWVsTWFzcyIgdGFncz0iU3djRW5naW5lQ29udHJvbGxlcj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iTWFzc0FpckZsb3c/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCYXNlRnVlbE1hc3NQZXJTdHJva2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJNQUZSYXRlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkJyYWtlQWN0dWF0b3IiIHRhZ3M9IlN3Y0FCU0NhbGN1bGF0aW9uP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJDYWxpcGVyUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJCcmFrZUFjdHVhdG9yTW9uaXRvciIgdGFncz0iU3djQnJha2VGb3JjZUNhbGN1bGF0aW9uP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlRmVlZGJhY2s/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iQnJha2VGb3JjZUFjdHVhdGlvbiIgdGFncz0iU3djQUJTQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFCU0FjdGl2YXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFCU01vZGU/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VGb3JjZUN1cnJlbnQ/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iQnJha2VGb3JjZUFyYml0ZXIiIHRhZ3M9IlN3Y0JyYWtlRm9yY2VBcmJpdGVyP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJDYWxjdWxhdGVkQnJha2VGb3JjZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VTYWZldHlTdGF0ZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFyYml0cmF0ZWRCcmFrZUZvcmNlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkJyYWtlRm9yY2VDYWxjdWxhdGlvbiIgdGFncz0iU3djQnJha2VGb3JjZUNhbGN1bGF0aW9uP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlRm9yY2VGZWVkYmFjaz90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQXJiaXRyYXRlZERpYWdub3Npc1JlcXVlc3Q/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9Ik1vbml0b3JlZFZlaGljbGVTdGF0ZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VTYWZldHlMZXZlbD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkNhbGN1bGF0ZWRCcmFrZUZvcmNlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VNb25pdG9yTGV2ZWw/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iQnJha2VQZWRhbFNlbnNvckRpYWdub3NpcyIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlUGVkYWxQb3NpdGlvblZvbHRhZ2UxP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb25Wb2x0YWdlMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJCcmFrZVBlZGFsU2Vuc29yVHJhbnNsYXRpb24iIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb25Wb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VQZWRhbFBvc2l0aW9uVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb24xP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VQZWRhbFBvc2l0aW9uMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJCcmFrZVBlZGFsU2Vuc29yVm90ZXIiIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb24xP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVBlZGFsUG9zaXRpb24yP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVm90ZWRCcmFrZVBlZGFsUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iQnJha2VTYWZldHlNb25pdG9yIiB0YWdzPSJTd2NCcmFrZUZvcmNlQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlUGVkYWxQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VGb3JjZUZlZWRiYWNrP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJBcmJpdHJhdGVkRGlhZ25vc2lzUmVxdWVzdD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iTW9uaXRvcmVkVmVoaWNsZVN0YXRlP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZU1vbml0b3JMZXZlbD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlU2FmZXR5TGV2ZWw/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZVNhZmV0eVN0YXRlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkNhbGlwZXJQb3NpdGlvbkNhbGN1bGF0aW9uIiB0YWdzPSJTd2NBQlNDYWxjdWxhdGlvbj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQ2FsaXBlclBvc2l0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUZvcmNlQ3VycmVudD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkNhbGlwZXJQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJDaGVja1BsYXVzYWJpbGl0eSIgdGFncz0iU3djQnJha2VGb3JjZUNhbGN1bGF0aW9uP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWb3RlZEJyYWtlUGVkYWxQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlUGVkYWxQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJDeWxOdW1PYnNlcnZlciIgdGFncz0iU3djQ3lsTnVtT2JzZXJ2ZXI/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkN5bGluZGVyTnVtYmVyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVHJpZ2dlcmVkQ3lsaW5kZXJOdW1iZXI/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iRGVjZWxlcmF0aW9uU2Vuc29yRGlhZ25vc2lzIiB0YWdzPSJTd2NTZW5zb3JQb3N0cHJvY2Vzc2luZz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVjZWxlcmF0aW9uVm9sdGFnZTE/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkRlY2VsZXJhdGlvblZvbHRhZ2UyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkRlY2VsZXJhdGlvblNlbnNvclRyYW5zbGF0aW9uIiB0YWdzPSJTd2NTZW5zb3JQb3N0cHJvY2Vzc2luZz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVjZWxlcmF0aW9uVm9sdGFnZTE/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkRlY2VsZXJhdGlvblZvbHRhZ2UyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVjZWxlcmF0aW9uUmF0ZTE/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJEZWNlbGVyYXRpb25SYXRlMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJEZWNlbGVyYXRpb25TZW5zb3JWb3RlciIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkRlY2VsZXJhdGlvblJhdGUxP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJEZWNlbGVyYXRpb25SYXRlMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZvdGVkRGVjZWxlcmF0aW9uUmF0ZT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJEaWFnbm9zaXNBcmJpdGVyIiB0YWdzPSJTd2NCcmFrZUZvcmNlQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkFyYml0cmF0ZWREaWFnbm9zaXNSZXF1ZXN0P3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkVjdUJyYWtlQWN0dWF0b3IiIHRhZ3M9IlN3Y0FjdHVhdG9ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VGb3JjZVZvbHRhZ2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iRWN1QnJha2VQZWRhbFNlbnNvciIgdGFncz0iU3djU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iMTQ0MDAwIiB1cHBlckJvdW5kPSIxNzYwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSIxNjAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkJyYWtlUGVkYWxQb3NpdGlvblZvbHRhZ2UxP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQnJha2VQZWRhbFBvc2l0aW9uVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iRWN1RGVjZWxlcmF0aW9uU2Vuc29yIiB0YWdzPSJTd2NTZW5zb3JzP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSIxNDQwMDAiIHVwcGVyQm91bmQ9IjE3NjAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjE2MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVjZWxlcmF0aW9uVm9sdGFnZTE/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJEZWNlbGVyYXRpb25Wb2x0YWdlMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJFY3VTdG9wTGlnaHRBY3R1YXRvciIgdGFncz0iU3djQWN0dWF0b3JzP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUFwcGxpY2F0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkVjdVZlaGljbGVTcGVlZFNlbnNvciIgdGFncz0iU3djU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZlaGljbGVTcGVlZFZvbHRhZ2UxP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVmVoaWNsZVNwZWVkVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iRWN1V2hlZWxTcGVlZFNlbnNvciIgdGFncz0iU3djU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IldoZWVsU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IldoZWVsU3BlZWRWb2x0YWdlMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJJZ25pdGlvblRpbWVBY3R1YXRpb24iIHRhZ3M9IlN3Y0luaklnbkFjdHVhdGlvbj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVHJpZ2dlcmVkQ3lsaW5kZXJOdW1iZXI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9Iklnbml0aW9uVGltZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lMz90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lND90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lNT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lNj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9Iklnbml0aW9uVGltZTc/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJJZ25pdGlvblRpbWU4P3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9Iklnbml0aW9uVGltaW5nIiB0YWdzPSJTd2NFbmdpbmVDb250cm9sbGVyP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJNQUZSYXRlP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSWduaXRpb25UaW1lP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IkluamVjdGlvblRpbWVBY3R1YXRpb24iIHRhZ3M9IlN3Y0luaklnbkFjdHVhdGlvbj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVHJpZ2dlcmVkQ3lsaW5kZXJOdW1iZXI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlRvdGFsRnVlbE1hc3NQZXJTdHJva2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkluamVjdGlvblRpbWUxP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJJbmplY3Rpb25UaW1lMj90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSW5qZWN0aW9uVGltZTM/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkluamVjdGlvblRpbWU0P3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJJbmplY3Rpb25UaW1lNT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iSW5qZWN0aW9uVGltZTY/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkluamVjdGlvblRpbWU3P3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJJbmplY3Rpb25UaW1lOD90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJNYXNzQWlyRmxvd1NlbnNvciIgdGFncz0iU3djRW5naW5lU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iTUFGU2Vuc29yVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9Ik1hc3NBaXJGbG93P3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlN0b3BMaWdodEFjdHVhdG9yIiB0YWdzPSJTd2NBQlNDYWxjdWxhdGlvbj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iQXJiaXRyYXRlZEJyYWtlRm9yY2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCcmFrZUFwcGxpY2F0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlRocm90dGxlQWN0dWF0b3IiIHRhZ3M9IlN3Y0VuZ2luZUNvbnRyb2xsZXI/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IkRlc2lyZWRUaHJvdHRsZVBvc2l0aW9uP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iRGVzaXJlZFRocm90dGxlUG9zaXRpb25Wb2x0YWdlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlRocm90dGxlQ29udHJvbGxlciIgdGFncz0iU3djRW5naW5lQ29udHJvbGxlcj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVm90ZWRBUGVkUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlRocm90dGxlUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJEZXNpcmVkVGhyb3R0bGVQb3NpdGlvbj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJUaHJvdHRsZVNlbnNvciIgdGFncz0iU3djRW5naW5lU2Vuc29ycz90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVGhyb3R0bGVTZW5zb3IxVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVGhyb3R0bGVTZW5zb3IyVm9sdGFnZT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iNzIwMDAiIHVwcGVyQm91bmQ9Ijg4MDAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiBwUmVtYWluUHJvbWlsbGU9IjAuNSIgYXZlcmFnZT0iODAwMDAiIC8+Ci0gICAgICAgIDwvaXRlbXM+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlRocm90dGxlUG9zaXRpb24/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iVG90YWxGdWVsTWFzcyIgdGFncz0iU3djRW5naW5lQ29udHJvbGxlcj90eXBlPVRhZyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8YWN0aXZpdHlHcmFwaD4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVHJhbnNpZW50RnVlbE1hc3NQZXJTdHJva2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJUb3RhbEZ1ZWxNYXNzUGVyU3Ryb2tlP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlRyYW5zaWVudEZ1ZWxNYXNzIiB0YWdzPSJTd2NFbmdpbmVDb250cm9sbGVyP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJCYXNlRnVlbE1hc3NQZXJTdHJva2U/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJUcmFuc2llbnRGdWVsTWFzc1BlclN0cm9rZT90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJWZWhpY2xlU3BlZWRTZW5zb3JEaWFnbm9zaXMiIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWZWhpY2xlU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVmVoaWNsZVNwZWVkVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iVmVoaWNsZVNwZWVkU2Vuc29yVHJhbnNsYXRpb24iIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWZWhpY2xlU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVmVoaWNsZVNwZWVkVm9sdGFnZTI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWZWhpY2xlU3BlZWQxP3R5cGU9TGFiZWwiIGFjY2Vzcz0id3JpdGUiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iVmVoaWNsZVNwZWVkMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJWZWhpY2xlU3BlZWRTZW5zb3JWb3RlciIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZlaGljbGVTcGVlZDE/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IlZlaGljbGVTcGVlZDI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWb3RlZFZlaGljbGVTcGVlZD90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJWZWhpY2xlU3RhdGVNb25pdG9yIiB0YWdzPSJTd2NCcmFrZUZvcmNlQ2FsY3VsYXRpb24/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJNb25pdG9yZWRWZWhpY2xlU3RhdGU/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iV2hlZWxTcGVlZFNlbnNvckRpYWdub3NpcyIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IldoZWVsU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iV2hlZWxTcGVlZFZvbHRhZ2UyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgIDwvYWN0aXZpdHlHcmFwaD4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IldoZWVsU3BlZWRTZW5zb3JUcmFuc2xhdGlvbiIgdGFncz0iU3djU2Vuc29yUG9zdHByb2Nlc3Npbmc/dHlwZT1UYWciIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPGFjdGl2aXR5R3JhcGg+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06TGFiZWxBY2Nlc3MiIGRhdGE9IldoZWVsU3BlZWRWb2x0YWdlMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iV2hlZWxTcGVlZFZvbHRhZ2UyP3R5cGU9TGFiZWwiIGFjY2Vzcz0icmVhZCIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSI3MjAwMCIgdXBwZXJCb3VuZD0iODgwMDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIHBSZW1haW5Qcm9taWxsZT0iMC41IiBhdmVyYWdlPSI4MDAwMCIgLz4KLSAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iV2hlZWxTcGVlZDE/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJXaGVlbFNwZWVkMj90eXBlPUxhYmVsIiBhY2Nlc3M9IndyaXRlIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICA8L2FjdGl2aXR5R3JhcGg+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJXaGVlbFNwZWVkU2Vuc29yVm90ZXIiIHRhZ3M9IlN3Y1NlbnNvclBvc3Rwcm9jZXNzaW5nP3R5cGU9VGFnIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxhY3Rpdml0eUdyYXBoPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJXaGVlbFNwZWVkMT90eXBlPUxhYmVsIiBhY2Nlc3M9InJlYWQiIGRhdGFTdGFiaWxpdHk9ImluaGVyaXRlZCIgLz4KLSAgICAgICAgPGl0ZW1zIHhzaTp0eXBlPSJhbTpMYWJlbEFjY2VzcyIgZGF0YT0iV2hlZWxTcGVlZDI/dHlwZT1MYWJlbCIgYWNjZXNzPSJyZWFkIiBkYXRhU3RhYmlsaXR5PSJpbmhlcml0ZWQiIC8+Ci0gICAgICAgIDxpdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjcyMDAwIiB1cHBlckJvdW5kPSI4ODAwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgcFJlbWFpblByb21pbGxlPSIwLjUiIGF2ZXJhZ2U9IjgwMDAwIiAvPgotICAgICAgICA8L2l0ZW1zPgotICAgICAgICA8aXRlbXMgeHNpOnR5cGU9ImFtOkxhYmVsQWNjZXNzIiBkYXRhPSJWb3RlZFdoZWVsU3BlZWQ/dHlwZT1MYWJlbCIgYWNjZXNzPSJ3cml0ZSIgZGF0YVN0YWJpbGl0eT0iaW5oZXJpdGVkIiAvPgotICAgICAgPC9hY3Rpdml0eUdyYXBoPgotICAgIDwvcnVubmFibGVzPgotICAgIDxsYWJlbHMgbmFtZT0iQUJTQWN0aXZhdGlvbiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkFCU01vZGUiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJBUGVkUG9zaXRpb24xIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQVBlZFBvc2l0aW9uMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkFQZWRTZW5zb3IxVm9sdGFnZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJBUGVkU2Vuc29yMlZvbHRhZ2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQXJiaXRyYXRlZEJyYWtlRm9yY2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJBcmJpdHJhdGVkRGlhZ25vc2lzUmVxdWVzdCIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJhc2VGdWVsTWFzc1BlclN0cm9rZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJCcmFrZUFwcGxpY2F0aW9uIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VGb3JjZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJyYWtlRm9yY2VDdXJyZW50IiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VGb3JjZUZlZWRiYWNrIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VGb3JjZVZvbHRhZ2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VNb25pdG9yTGV2ZWwiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJCcmFrZVBlZGFsUG9zaXRpb24iIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJCcmFrZVBlZGFsUG9zaXRpb24xIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQnJha2VQZWRhbFBvc2l0aW9uMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJyYWtlUGVkYWxQb3NpdGlvblZvbHRhZ2UxIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJyYWtlUGVkYWxQb3NpdGlvblZvbHRhZ2UyIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkJyYWtlU2FmZXR5TGV2ZWwiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJCcmFrZVNhZmV0eVN0YXRlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iQ2FsY3VsYXRlZEJyYWtlRm9yY2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJDYWxpcGVyUG9zaXRpb24iIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJDeWxpbmRlck51bWJlciIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IkRlY2VsZXJhdGlvblJhdGUxIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iRGVjZWxlcmF0aW9uUmF0ZTIiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJEZWNlbGVyYXRpb25Wb2x0YWdlMSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJEZWNlbGVyYXRpb25Wb2x0YWdlMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJEZXNpcmVkVGhyb3R0bGVQb3NpdGlvbiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJEZXNpcmVkVGhyb3R0bGVQb3NpdGlvblZvbHRhZ2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJJZ25pdGlvblRpbWUiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJJZ25pdGlvblRpbWUxIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9Iklnbml0aW9uVGltZTIiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSWduaXRpb25UaW1lMyIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJJZ25pdGlvblRpbWU0IiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9Iklnbml0aW9uVGltZTUiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSWduaXRpb25UaW1lNiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJJZ25pdGlvblRpbWU3IiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9Iklnbml0aW9uVGltZTgiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTEiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTIiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTMiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTQiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTUiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTYiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTciIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iSW5qZWN0aW9uVGltZTgiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSIxNiIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iTUFGUmF0ZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJNQUZTZW5zb3JWb2x0YWdlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9Ik1hc3NBaXJGbG93IiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iTW9uaXRvcmVkVmVoaWNsZVN0YXRlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVGhyb3R0bGVQb3NpdGlvbiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJUaHJvdHRsZVNlbnNvcjFWb2x0YWdlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVGhyb3R0bGVTZW5zb3IyVm9sdGFnZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IlRvdGFsRnVlbE1hc3NQZXJTdHJva2UiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJUcmFuc2llbnRGdWVsTWFzc1BlclN0cm9rZSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IlRyaWdnZXJlZEN5bGluZGVyTnVtYmVyIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVmVoaWNsZVNwZWVkMSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IlZlaGljbGVTcGVlZDIiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJWZWhpY2xlU3BlZWRWb2x0YWdlMSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJWZWhpY2xlU3BlZWRWb2x0YWdlMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJWb3RlZEFQZWRQb3NpdGlvbiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IlZvdGVkQnJha2VQZWRhbFBvc2l0aW9uIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVm90ZWREZWNlbGVyYXRpb25SYXRlIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iVm90ZWRWZWhpY2xlU3BlZWQiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJWb3RlZFdoZWVsU3BlZWQiIGNvbnN0YW50PSJmYWxzZSIgYlZvbGF0aWxlPSJmYWxzZSIgZGF0YVN0YWJpbGl0eT0ibm9Qcm90ZWN0aW9uIj4KLSAgICAgIDxzaXplIHZhbHVlPSI4IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gICAgPGxhYmVscyBuYW1lPSJXaGVlbFNwZWVkMSIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjgiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IldoZWVsU3BlZWQyIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iYml0IiAvPgotICAgIDwvbGFiZWxzPgotICAgIDxsYWJlbHMgbmFtZT0iV2hlZWxTcGVlZFZvbHRhZ2UxIiBjb25zdGFudD0iZmFsc2UiIGJWb2xhdGlsZT0iZmFsc2UiIGRhdGFTdGFiaWxpdHk9Im5vUHJvdGVjdGlvbiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTYiIHVuaXQ9ImJpdCIgLz4KLSAgICA8L2xhYmVscz4KLSAgICA8bGFiZWxzIG5hbWU9IldoZWVsU3BlZWRWb2x0YWdlMiIgY29uc3RhbnQ9ImZhbHNlIiBiVm9sYXRpbGU9ImZhbHNlIiBkYXRhU3RhYmlsaXR5PSJub1Byb3RlY3Rpb24iPgotICAgICAgPHNpemUgdmFsdWU9IjE2IiB1bml0PSJiaXQiIC8+Ci0gICAgPC9sYWJlbHM+Ci0gIDwvc3dNb2RlbD4KLSAgPGh3TW9kZWw+Ci0gICAgPGRlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdERlZmluaXRpb24iIG5hbWU9IkRlZmF1bHRDb3JlIiBwdVR5cGU9IkNQVSIgZmVhdHVyZXM9Ikluc3RydWN0aW9ucy9JUENfMT90eXBlPUh3RmVhdHVyZSIgLz4KLSAgICA8ZGVmaW5pdGlvbnMgeHNpOnR5cGU9ImFtOk1lbW9yeURlZmluaXRpb24iIG5hbWU9IkRlZmF1bHRNZW1vcnkiPgotICAgICAgPHNpemUgdmFsdWU9IjQiIHVuaXQ9Ik1CIiAvPgotICAgICAgPGFjY2Vzc0xhdGVuY3kgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVDb25zdGFudCIgdmFsdWU9IjIiIC8+Ci0gICAgPC9kZWZpbml0aW9ucz4KLSAgICA8ZmVhdHVyZUNhdGVnb3JpZXMgbmFtZT0iSW5zdHJ1Y3Rpb25zIiBmZWF0dXJlVHlwZT0icGVyZm9ybWFuY2UiPgotICAgICAgPGZlYXR1cmVzIG5hbWU9IklQQ18xIiB2YWx1ZT0iMS4wIiAvPgotICAgIDwvZmVhdHVyZUNhdGVnb3JpZXM+Ci0gICAgPHN0cnVjdHVyZXMgbmFtZT0iRGVtb2NhciIgc3RydWN0dXJlVHlwZT0iU3lzdGVtIj4KLSAgICAgIDxzdHJ1Y3R1cmVzIG5hbWU9IkVDVV8xIiBzdHJ1Y3R1cmVUeXBlPSJFQ1UiPgotICAgICAgICA8c3RydWN0dXJlcyBuYW1lPSJNaWNyb2NvbnRyb2xsZXJfMSIgc3RydWN0dXJlVHlwZT0iTWljcm9jb250cm9sbGVyIj4KLSAgICAgICAgICA8bW9kdWxlcyB4c2k6dHlwZT0iYW06TWVtb3J5IiBuYW1lPSJNZW1fMSIgZnJlcXVlbmN5RG9tYWluPSJGcmVxdWVuY3lEb21haW5fMT90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iRGVmYXVsdE1lbW9yeT90eXBlPU1lbW9yeURlZmluaXRpb24iPgotICAgICAgICAgICAgPHBvcnRzIG5hbWU9InBvcnQiIGJpdFdpZHRoPSIzMiIgcHJpb3JpdHk9IjAiIHBvcnRUeXBlPSJyZXNwb25kZXIiIC8+Ci0gICAgICAgICAgPC9tb2R1bGVzPgotICAgICAgICAgIDxtb2R1bGVzIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdCIgbmFtZT0iQ29yZV8xIiBmcmVxdWVuY3lEb21haW49IkZyZXF1ZW5jeURvbWFpbl8xP3R5cGU9RnJlcXVlbmN5RG9tYWluIiBkZWZpbml0aW9uPSJEZWZhdWx0Q29yZT90eXBlPVByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbiI+Ci0gICAgICAgICAgICA8cG9ydHMgbmFtZT0icG9ydCIgYml0V2lkdGg9IjMyIiBwcmlvcml0eT0iMCIgcG9ydFR5cGU9ImluaXRpYXRvciIgLz4KLSAgICAgICAgICA8L21vZHVsZXM+Ci0gICAgICAgICAgPGNvbm5lY3Rpb25zIG5hbWU9ImNvbjEiIHBvcnQxPSJDb3JlXzEvcG9ydD90eXBlPUh3UG9ydCIgcG9ydDI9Ik1lbV8xL3BvcnQ/dHlwZT1Id1BvcnQiIC8+Ci0gICAgICAgIDwvc3RydWN0dXJlcz4KLSAgICAgIDwvc3RydWN0dXJlcz4KLSAgICA8L3N0cnVjdHVyZXM+Ci0gICAgPGRvbWFpbnMgeHNpOnR5cGU9ImFtOkZyZXF1ZW5jeURvbWFpbiIgbmFtZT0iRnJlcXVlbmN5RG9tYWluXzEiIGNsb2NrR2F0aW5nPSJmYWxzZSI+Ci0gICAgICA8ZGVmYXVsdFZhbHVlIHZhbHVlPSIyMDAuMCIgdW5pdD0iTUh6IiAvPgotICAgIDwvZG9tYWlucz4KLSAgPC9od01vZGVsPgotICA8b3NNb2RlbD4KLSAgICA8b3BlcmF0aW5nU3lzdGVtcyBuYW1lPSJPcGVyYXRpbmdTeXN0ZW0iPgotICAgICAgPHRhc2tTY2hlZHVsZXJzIG5hbWU9IlRhc2tfU2NoZWR1bGVyX0NvcmVfMSI+Ci0gICAgICAgIDxzY2hlZHVsaW5nQWxnb3JpdGhtIHhzaTp0eXBlPSJhbTpPU0VLIiAvPgotICAgICAgPC90YXNrU2NoZWR1bGVycz4KLSAgICA8L29wZXJhdGluZ1N5c3RlbXM+Ci0gIDwvb3NNb2RlbD4KLSAgPHN0aW11bGlNb2RlbD4KLSAgICA8c3RpbXVsaSB4c2k6dHlwZT0iYW06UGVyaW9kaWNTdGltdWx1cyIgbmFtZT0iVGltZXJfMTBNUyI+Ci0gICAgICA8b2Zmc2V0IHZhbHVlPSIwIiB1bml0PSJtcyIgLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSIxMCIgdW5pdD0ibXMiIC8+Ci0gICAgPC9zdGltdWxpPgotICAgIDxzdGltdWxpIHhzaTp0eXBlPSJhbTpQZXJpb2RpY1N0aW11bHVzIiBuYW1lPSJUaW1lcl8yME1TIj4KLSAgICAgIDxvZmZzZXQgdmFsdWU9IjAiIHVuaXQ9Im1zIiAvPgotICAgICAgPHJlY3VycmVuY2UgdmFsdWU9IjIwIiB1bml0PSJtcyIgLz4KLSAgICA8L3N0aW11bGk+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOlBlcmlvZGljU3RpbXVsdXMiIG5hbWU9IlRpbWVyXzVNUyI+Ci0gICAgICA8b2Zmc2V0IHZhbHVlPSIwIiB1bml0PSJtcyIgLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSI1IiB1bml0PSJtcyIgLz4KLSAgICA8L3N0aW11bGk+Ci0gIDwvc3RpbXVsaU1vZGVsPgotICA8Y29uc3RyYWludHNNb2RlbD4KLSAgICA8cmVxdWlyZW1lbnRzIHhzaTp0eXBlPSJhbTpQcm9jZXNzUmVxdWlyZW1lbnQiIG5hbWU9IkRlYWRsaW5lXzA1IiBzZXZlcml0eT0iQ3JpdGljYWwiIHByb2Nlc3M9IlRhc2tfNU1TP3R5cGU9VGFzayI+Ci0gICAgICA8bGltaXQgeHNpOnR5cGU9ImFtOlRpbWVSZXF1aXJlbWVudExpbWl0IiBsaW1pdFR5cGU9IlVwcGVyTGltaXQiIG1ldHJpYz0iUmVzcG9uc2VUaW1lIj4KLSAgICAgICAgPGxpbWl0VmFsdWUgdmFsdWU9IjUiIHVuaXQ9Im1zIiAvPgotICAgICAgPC9saW1pdD4KLSAgICA8L3JlcXVpcmVtZW50cz4KLSAgICA8cmVxdWlyZW1lbnRzIHhzaTp0eXBlPSJhbTpQcm9jZXNzUmVxdWlyZW1lbnQiIG5hbWU9IkRlYWRsaW5lXzEwIiBzZXZlcml0eT0iQ3JpdGljYWwiIHByb2Nlc3M9IlRhc2tfMTBNUz90eXBlPVRhc2siPgotICAgICAgPGxpbWl0IHhzaTp0eXBlPSJhbTpUaW1lUmVxdWlyZW1lbnRMaW1pdCIgbGltaXRUeXBlPSJVcHBlckxpbWl0IiBtZXRyaWM9IlJlc3BvbnNlVGltZSI+Ci0gICAgICAgIDxsaW1pdFZhbHVlIHZhbHVlPSIxMCIgdW5pdD0ibXMiIC8+Ci0gICAgICA8L2xpbWl0PgotICAgIDwvcmVxdWlyZW1lbnRzPgotICAgIDxyZXF1aXJlbWVudHMgeHNpOnR5cGU9ImFtOlByb2Nlc3NSZXF1aXJlbWVudCIgbmFtZT0iRGVhZGxpbmVfMjAiIHNldmVyaXR5PSJDcml0aWNhbCIgcHJvY2Vzcz0iVGFza18yME1TP3R5cGU9VGFzayI+Ci0gICAgICA8bGltaXQgeHNpOnR5cGU9ImFtOlRpbWVSZXF1aXJlbWVudExpbWl0IiBsaW1pdFR5cGU9IlVwcGVyTGltaXQiIG1ldHJpYz0iUmVzcG9uc2VUaW1lIj4KLSAgICAgICAgPGxpbWl0VmFsdWUgdmFsdWU9IjIwIiB1bml0PSJtcyIgLz4KLSAgICAgIDwvbGltaXQ+Ci0gICAgPC9yZXF1aXJlbWVudHM+Ci0gIDwvY29uc3RyYWludHNNb2RlbD4KLTwvYW06QW1hbHRoZWE+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiYTM2ZGIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0JPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+Ci0JCTxncm91cElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbjwvZ3JvdXBJZD4KLQkJPGFydGlmYWN0SWQ+cGFyZW50PC9hcnRpZmFjdElkPgotCQk8dmVyc2lvbj4xLjAuMC1TTkFQU0hPVDwvdmVyc2lvbj4KLQk8L3BhcmVudD4KLQkKLQk8cHJvcGVydGllcz4KLQkJPHBsdWdpbi1pZD5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwPC9wbHVnaW4taWQ+Ci0JCTxleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb24+Li4vLi4vLi4vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXI8L2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbj4KLQk8L3Byb3BlcnRpZXM+IAkKLQotCTxhcnRpZmFjdElkPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHA8L2FydGlmYWN0SWQ+Ci0JPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KLQotCTxidWlsZD4KLQkJPHBsdWdpbnM+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1hbnRydW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KLQotCQkJCTxleGVjdXRpb25zPgotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPnJlcGxhY2UtYnVpbGQtdG9rZW48L2lkPgotCQkJCQkJPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgotCi0JCQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJCQk8dGFyZ2V0PgotCQkJCQkJCQkgPGNvcHkgdG9kaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iPgotCQkJCQkJCQkJPGZpbGVzZXQgZGlyPSIuLyI+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuZXh0ZXJuYWxUb29sQnVpbGRlcnMvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iZGF0YWJhc2UvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iYmluLyIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9InRhcmdldC8iIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UubXlseW4qIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMucHJlZnMiIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIqKi8uZ2l0aWdub3JlIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcG9tLnhtbCIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9IioqL3JlbGVhc2UuKiIgLz4KLQkJCQkJCQkJCTxpbmNsdWRlIG5hbWU9IioqIiAvPgotCQkJCQkJCQkJPC9maWxlc2V0PgotCQkJCQkJCQkgPC9jb3B5PiAKLQkJCQkJCQkJIAotCQkJCQkJCQkgCQkgPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0ic2ciCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0icyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLmVtZi5jZG8ucmVsZW5nLnZlcnNpb24uVmVyc2lvbkJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCQkJCQkJCTwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxpZD5hdXRvLWNsZWFuPC9pZD4KLQkJCQkJCTxwaGFzZT5jbGVhbjwvcGhhc2U+Ci0KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTx0YXJnZXQ+Ci0JCQkJCQkJCSA8ZGVsZXRlICBkaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iLz4KLQkJCQkJCSAgIDwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCTwvZXhlY3V0aW9ucz4KLQotCQkJPC9wbHVnaW4+Ci0JCTwvcGx1Z2lucz4KLQk8L2J1aWxkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvc3JjLy5naXRpZ25vcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3NyYy8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvc3JjLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjgzMzdlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLmNsYXNzcGF0aAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxjbGFzc3BhdGg+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KYXZhU0UtMS44Ii8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ieHRlbmQtZ2VuIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Ci08L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0ubGF1bmNoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS5sYXVuY2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2YjNmOWUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS5sYXVuY2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KLTxsYXVuY2hDb25maWd1cmF0aW9uIHR5cGU9Im9yZy5lY2xpcHNlLmFudC5BbnRCdWlsZGVyTGF1bmNoQ29uZmlndXJhdGlvblR5cGUiPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWkuQVRUUl9UQVJHRVRTX1VQREFURUQiIHZhbHVlPSJ0cnVlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aS5ERUZBVUxUX1ZNX0lOU1RBTEwiIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWlTRVRfSU5QVVRIQU5ETEVSIiB2YWx1ZT0iZmFsc2UiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLkFUVFJfUkVGUkVTSF9TQ09QRSIgdmFsdWU9IiR7d29ya2luZ19zZXQ6Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cmVzb3VyY2VzJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuY2FwdHVyZV9vdXRwdXQiIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5BVFRSX0NPTlNPTEVfT1VUUFVUX09OIiB2YWx1ZT0iZmFsc2UiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuQVRUUl9MQVVOQ0hfSU5fQkFDS0dST1VORCIgdmFsdWU9ImZhbHNlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5DTEFTU1BBVEhfUFJPVklERVIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQudWkuQW50Q2xhc3NwYXRoUHJvdmlkZXIiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5ERUZBVUxUX0NMQVNTUEFUSCIgdmFsdWU9InRydWUiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLlBST0pFQ1RfQVRUUiIgdmFsdWU9IiIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfQlVJTERFUl9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9CVUlMRF9TQ09QRSIgdmFsdWU9IiR7d29ya2luZ19zZXQ6Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cmVzb3VyY2VzJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5jbGFzc3BhdGgmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uZXh0ZXJuYWxUb29sQnVpbGRlcnMmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uZ2l0aWdub3JlJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLnByb2plY3QmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uc2V0dGluZ3MmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9idWlsZC5wcm9wZXJ0aWVzJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vTUVUQS1JTkYmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9wbHVnaW4ueG1sJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vcG9tLnhtbCZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3RhcmdldCZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3h0ZW5kLWdlbiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0xPQ0FUSU9OIiB2YWx1ZT0iJHtwcm9qZWN0X2xvYzovYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybX0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9SVU5fQlVJTERfS0lORFMiIHZhbHVlPSJpbmNyZW1lbnRhbCxhdXRvLCIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9UT09MX0FSR1VNRU5UUyIgdmFsdWU9Ii1EYnVpbGQucHJvamVjdD0ke3Byb2plY3RfbG9jOi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtfSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfVFJJR0dFUlNfQ09ORklHVVJFRCIgdmFsdWU9InRydWUiLz4KLTwvbGF1bmNoQ29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWI2Y2U4ZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTxwcm9qZWN0IG5hbWU9ImNvcHlFeGFtcGxlIiBkZWZhdWx0PSJtYWluIiBiYXNlZGlyPSIuLi8uLiI+Ci0KLQk8cHJvcGVydHkgbmFtZT0iaW5zdGFsbGVyIiB2YWx1ZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIgLz4KLQk8aW1wb3J0IGZpbGU9Ii4uLy4uLy4uLy4uL2J1aWxkLyR7aW5zdGFsbGVyfS9jb3B5RXhhbXBsZUxpYi5hbnQiIG9wdGlvbmFsPSJ0cnVlIiAvPgotCTxiYXNlbmFtZSBmaWxlPSIke2J1aWxkLnByb2plY3R9IiBwcm9wZXJ0eT0icHJvamVjdCIgLz4KLQotCTx0YXJnZXQgbmFtZT0ibWFpbiI+Ci0JCTxjb3B5RXhhbXBsZSBwcm9qZWN0PSIke3Byb2plY3R9IiAvPgotCTwvdGFyZ2V0PgotCi08L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjIxZDEzMi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybTwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnh0ZXh0LnVpLnNoYXJlZC54dGV4dEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXI8L25hbWU+Ci0JCQk8dHJpZ2dlcnM+YXV0byxmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+Ci0JCQk8YXJndW1lbnRzPgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PkxhdW5jaENvbmZpZ0hhbmRsZTwva2V5PgotCQkJCQk8dmFsdWU+Jmx0O3Byb2plY3QmZ3Q7Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLmxhdW5jaDwvdmFsdWU+Ci0JCQkJPC9kaWN0aW9uYXJ5PgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PmluY2NsZWFuPC9rZXk+Ci0JCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4KLQkJCQk8L2RpY3Rpb25hcnk+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuZHMuY29yZS5idWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnh0ZXh0LnVpLnNoYXJlZC54dGV4dE5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlmMjZjMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLWVuY29kaW5nLzxwcm9qZWN0Pj1VVEYtOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTI5N2I5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjAKLUJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKLUJ1bmRsZS1OYW1lOiBBUFA0TUMgTW9kZWwgVHJhbnNmb3JtYXRpb24gRXhhbXBsZSAtIE0yTQotQnVuZGxlLVN5bWJvbGljTmFtZTogYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgQVBQNE1DCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOAotUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmVtZjtidW5kbGUtdmVyc2lvbj0iMi42LjAiLAotIGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbCwKLSBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWw7YnVuZGxlLXZlcnNpb249IjAuOS45IgotQXV0b21hdGljLU1vZHVsZS1OYW1lOiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtCi1JbXBvcnQtUGFja2FnZTogamF2YXguaW5qZWN0O3ZlcnNpb249IjEuMC4wIiwKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZSwKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucywKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcywKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLAotIG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50O3ZlcnNpb249IjEuNC4wIiwKLSBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9uczt2ZXJzaW9uPSJbMS4zLjAsMi4wLjApIjtyZXNvbHV0aW9uOj1vcHRpb25hbCwKLSBvcmcuc2xmNGo7dmVyc2lvbj0iMS43LjIiCi1TZXJ2aWNlLUNvbXBvbmVudDogT1NHSS1JTkYvbW9kZWwubG9hZGVyLkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLnhtbCwKLSBPU0dJLUlORi90ZW1wbGF0ZXMuU1dUcmFuc2Zvcm1lci54bWwsCi0gT1NHSS1JTkYvdGVtcGxhdGVzLk9TVHJhbnNmb3JtZXIueG1sLAotIE9TR0ktSU5GL3RlbXBsYXRlcy5NYXBwaW5nVHJhbnNmb3JtZXIueG1sLAotIE9TR0ktSU5GL3RlbXBsYXRlcy5MYWJlbFRyYW5zZm9ybWVyLnhtbCwKLSBPU0dJLUlORi90ZW1wbGF0ZXMuSFdUcmFuc2Zvcm1lci54bWwsCi0gT1NHSS1JTkYvY29uZmlndXJhdGlvbi5NMk1UcmFuc2Zvcm1hdGlvbkNvbmZpZy54bWwsCi0gT1NHSS1JTkYvdGVtcGxhdGVzLkFtYWx0aGVhTW9kZWwyTW9kZWxUcmFuc2Zvcm1lci54bWwKLUJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5Ci1CdW5kbGUtQ2xhc3NQYXRoOiAuCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL2NvbmZpZ3VyYXRpb24uTTJNVHJhbnNmb3JtYXRpb25Db25maWcueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9PU0dJLUlORi9jb25maWd1cmF0aW9uLk0yTVRyYW5zZm9ybWF0aW9uQ29uZmlnLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q2ZjZhZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL2NvbmZpZ3VyYXRpb24uTTJNVHJhbnNmb3JtYXRpb25Db25maWcueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxzY3I6Y29tcG9uZW50IHhtbG5zOnNjcj0iaHR0cDovL3d3dy5vc2dpLm9yZy94bWxucy9zY3IvdjEuMy4wIiBuYW1lPSJjb25maWd1cmF0aW9uLk0yTVRyYW5zZm9ybWF0aW9uQ29uZmlnIj4KLSAgIDxwcm9wZXJ0eSBuYW1lPSJ0cmFuc2Zvcm1hdGlvbiIgdmFsdWU9IkFtYWx0aGVhMlNhbXBsZU1vZGVsIi8+Ci0gICA8c2VydmljZT4KLSAgICAgIDxwcm92aWRlIGludGVyZmFjZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuZXhlY3V0aW9udHlwZS5JTW9kZWxUb01vZGVsQ29uZmlnIi8+Ci0gICA8L3NlcnZpY2U+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0iYW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIiIGludGVyZmFjZT0ibW9kZWwubG9hZGVyLklNdWx0aUZpbGVMb2FkZXIiIG5hbWU9ImFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyIi8+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0iaUN1c3RvbU9iamVjdHNTdG9yZSIgaW50ZXJmYWNlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5JQ3VzdG9tT2JqZWN0c1N0b3JlIiBuYW1lPSJpQ3VzdG9tT2JqZWN0c1N0b3JlIi8+Ci0gICA8aW1wbGVtZW50YXRpb24gY2xhc3M9ImNvbmZpZ3VyYXRpb24uTTJNVHJhbnNmb3JtYXRpb25Db25maWciLz4KLTwvc2NyOmNvbXBvbmVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL21vZGVsLmxvYWRlci5BbWFsdGhlYU11bHRpRmlsZUxvYWRlci54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL21vZGVsLmxvYWRlci5BbWFsdGhlYU11bHRpRmlsZUxvYWRlci54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljZmI0OWYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9PU0dJLUlORi9tb2RlbC5sb2FkZXIuQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4xLjAiIG5hbWU9Im1vZGVsLmxvYWRlci5BbWFsdGhlYU11bHRpRmlsZUxvYWRlciI+Ci0gICA8c2VydmljZT4KLSAgICAgIDxwcm92aWRlIGludGVyZmFjZT0ibW9kZWwubG9hZGVyLklNdWx0aUZpbGVMb2FkZXIiLz4KLSAgIDwvc2VydmljZT4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0ibW9kZWwubG9hZGVyLkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyIi8+Ci08L3Njcjpjb21wb25lbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9PU0dJLUlORi90ZW1wbGF0ZXMuQW1hbHRoZWFNb2RlbDJNb2RlbFRyYW5zZm9ybWVyLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vT1NHSS1JTkYvdGVtcGxhdGVzLkFtYWx0aGVhTW9kZWwyTW9kZWxUcmFuc2Zvcm1lci54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwYjBmMWMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9PU0dJLUlORi90ZW1wbGF0ZXMuQW1hbHRoZWFNb2RlbDJNb2RlbFRyYW5zZm9ybWVyLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08c2NyOmNvbXBvbmVudCB4bWxuczpzY3I9Imh0dHA6Ly93d3cub3NnaS5vcmcveG1sbnMvc2NyL3YxLjMuMCIgbmFtZT0idGVtcGxhdGVzLkFtYWx0aGVhTW9kZWwyTW9kZWxUcmFuc2Zvcm1lciI+Ci0gICA8cHJvcGVydHkgbmFtZT0idHJhbnNmb3JtYXRpb24iIHZhbHVlPSJBbWFsdGhlYTJTYW1wbGVNb2RlbCIvPgotICAgPHNlcnZpY2U+Ci0gICAgICA8cHJvdmlkZSBpbnRlcmZhY2U9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLk1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyIi8+Ci0gICA8L3NlcnZpY2U+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0iY3VzdG9tT2Jqc1N0b3JlIiBpbnRlcmZhY2U9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLklDdXN0b21PYmplY3RzU3RvcmUiIG5hbWU9ImN1c3RvbU9ianNTdG9yZSIvPgotICAgPHJlZmVyZW5jZSBjYXJkaW5hbGl0eT0iMS4uMSIgZmllbGQ9Imh3IiBpbnRlcmZhY2U9InRlbXBsYXRlcy5IV1RyYW5zZm9ybWVyIiBuYW1lPSJodyIgc2NvcGU9InByb3RvdHlwZV9yZXF1aXJlZCIvPgotICAgPHJlZmVyZW5jZSBjYXJkaW5hbGl0eT0iMS4uMSIgZmllbGQ9Im10IiBpbnRlcmZhY2U9InRlbXBsYXRlcy5NYXBwaW5nVHJhbnNmb3JtZXIiIG5hbWU9Im10IiBzY29wZT0icHJvdG90eXBlX3JlcXVpcmVkIi8+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0ib3MiIGludGVyZmFjZT0idGVtcGxhdGVzLk9TVHJhbnNmb3JtZXIiIG5hbWU9Im9zIiBzY29wZT0icHJvdG90eXBlX3JlcXVpcmVkIi8+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0ic3ciIGludGVyZmFjZT0idGVtcGxhdGVzLlNXVHJhbnNmb3JtZXIiIG5hbWU9InN3IiBzY29wZT0icHJvdG90eXBlX3JlcXVpcmVkIi8+Ci0gICA8aW1wbGVtZW50YXRpb24gY2xhc3M9InRlbXBsYXRlcy5BbWFsdGhlYU1vZGVsMk1vZGVsVHJhbnNmb3JtZXIiLz4KLTwvc2NyOmNvbXBvbmVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL3RlbXBsYXRlcy5IV1RyYW5zZm9ybWVyLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vT1NHSS1JTkYvdGVtcGxhdGVzLkhXVHJhbnNmb3JtZXIueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzJjYzU1Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vT1NHSS1JTkYvdGVtcGxhdGVzLkhXVHJhbnNmb3JtZXIueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4zLjAiIG5hbWU9InRlbXBsYXRlcy5IV1RyYW5zZm9ybWVyIj4KLSAgIDxzZXJ2aWNlIHNjb3BlPSJwcm90b3R5cGUiPgotICAgICAgPHByb3ZpZGUgaW50ZXJmYWNlPSJ0ZW1wbGF0ZXMuSFdUcmFuc2Zvcm1lciIvPgotICAgPC9zZXJ2aWNlPgotICAgPHJlZmVyZW5jZSBjYXJkaW5hbGl0eT0iMS4uMSIgZmllbGQ9ImN1c3RvbU9ianNTdG9yZSIgaW50ZXJmYWNlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5JQ3VzdG9tT2JqZWN0c1N0b3JlIiBuYW1lPSJjdXN0b21PYmpzU3RvcmUiLz4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0idGVtcGxhdGVzLkhXVHJhbnNmb3JtZXIiLz4KLTwvc2NyOmNvbXBvbmVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL3RlbXBsYXRlcy5MYWJlbFRyYW5zZm9ybWVyLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vT1NHSS1JTkYvdGVtcGxhdGVzLkxhYmVsVHJhbnNmb3JtZXIueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhM2Y1ODlkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vT1NHSS1JTkYvdGVtcGxhdGVzLkxhYmVsVHJhbnNmb3JtZXIueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4zLjAiIG5hbWU9InRlbXBsYXRlcy5MYWJlbFRyYW5zZm9ybWVyIj4KLSAgIDxzZXJ2aWNlIHNjb3BlPSJwcm90b3R5cGUiPgotICAgICAgPHByb3ZpZGUgaW50ZXJmYWNlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5JU3ViVHJhbnNmb3JtZXIiLz4KLSAgIDwvc2VydmljZT4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0idGVtcGxhdGVzLkxhYmVsVHJhbnNmb3JtZXIiLz4KLTwvc2NyOmNvbXBvbmVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL3RlbXBsYXRlcy5NYXBwaW5nVHJhbnNmb3JtZXIueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9PU0dJLUlORi90ZW1wbGF0ZXMuTWFwcGluZ1RyYW5zZm9ybWVyLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2UwMDlmYS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL3RlbXBsYXRlcy5NYXBwaW5nVHJhbnNmb3JtZXIueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4zLjAiIG5hbWU9InRlbXBsYXRlcy5NYXBwaW5nVHJhbnNmb3JtZXIiPgotICAgPHNlcnZpY2Ugc2NvcGU9InByb3RvdHlwZSI+Ci0gICAgICA8cHJvdmlkZSBpbnRlcmZhY2U9InRlbXBsYXRlcy5NYXBwaW5nVHJhbnNmb3JtZXIiLz4KLSAgIDwvc2VydmljZT4KLSAgIDxyZWZlcmVuY2UgY2FyZGluYWxpdHk9IjEuLjEiIGZpZWxkPSJjdXN0b21PYmpzU3RvcmUiIGludGVyZmFjZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuSUN1c3RvbU9iamVjdHNTdG9yZSIgbmFtZT0iY3VzdG9tT2Jqc1N0b3JlIi8+Ci0gICA8aW1wbGVtZW50YXRpb24gY2xhc3M9InRlbXBsYXRlcy5NYXBwaW5nVHJhbnNmb3JtZXIiLz4KLTwvc2NyOmNvbXBvbmVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL09TR0ktSU5GL3RlbXBsYXRlcy5PU1RyYW5zZm9ybWVyLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vT1NHSS1JTkYvdGVtcGxhdGVzLk9TVHJhbnNmb3JtZXIueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjZhNWZhLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vT1NHSS1JTkYvdGVtcGxhdGVzLk9TVHJhbnNmb3JtZXIueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4zLjAiIG5hbWU9InRlbXBsYXRlcy5PU1RyYW5zZm9ybWVyIj4KLSAgIDxzZXJ2aWNlIHNjb3BlPSJwcm90b3R5cGUiPgotICAgICAgPHByb3ZpZGUgaW50ZXJmYWNlPSJ0ZW1wbGF0ZXMuT1NUcmFuc2Zvcm1lciIvPgotICAgPC9zZXJ2aWNlPgotICAgPGltcGxlbWVudGF0aW9uIGNsYXNzPSJ0ZW1wbGF0ZXMuT1NUcmFuc2Zvcm1lciIvPgotPC9zY3I6Y29tcG9uZW50PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vT1NHSS1JTkYvdGVtcGxhdGVzLlNXVHJhbnNmb3JtZXIueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9PU0dJLUlORi90ZW1wbGF0ZXMuU1dUcmFuc2Zvcm1lci54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkOGEyZmMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9PU0dJLUlORi90ZW1wbGF0ZXMuU1dUcmFuc2Zvcm1lci54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08c2NyOmNvbXBvbmVudCB4bWxuczpzY3I9Imh0dHA6Ly93d3cub3NnaS5vcmcveG1sbnMvc2NyL3YxLjMuMCIgbmFtZT0idGVtcGxhdGVzLlNXVHJhbnNmb3JtZXIiPgotICAgPHNlcnZpY2Ugc2NvcGU9InByb3RvdHlwZSI+Ci0gICAgICA8cHJvdmlkZSBpbnRlcmZhY2U9InRlbXBsYXRlcy5TV1RyYW5zZm9ybWVyIi8+Ci0gICA8L3NlcnZpY2U+Ci0gICA8aW1wbGVtZW50YXRpb24gY2xhc3M9InRlbXBsYXRlcy5TV1RyYW5zZm9ybWVyIi8+Ci08L3Njcjpjb21wb25lbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9hYm91dC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ZWI3NDEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSMgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSMgCi0jICAgQ29udHJpYnV0b3JzOgotIyAgCSBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotc291cmNlLi4gPSBzcmMvLFwKLSAgICAgICAgICAgeHRlbmQtZ2VuLwotb3V0cHV0Li4gPSBiaW4vCi1iaW4uaW5jbHVkZXMgPSBNRVRBLUlORi8sXAotICAgICAgICAgICAgICAgLixcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbCxcCi0gICAgICAgICAgICAgICBPU0dJLUlORi8KLXNyYy5pbmNsdWRlcyA9IGVwbC0yLjAuaHRtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Ci0gICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+Ci0gICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgIGJvZHkgewotICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKLSAgICAgIH0KLSAgICAgIGgxewotICAgICAgICBmb250LXNpemU6MS41ZW07Ci0gICAgICB9Ci0gICAgICBoMnsKLSAgICAgICAgZm9udC1zaXplOjFlbTsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKLSAgICAgICAgbWFyZ2luLXRvcDoxZW07Ci0gICAgICB9Ci0gICAgICBwIHsKLSAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOwotICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKLSAgICAgIH0KLSAgICAgIHVsLCBvbHsKLSAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7Ci0gICAgICB9Ci0gICAgPC9zdHlsZT4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KLSAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQotICAgICAgUFVCTElDIExJQ0VOU0UgKCZsZHF1bztBR1JFRU1FTlQmcmRxdW87KS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgotICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJiMwMzk7UyBBQ0NFUFRBTkNFIE9GIFRISVMgQUdSRUVNRU5ULgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImRlZmluaXRpb25zIj4xLiBERUZJTklUSU9OUzwvaDI+Ci0gICAgPHA+JmxkcXVvO0NvbnRyaWJ1dGlvbiZyZHF1bzsgbWVhbnM6PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAotICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPgotICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KLSAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgotICAgICAgICA8L3VsPgotICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQotICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KLSAgICAgICAgJmxkcXVvO29yaWdpbmF0ZXMmcmRxdW87IGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAotICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJiMwMzk7cyBiZWhhbGYuCi0gICAgICAgIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgY2hhbmdlcyBvciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gdGhhdAotICAgICAgICBhcmUgbm90IE1vZGlmaWVkIFdvcmtzLgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxwPiZsZHF1bztDb250cmlidXRvciZyZHF1bzsgbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+Ci0gICAgPHA+JmxkcXVvO0xpY2Vuc2VkIFBhdGVudHMmcmRxdW87IG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKLSAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKLSAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1Byb2dyYW0mcmRxdW87IG1lYW5zIHRoZSBDb250cmlidXRpb25zIERpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzCi0gICAgICBBZ3JlZW1lbnQuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztSZWNpcGllbnQmcmRxdW87IG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztEZXJpdmF0aXZlIFdvcmtzJnJkcXVvOyBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCi0gICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCi0gICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCi0gICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO01vZGlmaWVkIFdvcmtzJnJkcXVvOyBzaGFsbCBtZWFuIGFueSB3b3JrIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0gdGhhdAotICAgICAgcmVzdWx0cyBmcm9tIGFuIGFkZGl0aW9uIHRvLCBkZWxldGlvbiBmcm9tLCBvciBtb2RpZmljYXRpb24gb2YgdGhlCi0gICAgICBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbSwgaW5jbHVkaW5nLCBmb3IgcHVycG9zZXMgb2YgY2xhcml0eSBhbnkgbmV3IGZpbGUKLSAgICAgIGluIFNvdXJjZSBDb2RlIGZvcm0gdGhhdCBjb250YWlucyBhbnkgY29udGVudHMgb2YgdGhlIFByb2dyYW0uIE1vZGlmaWVkCi0gICAgICBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IGNvbnRhaW4gb25seSBkZWNsYXJhdGlvbnMsIGludGVyZmFjZXMsCi0gICAgICB0eXBlcywgY2xhc3Nlcywgc3RydWN0dXJlcywgb3IgZmlsZXMgb2YgdGhlIFByb2dyYW0gc29sZWx5IGluIGVhY2ggY2FzZQotICAgICAgaW4gb3JkZXIgdG8gbGluayB0bywgYmluZCBieSBuYW1lLCBvciBzdWJjbGFzcyB0aGUgUHJvZ3JhbSBvciBNb2RpZmllZAotICAgICAgV29ya3MgdGhlcmVvZi4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO0Rpc3RyaWJ1dGUmcmRxdW87IG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCi0gICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87U291cmNlIENvZGUmcmRxdW87IG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZwotICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKLSAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1NlY29uZGFyeSBMaWNlbnNlJnJkcXVvOyBtZWFucyBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotICAgICAgVmVyc2lvbiAyLjAsIG9yIGFueSBsYXRlciB2ZXJzaW9ucyBvZiB0aGF0IGxpY2Vuc2UsIGluY2x1ZGluZyBhbnkKLSAgICAgIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcyBpZGVudGlmaWVkIGJ5IHRoZSBpbml0aWFsCi0gICAgICBDb250cmlidXRvci4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJncmFudC1vZi1yaWdodHMiPjIuIEdSQU5UIE9GIFJJR0hUUzwvaDI+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQotICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0Ci0gICAgICAgIGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCi0gICAgICAgIHB1YmxpY2x5IHBlcmZvcm0sIERpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCi0gICAgICAgIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQotICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50Ci0gICAgICAgIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCi0gICAgICAgIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKLSAgICAgICAgaWYgYW55LCBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsCi0gICAgICAgIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwKLSAgICAgICAgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2gKLSAgICAgICAgYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkCi0gICAgICAgIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueQotICAgICAgICBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIKLSAgICAgICAgc2UgaXMgbGljZW5zZWQgaGVyZXVuZGVyLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUKLSAgICAgICAgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKLSAgICAgICAgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCi0gICAgICAgIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuCi0gICAgICAgIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMKLSAgICAgICAgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKLSAgICAgICAgcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzCi0gICAgICAgIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZQotICAgICAgICByZXNwb25zaWJpbGl0eSB0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLAotICAgICAgICBpZiBhbnkuIEZvciBleGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvCi0gICAgICAgIGFsbG93IFJlY2lwaWVudCB0byBEaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQmIzAzOTtzCi0gICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCi0gICAgICA8L2xpPgotICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKLSAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKLSAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgotICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAotICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQmIzAzOTtzIHJlY2VpcHQgb2YgdGhlCi0gICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgotICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KLSAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KLSAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55Ci0gICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCi0gICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KLSAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQotICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPgotICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCi0gICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKLSAgICAgICAgPHVsPgotICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCi0gICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcwotICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcwotICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOwotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKLSAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKLSAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOwotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cyYjMDM5OyByaWdodHMgaW4gdGhlCi0gICAgICAgICAgICBTb3VyY2UgQ29kZSB1bmRlciBzZWN0aW9uIDMuMjsgYW5kCi0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aXYpIHJlcXVpcmVzIGFueSBzdWJzZXF1ZW50IGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieSBhbnkgcGFydHkKLSAgICAgICAgICAgIHRvIGJlIHVuZGVyIGEgbGljZW5zZSB0aGF0IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgc2VjdGlvbiAzLgotICAgICAgICAgIDwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+My4yIFdoZW4gdGhlIFByb2dyYW0gaXMgRGlzdHJpYnV0ZWQgYXMgU291cmNlIENvZGU6PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBvciBpZiB0aGUgUHJvZ3JhbSAoaSkKLSAgICAgICAgaXMgY29tYmluZWQgd2l0aCBvdGhlciBtYXRlcmlhbCBpbiBhIHNlcGFyYXRlIGZpbGUgb3IgZmlsZXMgbWFkZSBhdmFpbGFibGUKLSAgICAgICAgdW5kZXIgYSBTZWNvbmRhcnkgTGljZW5zZSwgYW5kIChpaSkgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IgYXR0YWNoZWQgdG8KLSAgICAgICAgdGhlIFNvdXJjZSBDb2RlIHRoZSBub3RpY2UgZGVzY3JpYmVkIGluIEV4aGliaXQgQSBvZiB0aGlzIEFncmVlbWVudCwKLSAgICAgICAgdGhlbiB0aGUgUHJvZ3JhbSBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHN1Y2gKLSAgICAgICAgU2Vjb25kYXJ5IExpY2Vuc2VzLCBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uPC9saT4KLSAgICA8L3VsPgotICAgIDxwPjMuMyBDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssCi0gICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzLCBkaXNjbGFpbWVycyBvZiB3YXJyYW50eSwgb3IgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5Ci0gICAgICAoJmxzcXVvO25vdGljZXMmcnNxdW87KSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKLSAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKLSAgICAgIG5vdGljZXMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KLSAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcwotICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCi0gICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKLSAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKLSAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgotICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQotICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgmbGRxdW87Q29tbWVyY2lhbCBDb250cmlidXRvciZyZHF1bzspCi0gICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCi0gICAgICAoJmxkcXVvO0luZGVtbmlmaWVkIENvbnRyaWJ1dG9yJnJkcXVvOykgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cwotICAgICAgKGNvbGxlY3RpdmVseSAmbGRxdW87TG9zc2VzJnJkcXVvOykgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKLSAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50Ci0gICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCi0gICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCi0gICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZwotICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCi0gICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCi0gICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCi0gICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCi0gICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAotICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KLSAgICA8L3A+Ci0gICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQotICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLSAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi0gICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKLSAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3ImIzAzOTtzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgotICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKLSAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKLSAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKLSAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+Ci0gICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAotICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOICZsZHF1bztBUyBJUyZyZHF1bzsgQkFTSVMsIFdJVEhPVVQKLSAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCi0gICAgICBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCi0gICAgICBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzCi0gICAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCi0gICAgICBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKLSAgICAgIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKLSAgICAgIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlCi0gICAgICB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yCi0gICAgICBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJkaXNjbGFpbWVyIj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvaDI+Ci0gICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAotICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZCi0gICAgICBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gICAgICBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwKLSAgICAgIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gICAgICBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gICAgICBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMKLSAgICAgIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJnZW5lcmFsIj43LiBHRU5FUkFMPC9oMj4KLSAgICA8cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgotICAgICAgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mIHRoZQotICAgICAgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24gYnkgdGhlCi0gICAgICBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0gZXh0ZW50Ci0gICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuCi0gICAgPC9wPgotICAgIDxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKLSAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmCi0gICAgICAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKQotICAgICAgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyBncmFudGVkCi0gICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLSAgICA8L3A+Ci0gICAgPHA+QWxsIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0bwotICAgICAgY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZAotICAgICAgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nCi0gICAgICBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAotICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCi0gICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCYjMDM5O3Mgb2JsaWdhdGlvbnMgdW5kZXIKLSAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCi0gICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgotICAgIDwvcD4KLSAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCi0gICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKLSAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcwotICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAotICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0Ci0gICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50Ci0gICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCi0gICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKLSAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KLSAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKLSAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCi0gICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCi0gICAgPC9wPgotICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAotICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55Ci0gICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAotICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAotICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCi0gICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgotICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBICZuZGFzaDsgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KLSAgICA8cD4mbGRxdW87VGhpcyBTb3VyY2UgQ29kZSBtYXkgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIAotICAgIAlTZWNvbmRhcnkgTGljZW5zZXMgd2hlbiB0aGUgY29uZGl0aW9ucyBmb3Igc3VjaCBhdmFpbGFiaWxpdHkgc2V0IGZvcnRoIAotICAgIAlpbiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgdi4gMi4wIGFyZSBzYXRpc2ZpZWQ6IHtuYW1lIGxpY2Vuc2UocyksCi0gICAgCXZlcnNpb24ocyksIGFuZCBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgaGVyZX0uJnJkcXVvOwotICAgIDwvcD4KLSAgICA8YmxvY2txdW90ZT4KLSAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKLSAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgotICAgICAgPC9wPgotICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKLSAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKLSAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKLSAgICAgICAgc3VjaCBhIG5vdGljZS4KLSAgICAgIDwvcD4KLSAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KLSAgICA8L2Jsb2NrcXVvdGU+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2xpYi9hbWFsdGhlYS5qYXIgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2xpYi9hbWFsdGhlYS5qYXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZjMwZTMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9saWIvYW1hbHRoZWEuamFyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9wb20ueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9wb20ueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTFkOGYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vcG9tLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLQl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIj4KLQotCTxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KLQotCTxwYXJlbnQ+Ci0JCTxyZWxhdGl2ZVBhdGg+Li4vLi4vLi4vcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgotCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb248L2dyb3VwSWQ+Ci0JCTxhcnRpZmFjdElkPnBhcmVudDwvYXJ0aWZhY3RJZD4KLQkJPHZlcnNpb24+MS4wLjAtU05BUFNIT1Q8L3ZlcnNpb24+Ci0JPC9wYXJlbnQ+Ci0KLQk8cHJvcGVydGllcz4KLQkJPHBsdWdpbi1pZD5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtPC9wbHVnaW4taWQ+Ci0JCTxleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb24+Li4vLi4vLi4vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXI8L2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbj4KLQk8L3Byb3BlcnRpZXM+Ci0KLQk8YXJ0aWZhY3RJZD5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtPC9hcnRpZmFjdElkPgotCTxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+Ci0KLQk8YnVpbGQ+Ci0JCTxwbHVnaW5zPgotCQkJPHBsdWdpbj4KLQkJCQk8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+Ci0JCQkJPGFydGlmYWN0SWQ+bWF2ZW4tYW50cnVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLQkJCQk8dmVyc2lvbj4xLjc8L3ZlcnNpb24+Ci0KLQkJCQk8ZXhlY3V0aW9ucz4KLQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxpZD5yZXBsYWNlLWJ1aWxkLXRva2VuPC9pZD4KLQkJCQkJCTxwaGFzZT5nZW5lcmF0ZS1zb3VyY2VzPC9waGFzZT4KLQotCQkJCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCQkJPHRhcmdldD4KLQkJCQkJCQkJPGNvcHkgdG9kaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iPgotCQkJCQkJCQkJPGZpbGVzZXQgZGlyPSIuLyI+Ci0JCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLmV4dGVybmFsVG9vbEJ1aWxkZXJzLyIgLz4KLQkJCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSJkYXRhYmFzZS8iIC8+Ci0JCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iYmluLyIgLz4KLQkJCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSJ0YXJnZXQvIiAvPgotCQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9Ii5zZXR0aW5ncy9vcmcuZWNsaXBzZS5teWx5bioiIC8+Ci0JCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMucHJlZnMiIC8+Ci0JCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovLmdpdGlnbm9yZSIgLz4KLQkJCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIqKi9wb20ueG1sIiAvPgotCQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9IioqL3JlbGVhc2UuKiIgLz4KLQkJCQkJCQkJCQk8aW5jbHVkZSBuYW1lPSIqKiIgLz4KLQkJCQkJCQkJCTwvZmlsZXNldD4KLQkJCQkJCQkJPC9jb3B5PgotCi0JCQkJCQkJCTxyZXBsYWNlcmVnZXhwCi0JCQkJCQkJCQlmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJCQkJCQkJYnlsaW5lPSJmYWxzZSIgZmxhZ3M9InNnIgotCQkJCQkJCQkJbWF0Y2g9IlxzKiZsdDtidWlsZENvbW1hbmQ+XHMrJmx0O25hbWU+b3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5FeHRlcm5hbFRvb2xCdWlsZGVyLio/Jmx0Oy9idWlsZENvbW1hbmQ+IgotCQkJCQkJCQkJcmVwbGFjZT0iIiAvPgotCi0JCQkJCQkJCTxyZXBsYWNlcmVnZXhwCi0JCQkJCQkJCQlmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJCQkJCQkJYnlsaW5lPSJmYWxzZSIgZmxhZ3M9InMiCi0JCQkJCQkJCQltYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCQkJCQkJCXJlcGxhY2U9IiIgLz4KLQotCQkJCQkJCQk8cmVwbGFjZXJlZ2V4cAotCQkJCQkJCQkJZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCQkJCQkJCWJ5bGluZT0iZmFsc2UiIGZsYWdzPSJzIgotCQkJCQkJCQkJbWF0Y2g9IlxzKiZsdDtidWlsZENvbW1hbmQ+XHMrJmx0O25hbWU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCQkJCQkJCXJlcGxhY2U9IiIgLz4KLQotCQkJCQkJCQk8cmVwbGFjZXJlZ2V4cAotCQkJCQkJCQkJZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCQkJCQkJCWJ5bGluZT0iZmFsc2UiIGZsYWdzPSJzIgotCQkJCQkJCQkJbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UucGRlLmFwaS50b29scy5hcGlBbmFseXNpc05hdHVyZSZsdDsvbmF0dXJlPiIKLQkJCQkJCQkJCXJlcGxhY2U9IiIgLz4KLQotCQkJCQkJCQk8cmVwbGFjZXJlZ2V4cAotCQkJCQkJCQkJZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCQkJCQkJCWJ5bGluZT0iZmFsc2UiIGZsYWdzPSJzIgotCQkJCQkJCQkJbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJCQkJCQkJcmVwbGFjZT0iIiAvPgotCQkJCQkJCTwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0KLQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxpZD5hdXRvLWNsZWFuPC9pZD4KLQkJCQkJCTxwaGFzZT5jbGVhbjwvcGhhc2U+Ci0KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTx0YXJnZXQ+Ci0JCQkJCQkJCTxkZWxldGUgZGlyPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9IiAvPgotCQkJCQkJCTwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0KLQkJCQk8L2V4ZWN1dGlvbnM+Ci0KLQkJCTwvcGx1Z2luPgotCi0JCTwvcGx1Z2lucz4KLQk8L2J1aWxkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL2NvbmZpZ3VyYXRpb24vTTJNVHJhbnNmb3JtYXRpb25Db25maWcuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL2NvbmZpZ3VyYXRpb24vTTJNVHJhbnNmb3JtYXRpb25Db25maWcuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzFiNDk1ZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy9jb25maWd1cmF0aW9uL00yTVRyYW5zZm9ybWF0aW9uQ29uZmlnLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCwgMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgY29uZmlndXJhdGlvbjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYUZhY3Rvcnk7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuSUN1c3RvbU9iamVjdHNTdG9yZTsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLklNb2RlbFRvTW9kZWxDb25maWc7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuaW1wbC5SZXNvdXJjZVNldEltcGw7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaS5pbXBsLlhNSVJlc291cmNlRmFjdG9yeUltcGw7Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuQ29tcG9uZW50OwotaW1wb3J0IG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50LmFubm90YXRpb25zLlJlZmVyZW5jZTsKLWltcG9ydCBvcmcuc2xmNGouTG9nZ2VyOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlOwotaW1wb3J0IG1vZGVsLmxvYWRlci5JTXVsdGlGaWxlTG9hZGVyOwotCi1AQ29tcG9uZW50KAotCSAgICBwcm9wZXJ0eT0gewotCSAgICAgICAgInRyYW5zZm9ybWF0aW9uPUFtYWx0aGVhMlNhbXBsZU1vZGVsIgotCSAgICB9LAotCSAgICBzZXJ2aWNlPUlNb2RlbFRvTW9kZWxDb25maWcuY2xhc3MKLQkpCi1wdWJsaWMgY2xhc3MgTTJNVHJhbnNmb3JtYXRpb25Db25maWcgaW1wbGVtZW50cyBJTW9kZWxUb01vZGVsQ29uZmlnIHsKLQotCUBSZWZlcmVuY2UKLQlwcml2YXRlIElDdXN0b21PYmplY3RzU3RvcmUgaUN1c3RvbU9iamVjdHNTdG9yZTsKLQotCUBSZWZlcmVuY2UKLQlwcml2YXRlIElNdWx0aUZpbGVMb2FkZXIgYW1hbHRoZWFNdWx0aUZpbGVMb2FkZXI7Ci0gCi0JcHVibGljIFJlc291cmNlU2V0IGdldElucHV0UmVzb3VyY2VTZXQoKSB7Ci0KLQkJTG9nZ2VyIGxvZ2dlciA9IGlDdXN0b21PYmplY3RzU3RvcmUuZ2V0SW5zdGFuY2UoTG9nZ2VyLmNsYXNzKTsKLQkJCi0JCVN0cmluZyBmb2xkZXJQYXRoID0gaUN1c3RvbU9iamVjdHNTdG9yZS5nZXREYXRhKCJpbnB1dF9tb2RlbHNfZm9sZGVyIik7Ci0KLQkJaWYgKGZvbGRlclBhdGggIT0gbnVsbCkgewotCi0JCQlSZXNvdXJjZVNldCByZXNvdXJjZVNldCA9IGFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmxvYWRNdWx0aXBsZUZpbGVzKGZvbGRlclBhdGgpOwotCi0JCQlpZihyZXNvdXJjZVNldC5nZXRSZXNvdXJjZXMoKS5zaXplKCk9PTApIHsKLQkJCQlsb2dnZXIuZXJyb3IoIm5vIEFtYWx0aGVhIG1vZGVsIGZpbGVzIGFyZSBsb2FkZWQuIFZlcmlmeSBpZiB0aGUgbW9kZWwgdmVyc2lvbiBpcyA6ICIgKyBBbWFsdGhlYUZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZUFtYWx0aGVhKCkuZ2V0VmVyc2lvbigpKTsKLQkJCX0KLQkJCQotCQkJcmV0dXJuIHJlc291cmNlU2V0OwotCQl9IGVsc2UgewotCQkJbG9nZ2VyLmVycm9yKCJpbnB1dF9tb2RlbHNfZm9sZGVyIHBhcmFtZXRlciBub3Qgc2V0IiwKLQkJCQkJbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCJpbnB1dF9tb2RlbHNfZm9sZGVyIHByb3BlcnR5IG5vdCBzZXQiKSk7Ci0JCX0KLQotCQotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLQlwdWJsaWMgUmVzb3VyY2VTZXQgZ2V0T3VwdXRSZXNvdXJjZVNldCgpIHsKLQotCQlSZXNvdXJjZVNldCBvdXRwdXRSdXJjZVNldCA9IG5ldyBSZXNvdXJjZVNldEltcGwoKTsKLQotCQlvdXRwdXRSdXJjZVNldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpCi0JCQkJLnB1dChSZXNvdXJjZS5GYWN0b3J5LlJlZ2lzdHJ5LkRFRkFVTFRfRVhURU5TSU9OLCBuZXcgWE1JUmVzb3VyY2VGYWN0b3J5SW1wbCgpKTsKLQotCQlvdXRwdXRSdXJjZVNldC5nZXRQYWNrYWdlUmVnaXN0cnkoKS5wdXQoU2FtcGxlTW9kZWxQYWNrYWdlLmVOU19VUkksIFNhbXBsZU1vZGVsUGFja2FnZS5lSU5TVEFOQ0UpOwotCi0JCXJldHVybiBvdXRwdXRSdXJjZVNldDsKLQl9Ci0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvbW9kZWwvbG9hZGVyL0FtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy9tb2RlbC9sb2FkZXIvQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWJlMDUxNy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy9tb2RlbC9sb2FkZXIvQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLSAvKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LCAyMDIwIFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBtb2RlbC5sb2FkZXI7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGU7Ci1pbXBvcnQgamF2YS5pby5GaWxlbmFtZUZpbHRlcjsKLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWE7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhUGFja2FnZTsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEuc3BoaW54LkFtYWx0aGVhUmVzb3VyY2VGYWN0b3J5OwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkk7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuaW1wbC5SZXNvdXJjZVNldEltcGw7Ci1pbXBvcnQgb3JnLmVjbGlwc2Uuc3BoaW54LmVtZi5yZXNvdXJjZS5FeHRlbmRlZFJlc291cmNlU2V0OwotaW1wb3J0IG9yZy5lY2xpcHNlLnNwaGlueC5lbWYucmVzb3VyY2UuRXh0ZW5kZWRSZXNvdXJjZVNldEltcGw7Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuQ29tcG9uZW50OwotCi1AQ29tcG9uZW50KHNlcnZpY2UgPSBJTXVsdGlGaWxlTG9hZGVyLmNsYXNzKQotcHVibGljIGNsYXNzIEFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyIGltcGxlbWVudHMgSU11bHRpRmlsZUxvYWRlcnsKLQotCXB1YmxpYyBSZXNvdXJjZVNldCBsb2FkTXVsdGlwbGVGaWxlcyhTdHJpbmcgZGlyZWN0b3J5UGF0aCkgewotCi0JCUZpbGUgZm9sZGVyID0gbmV3IEZpbGUoZGlyZWN0b3J5UGF0aCk7Ci0KLQkJaWYgKGZvbGRlci5pc0RpcmVjdG9yeSgpKSB7Ci0JCQlGaWxlW10gbGlzdEZpbGVzID0gZm9sZGVyLmxpc3RGaWxlcyhuZXcgRmlsZW5hbWVGaWx0ZXIoKSB7Ci0KLQkJCQlAT3ZlcnJpZGUKLQkJCQlwdWJsaWMgYm9vbGVhbiBhY2NlcHQoRmlsZSBmaWxlLCBTdHJpbmcgbmFtZSkgewotCi0JCQkJCWlmIChuYW1lLmVuZHNXaXRoKCIuYW14bWkiKSkgewotCQkJCQkJcmV0dXJuIHRydWU7Ci0JCQkJCX0KLQotCQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQkJfQotCQkJfSk7Ci0KLQkJCVJlc291cmNlU2V0IHJlc291cmNlU2V0ID0gaW5pdGlhbGl6ZVJlc291cmNlU2V0KCk7Ci0KLQkJCWxvYWRNdWx0aXBsZUZpbGVzKHJlc291cmNlU2V0LCBsaXN0RmlsZXMpOwotCi0JCQlyZXR1cm4gcmVzb3VyY2VTZXQ7Ci0JCX0KLQotCQlyZXR1cm4gbmV3IFJlc291cmNlU2V0SW1wbCgpOwotCi0JfQotCi0JcHJpdmF0ZSBMaXN0PEFtYWx0aGVhPiBsb2FkTXVsdGlwbGVGaWxlcyhSZXNvdXJjZVNldCByZXNvdXJjZVNldCwgRmlsZVtdIGxpc3RGaWxlcykgewotCi0JCUxpc3Q8QW1hbHRoZWE+IG1vZGVscyA9IG5ldyBBcnJheUxpc3Q8QW1hbHRoZWE+KCk7Ci0KLQkJZm9yIChGaWxlIGFteG1pRmlsZSA6IGxpc3RGaWxlcykgewotCi0JCQlmaW5hbCBSZXNvdXJjZSByZXMgPSByZXNvdXJjZVNldC5jcmVhdGVSZXNvdXJjZShVUkkuY3JlYXRlVVJJKCJmaWxlOi8vLy8iICsgYW14bWlGaWxlLmdldEFic29sdXRlUGF0aCgpKSk7Ci0JCQl0cnkgewotCQkJCXJlcy5sb2FkKG51bGwpOwotCQkJCWZvciAoZmluYWwgRU9iamVjdCBjb250ZW50IDogcmVzLmdldENvbnRlbnRzKCkpIHsKLQkJCQkJaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBBbWFsdGhlYSkgewotCQkJCQkJbW9kZWxzLmFkZCgoQW1hbHRoZWEpIGNvbnRlbnQpOwotCQkJCQl9Ci0JCQkJfQotCQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotCQkJCVN5c3RlbS5lcnIucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7Ci0JCQl9Ci0JCX0KLQkJcmV0dXJuIG1vZGVsczsKLQl9Ci0KLQlwcml2YXRlIHN0YXRpYyBSZXNvdXJjZVNldCBpbml0aWFsaXplUmVzb3VyY2VTZXQoKSB7Ci0JCWZpbmFsIEV4dGVuZGVkUmVzb3VyY2VTZXQgcmVzU2V0ID0gbmV3IEV4dGVuZGVkUmVzb3VyY2VTZXRJbXBsKCk7Ci0JCXJlc1NldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpLnB1dCgiYW14bWkiLCBuZXcgQW1hbHRoZWFSZXNvdXJjZUZhY3RvcnkoKSk7Ci0JCUFtYWx0aGVhUGFja2FnZS5lSU5TVEFOQ0UuZUNsYXNzKCk7IC8vIHJlZ2lzdGVyIHRoZSBwYWNrYWdlCi0KLQkJcmV0dXJuIHJlc1NldDsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL21vZGVsL2xvYWRlci9JTXVsdGlGaWxlTG9hZGVyLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy9tb2RlbC9sb2FkZXIvSU11bHRpRmlsZUxvYWRlci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjQxMzc2Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL21vZGVsL2xvYWRlci9JTXVsdGlGaWxlTG9hZGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi1wYWNrYWdlIG1vZGVsLmxvYWRlcjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsKLQotcHVibGljIGludGVyZmFjZSBJTXVsdGlGaWxlTG9hZGVyIHsKLQotCXB1YmxpYyBSZXNvdXJjZVNldCBsb2FkTXVsdGlwbGVGaWxlcyhTdHJpbmcgZGlyZWN0b3J5UGF0aCk7Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvQW1hbHRoZWFNb2RlbDJNb2RlbFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL0FtYWx0aGVhTW9kZWwyTW9kZWxUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGI1MWM0YS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvQW1hbHRoZWFNb2RlbDJNb2RlbFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCwgMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBhY2thZ2UgdGVtcGxhdGVzCi0KLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3RvcnkKLWltcG9ydCBqYXZhLmlvLkZpbGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWEKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuSFdNb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5NYXBwaW5nTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuT1NNb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLklDdXN0b21PYmplY3RzU3RvcmUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5Nb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lcgotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkkKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5Db21wb25lbnQKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5SZWZlcmVuY2UKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5SZWZlcmVuY2VTY29wZQotCi1AQ29tcG9uZW50KHByb3BlcnR5PSNbCi0JInRyYW5zZm9ybWF0aW9uPUFtYWx0aGVhMlNhbXBsZU1vZGVsIgotXSwgc2VydmljZT1Nb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lcikKLWNsYXNzIEFtYWx0aGVhTW9kZWwyTW9kZWxUcmFuc2Zvcm1lciBleHRlbmRzIE1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyIHsKLQotCUBSZWZlcmVuY2UKLQlJQ3VzdG9tT2JqZWN0c1N0b3JlIGN1c3RvbU9ianNTdG9yZQotCi0JLyotIEZhY3RvcnkgaW5pdGlhaXphdGlvbiAqLwotCXZhbCBvdXRwdXRNb2RlbEZhY3RvcnkgPSBTYW1wbGVNb2RlbEZhY3RvcnkuZUlOU1RBTkNFCi0KLQlAUmVmZXJlbmNlKCAgIHNjb3BlPVJlZmVyZW5jZVNjb3BlLgotCQlQUk9UT1RZUEVfUkVRVUlSRUQpCi0JU1dUcmFuc2Zvcm1lciBzdwotCi0JQFJlZmVyZW5jZSAoICAgc2NvcGU9UmVmZXJlbmNlU2NvcGUuCi0JCVBST1RPVFlQRV9SRVFVSVJFRCkgCi0JSFdUcmFuc2Zvcm1lciBodwotCi0JQFJlZmVyZW5jZSggICBzY29wZT1SZWZlcmVuY2VTY29wZS4KLQkJUFJPVE9UWVBFX1JFUVVJUkVEKQotCU9TVHJhbnNmb3JtZXIgb3MKLQotCUBSZWZlcmVuY2UoICAgc2NvcGU9UmVmZXJlbmNlU2NvcGUuCi0JCVBST1RPVFlQRV9SRVFVSVJFRCkKLQlNYXBwaW5nVHJhbnNmb3JtZXIgbXQKLQotCW92ZXJyaWRlIG0ybVRyYW5zZm9ybWF0aW9uKFJlc291cmNlU2V0IGlucHV0UmVzb3VyY2VTZXQsIFJlc291cmNlU2V0IG91dHB1dFJlc291cmNlU2V0KSB7Ci0KLQkJdmFyIGludCBmaWxlSW5kZXggPSAxCi0KLQkJZm9yIChyZXNvdXJjZSA6IGlucHV0UmVzb3VyY2VTZXQucmVzb3VyY2VzKSB7Ci0JCQlmb3IgKGNvbnRlbnQgOiByZXNvdXJjZS5jb250ZW50cykgewotCQkJCS8vIGNvbnRlbnQgaXMgYSBBbWFsdGhlYSBtb2RlbAotCQkJCWN1c3RvbU9ianNTdG9yZS5nZXRMb2dnZXIuaW5mbygiUHJvY2Vzc2luZyBmaWxlIDogIiArIHJlc291cmNlLlVSSSkKLQotCQkJCXZhbCBzaW11bGF0aW9uTW9kZWxSb290ID0gdHJhbnNmb3JtKGNvbnRlbnQgYXMgQW1hbHRoZWEpCi0KLQkJCQl2YWwgb3V0X3VyaSA9IFVSSS5jcmVhdGVGaWxlVVJJKAotCQkJCQlnZXRQcm9wZXJ0eSgibTJtX291dHB1dF9mb2xkZXIiLGN1c3RvbU9ianNTdG9yZSkgKyBGaWxlLnNlcGFyYXRvciArIGZpbGVJbmRleCsrICsgIi5yb290IikKLQotCQkJCXZhbCBvdXRfcmVzb3VyY2UgPSBvdXRwdXRSZXNvdXJjZVNldC5jcmVhdGVSZXNvdXJjZShvdXRfdXJpKQotCi0JCQkJb3V0X3Jlc291cmNlLmNvbnRlbnRzLmFkZChzaW11bGF0aW9uTW9kZWxSb290KQotCi0JCQkJb3V0X3Jlc291cmNlLnNhdmUobnVsbCkKLQotCQkJCWN1c3RvbU9ianNTdG9yZS5sb2dnZXIuaW5mbygiVHJhbnNmb3JtZWQgbW9kZWwgZmlsZSBnZW5lcmF0ZWQgYXQgOiAiICsgb3V0X3VyaSkKLQotCQkJfQotCQl9Ci0JfQotCi0JZGVmIGNyZWF0ZSBvdXRwdXRNb2RlbEZhY3RvcnkuY3JlYXRlTW9kZWwgdHJhbnNmb3JtKEFtYWx0aGVhIGFtYWx0aGVhKSB7Ci0KLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoU1dUcmFuc2Zvcm1lciwgc3cpCi0KLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoSFdUcmFuc2Zvcm1lciwgaHcpCi0KLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoT1NUcmFuc2Zvcm1lciwgb3MpCi0KLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoTWFwcGluZ1RyYW5zZm9ybWVyLCBtdCkKLQotCQlody50cmFuc2Zyb21IV01vZGVsKGFtYWx0aGVhLmh3TW9kZWwgYXMgSFdNb2RlbCwgaXQpCi0KLQkJb3MudHJhbnNmcm9tT1NNb2RlbChhbWFsdGhlYS5vc01vZGVsIGFzIE9TTW9kZWwsIGl0KQotCi0JCW10LnRyYW5zZnJvbU1hcHBpbmdNb2RlbChhbWFsdGhlYS5tYXBwaW5nTW9kZWwgYXMgTWFwcGluZ01vZGVsLCBpdCkKLQotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL0hXVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvSFdUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY0NjMyMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvSFdUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgsIDIwMjAgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1wYWNrYWdlIHRlbXBsYXRlcwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTW9kZWwKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3RvcnkKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWFGYWN0b3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkhXTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTWVtb3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuSUN1c3RvbU9iamVjdHNTdG9yZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLkFic3RyYWN0VHJhbnNmb3JtZXIKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5JU3ViVHJhbnNmb3JtZXIKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5Db21wb25lbnQKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5SZWZlcmVuY2UKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5TZXJ2aWNlU2NvcGUKLQotQENvbXBvbmVudChzY29wZT1TZXJ2aWNlU2NvcGUuUFJPVE9UWVBFLCBzZXJ2aWNlID1IV1RyYW5zZm9ybWVyKQotcHVibGljIGNsYXNzIEhXVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdFRyYW5zZm9ybWVyIGltcGxlbWVudHMgSVN1YlRyYW5zZm9ybWVyewotCQotCUBSZWZlcmVuY2UKLQlJQ3VzdG9tT2JqZWN0c1N0b3JlIGN1c3RvbU9ianNTdG9yZQotCi0JZGVmIE9TVHJhbnNmb3JtZXIgZ2V0T1MoKSB7Ci0JCXJldHVybiBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoT1NUcmFuc2Zvcm1lcikKLQl9Ci0KLQkvKi0gRmFjdG9yeSBpbml0aWFsaXphdGlvbiAqLwotCXZhbCBvdXRwdXRNb2RlbEZhY3RvcnkgPSBTYW1wbGVNb2RlbEZhY3RvcnkuZUlOU1RBTkNFCi0KLQl2YWwgYW1hbHRoZWFGYWN0b3J5ID0gQW1hbHRoZWFGYWN0b3J5LmVJTlNUQU5DRQotCi0JcHVibGljIGRlZiB0cmFuc2Zyb21IV01vZGVsKEhXTW9kZWwgYW1hbHRoZWFNb2RlbCwgTW9kZWwgc2ltdWxhdGlvbk1vZGVsKSB7Ci0vLwkgCWZvcihhbWFsdGhlYUVjdTphbWFsdGhlYU1vZGVsPy5zeXN0ZW0/LmVjdXMpewotLy8JIAkJCi0vLwkgCQlmb3IoYW1hbHRoZWFNaWNyb0NvbnRyb2xsZXI6IGFtYWx0aGVhRWN1Py5taWNyb2NvbnRyb2xsZXJzKXsKLS8vCSAJCQkKLS8vCSAJCQlmb3IobWVtb3J5OiBhbWFsdGhlYU1pY3JvQ29udHJvbGxlcj8ubWVtb3JpZXMpewotLy8JIAkJCQkKLS8vCSAJCQl2YWwgc2ltdWxhdGlvbk1vZGVsTWVtb3J5ID0JY3JlYXRlTWVtb3J5KG1lbW9yeSk7Ci0vLwkgCQkJCi0vLwkgCQkJc2ltdWxhdGlvbk1vZGVsLm1lbW9yaWVzLmFkZChzaW11bGF0aW9uTW9kZWxNZW1vcnkpCi0vLwkgCQkJCQotLy8JIAkJCX0gCi0vLwkgCQkJCi0vLwkgCQl9Ci0vLwkgCX0KLQl9Ci0KLQlwdWJsaWMgZGVmIGNyZWF0ZSBvdXRwdXRNb2RlbEZhY3RvcnkuY3JlYXRlTWVtb3J5IGNyZWF0ZU1lbW9yeShNZW1vcnkgYW1sdE1lbW9yeSkgewotCQluYW1lID0gYW1sdE1lbW9yeS5uYW1lCi0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvTGFiZWxUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9MYWJlbFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1N2MxMjg4Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9MYWJlbFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCwgMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBhY2thZ2UgdGVtcGxhdGVzCi0KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5BYnN0cmFjdFRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuSVN1YlRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuQ29tcG9uZW50Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuU2VydmljZVNjb3BlCi0KLUBDb21wb25lbnQoc2NvcGU9U2VydmljZVNjb3BlLlBST1RPVFlQRSkKLXB1YmxpYyBjbGFzcyBMYWJlbFRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2Zvcm1lciBpbXBsZW1lbnRzIElTdWJUcmFuc2Zvcm1lcnsKLQkKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9NYXBwaW5nVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvTWFwcGluZ1RyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Yjk1YzI5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9NYXBwaW5nVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LCAyMDIwIFJvYmVydCBCb3NjaCBHbWJILgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMKLQotaW1wb3J0IFNhbXBsZU1vZGVsLk1vZGVsCi1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxGYWN0b3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhRmFjdG9yeQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5NYXBwaW5nTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuVGFza1NjaGVkdWxlcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLklDdXN0b21PYmplY3RzU3RvcmUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5BYnN0cmFjdFRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuSVN1YlRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuQ29tcG9uZW50Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuUmVmZXJlbmNlCi1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuU2VydmljZVNjb3BlCi0KLUBDb21wb25lbnQoc2NvcGU9U2VydmljZVNjb3BlLlBST1RPVFlQRSwgc2VydmljZT1NYXBwaW5nVHJhbnNmb3JtZXIpCi1wdWJsaWMgY2xhc3MgTWFwcGluZ1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2Zvcm1lciBpbXBsZW1lbnRzIElTdWJUcmFuc2Zvcm1lciB7Ci0KLQlAUmVmZXJlbmNlCi0JSUN1c3RvbU9iamVjdHNTdG9yZSBjdXN0b21PYmpzU3RvcmUKLQotCWRlZiBIV1RyYW5zZm9ybWVyIGh3VHJhbnNmb3JtZXIoKSB7Ci0JCXJldHVybiBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoSFdUcmFuc2Zvcm1lcikKLQl9Ci0KLQlkZWYgT1NUcmFuc2Zvcm1lciBvc1RyYW5zZm9ybWVyKCkgewotCQlyZXR1cm4gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKE9TVHJhbnNmb3JtZXIpCi0JfQotCi0JLyotIEZhY3RvcnkgaW5pdGlhbGl6YXRpb24gKi8KLQl2YWwgb3V0cHV0TW9kZWxGYWN0b3J5ID0gU2FtcGxlTW9kZWxGYWN0b3J5LmVJTlNUQU5DRQotCi0JdmFsIGFtYWx0aGVhRmFjdG9yeSA9IEFtYWx0aGVhRmFjdG9yeS5lSU5TVEFOQ0UKLQotCXB1YmxpYyBkZWYgdHJhbnNmcm9tTWFwcGluZ01vZGVsKE1hcHBpbmdNb2RlbCBhbWx0TWFwcGluZ01vZGVsLCBNb2RlbCBzaW11bGF0aW9uTW9kZWwpIHsKLQotCQlhbWx0TWFwcGluZ01vZGVsPy5zY2hlZHVsZXJBbGxvY2F0aW9uPy5mb3JFYWNoIFsgYW1sdFNBIHwKLQotCQkJaWYgKGFtbHRTQS5zY2hlZHVsZXIgaW5zdGFuY2VvZiBUYXNrU2NoZWR1bGVyKSB7Ci0JCQkJdmFsIHNpbXVsYXRpb25Nb2RlbFNjaGVkdWxlciA9IG9zVHJhbnNmb3JtZXIuY3JlYXRlU2NoZWR1bGVyKGFtbHRTQS5zY2hlZHVsZXIgYXMgVGFza1NjaGVkdWxlcikKLQotCQkJCWlmIChzaW11bGF0aW9uTW9kZWxTY2hlZHVsZXIuZUNvbnRhaW5lciA9PT0gbnVsbCkgewotCQkJCQlzaW11bGF0aW9uTW9kZWwuc2NoZWR1bGVycy5hZGQoc2ltdWxhdGlvbk1vZGVsU2NoZWR1bGVyKQotCQkJCX0KLQotCQkJfQotCi0JCV0KLQotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL09TVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvT1NUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZlZTcxMy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvT1NUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgsIDIwMjAgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1wYWNrYWdlIHRlbXBsYXRlcwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTW9kZWwKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3RvcnkKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuT1NNb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLkFic3RyYWN0VHJhbnNmb3JtZXIKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5JU3ViVHJhbnNmb3JtZXIKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5Db21wb25lbnQKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5TZXJ2aWNlU2NvcGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuVGFza1NjaGVkdWxlcgotCi1AQ29tcG9uZW50KHNjb3BlPVNlcnZpY2VTY29wZS5QUk9UT1RZUEUsc2VydmljZSA9T1NUcmFuc2Zvcm1lcikKLXB1YmxpYyBjbGFzcyBPU1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2Zvcm1lciBpbXBsZW1lbnRzIElTdWJUcmFuc2Zvcm1lcnsKLQotCS8qLSBGYWN0b3J5IGluaXRpYWl6YXRpb24gKi8KLQl2YWwgb3V0cHV0TW9kZWxGYWN0b3J5ID0gU2FtcGxlTW9kZWxGYWN0b3J5LmVJTlNUQU5DRQotCi0JcHVibGljIGRlZiB0cmFuc2Zyb21PU01vZGVsKE9TTW9kZWwgYW1hbHRoZWFPU01vZGVsLCBNb2RlbCBzaW11bGF0aW9uTW9kZWwpIHsKLQotCQlhbWFsdGhlYU9TTW9kZWwub3BlcmF0aW5nU3lzdGVtcy5mb3JFYWNoIFsgYW1sdE9zIHwKLSAKLQkJCWFtbHRPcy50YXNrU2NoZWR1bGVycy5mb3JFYWNoIFthfAotCQkJCXZhciBzaW11bGF0aW9uU2NoZWR1bGVyID0gY3JlYXRlU2NoZWR1bGVyKGEgYXMgVGFza1NjaGVkdWxlcikKLQotCQkJCWlmIChzaW11bGF0aW9uU2NoZWR1bGVyLmVDb250YWluZXIgPT09IG51bGwpIHsKLQkJCQkJc2ltdWxhdGlvbk1vZGVsLnNjaGVkdWxlcnMuYWRkKHNpbXVsYXRpb25TY2hlZHVsZXIpCi0JCQkJfQotCQkJXQotCi0JCV0KLQotCX0KLQotCWRlZiBjcmVhdGUgb3V0cHV0TW9kZWxGYWN0b3J5LmNyZWF0ZVNjaGVkdWxlciBjcmVhdGVTY2hlZHVsZXIoVGFza1NjaGVkdWxlciBhbWx0VHMpIHsKLQotCQluYW1lID0gYW1sdFRzLm5hbWUKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9TV1RyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL1NXVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkODczYWEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL1NXVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LCAyMDIwIFJvYmVydCBCb3NjaCBHbWJILgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLkFic3RyYWN0VHJhbnNmb3JtZXIKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5Db21wb25lbnQKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5TZXJ2aWNlU2NvcGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5JU3ViVHJhbnNmb3JtZXIKLQotQENvbXBvbmVudChzY29wZT1TZXJ2aWNlU2NvcGUuUFJPVE9UWVBFLCBzZXJ2aWNlPVNXVHJhbnNmb3JtZXIpCi1wdWJsaWMgY2xhc3MgU1dUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0VHJhbnNmb3JtZXIgaW1wbGVtZW50cyBJU3ViVHJhbnNmb3JtZXJ7Ci0KLQlTdHJpbmcgbmFtZQotCi0JcHVibGljIGRlZiBTdHJpbmcgZ2V0TmFtZSgpIHsKLQkJcmV0dXJuIG5hbWU7Ci0JfQotCi0JcHVibGljIGRlZiB2b2lkIHNldE5hbWUoU3RyaW5nIG5hbWUpIHsKLQkJdGhpcy5uYW1lID0gbmFtZTsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0Ly5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyODMzN2UuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0Ly5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9Inh0ZW5kLWdlbiIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5YWY5NDkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0Ly5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0PC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5kcy5jb3JlLmJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0TmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlmMjZjMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotZW5jb2RpbmcvPHByb2plY3Q+PVVURi04CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmM3YTVjLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEN1c3QKLUJ1bmRsZS1TeW1ib2xpY05hbWU6IGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdAotQnVuZGxlLVZlcnNpb246IDEuMC4wLnF1YWxpZmllcgotQXV0b21hdGljLU1vZHVsZS1OYW1lOiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QKLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44Ci1SZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsO2J1bmRsZS12ZXJzaW9uPSIwLjkuOSIKLUltcG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZSwKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucywKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcywKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLAotIG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50LmFubm90YXRpb25zO3ZlcnNpb249IjEuMy4wIjtyZXNvbHV0aW9uOj1vcHRpb25hbCwKLSBvcmcuc2xmNGo7dmVyc2lvbj0iMS43LjIiLAotIHRlbXBsYXRlcwotRXhwb3J0LVBhY2thZ2U6IGN1c3RUZW1wbGF0ZXMKLUJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5Ci1TZXJ2aWNlLUNvbXBvbmVudDogT1NHSS1JTkYvY3VzdFRlbXBsYXRlcy5DdXN0VHJhbnNmb3JtZXIueG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvT1NHSS1JTkYvY3VzdFRlbXBsYXRlcy5DdXN0VHJhbnNmb3JtZXIueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L09TR0ktSU5GL2N1c3RUZW1wbGF0ZXMuQ3VzdFRyYW5zZm9ybWVyLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM4ZTBkNi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvT1NHSS1JTkYvY3VzdFRlbXBsYXRlcy5DdXN0VHJhbnNmb3JtZXIueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4xLjAiIG5hbWU9ImN1c3RUZW1wbGF0ZXMuQ3VzdFRyYW5zZm9ybWVyIj4KLSAgIDxwcm9wZXJ0eSBuYW1lPSJzZXJ2aWNlLnJhbmtpbmciIHR5cGU9IkludGVnZXIiIHZhbHVlPSIxMCIvPgotICAgPHNlcnZpY2U+Ci0gICAgICA8cHJvdmlkZSBpbnRlcmZhY2U9InRlbXBsYXRlcy5NMlRfT3V0cHV0X1RyYW5zZm9ybWVyIi8+Ci0gICA8L3NlcnZpY2U+Ci0gICA8aW1wbGVtZW50YXRpb24gY2xhc3M9ImN1c3RUZW1wbGF0ZXMuQ3VzdFRyYW5zZm9ybWVyIi8+Ci08L3Njcjpjb21wb25lbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2FhZGM1OS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotc291cmNlLi4gPSBzcmMvCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIE9TR0ktSU5GL2N1c3RUZW1wbGF0ZXMuQ3VzdFRyYW5zZm9ybWVyLnhtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L3NyYy9jdXN0VGVtcGxhdGVzL0N1c3RUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC9zcmMvY3VzdFRlbXBsYXRlcy9DdXN0VHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZjdlZDguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L3NyYy9jdXN0VGVtcGxhdGVzL0N1c3RUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLXBhY2thZ2UgY3VzdFRlbXBsYXRlcwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhCi1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuQ29tcG9uZW50Ci1pbXBvcnQgdGVtcGxhdGVzLk0yVF9PdXRwdXRfVHJhbnNmb3JtZXIKLQotQENvbXBvbmVudChwcm9wZXJ0eT0jWyJzZXJ2aWNlLnJhbmtpbmc6SW50ZWdlcj0xMCJdLHNlcnZpY2U9TTJUX091dHB1dF9UcmFuc2Zvcm1lcikgCi1jbGFzcyBDdXN0VHJhbnNmb3JtZXIgZXh0ZW5kcyBNMlRfT3V0cHV0X1RyYW5zZm9ybWVyIHsKLQkvKioKLQkgKiBDcmVhdGVzIG91dHB1dCB3aXRoIGEgInRlbXBsYXRlIG9ubHkiIHN0eWxlIChsaWtlIFhwYW5kL1h0ZW5kKS4KLQkgKi8KLQkgIG92ZXJyaWRlIFN0cmluZyBnZW5lcmF0ZU91dHB1dDEoQW1hbHRoZWEgYW1hbHRoZWEpICcnJwotCQkgQ3VzdG9tZXIgdGVtcGxhdGUKLQkJIKtzdXBlci5nZW5lcmF0ZU91dHB1dDEoYW1hbHRoZWEpuwotCScnJwotCi0KLQkvKioKLQkgKiBDcmVhdGVzIG91dHB1dCB3aXRoIGEgY29tYmluYXRpb24gb2YgdGVtcGxhdGUgYW5kIGZ1bmN0aW9ucy4KLQkgKiBUaGlzIGFsbG93cyBhIG1vcmUgZmxleGlibGUgdXNlIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFuZCBsYW1iZGFzLgotCSAqLwotCW92ZXJyaWRlIFN0cmluZyBnZW5lcmF0ZU91dHB1dDIoQW1hbHRoZWEgYW1hbHRoZWEpICcnJwotCUN1c3RvbWVyIHRlbXBsYXRlCi0Jq3N1cGVyLmdlbmVyYXRlT3V0cHV0MihhbWFsdGhlYSm7Ci0JJycnCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjgzMzdlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmNsYXNzcGF0aAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxjbGFzc3BhdGg+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KYXZhU0UtMS44Ii8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ieHRlbmQtZ2VuIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Ci08L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQubGF1bmNoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5sYXVuY2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhZjhiODUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5sYXVuY2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KLTxsYXVuY2hDb25maWd1cmF0aW9uIHR5cGU9Im9yZy5lY2xpcHNlLmFudC5BbnRCdWlsZGVyTGF1bmNoQ29uZmlndXJhdGlvblR5cGUiPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWkuQVRUUl9UQVJHRVRTX1VQREFURUQiIHZhbHVlPSJ0cnVlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aS5ERUZBVUxUX1ZNX0lOU1RBTEwiIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWlTRVRfSU5QVVRIQU5ETEVSIiB2YWx1ZT0iZmFsc2UiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLkFUVFJfUkVGUkVTSF9TQ09QRSIgdmFsdWU9IiR7d29ya2luZ19zZXQ6Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cmVzb3VyY2VzJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuY2FwdHVyZV9vdXRwdXQiIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5BVFRSX0NPTlNPTEVfT1VUUFVUX09OIiB2YWx1ZT0iZmFsc2UiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuQVRUUl9MQVVOQ0hfSU5fQkFDS0dST1VORCIgdmFsdWU9ImZhbHNlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5DTEFTU1BBVEhfUFJPVklERVIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQudWkuQW50Q2xhc3NwYXRoUHJvdmlkZXIiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5ERUZBVUxUX0NMQVNTUEFUSCIgdmFsdWU9InRydWUiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLlBST0pFQ1RfQVRUUiIgdmFsdWU9IiIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfQlVJTERFUl9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9CVUlMRF9TQ09QRSIgdmFsdWU9IiR7d29ya2luZ19zZXQ6Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cmVzb3VyY2VzJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5jbGFzc3BhdGgmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uZ2l0aWdub3JlJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLnByb2plY3QmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uc2V0dGluZ3MmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9idWlsZC5wcm9wZXJ0aWVzJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvTUVUQS1JTkYmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9wbHVnaW4ueG1sJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvcG9tLnhtbCZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3RhcmdldCZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3h0ZW5kLWdlbiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0xPQ0FUSU9OIiB2YWx1ZT0iJHtwcm9qZWN0X2xvYzovYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydH0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9SVU5fQlVJTERfS0lORFMiIHZhbHVlPSJpbmNyZW1lbnRhbCxhdXRvLCIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9UT09MX0FSR1VNRU5UUyIgdmFsdWU9Ii1EYnVpbGQucHJvamVjdD0ke3Byb2plY3RfbG9jOi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0fSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfVFJJR0dFUlNfQ09ORklHVVJFRCIgdmFsdWU9InRydWUiLz4KLTwvbGF1bmNoQ29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWI2Y2U4ZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTxwcm9qZWN0IG5hbWU9ImNvcHlFeGFtcGxlIiBkZWZhdWx0PSJtYWluIiBiYXNlZGlyPSIuLi8uLiI+Ci0KLQk8cHJvcGVydHkgbmFtZT0iaW5zdGFsbGVyIiB2YWx1ZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIgLz4KLQk8aW1wb3J0IGZpbGU9Ii4uLy4uLy4uLy4uL2J1aWxkLyR7aW5zdGFsbGVyfS9jb3B5RXhhbXBsZUxpYi5hbnQiIG9wdGlvbmFsPSJ0cnVlIiAvPgotCTxiYXNlbmFtZSBmaWxlPSIke2J1aWxkLnByb2plY3R9IiBwcm9wZXJ0eT0icHJvamVjdCIgLz4KLQotCTx0YXJnZXQgbmFtZT0ibWFpbiI+Ci0JCTxjb3B5RXhhbXBsZSBwcm9qZWN0PSIke3Byb2plY3R9IiAvPgotCTwvdGFyZ2V0PgotCi08L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTA0MTExYy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydDwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnh0ZXh0LnVpLnNoYXJlZC54dGV4dEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXI8L25hbWU+Ci0JCQk8dHJpZ2dlcnM+YXV0byxmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+Ci0JCQk8YXJndW1lbnRzPgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PkxhdW5jaENvbmZpZ0hhbmRsZTwva2V5PgotCQkJCQk8dmFsdWU+Jmx0O3Byb2plY3QmZ3Q7Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmxhdW5jaDwvdmFsdWU+Ci0JCQkJPC9kaWN0aW9uYXJ5PgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PmluY2NsZWFuPC9rZXk+Ci0JCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4KLQkJCQk8L2RpY3Rpb25hcnk+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuZHMuY29yZS5idWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnh0ZXh0LnVpLnNoYXJlZC54dGV4dE5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlmMjZjMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLWVuY29kaW5nLzxwcm9qZWN0Pj1VVEYtOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGUxMmUxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjAKLUJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKLUJ1bmRsZS1OYW1lOiBBUFA0TUMgTW9kZWwgVHJhbnNmb3JtYXRpb24gRXhhbXBsZSAtIE0yVAotQnVuZGxlLVN5bWJvbGljTmFtZTogYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydDtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgQVBQNE1DCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOAotUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmVtZjtidW5kbGUtdmVyc2lvbj0iMi42LjAiLAotIG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbDtidW5kbGUtdmVyc2lvbj0iMC45LjkiCi1BdXRvbWF0aWMtTW9kdWxlLU5hbWU6IGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQKLVNlcnZpY2UtQ29tcG9uZW50OiBPU0dJLUlORi9tb2RlbC5sb2FkZXIuQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIueG1sLAotIE9TR0ktSU5GL3RlbXBsYXRlcy5BbWFsdGhlYU1vZGVsMlRleHRUcmFuc2Zvcm1lci54bWwsCi0gT1NHSS1JTkYvY29uZmlndXJhdGlvbi5NMlRUcmFuc2Zvcm1hdGlvbkNvbmZpZy54bWwsCi0gT1NHSS1JTkYvdGVtcGxhdGVzLk0yVF9PdXRwdXRfVHJhbnNmb3JtZXIueG1sCi1CdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQotSW1wb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLAotIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLAotIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLAotIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGUsCi0gb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQ7dmVyc2lvbj0iMS40LjAiLAotIG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50LmFubm90YXRpb25zO3ZlcnNpb249IlsxLjMuMCwyLjAuMCkiO3Jlc29sdXRpb246PW9wdGlvbmFsLAotIG9yZy5zbGY0ajt2ZXJzaW9uPSIxLjcuMiIKLUV4cG9ydC1QYWNrYWdlOiBjb25maWd1cmF0aW9uLAotIG1vZGVsLmxvYWRlciwKLSB0ZW1wbGF0ZXMKLUJ1bmRsZS1DbGFzc1BhdGg6IC4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvT1NHSS1JTkYvY29uZmlndXJhdGlvbi5NMlRUcmFuc2Zvcm1hdGlvbkNvbmZpZy54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L09TR0ktSU5GL2NvbmZpZ3VyYXRpb24uTTJUVHJhbnNmb3JtYXRpb25Db25maWcueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGFjNGQ0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvT1NHSS1JTkYvY29uZmlndXJhdGlvbi5NMlRUcmFuc2Zvcm1hdGlvbkNvbmZpZy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4zLjAiIG5hbWU9ImNvbmZpZ3VyYXRpb24uTTJUVHJhbnNmb3JtYXRpb25Db25maWciPgotICAgPHByb3BlcnR5IG5hbWU9InRyYW5zZm9ybWF0aW9uIiB2YWx1ZT0iQW1hbHRoZWEyVGV4dCIvPgotICAgPHNlcnZpY2U+Ci0gICAgICA8cHJvdmlkZSBpbnRlcmZhY2U9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGUuSU1vZGVsVG9UZXh0Q29uZmlnIi8+Ci0gICA8L3NlcnZpY2U+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0iYW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIiIGludGVyZmFjZT0ibW9kZWwubG9hZGVyLkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyIiBuYW1lPSJhbWFsdGhlYU11bHRpRmlsZUxvYWRlciIvPgotICAgPHJlZmVyZW5jZSBjYXJkaW5hbGl0eT0iMS4uMSIgZmllbGQ9ImN1c3RvbU9ianNTdG9yZSIgaW50ZXJmYWNlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5JQ3VzdG9tT2JqZWN0c1N0b3JlIiBuYW1lPSJjdXN0b21PYmpzU3RvcmUiLz4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0iY29uZmlndXJhdGlvbi5NMlRUcmFuc2Zvcm1hdGlvbkNvbmZpZyIvPgotPC9zY3I6Y29tcG9uZW50PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvT1NHSS1JTkYvbW9kZWwubG9hZGVyLkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvT1NHSS1JTkYvbW9kZWwubG9hZGVyLkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmVhMGNiYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L09TR0ktSU5GL21vZGVsLmxvYWRlci5BbWFsdGhlYU11bHRpRmlsZUxvYWRlci54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08c2NyOmNvbXBvbmVudCB4bWxuczpzY3I9Imh0dHA6Ly93d3cub3NnaS5vcmcveG1sbnMvc2NyL3YxLjEuMCIgbmFtZT0ibW9kZWwubG9hZGVyLkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyIj4KLSAgIDxzZXJ2aWNlPgotICAgICAgPHByb3ZpZGUgaW50ZXJmYWNlPSJtb2RlbC5sb2FkZXIuQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIiLz4KLSAgIDwvc2VydmljZT4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0ibW9kZWwubG9hZGVyLkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyIi8+Ci08L3Njcjpjb21wb25lbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9PU0dJLUlORi90ZW1wbGF0ZXMuQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXIueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9PU0dJLUlORi90ZW1wbGF0ZXMuQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXIueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjhhZDQyLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvT1NHSS1JTkYvdGVtcGxhdGVzLkFtYWx0aGVhTW9kZWwyVGV4dFRyYW5zZm9ybWVyLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08c2NyOmNvbXBvbmVudCB4bWxuczpzY3I9Imh0dHA6Ly93d3cub3NnaS5vcmcveG1sbnMvc2NyL3YxLjMuMCIgbmFtZT0idGVtcGxhdGVzLkFtYWx0aGVhTW9kZWwyVGV4dFRyYW5zZm9ybWVyIj4KLSAgIDxwcm9wZXJ0eSBuYW1lPSJ0cmFuc2Zvcm1hdGlvbiIgdmFsdWU9IkFtYWx0aGVhMlRleHQiLz4KLSAgIDxzZXJ2aWNlPgotICAgICAgPHByb3ZpZGUgaW50ZXJmYWNlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5Nb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyIi8+Ci0gICA8L3NlcnZpY2U+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0iY3VzdG9tT2Jqc1N0b3JlIiBpbnRlcmZhY2U9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLklDdXN0b21PYmplY3RzU3RvcmUiIG5hbWU9ImN1c3RvbU9ianNTdG9yZSIvPgotICAgPHJlZmVyZW5jZSBjYXJkaW5hbGl0eT0iMS4uMSIgZmllbGQ9InRleHRHZW5lcmF0b3IiIGludGVyZmFjZT0idGVtcGxhdGVzLk0yVF9PdXRwdXRfVHJhbnNmb3JtZXIiIG5hbWU9InRleHRHZW5lcmF0b3IiLz4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0idGVtcGxhdGVzLkFtYWx0aGVhTW9kZWwyVGV4dFRyYW5zZm9ybWVyIi8+Ci08L3Njcjpjb21wb25lbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9PU0dJLUlORi90ZW1wbGF0ZXMuTTJUX091dHB1dF9UcmFuc2Zvcm1lci54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L09TR0ktSU5GL3RlbXBsYXRlcy5NMlRfT3V0cHV0X1RyYW5zZm9ybWVyLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWM2ZTE4Zi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L09TR0ktSU5GL3RlbXBsYXRlcy5NMlRfT3V0cHV0X1RyYW5zZm9ybWVyLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxzY3I6Y29tcG9uZW50IHhtbG5zOnNjcj0iaHR0cDovL3d3dy5vc2dpLm9yZy94bWxucy9zY3IvdjEuMS4wIiBuYW1lPSJ0ZW1wbGF0ZXMuTTJUX091dHB1dF9UcmFuc2Zvcm1lciI+Ci0gICA8c2VydmljZT4KLSAgICAgIDxwcm92aWRlIGludGVyZmFjZT0idGVtcGxhdGVzLk0yVF9PdXRwdXRfVHJhbnNmb3JtZXIiLz4KLSAgIDwvc2VydmljZT4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0idGVtcGxhdGVzLk0yVF9PdXRwdXRfVHJhbnNmb3JtZXIiLz4KLTwvc2NyOmNvbXBvbmVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDllYjc0MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1zb3VyY2UuLiA9IHNyYy8sXAotICAgICAgICAgICB4dGVuZC1nZW4vCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sLFwKLSAgICAgICAgICAgICAgIE9TR0ktSU5GLwotc3JjLmluY2x1ZGVzID0gZXBsLTIuMC5odG1sLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvZXBsLTIuMC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KLSAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICAgICAgYm9keSB7Ci0gICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOwotICAgICAgfQotICAgICAgaDF7Ci0gICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKLSAgICAgIH0KLSAgICAgIGgyewotICAgICAgICBmb250LXNpemU6MWVtOwotICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOwotICAgICAgICBtYXJnaW4tdG9wOjFlbTsKLSAgICAgIH0KLSAgICAgIHAgewotICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwotICAgICAgfQotICAgICAgdWwsIG9sewotICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKLSAgICAgIH0KLSAgICA8L3N0eWxlPgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgotICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCi0gICAgICBQVUJMSUMgTElDRU5TRSAoJmxkcXVvO0FHUkVFTUVOVCZyZHF1bzspLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCi0gICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQmIzAzOTtTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0aW9uJnJkcXVvOyBtZWFuczo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50Ci0gICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKLSAgICAgICAgPHVsPgotICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgotICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCi0gICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgotICAgICAgICAmbGRxdW87b3JpZ2luYXRlcyZyZHF1bzsgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCi0gICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3ImIzAzOTtzIGJlaGFsZi4KLSAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0Ci0gICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+JmxkcXVvO0NvbnRyaWJ1dG9yJnJkcXVvOyBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KLSAgICA8cD4mbGRxdW87TGljZW5zZWQgUGF0ZW50cyZyZHF1bzsgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAotICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQotICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UHJvZ3JhbSZyZHF1bzsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKLSAgICAgIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1JlY2lwaWVudCZyZHF1bzsgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAotICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO0Rlcml2YXRpdmUgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKLSAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKLSAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87TW9kaWZpZWQgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0Ci0gICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKLSAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQotICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKLSAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKLSAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCi0gICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCi0gICAgICBXb3JrcyB0aGVyZW9mLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGlzdHJpYnV0ZSZyZHF1bzsgbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKLSAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTb3VyY2UgQ29kZSZyZHF1bzsgbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCi0gICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAotICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87U2Vjb25kYXJ5IExpY2Vuc2UmcmRxdW87IG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCi0gICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQotICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKLSAgICAgIENvbnRyaWJ1dG9yLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKLSAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKLSAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKLSAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKLSAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAotICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKLSAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAotICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAotICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLSAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55Ci0gICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgotICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQotICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQotICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKLSAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KLSAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcwotICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKLSAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCi0gICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCi0gICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KLSAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCYjMDM5O3MKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAotICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCi0gICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCi0gICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmVjZWlwdCBvZiB0aGUKLSAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCi0gICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgotICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgotICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKLSAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KLSAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bwotICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5Ci0gICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKLSAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKLSAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAotICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJiMwMzk7IHJpZ2h0cyBpbiB0aGUKLSAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQotICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCi0gICAgICAgICAgPC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQotICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQotICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bwotICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAotICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKLSAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKLSAgICAgICgmbHNxdW87bm90aWNlcyZyc3F1bzspIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAotICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQotICAgICAgbm90aWNlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgotICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCi0gICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKLSAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQotICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAotICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCi0gICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCi0gICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZsZHF1bztDb21tZXJjaWFsIENvbnRyaWJ1dG9yJnJkcXVvOykKLSAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKLSAgICAgICgmbGRxdW87SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcmRxdW87KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCi0gICAgICAoY29sbGVjdGl2ZWx5ICZsZHF1bztMb3NzZXMmcmRxdW87KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucwotICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKLSAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KLSAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KLSAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCi0gICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KLSAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKLSAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKLSAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKLSAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCi0gICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgotICAgIDwvcD4KLSAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCi0gICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLSAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcwotICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciYjMDM5O3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCi0gICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcwotICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcwotICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJmxkcXVvO0FTIElTJnJkcXVvOyBCQVNJUywgV0lUSE9VVAotICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLSAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLSAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKLSAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKLSAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cwotICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQotICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKLSAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLSAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKLSAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAotICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUwotICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgotICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCi0gICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCi0gICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKLSAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKLSAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KLSAgICA8L3A+Ci0gICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKLSAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCi0gICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQmIzAzOTtzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIGdyYW50ZWQKLSAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotICAgIDwvcD4KLSAgICA8cD5BbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCi0gICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCi0gICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKLSAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KLSAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50JiMwMzk7cyBvYmxpZ2F0aW9ucyB1bmRlcgotICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKLSAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCi0gICAgPC9wPgotICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKLSAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQotICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCi0gICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50Ci0gICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKLSAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKLSAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKLSAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgotICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCi0gICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgotICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldwotICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKLSAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KLSAgICA8L3A+Ci0gICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50Ci0gICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKLSAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCi0gICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCi0gICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKLSAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCi0gICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEgJm5kYXNoOyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgotICAgIDxwPiZsZHF1bztUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCi0gICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCi0gICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKLSAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS4mcmRxdW87Ci0gICAgPC9wPgotICAgIDxibG9ja3F1b3RlPgotICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQotICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCi0gICAgICA8L3A+Ci0gICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAotICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQotICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgotICAgICAgICBzdWNoIGEgbm90aWNlLgotICAgICAgPC9wPgotICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvbGliL2FtYWx0aGVhLmphciBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvbGliL2FtYWx0aGVhLmphcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNmMzBlMy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L2xpYi9hbWFsdGhlYS5qYXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiNTE0NmMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0JPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+Ci0JCTxncm91cElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbjwvZ3JvdXBJZD4KLQkJPGFydGlmYWN0SWQ+cGFyZW50PC9hcnRpZmFjdElkPgotCQk8dmVyc2lvbj4xLjAuMC1TTkFQU0hPVDwvdmVyc2lvbj4KLQk8L3BhcmVudD4KLQkKLQk8cHJvcGVydGllcz4KLQkJPHBsdWdpbi1pZD5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0PC9wbHVnaW4taWQ+Ci0JCTxleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb24+Li4vLi4vLi4vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXI8L2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbj4KLQk8L3Byb3BlcnRpZXM+IAkKLQotCTxhcnRpZmFjdElkPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQ8L2FydGlmYWN0SWQ+Ci0JPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KLQotCTxidWlsZD4KLQkJPHBsdWdpbnM+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1hbnRydW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KLQotCQkJCTxleGVjdXRpb25zPgotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPnJlcGxhY2UtYnVpbGQtdG9rZW48L2lkPgotCQkJCQkJPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgotCi0JCQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJCQk8dGFyZ2V0PgotCQkJCQkJCQkgPGNvcHkgdG9kaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iPgotCQkJCQkJCQkJPGZpbGVzZXQgZGlyPSIuLyI+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuZXh0ZXJuYWxUb29sQnVpbGRlcnMvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iZGF0YWJhc2UvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iYmluLyIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9InRhcmdldC8iIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UubXlseW4qIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMucHJlZnMiIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIqKi8uZ2l0aWdub3JlIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcG9tLnhtbCIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9IioqL3JlbGVhc2UuKiIgLz4KLQkJCQkJCQkJCTxpbmNsdWRlIG5hbWU9IioqIiAvPgotCQkJCQkJCQkJPC9maWxlc2V0PgotCQkJCQkJCQkgPC9jb3B5PiAKLQkJCQkJCQkJIAotCQkJCQkJCQkgCQkgPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0ic2ciCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0icyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLmVtZi5jZG8ucmVsZW5nLnZlcnNpb24uVmVyc2lvbkJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCQkJCQkJCTwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxpZD5hdXRvLWNsZWFuPC9pZD4KLQkJCQkJCTxwaGFzZT5jbGVhbjwvcGhhc2U+Ci0KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTx0YXJnZXQ+Ci0JCQkJCQkJCSA8ZGVsZXRlICBkaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iLz4KLQkJCQkJCSAgIDwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCTwvZXhlY3V0aW9ucz4KLQotCQkJPC9wbHVnaW4+Ci0JCTwvcGx1Z2lucz4KLQk8L2J1aWxkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL2NvbmZpZ3VyYXRpb24vTTJUVHJhbnNmb3JtYXRpb25Db25maWcuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL2NvbmZpZ3VyYXRpb24vTTJUVHJhbnNmb3JtYXRpb25Db25maWcuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVmOTQzOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYy9jb25maWd1cmF0aW9uL00yVFRyYW5zZm9ybWF0aW9uQ29uZmlnLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCwgMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgY29uZmlndXJhdGlvbjsKLQotaW1wb3J0IGphdmEudXRpbC5Qcm9wZXJ0aWVzOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhRmFjdG9yeTsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5JQ3VzdG9tT2JqZWN0c1N0b3JlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGUuSU1vZGVsVG9UZXh0Q29uZmlnOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5Db21wb25lbnQ7Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuUmVmZXJlbmNlOwotaW1wb3J0IG9yZy5zbGY0ai5Mb2dnZXI7Ci0KLWltcG9ydCBtb2RlbC5sb2FkZXIuQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXI7Ci1AQ29tcG9uZW50KAotCSAgICBwcm9wZXJ0eT0gewotCSAgICAgICAgInRyYW5zZm9ybWF0aW9uPUFtYWx0aGVhMlRleHQiCi0JICAgIH0sCi0JICAgIHNlcnZpY2U9SU1vZGVsVG9UZXh0Q29uZmlnLmNsYXNzCi0JKQotcHVibGljIGNsYXNzIE0yVFRyYW5zZm9ybWF0aW9uQ29uZmlnIGltcGxlbWVudHMgSU1vZGVsVG9UZXh0Q29uZmlnIHsKLQotCUBSZWZlcmVuY2UKLQkgIHByaXZhdGUgSUN1c3RvbU9iamVjdHNTdG9yZSBjdXN0b21PYmpzU3RvcmU7Ci0KLQkKLQlAUmVmZXJlbmNlCi0JcHJpdmF0ZSBBbWFsdGhlYU11bHRpRmlsZUxvYWRlciBhbWFsdGhlYU11bHRpRmlsZUxvYWRlcjsKLQotCi0JQE92ZXJyaWRlCi0JcHVibGljIFJlc291cmNlU2V0IGdldElucHV0UmVzb3VyY2VTZXQoKSB7Ci0KLQkJUHJvcGVydGllcyBwcm9wZXJ0aWVzID0gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKFByb3BlcnRpZXMuY2xhc3MpOwotCi0JCUxvZ2dlciBsb2dnZXIgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoTG9nZ2VyLmNsYXNzKTsKLQkJCi0JCWlmIChwcm9wZXJ0aWVzICE9IG51bGwpIHsKLQotCQkJU3RyaW5nIGZvbGRlclBhdGggPSBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KCJpbnB1dF9tb2RlbHNfZm9sZGVyIik7Ci0KLQkJCWlmIChmb2xkZXJQYXRoICE9IG51bGwpIHsKLQotCQkJCVJlc291cmNlU2V0IHJlc291cmNlU2V0ID0gYW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIubG9hZE11bHRpcGxlRmlsZXMoZm9sZGVyUGF0aCk7Ci0KLQkJCQlpZihyZXNvdXJjZVNldC5nZXRSZXNvdXJjZXMoKS5zaXplKCk9PTApIHsKLQkJCQkJbG9nZ2VyLmVycm9yKCJubyBBbWFsdGhlYSBtb2RlbCBmaWxlcyBhcmUgbG9hZGVkLiBWZXJpZnkgaWYgdGhlIG1vZGVsIHZlcnNpb24gaXMgOiAiICsgQW1hbHRoZWFGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVBbWFsdGhlYSgpLmdldFZlcnNpb24oKSk7Ci0JCQkJfQotCQkJCQotCQkJCXJldHVybiByZXNvdXJjZVNldDsKLQkJCX0gZWxzZSB7Ci0JCQkJbG9nZ2VyLmVycm9yKCJpbnB1dF9tb2RlbHNfZm9sZGVyIHBhcmFtZXRlciBub3Qgc2V0IiwKLQkJCQkJCW5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigiaW5wdXRfbW9kZWxzX2ZvbGRlciBwcm9wZXJ0eSBub3Qgc2V0IikpOwotCQkJfQotCi0JCX0gZWxzZSB7Ci0JCQlsb2dnZXIuZXJyb3IoIlBhcmFtZXRlcnMgb2JqZWN0IG5vdCBzZXQgIiwgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCJQYXJhbWV0ZXIgb2JqZWN0IGlzIG51bGwiKSk7Ci0JCX0KLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0gCi0JCi0gCi0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL21vZGVsL2xvYWRlci9BbWFsdGhlYU11bHRpRmlsZUxvYWRlci5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMvbW9kZWwvbG9hZGVyL0FtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxMjk0Y2QuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMvbW9kZWwvbG9hZGVyL0FtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCwgMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgbW9kZWwubG9hZGVyOwotCi1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uRmlsZW5hbWVGaWx0ZXI7Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYVBhY2thZ2U7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLnNwaGlueC5BbWFsdGhlYVJlc291cmNlRmFjdG9yeTsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuVVJJOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQ7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLmltcGwuUmVzb3VyY2VTZXRJbXBsOwotaW1wb3J0IG9yZy5lY2xpcHNlLnNwaGlueC5lbWYucmVzb3VyY2UuRXh0ZW5kZWRSZXNvdXJjZVNldDsKLWltcG9ydCBvcmcuZWNsaXBzZS5zcGhpbnguZW1mLnJlc291cmNlLkV4dGVuZGVkUmVzb3VyY2VTZXRJbXBsOwotaW1wb3J0IG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50LmFubm90YXRpb25zLkNvbXBvbmVudDsKLUBDb21wb25lbnQoCi0Jc2VydmljZT1BbWFsdGhlYU11bHRpRmlsZUxvYWRlci5jbGFzcwotKQotcHVibGljIGNsYXNzIEFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyIHsKLQotCXB1YmxpYyBSZXNvdXJjZVNldCBsb2FkTXVsdGlwbGVGaWxlcyhTdHJpbmcgZGlyZWN0b3J5UGF0aCkgewotCi0JCUZpbGUgZm9sZGVyID0gbmV3IEZpbGUoZGlyZWN0b3J5UGF0aCk7Ci0KLQkJaWYgKGZvbGRlci5pc0RpcmVjdG9yeSgpKSB7Ci0JCQlGaWxlW10gbGlzdEZpbGVzID0gZm9sZGVyLmxpc3RGaWxlcyhuZXcgRmlsZW5hbWVGaWx0ZXIoKSB7Ci0KLQkJCQlAT3ZlcnJpZGUKLQkJCQlwdWJsaWMgYm9vbGVhbiBhY2NlcHQoRmlsZSBmaWxlLCBTdHJpbmcgbmFtZSkgewotCi0JCQkJCWlmIChuYW1lLmVuZHNXaXRoKCIuYW14bWkiKSkgewotCQkJCQkJcmV0dXJuIHRydWU7Ci0JCQkJCX0KLQotCQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQkJfQotCQkJfSk7Ci0KLQkJCVJlc291cmNlU2V0IHJlc291cmNlU2V0ID0gaW5pdGlhbGl6ZVJlc291cmNlU2V0KCk7Ci0KLQkJCWxvYWRNdWx0aXBsZUZpbGVzKHJlc291cmNlU2V0LCBsaXN0RmlsZXMpOwotCi0JCQlyZXR1cm4gcmVzb3VyY2VTZXQ7Ci0JCX0KLQotCQlyZXR1cm4gbmV3IFJlc291cmNlU2V0SW1wbCgpOwotCi0JfQotCi0JcHJpdmF0ZSBMaXN0PEFtYWx0aGVhPiBsb2FkTXVsdGlwbGVGaWxlcyhSZXNvdXJjZVNldCByZXNvdXJjZVNldCwgRmlsZVtdIGxpc3RGaWxlcykgewotCi0JCUxpc3Q8QW1hbHRoZWE+IG1vZGVscyA9IG5ldyBBcnJheUxpc3Q8QW1hbHRoZWE+KCk7Ci0KLQkJZm9yIChGaWxlIGFteG1pRmlsZSA6IGxpc3RGaWxlcykgewotCi0JCQlmaW5hbCBSZXNvdXJjZSByZXMgPSByZXNvdXJjZVNldC5jcmVhdGVSZXNvdXJjZShVUkkuY3JlYXRlVVJJKCJmaWxlOi8vLy8iICsgYW14bWlGaWxlLmdldEFic29sdXRlUGF0aCgpKSk7Ci0JCQl0cnkgewotCQkJCXJlcy5sb2FkKG51bGwpOwotCQkJCWZvciAoZmluYWwgRU9iamVjdCBjb250ZW50IDogcmVzLmdldENvbnRlbnRzKCkpIHsKLQkJCQkJaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBBbWFsdGhlYSkgewotCQkJCQkJbW9kZWxzLmFkZCgoQW1hbHRoZWEpIGNvbnRlbnQpOwotCQkJCQl9Ci0JCQkJfQotCQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotCQkJCS8vIGlnbm9yZQotCQkJfQotCQl9Ci0JCXJldHVybiBtb2RlbHM7Ci0JfQotCi0JcHJpdmF0ZSBzdGF0aWMgUmVzb3VyY2VTZXQgaW5pdGlhbGl6ZVJlc291cmNlU2V0KCkgewotCQlmaW5hbCBFeHRlbmRlZFJlc291cmNlU2V0IHJlc1NldCA9IG5ldyBFeHRlbmRlZFJlc291cmNlU2V0SW1wbCgpOwotCQlyZXNTZXQuZ2V0UmVzb3VyY2VGYWN0b3J5UmVnaXN0cnkoKS5nZXRFeHRlbnNpb25Ub0ZhY3RvcnlNYXAoKS5wdXQoImFteG1pIiwgbmV3IEFtYWx0aGVhUmVzb3VyY2VGYWN0b3J5KCkpOwotCQlBbWFsdGhlYVBhY2thZ2UuZUlOU1RBTkNFLmVDbGFzcygpOyAvLyByZWdpc3RlciB0aGUgcGFja2FnZQotCi0JCXJldHVybiByZXNTZXQ7Ci0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYy90ZW1wbGF0ZXMvQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYy90ZW1wbGF0ZXMvQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0NWM4ZDYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMvdGVtcGxhdGVzL0FtYWx0aGVhTW9kZWwyVGV4dFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCwgMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBhY2thZ2UgdGVtcGxhdGVzCi0KLWltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkV3JpdGVyCi1pbXBvcnQgamF2YS5pby5GaWxlCi1pbXBvcnQgamF2YS5pby5GaWxlV3JpdGVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuSUN1c3RvbU9iamVjdHNTdG9yZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLk1vZGVsMlRleHRSb290VHJhbnNmb3JtZXIKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5Db21wb25lbnQKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5SZWZlcmVuY2UKLQotQENvbXBvbmVudChwcm9wZXJ0eT0jWwotCSJ0cmFuc2Zvcm1hdGlvbj1BbWFsdGhlYTJUZXh0IgotXSwgc2VydmljZT1Nb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyKQotY2xhc3MgQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXIgZXh0ZW5kcyBNb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyIHsKLQotCUBSZWZlcmVuY2UKLQlJQ3VzdG9tT2JqZWN0c1N0b3JlIGN1c3RvbU9ianNTdG9yZQotCi0JQFJlZmVyZW5jZSAKLQlNMlRfT3V0cHV0X1RyYW5zZm9ybWVyIHRleHRHZW5lcmF0b3IKLQotCW92ZXJyaWRlIG0ydFRyYW5zZm9ybWF0aW9uKFJlc291cmNlU2V0IGlucHV0UmVzb3VyY2VTZXQpIHsKLQotCQlmb3IgKHJlc291cmNlIDogaW5wdXRSZXNvdXJjZVNldC5yZXNvdXJjZXMpIHsKLQkJCWZvciAobW9kZWwgOiByZXNvdXJjZS5jb250ZW50cykgewotCQkJCS8vIFRPRE86IG1vZGVsIGlzIGEgQW1hbHRoZWEgbW9kZWwKLQkJCQkvLyBjaGVjayBqYXZhZG9jIDogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcveHRlbmQvZG9jdW1lbnRhdGlvbi8yMDRfYWN0aXZlYW5ub3RhdGlvbnMuaHRtbCNhY3RpdmUtYW5ub3RhdGlvbnMtZXhwcmVzc2lvbiAKLQkJCQljdXN0b21PYmpzU3RvcmUuZ2V0TG9nZ2VyKCkuaW5mbygiUHJvY2Vzc2luZyBmaWxlIDogIiArIHJlc291cmNlLlVSSSkKLQotCQkJCXZhciBTdHJpbmcgb3V0cHV0Rm9sZGVyID0gZ2V0UHJvcGVydHkoIm0ydF9vdXRwdXRfZm9sZGVyIiwgY3VzdG9tT2Jqc1N0b3JlKTsKLS8vCQkJCXZhbCB0ZXh0R2VuZXJhdG9yID0gbmV3IE0yVF9PdXRwdXRfVHJhbnNmb3JtZXIKLQkJCQkvLyA9PT09PSBvdXRwdXQgMSA9PT09PQotCQkJCXZhciBvdXRwdXRGaWxlMSA9IG5ldyBGaWxlKG91dHB1dEZvbGRlciwgIjEudHh0IikKLQkJCQlvdXRwdXRGaWxlMS5wYXJlbnRGaWxlLm1rZGlycwotCQkJCW91dHB1dEZpbGUxLmNyZWF0ZU5ld0ZpbGUKLQotCQkJCWlmIChtb2RlbCBpbnN0YW5jZW9mIEFtYWx0aGVhKSB7Ci0JCQkJCXZhbCB0ZXh0ID0gdGV4dEdlbmVyYXRvci5nZW5lcmF0ZU91dHB1dDEobW9kZWwgYXMgQW1hbHRoZWEpCi0KLQkJCQkJLypzYXZpbmcgYnVmZmVyIGludG8gZmlsZSAqLwotCQkJCQl2YWwgYnVmZmVyZWRXcml0ZXIgPSBuZXcgQnVmZmVyZWRXcml0ZXIobmV3IEZpbGVXcml0ZXIob3V0cHV0RmlsZTEpKQotCQkJCQlidWZmZXJlZFdyaXRlci53cml0ZSh0ZXh0KQotCQkJCQlidWZmZXJlZFdyaXRlci5jbG9zZQotCQkJCX0KLQotCQkJCS8vID09PT09IG91dHB1dCAyID09PT09Ci0JCQkJdmFyIG91dHB1dEZpbGUyID0gbmV3IEZpbGUob3V0cHV0Rm9sZGVyLCAiMi50eHQiKQotCQkJCW91dHB1dEZpbGUyLnBhcmVudEZpbGUubWtkaXJzCi0JCQkJb3V0cHV0RmlsZTIuY3JlYXRlTmV3RmlsZQotCi0JCQkJaWYgKG1vZGVsIGluc3RhbmNlb2YgQW1hbHRoZWEpIHsKLQkJCQkJdmFsIHRleHQgPSB0ZXh0R2VuZXJhdG9yLmdlbmVyYXRlT3V0cHV0Mihtb2RlbCkKLQotCQkJCQkvKnNhdmluZyBidWZmZXIgaW50byBmaWxlICovCi0JCQkJCXZhbCBidWZmZXJlZFdyaXRlciA9IG5ldyBCdWZmZXJlZFdyaXRlcihuZXcgRmlsZVdyaXRlcihvdXRwdXRGaWxlMikpCi0JCQkJCWJ1ZmZlcmVkV3JpdGVyLndyaXRlKHRleHQpCi0JCQkJCWJ1ZmZlcmVkV3JpdGVyLmNsb3NlCi0JCQkJfQotCi0JCQkJLy8gVE9ETzogc2F2ZSB0aGUgZmlsZSBoZXJlCi0JCQkJY3VzdG9tT2Jqc1N0b3JlLmxvZ2dlci5pbmZvKCJTY3JpcHQgZmlsZSBnZW5lcmF0ZWQgYXQgOiAiICsgb3V0cHV0Rm9sZGVyKQotCQkJfQotCQl9Ci0KLQl9Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYy90ZW1wbGF0ZXMvTTJUX091dHB1dF9UcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL3RlbXBsYXRlcy9NMlRfT3V0cHV0X1RyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2M4ZWY3Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL3RlbXBsYXRlcy9NMlRfT3V0cHV0X1RyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCwgMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBhY2thZ2UgdGVtcGxhdGVzCi0KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWEKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUnVubmFibGVDYWxsCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlRhc2sKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwudXRpbC5Nb2RlbFV0aWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwudXRpbC5Tb2Z0d2FyZVV0aWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5BYnN0cmFjdFRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuQ29tcG9uZW50Ci0KLUBDb21wb25lbnQoc2VydmljZT1NMlRfT3V0cHV0X1RyYW5zZm9ybWVyKQotY2xhc3MgTTJUX091dHB1dF9UcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0VHJhbnNmb3JtZXIgewotCi0JLyoqCi0JICogQ3JlYXRlcyBvdXRwdXQgd2l0aCBhICJ0ZW1wbGF0ZSBvbmx5IiBzdHlsZSAobGlrZSBYcGFuZC9YdGVuZCkuCi0JICovCi0JZGVmIFN0cmluZyBnZW5lcmF0ZU91dHB1dDEoQW1hbHRoZWEgYW1hbHRoZWEpICcnJwotCQnCq3ZhciBzd01vZGVsPWFtYWx0aGVhLnN3TW9kZWzCuwotCQkKLQkJLy8gZ2VuZXJhdGluZyBpbmZvIGFib3V0IHRhc2tzIGFuZCBydW5uYWJsZXMgKGluIGV4ZWN1dGlvbiBvcmRlcikKLQkJCi0JCcKrRk9SIHRhc2sgOiBzd01vZGVsLnRhc2tzwrsKLQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkJVGFzazogwqt0YXNrLm5hbWXCuwotCQkKLQkJCcKrdmFyIGdyYXBoRW50cmllcz10YXNrLmFjdGl2aXR5R3JhcGguaXRlbXPCuwotCQkJwqtGT1IgZ3JhcGhFbnRyeTogZ3JhcGhFbnRyaWVzwrsKLQkJCQnCq0lGIGdyYXBoRW50cnkgaW5zdGFuY2VvZiBSdW5uYWJsZUNhbGzCuwotCQkJCQkJCUFzc29jaWF0ZWQgUnVubmFibGU6IMKrKGdyYXBoRW50cnkgYXMgIFJ1bm5hYmxlQ2FsbCkucnVubmFibGUubmFtZcK7Ci0JCQkJwqtFTkRJRsK7Ci0JCQnCq0VOREZPUsK7Ci0JCcKrRU5ERk9SwrsKLQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQknJycKLQotCi0JLyoqCi0JICogQ3JlYXRlcyBvdXRwdXQgd2l0aCBhIGNvbWJpbmF0aW9uIG9mIHRlbXBsYXRlIGFuZCBmdW5jdGlvbnMuCi0JICogVGhpcyBhbGxvd3MgYSBtb3JlIGZsZXhpYmxlIHVzZSBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBhbmQgbGFtYmRhcy4KLQkgKi8KLQlkZWYgU3RyaW5nIGdlbmVyYXRlT3V0cHV0MihBbWFsdGhlYSBhbWFsdGhlYSkgJycnCi0JCQotCQkvLyBnZW5lcmF0aW5nIGluZm8gYWJvdXQgdGFza3MgYW5kIHJ1bm5hYmxlcyAoaW4gYWxwaGFiZXRpYyBvcmRlcikKLQkJCi0JCcKrRk9SIHRhc2sgOiBNb2RlbFV0aWwuZ2V0T3JDcmVhdGVTd01vZGVsKGFtYWx0aGVhKS50YXNrc8K7Ci0JCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JCVRhc2s6IMKrdGFzay5uYW1lwrsKLQkJCi0JCQnCq0ZPUiBuYW1lOiBydW5uYWJsZU5hbWVzT2YodGFzaynCuwotCQkJCUFzc29jaWF0ZWQgUnVubmFibGU6IMKrbmFtZcK7Ci0JCQnCq0VOREZPUsK7Ci0JCcKrRU5ERk9SwrsKLQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQknJycKLQkJCi0JZGVmIHJ1bm5hYmxlTmFtZXNPZihUYXNrIHRhc2spIHsKLQkJU29mdHdhcmVVdGlsLmNvbGxlY3RBY3Rpdml0eUdyYXBoSXRlbXModGFzay5hY3Rpdml0eUdyYXBoLCBudWxsLCBbZSB8IGUgaW5zdGFuY2VvZiBSdW5uYWJsZUNhbGxdKQotCQkJLm1hcFtlIHwgKGUgYXMgUnVubmFibGVDYWxsKS5ydW5uYWJsZS5uYW1lXQotCQkJLnNvcnQKLQl9Ci0JCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLmNsYXNzcGF0aCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMmYzMDY0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwubGF1bmNoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwubGF1bmNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjA1YzA1Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLmxhdW5jaAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgotPGxhdW5jaENvbmZpZ3VyYXRpb24gdHlwZT0ib3JnLmVjbGlwc2UuYW50LkFudEJ1aWxkZXJMYXVuY2hDb25maWd1cmF0aW9uVHlwZSI+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aS5BVFRSX1RBUkdFVFNfVVBEQVRFRCIgdmFsdWU9InRydWUiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuYW50LnVpLkRFRkFVTFRfVk1fSU5TVEFMTCIgdmFsdWU9ImZhbHNlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aVNFVF9JTlBVVEhBTkRMRVIiIHZhbHVlPSJmYWxzZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuQVRUUl9SRUZSRVNIX1NDT1BFIiB2YWx1ZT0iJHt3b3JraW5nX3NldDombHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90Oz8mZ3Q7JiMxMzsmIzEwOyZsdDtyZXNvdXJjZXMmZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDsvcmVzb3VyY2VzJmd0O30iLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5jYXB0dXJlX291dHB1dCIgdmFsdWU9ImZhbHNlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLnVpLkFUVFJfQ09OU09MRV9PVVRQVVRfT04iIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5BVFRSX0xBVU5DSF9JTl9CQUNLR1JPVU5EIiB2YWx1ZT0iZmFsc2UiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkNMQVNTUEFUSF9QUk9WSURFUiIgdmFsdWU9Im9yZy5lY2xpcHNlLmFudC51aS5BbnRDbGFzc3BhdGhQcm92aWRlciIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkRFRkFVTFRfQ0xBU1NQQVRIIiB2YWx1ZT0idHJ1ZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuUFJPSkVDVF9BVFRSIiB2YWx1ZT0iIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9CVUlMREVSX0VOQUJMRUQiIHZhbHVlPSJ0cnVlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0JVSUxEX1NDT1BFIiB2YWx1ZT0iJHt3b3JraW5nX3NldDombHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90Oz8mZ3Q7JiMxMzsmIzEwOyZsdDtyZXNvdXJjZXMmZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8mcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5jbGFzc3BhdGgmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5leHRlcm5hbFRvb2xCdWlsZGVycyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLmdpdGlnbm9yZSZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLnByb2plY3QmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL2J1aWxkLnByb3BlcnRpZXMmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL01FVEEtSU5GJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9tb2RlbCZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvcGx1Z2luLnByb3BlcnRpZXMmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BsdWdpbi54bWwmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BvbS54bWwmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvdGFyZ2V0JnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDsvcmVzb3VyY2VzJmd0O30iLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfTE9DQVRJT04iIHZhbHVlPSIke3Byb2plY3RfbG9jOi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWx9Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfUlVOX0JVSUxEX0tJTkRTIiB2YWx1ZT0iaW5jcmVtZW50YWwsYXV0bywiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfVE9PTF9BUkdVTUVOVFMiIHZhbHVlPSItRGJ1aWxkLnByb2plY3Q9JHtwcm9qZWN0X2xvYzovYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsfSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfVFJJR0dFUlNfQ09ORklHVVJFRCIgdmFsdWU9InRydWUiLz4KLTwvbGF1bmNoQ29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvY29weUV4YW1wbGUuYW50IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNmNlOGUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTxwcm9qZWN0IG5hbWU9ImNvcHlFeGFtcGxlIiBkZWZhdWx0PSJtYWluIiBiYXNlZGlyPSIuLi8uLiI+Ci0KLQk8cHJvcGVydHkgbmFtZT0iaW5zdGFsbGVyIiB2YWx1ZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIgLz4KLQk8aW1wb3J0IGZpbGU9Ii4uLy4uLy4uLy4uL2J1aWxkLyR7aW5zdGFsbGVyfS9jb3B5RXhhbXBsZUxpYi5hbnQiIG9wdGlvbmFsPSJ0cnVlIiAvPgotCTxiYXNlbmFtZSBmaWxlPSIke2J1aWxkLnByb2plY3R9IiBwcm9wZXJ0eT0icHJvamVjdCIgLz4KLQotCTx0YXJnZXQgbmFtZT0ibWFpbiI+Ci0JCTxjb3B5RXhhbXBsZSBwcm9qZWN0PSIke3Byb2plY3R9IiAvPgotCTwvdGFyZ2V0PgotCi08L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3YTllYzAuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXI8L25hbWU+Ci0JCQk8dHJpZ2dlcnM+YXV0byxmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+Ci0JCQk8YXJndW1lbnRzPgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PkxhdW5jaENvbmZpZ0hhbmRsZTwva2V5PgotCQkJCQk8dmFsdWU+Jmx0O3Byb2plY3QmZ3Q7Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwubGF1bmNoPC92YWx1ZT4KLQkJCQk8L2RpY3Rpb25hcnk+Ci0JCQkJPGRpY3Rpb25hcnk+Ci0JCQkJCTxrZXk+aW5jY2xlYW48L2tleT4KLQkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPgotCQkJCTwvZGljdGlvbmFyeT4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDViZjdmLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEFQUDRNQyBNb2RlbCBUcmFuc2Zvcm1hdGlvbiBFeGFtcGxlIC1TYW1wbGUgTW9kZWwKLUJ1bmRsZS1TeW1ib2xpY05hbWU6IGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbDtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUJ1bmRsZS1DbGFzc1BhdGg6IC4KLUJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgQVBQNE1DCi1CdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44Ci1FeHBvcnQtUGFja2FnZTogU2FtcGxlTW9kZWwsCi0gU2FtcGxlTW9kZWwuaW1wbCwKLSBTYW1wbGVNb2RlbC51dGlsCi1SZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAotIG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydAotQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkKLUF1dG9tYXRpYy1Nb2R1bGUtTmFtZTogYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlYmQxOTUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0jIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICAqIENvcHlyaWdodCAoYykgMjAxNyBSb2JlcnQgQm9zY2ggR21iSC4KLSMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSMgICoKLSMgICogQ29udHJpYnV0b3JzOgotIyAgKiAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotYmluLmluY2x1ZGVzID0gLixcCi0gICAgICAgICAgICAgICBtb2RlbC8sXAotICAgICAgICAgICAgICAgTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgcGx1Z2luLnByb3BlcnRpZXMsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwKLWphcnMuY29tcGlsZS5vcmRlciA9IC4KLXNvdXJjZS4uID0gc3JjLwotb3V0cHV0Li4gPSBiaW4vCi1zcmMuaW5jbHVkZXMgPSBhYm91dC5odG1sLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL2VwbC0yLjAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgotICAgIDx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAyLjA8L3RpdGxlPgotICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gICAgICBib2R5IHsKLSAgICAgICAgbWFyZ2luOiAxLjVlbSAzZW07Ci0gICAgICB9Ci0gICAgICBoMXsKLSAgICAgICAgZm9udC1zaXplOjEuNWVtOwotICAgICAgfQotICAgICAgaDJ7Ci0gICAgICAgIGZvbnQtc2l6ZToxZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206MC41ZW07Ci0gICAgICAgIG1hcmdpbi10b3A6MWVtOwotICAgICAgfQotICAgICAgcCB7Ci0gICAgICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Ci0gICAgICB9Ci0gICAgICB1bCwgb2x7Ci0gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lOwotICAgICAgfQotICAgIDwvc3R5bGU+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPGgxPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMDwvaDE+Ci0gICAgPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKLSAgICAgIFBVQkxJQyBMSUNFTlNFICgmbGRxdW87QUdSRUVNRU5UJnJkcXVvOykuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KLSAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCYjMDM5O1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgotICAgIDxwPiZsZHF1bztDb250cmlidXRpb24mcmRxdW87IG1lYW5zOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvbnRlbnQKLSAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT4KLSAgICAgICAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvbGk+Ci0gICAgICAgICAgPGxpPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgICAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KLSAgICAgICAgYW5kIGFyZSBEaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCi0gICAgICAgICZsZHF1bztvcmlnaW5hdGVzJnJkcXVvOyBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvciYjMDM5O3MgYmVoYWxmLgotICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKLSAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0b3ImcmRxdW87IG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9wPgotICAgIDxwPiZsZHF1bztMaWNlbnNlZCBQYXRlbnRzJnJkcXVvOyBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCi0gICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCi0gICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztQcm9ncmFtJnJkcXVvOyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcwotICAgICAgQWdyZWVtZW50LgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UmVjaXBpZW50JnJkcXVvOyBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICBvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGVyaXZhdGl2ZSBXb3JrcyZyZHF1bzsgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgotICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQotICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztNb2RpZmllZCBXb3JrcyZyZHF1bzsgc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKLSAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQotICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCi0gICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAotICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAotICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKLSAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKLSAgICAgIFdvcmtzIHRoZXJlb2YuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztEaXN0cmlidXRlJnJkcXVvOyBtZWFucyB0aGUgYWN0cyBvZiBhKSBkaXN0cmlidXRpbmcgb3IgYikgbWFraW5nIGF2YWlsYWJsZQotICAgICAgaW4gYW55IG1hbm5lciB0aGF0IGVuYWJsZXMgdGhlIHRyYW5zZmVyIG9mIGEgY29weS4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1NvdXJjZSBDb2RlJnJkcXVvOyBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKLSAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCi0gICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTZWNvbmRhcnkgTGljZW5zZSZyZHF1bzsgbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKLSAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55Ci0gICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAotICAgICAgQ29udHJpYnV0b3IuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLSAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAotICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLSAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAotICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAotICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCi0gICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAotICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCi0gICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCi0gICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAotICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKLSAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCi0gICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCi0gICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCi0gICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQotICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgotICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCi0gICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi0gICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cwotICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKLSAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bwotICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50JiMwMzk7cwotICAgICAgICByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50Ci0gICAgICAgIGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0Ci0gICAgICAgIGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgotICAgICAgPC9saT4KLSAgICAgIDxsaT5lKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8gQ29udHJpYnV0b3IKLSAgICAgICAgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbiB0aG9zZSBzZXQgZm9ydGgKLSAgICAgICAgaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyByZWNlaXB0IG9mIHRoZQotICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKLSAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+Ci0gICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCi0gICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQotICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQotICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCi0gICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKLSAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT4KLSAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQotICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKLSAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKLSAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCi0gICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCi0gICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMmIzAzOTsgcmlnaHRzIGluIHRoZQotICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5Ci0gICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KLSAgICAgICAgICA8L2xpPgotICAgICAgICA8L3VsPgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCi0gICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCi0gICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCi0gICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCi0gICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCi0gICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAotICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQotICAgICAgKCZsc3F1bztub3RpY2VzJnJzcXVvOykgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbSBmcm9tIGFueSBjb3B5IG9mIHRoZSBQcm9ncmFtIHdoaWNoCi0gICAgICB0aGV5IERpc3RyaWJ1dGUsIHByb3ZpZGVkIHRoYXQgQ29udHJpYnV0b3JzIG1heSBhZGQgdGhlaXIgb3duIGFwcHJvcHJpYXRlCi0gICAgICBub3RpY2VzLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImNvbW1lcmNpYWwtZGlzdHJpYnV0aW9uIj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvaDI+Ci0gICAgPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMKLSAgICAgIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcwotICAgICAgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZiB0aGUgUHJvZ3JhbSwgdGhlCi0gICAgICBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkCi0gICAgICBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIKLSAgICAgIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEKLSAgICAgIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAoJmxkcXVvO0NvbW1lcmNpYWwgQ29udHJpYnV0b3ImcmRxdW87KQotICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgotICAgICAgKCZsZHF1bztJbmRlbW5pZmllZCBDb250cmlidXRvciZyZHF1bzspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKLSAgICAgIChjb2xsZWN0aXZlbHkgJmxkcXVvO0xvc3NlcyZyZHF1bzspIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zCi0gICAgICBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudAotICAgICAgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgotICAgICAgd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLgotICAgICAgVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcKLSAgICAgIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0bwotICAgICAgcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAotICAgICAgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLAotICAgICAgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKLSAgICAgIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCi0gICAgPC9wPgotICAgIDxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0KLSAgICAgIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCi0gICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotICAgICAgY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zCi0gICAgICBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJiMwMzk7cyByZXNwb25zaWJpbGl0eSBhbG9uZS4KLSAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCi0gICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi0gICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCi0gICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgotICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKLSAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmbGRxdW87QVMgSVMmcmRxdW87IEJBU0lTLCBXSVRIT1VUCi0gICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAotICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAotICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcwotICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCi0gICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCi0gICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQotICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgotICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgotICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKLSAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQotICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCi0gICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCi0gICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+Ci0gICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKLSAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKLSAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQotICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAotICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgotICAgIDwvcD4KLSAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCi0gICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgotICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKLSAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyByaWdodHMgZ3JhbnRlZAotICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi0gICAgPC9wPgotICAgIDxwPkFsbCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KLSAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKLSAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZwotICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQotICAgICAgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQmIzAzOTtzIG9ibGlnYXRpb25zIHVuZGVyCi0gICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQotICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KLSAgICA8L3A+Ci0gICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5Ci0gICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKLSAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAotICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAotICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcwotICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCi0gICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KLSAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCi0gICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3Ci0gICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQotICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgotICAgIDwvcD4KLSAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKLSAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQotICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKLSAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKLSAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAotICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KLSAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSAmbmRhc2g7IEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZTwvaDI+Ci0gICAgPHA+JmxkcXVvO1RoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKLSAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKLSAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAotICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LiZyZHF1bzsKLSAgICA8L3A+Ci0gICAgPGJsb2NrcXVvdGU+Ci0gICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCi0gICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KLSAgICAgIDwvcD4KLSAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCi0gICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCi0gICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCi0gICAgICAgIHN1Y2ggYSBub3RpY2UuCi0gICAgICA8L3A+Ci0gICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+Ci0gICAgPC9ibG9ja3F1b3RlPgotICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL21vZGVsL1NhbXBsZS5lY29yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9tb2RlbC9TYW1wbGUuZWNvcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMDVjNDIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL21vZGVsL1NhbXBsZS5lY29yZQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08ZWNvcmU6RVBhY2thZ2UgeG1pOnZlcnNpb249IjIuMCIgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgIHhtbG5zOmVjb3JlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIiBuYW1lPSJTYW1wbGVNb2RlbCIgbnNVUkk9Imh0dHA6Ly9TYW1wbGVNb2RlbC8wLjMuMCIgbnNQcmVmaXg9IlNhbXBsZU1vZGVsIj4KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNb2RlbCI+Ci0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJ1bm5hYmxlcyIgdXBwZXJCb3VuZD0iLTEiCi0gICAgICAgIGVUeXBlPSIjLy9SdW5uYWJsZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibGFiZWxzIiB1cHBlckJvdW5kPSItMSIKLSAgICAgICAgZVR5cGU9IiMvL0xhYmVsIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJtZW1vcmllcyIgdXBwZXJCb3VuZD0iLTEiCi0gICAgICAgIGVUeXBlPSIjLy9NZW1vcnkiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNjaGVkdWxlcnMiIHVwcGVyQm91bmQ9Ii0xIgotICAgICAgICBlVHlwZT0iIy8vU2NoZWR1bGVyIiBjb250YWlubWVudD0idHJ1ZSIvPgotICA8L2VDbGFzc2lmaWVycz4KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSdW5uYWJsZSI+Ci0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImxhYmVscyIgZVR5cGU9IiMvL0xhYmVsIi8+Ci0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im5hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgPC9lQ2xhc3NpZmllcnM+Ci0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTGFiZWwiPgotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gIDwvZUNsYXNzaWZpZXJzPgotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1lbW9yeSI+Ci0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im5hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgPC9lQ2xhc3NpZmllcnM+Ci0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2NoZWR1bGVyIj4KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibmFtZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICA8L2VDbGFzc2lmaWVycz4KLTwvZWNvcmU6RVBhY2thZ2U+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvbW9kZWwvU2FtcGxlLmdlbm1vZGVsIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL21vZGVsL1NhbXBsZS5nZW5tb2RlbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFlN2I5ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvbW9kZWwvU2FtcGxlLmdlbm1vZGVsCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxnZW5tb2RlbDpHZW5Nb2RlbCB4bWk6dmVyc2lvbj0iMi4wIiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOmVjb3JlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIgotICAgIHhtbG5zOmdlbm1vZGVsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIiBtb2RlbERpcmVjdG9yeT0iL29yZy5lY2xpcHNlLmFwcDRtYy5zYW1wbGUubW9kZWwvc3JjIiBtb2RlbFBsdWdpbklEPSJvcmcuZWNsaXBzZS5hcHA0bWMuc2FtcGxlLm1vZGVsIgotICAgIG1vZGVsTmFtZT0iU2FtcGxlIiByb290RXh0ZW5kc0NsYXNzPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5NaW5pbWFsRU9iamVjdEltcGwkQ29udGFpbmVyIgotICAgIGltcG9ydGVySUQ9Im9yZy5lY2xpcHNlLmVtZi5pbXBvcnRlci5lY29yZSIgY29tcGxpYW5jZUxldmVsPSI4LjAiIGNvcHlyaWdodEZpZWxkcz0iZmFsc2UiCi0gICAgb3BlcmF0aW9uUmVmbGVjdGlvbj0idHJ1ZSIgaW1wb3J0T3JnYW5pemluZz0idHJ1ZSI+Ci0gIDxmb3JlaWduTW9kZWw+U2FtcGxlLmVjb3JlPC9mb3JlaWduTW9kZWw+Ci0gIDxnZW5QYWNrYWdlcyBwcmVmaXg9IlNhbXBsZU1vZGVsIiBkaXNwb3NhYmxlUHJvdmlkZXJGYWN0b3J5PSJ0cnVlIiBlY29yZVBhY2thZ2U9IlNhbXBsZS5lY29yZSMvIj4KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJTYW1wbGUuZWNvcmUjLy9Nb2RlbCI+Ci0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFNhbXBsZS5lY29yZSMvL01vZGVsL3J1bm5hYmxlcyIvPgotICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBTYW1wbGUuZWNvcmUjLy9Nb2RlbC9sYWJlbHMiLz4KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgU2FtcGxlLmVjb3JlIy8vTW9kZWwvbWVtb3JpZXMiLz4KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgU2FtcGxlLmVjb3JlIy8vTW9kZWwvc2NoZWR1bGVycyIvPgotICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJTYW1wbGUuZWNvcmUjLy9SdW5uYWJsZSI+Ci0gICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgU2FtcGxlLmVjb3JlIy8vUnVubmFibGUvbGFiZWxzIi8+Ci0gICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgU2FtcGxlLmVjb3JlIy8vUnVubmFibGUvbmFtZSIvPgotICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJTYW1wbGUuZWNvcmUjLy9MYWJlbCI+Ci0gICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgU2FtcGxlLmVjb3JlIy8vTGFiZWwvbmFtZSIvPgotICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJTYW1wbGUuZWNvcmUjLy9NZW1vcnkiPgotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFNhbXBsZS5lY29yZSMvL01lbW9yeS9uYW1lIi8+Ci0gICAgPC9nZW5DbGFzc2VzPgotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9IlNhbXBsZS5lY29yZSMvL1NjaGVkdWxlciI+Ci0gICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgU2FtcGxlLmVjb3JlIy8vU2NoZWR1bGVyL25hbWUiLz4KLSAgICA8L2dlbkNsYXNzZXM+Ci0gIDwvZ2VuUGFja2FnZXM+Ci08L2dlbm1vZGVsOkdlbk1vZGVsPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BsdWdpbi5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BsdWdpbi5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTc1OGNmLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wbHVnaW4ucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLSMgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgICogQ29weXJpZ2h0IChjKSAyMDE3IFJvYmVydCBCb3NjaCBHbWJILgotIyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotIyAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotIyAgKgotIyAgKiBDb250cmlidXRvcnM6Ci0jICAqICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1wbHVnaW5OYW1lID0gU2FtcGxlIE1vZGVsCi1wcm92aWRlck5hbWUgPSB3d3cuZXhhbXBsZS5vcmcKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wbHVnaW4ueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjYjlkOGYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BsdWdpbi54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPD9lY2xpcHNlIHZlcnNpb249IjMuMCI/PgotCi08IS0tCi0gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgUm9iZXJ0IEJvc2NoIEdtYkguCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAgKgotICAqIENvbnRyaWJ1dG9yczoKLSAgKiAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLS0+Ci0KLTxwbHVnaW4+Ci0KLSAgIDxleHRlbnNpb24gcG9pbnQ9Im9yZy5lY2xpcHNlLmVtZi5lY29yZS5nZW5lcmF0ZWRfcGFja2FnZSI+Ci0gICAgICA8IS0tIEBnZW5lcmF0ZWQgU2FtcGxlIC0tPgotICAgICAgPHBhY2thZ2UKLSAgICAgICAgICAgIHVyaT0iaHR0cDovL1NhbXBsZU1vZGVsLzAuMy4wIgotICAgICAgICAgICAgY2xhc3M9IlNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSIKLSAgICAgICAgICAgIGdlbk1vZGVsPSJtb2RlbC9TYW1wbGUuZ2VubW9kZWwiLz4KLSAgIDwvZXh0ZW5zaW9uPgotCi08L3BsdWdpbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wb20ueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0ODY5Y2QuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BvbS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0JeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+Ci0KLQk8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+Ci0KLQk8cGFyZW50PgotCQk8cmVsYXRpdmVQYXRoPi4uLy4uLy4uL3BvbS54bWw8L3JlbGF0aXZlUGF0aD4KLQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uPC9ncm91cElkPgotCQk8YXJ0aWZhY3RJZD5wYXJlbnQ8L2FydGlmYWN0SWQ+Ci0JCTx2ZXJzaW9uPjEuMC4wLVNOQVBTSE9UPC92ZXJzaW9uPgotCTwvcGFyZW50PgotCQotCTxwcm9wZXJ0aWVzPgotCQk8cGx1Z2luLWlkPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbDwvcGx1Z2luLWlkPgotCQk8ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9uPi4uLy4uLy4uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyPC9leGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb24+Ci0JPC9wcm9wZXJ0aWVzPiAKLQkKLQotCTxhcnRpZmFjdElkPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbDwvYXJ0aWZhY3RJZD4KLQk8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgotCi0JPGJ1aWxkPgotCQk8cGx1Z2lucz4KLQkJCTxwbHVnaW4+Ci0JCQkJPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgotCQkJCTxhcnRpZmFjdElkPm1hdmVuLWFudHJ1bi1wbHVnaW48L2FydGlmYWN0SWQ+Ci0JCQkJPHZlcnNpb24+MS43PC92ZXJzaW9uPgotCi0JCQkJPGV4ZWN1dGlvbnM+Ci0JCQkJCTxleGVjdXRpb24+Ci0JCQkJCQk8aWQ+cmVwbGFjZS1idWlsZC10b2tlbjwvaWQ+Ci0JCQkJCQk8cGhhc2U+Z2VuZXJhdGUtc291cmNlczwvcGhhc2U+Ci0KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTx0YXJnZXQ+Ci0JCQkJCQkJCSA8Y29weSB0b2Rpcj0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfSI+Ci0JCQkJCQkJCQk8ZmlsZXNldCBkaXI9Ii4vIj4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9Ii5leHRlcm5hbFRvb2xCdWlsZGVycy8iIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSJkYXRhYmFzZS8iIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSJiaW4vIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0idGFyZ2V0LyIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9Ii5zZXR0aW5ncy9vcmcuZWNsaXBzZS5teWx5bioiIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLmFwaS50b29scy5wcmVmcyIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9IioqLy5naXRpZ25vcmUiIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIqKi9wb20ueG1sIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcmVsZWFzZS4qIiAvPgotCQkJCQkJCQkJPGluY2x1ZGUgbmFtZT0iKioiIC8+Ci0JCQkJCQkJCQk8L2ZpbGVzZXQ+Ci0JCQkJCQkJCSA8L2NvcHk+IAotCQkJCQkJCQkgCi0JCQkJCQkJCSAJCSA8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzZyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuRXh0ZXJuYWxUb29sQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0icyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMuYXBpQW5hbHlzaXNCdWlsZGVyLio/Jmx0Oy9idWlsZENvbW1hbmQ+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtidWlsZENvbW1hbmQ+XHMrJmx0O25hbWU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0icyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMuYXBpQW5hbHlzaXNOYXR1cmUmbHQ7L25hdHVyZT4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5lbWYuY2RvLnJlbGVuZy52ZXJzaW9uLlZlcnNpb25OYXR1cmUmbHQ7L25hdHVyZT4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0JCQkJCQkJPC90YXJnZXQ+Ci0JCQkJCQk8L2NvbmZpZ3VyYXRpb24+Ci0KLQkJCQkJCTxnb2Fscz4KLQkJCQkJCQk8Z29hbD5ydW48L2dvYWw+Ci0JCQkJCQk8L2dvYWxzPgotCQkJCQk8L2V4ZWN1dGlvbj4KLQkJCQkJCi0JCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPmF1dG8tY2xlYW48L2lkPgotCQkJCQkJPHBoYXNlPmNsZWFuPC9waGFzZT4KLQotCQkJCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCQkJPHRhcmdldD4KLQkJCQkJCQkJIDxkZWxldGUgIGRpcj0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfSIvPgotCQkJCQkJICAgPC90YXJnZXQ+Ci0JCQkJCQk8L2NvbmZpZ3VyYXRpb24+Ci0KLQkJCQkJCTxnb2Fscz4KLQkJCQkJCQk8Z29hbD5ydW48L2dvYWw+Ci0JCQkJCQk8L2dvYWxzPgotCQkJCQk8L2V4ZWN1dGlvbj4KLQkJCQkJCi0JCQkJPC9leGVjdXRpb25zPgotCi0JCQk8L3BsdWdpbj4KLQkJPC9wbHVnaW5zPgotCTwvYnVpbGQ+Ci08L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9MYWJlbC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9MYWJlbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTFkY2RiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvTGFiZWwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkxhYmVsPC9iPjwvZW0+Jy4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICoKLSAqIDxwPgotICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgotICogPC9wPgotICogPHVsPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLkxhYmVsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRMYWJlbCgpCi0gKiBAbW9kZWwKLSAqIEBnZW5lcmF0ZWQKLSAqLwotcHVibGljIGludGVyZmFjZSBMYWJlbCBleHRlbmRzIEVPYmplY3QgewotCS8qKgotCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDxwPgotCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPk5hbWU8L2VtPicgYXR0cmlidXRlIGlzbid0IGNsZWFyLAotCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4KLQkgKiA8L3A+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUuCi0JICogQHNlZSAjc2V0TmFtZShTdHJpbmcpCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0TGFiZWxfTmFtZSgpCi0JICogQG1vZGVsCi0JICogQGdlbmVyYXRlZAotCSAqLwotCVN0cmluZyBnZXROYW1lKCk7Ci0KLQkvKioKLQkgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5MYWJlbCNnZXROYW1lIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiBAc2VlICNnZXROYW1lKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0Jdm9pZCBzZXROYW1lKFN0cmluZyB2YWx1ZSk7Ci0KLX0gLy8gTGFiZWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvTWVtb3J5LmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL01lbW9yeS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDE4MmRkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvTWVtb3J5LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5NZW1vcnk8L2I+PC9lbT4nLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKgotICogPHA+Ci0gKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6Ci0gKiA8L3A+Ci0gKiA8dWw+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuTWVtb3J5I2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRNZW1vcnkoKQotICogQG1vZGVsCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBpbnRlcmZhY2UgTWVtb3J5IGV4dGVuZHMgRU9iamVjdCB7Ci0JLyoqCi0JICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPHA+Ci0JICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUgaXNuJ3QgY2xlYXIsCi0JICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLgotCSAqIDwvcD4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiBAc2VlICNzZXROYW1lKFN0cmluZykKLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRNZW1vcnlfTmFtZSgpCi0JICogQG1vZGVsCi0JICogQGdlbmVyYXRlZAotCSAqLwotCVN0cmluZyBnZXROYW1lKCk7Ci0KLQkvKioKLQkgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5NZW1vcnkjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUuCi0JICogQHNlZSAjZ2V0TmFtZSgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXZvaWQgc2V0TmFtZShTdHJpbmcgdmFsdWUpOwotCi19IC8vIE1lbW9yeQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9Nb2RlbC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9Nb2RlbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTExM2UwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvTW9kZWwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLkVMaXN0OwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPk1vZGVsPC9iPjwvZW0+Jy4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICoKLSAqIDxwPgotICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgotICogPC9wPgotICogPHVsPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLk1vZGVsI2dldFJ1bm5hYmxlcyA8ZW0+UnVubmFibGVzPC9lbT59PC9saT4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5Nb2RlbCNnZXRMYWJlbHMgPGVtPkxhYmVsczwvZW0+fTwvbGk+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0TWVtb3JpZXMgPGVtPk1lbW9yaWVzPC9lbT59PC9saT4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5Nb2RlbCNnZXRTY2hlZHVsZXJzIDxlbT5TY2hlZHVsZXJzPC9lbT59PC9saT4KLSAqIDwvdWw+Ci0gKgotICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0TW9kZWwoKQotICogQG1vZGVsCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBpbnRlcmZhY2UgTW9kZWwgZXh0ZW5kcyBFT2JqZWN0IHsKLQkvKioKLQkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5SdW5uYWJsZXM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIFRoZSBsaXN0IGNvbnRlbnRzIGFyZSBvZiB0eXBlIHtAbGluayBTYW1wbGVNb2RlbC5SdW5uYWJsZX0uCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8cD4KLQkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5SdW5uYWJsZXM8L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgaXNuJ3QgY2xlYXIsCi0JICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLgotCSAqIDwvcD4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5SdW5uYWJsZXM8L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0TW9kZWxfUnVubmFibGVzKCkKLQkgKiBAbW9kZWwgY29udGFpbm1lbnQ9InRydWUiCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVMaXN0PFNhbXBsZU1vZGVsLlJ1bm5hYmxlPiBnZXRSdW5uYWJsZXMoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPkxhYmVsczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogVGhlIGxpc3QgY29udGVudHMgYXJlIG9mIHR5cGUge0BsaW5rIFNhbXBsZU1vZGVsLkxhYmVsfS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDxwPgotCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPkxhYmVsczwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdCBpc24ndCBjbGVhciwKLQkgKiB0aGVyZSByZWFsbHkgc2hvdWxkIGJlIG1vcmUgb2YgYSBkZXNjcmlwdGlvbiBoZXJlLi4uCi0JICogPC9wPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSAnPGVtPkxhYmVsczwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRNb2RlbF9MYWJlbHMoKQotCSAqIEBtb2RlbCBjb250YWlubWVudD0idHJ1ZSIKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRUxpc3Q8TGFiZWw+IGdldExhYmVscygpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+TWVtb3JpZXM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIFRoZSBsaXN0IGNvbnRlbnRzIGFyZSBvZiB0eXBlIHtAbGluayBTYW1wbGVNb2RlbC5NZW1vcnl9LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPHA+Ci0JICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+TWVtb3JpZXM8L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgaXNuJ3QgY2xlYXIsCi0JICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLgotCSAqIDwvcD4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5NZW1vcmllczwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRNb2RlbF9NZW1vcmllcygpCi0JICogQG1vZGVsIGNvbnRhaW5tZW50PSJ0cnVlIgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFTGlzdDxNZW1vcnk+IGdldE1lbW9yaWVzKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5TY2hlZHVsZXJzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiBUaGUgbGlzdCBjb250ZW50cyBhcmUgb2YgdHlwZSB7QGxpbmsgU2FtcGxlTW9kZWwuU2NoZWR1bGVyfS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDxwPgotCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPlNjaGVkdWxlcnM8L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgaXNuJ3QgY2xlYXIsCi0JICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLgotCSAqIDwvcD4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5TY2hlZHVsZXJzPC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldE1vZGVsX1NjaGVkdWxlcnMoKQotCSAqIEBtb2RlbCBjb250YWlubWVudD0idHJ1ZSIKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRUxpc3Q8U2NoZWR1bGVyPiBnZXRTY2hlZHVsZXJzKCk7Ci0KLX0gLy8gTW9kZWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvUnVubmFibGUuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvUnVubmFibGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGU3MzRhOS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL1J1bm5hYmxlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5SdW5uYWJsZTwvYj48L2VtPicuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqCi0gKiA8cD4KLSAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKLSAqIDwvcD4KLSAqIDx1bD4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5SdW5uYWJsZSNnZXRMYWJlbHMgPGVtPkxhYmVsczwvZW0+fTwvbGk+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuUnVubmFibGUjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fTwvbGk+Ci0gKiA8L3VsPgotICoKLSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldFJ1bm5hYmxlKCkKLSAqIEBtb2RlbAotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgaW50ZXJmYWNlIFJ1bm5hYmxlIGV4dGVuZHMgRU9iamVjdCB7Ci0JLyoqCi0JICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+TGFiZWxzPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8cD4KLQkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5MYWJlbHM8L2VtPicgcmVmZXJlbmNlIGlzbid0IGNsZWFyLAotCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4KLQkgKiA8L3A+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+TGFiZWxzPC9lbT4nIHJlZmVyZW5jZS4KLQkgKiBAc2VlICNzZXRMYWJlbHMoTGFiZWwpCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0UnVubmFibGVfTGFiZWxzKCkKLQkgKiBAbW9kZWwKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JTGFiZWwgZ2V0TGFiZWxzKCk7Ci0KLQkvKioKLQkgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5SdW5uYWJsZSNnZXRMYWJlbHMgPGVtPkxhYmVsczwvZW0+fScgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlICc8ZW0+TGFiZWxzPC9lbT4nIHJlZmVyZW5jZS4KLQkgKiBAc2VlICNnZXRMYWJlbHMoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQl2b2lkIHNldExhYmVscyhMYWJlbCB2YWx1ZSk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8cD4KLQkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZSBpc24ndCBjbGVhciwKLQkgKiB0aGVyZSByZWFsbHkgc2hvdWxkIGJlIG1vcmUgb2YgYSBkZXNjcmlwdGlvbiBoZXJlLi4uCi0JICogPC9wPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSAnPGVtPk5hbWU8L2VtPicgYXR0cmlidXRlLgotCSAqIEBzZWUgI3NldE5hbWUoU3RyaW5nKQotCSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldFJ1bm5hYmxlX05hbWUoKQotCSAqIEBtb2RlbAotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlTdHJpbmcgZ2V0TmFtZSgpOwotCi0JLyoqCi0JICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuUnVubmFibGUjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUuCi0JICogQHNlZSAjZ2V0TmFtZSgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXZvaWQgc2V0TmFtZShTdHJpbmcgdmFsdWUpOwotCi19IC8vIFJ1bm5hYmxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL1NhbXBsZU1vZGVsRmFjdG9yeS5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9TYW1wbGVNb2RlbEZhY3RvcnkuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjlhNzI0OC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL1NhbXBsZU1vZGVsRmFjdG9yeS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWw7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUZhY3Rvcnk7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIFRoZSA8Yj5GYWN0b3J5PC9iPiBmb3IgdGhlIG1vZGVsLgotICogSXQgcHJvdmlkZXMgYSBjcmVhdGUgbWV0aG9kIGZvciBlYWNoIG5vbi1hYnN0cmFjdCBjbGFzcyBvZiB0aGUgbW9kZWwuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBpbnRlcmZhY2UgU2FtcGxlTW9kZWxGYWN0b3J5IGV4dGVuZHMgRUZhY3RvcnkgewotCS8qKgotCSAqIFRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIGZhY3RvcnkuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JU2FtcGxlTW9kZWxGYWN0b3J5IGVJTlNUQU5DRSA9IFNhbXBsZU1vZGVsLmltcGwuU2FtcGxlTW9kZWxGYWN0b3J5SW1wbC5pbml0KCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIGEgbmV3IG9iamVjdCBvZiBjbGFzcyAnPGVtPk1vZGVsPC9lbT4nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiBhIG5ldyBvYmplY3Qgb2YgY2xhc3MgJzxlbT5Nb2RlbDwvZW0+Jy4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JTW9kZWwgY3JlYXRlTW9kZWwoKTsKLQotCS8qKgotCSAqIFJldHVybnMgYSBuZXcgb2JqZWN0IG9mIGNsYXNzICc8ZW0+UnVubmFibGU8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIGEgbmV3IG9iamVjdCBvZiBjbGFzcyAnPGVtPlJ1bm5hYmxlPC9lbT4nLgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlSdW5uYWJsZSBjcmVhdGVSdW5uYWJsZSgpOwotCi0JLyoqCi0JICogUmV0dXJucyBhIG5ldyBvYmplY3Qgb2YgY2xhc3MgJzxlbT5MYWJlbDwvZW0+Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gYSBuZXcgb2JqZWN0IG9mIGNsYXNzICc8ZW0+TGFiZWw8L2VtPicuCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUxhYmVsIGNyZWF0ZUxhYmVsKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIGEgbmV3IG9iamVjdCBvZiBjbGFzcyAnPGVtPk1lbW9yeTwvZW0+Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gYSBuZXcgb2JqZWN0IG9mIGNsYXNzICc8ZW0+TWVtb3J5PC9lbT4nLgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlNZW1vcnkgY3JlYXRlTWVtb3J5KCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIGEgbmV3IG9iamVjdCBvZiBjbGFzcyAnPGVtPlNjaGVkdWxlcjwvZW0+Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gYSBuZXcgb2JqZWN0IG9mIGNsYXNzICc8ZW0+U2NoZWR1bGVyPC9lbT4nLgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlTY2hlZHVsZXIgY3JlYXRlU2NoZWR1bGVyKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBwYWNrYWdlIHN1cHBvcnRlZCBieSB0aGlzIGZhY3RvcnkuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBwYWNrYWdlIHN1cHBvcnRlZCBieSB0aGlzIGZhY3RvcnkuCi0JICogQGdlbmVyYXRlZAotCSAqLwotCVNhbXBsZU1vZGVsUGFja2FnZSBnZXRTYW1wbGVNb2RlbFBhY2thZ2UoKTsKLQotfSAvL1NhbXBsZU1vZGVsRmFjdG9yeQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9TYW1wbGVNb2RlbFBhY2thZ2UuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvU2FtcGxlTW9kZWxQYWNrYWdlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzYjM5MTMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9TYW1wbGVNb2RlbFBhY2thZ2UuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDU3NyArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQXR0cmlidXRlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUmVmZXJlbmNlOwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBUaGUgPGI+UGFja2FnZTwvYj4gZm9yIHRoZSBtb2RlbC4KLSAqIEl0IGNvbnRhaW5zIGFjY2Vzc29ycyBmb3IgdGhlIG1ldGEgb2JqZWN0cyB0byByZXByZXNlbnQKLSAqIDx1bD4KLSAqICAgPGxpPmVhY2ggY2xhc3MsPC9saT4KLSAqICAgPGxpPmVhY2ggZmVhdHVyZSBvZiBlYWNoIGNsYXNzLDwvbGk+Ci0gKiAgIDxsaT5lYWNoIG9wZXJhdGlvbiBvZiBlYWNoIGNsYXNzLDwvbGk+Ci0gKiAgIDxsaT5lYWNoIGVudW0sPC9saT4KLSAqICAgPGxpPmFuZCBlYWNoIGRhdGEgdHlwZTwvbGk+Ci0gKiA8L3VsPgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsRmFjdG9yeQotICogQG1vZGVsIGtpbmQ9InBhY2thZ2UiCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBpbnRlcmZhY2UgU2FtcGxlTW9kZWxQYWNrYWdlIGV4dGVuZHMgRVBhY2thZ2UgewotCS8qKgotCSAqIFRoZSBwYWNrYWdlIG5hbWUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JU3RyaW5nIGVOQU1FID0gIlNhbXBsZU1vZGVsIjsKLQotCS8qKgotCSAqIFRoZSBwYWNrYWdlIG5hbWVzcGFjZSBVUkkuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JU3RyaW5nIGVOU19VUkkgPSAiaHR0cDovL1NhbXBsZU1vZGVsLzAuMy4wIjsKLQotCS8qKgotCSAqIFRoZSBwYWNrYWdlIG5hbWVzcGFjZSBuYW1lLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCVN0cmluZyBlTlNfUFJFRklYID0gIlNhbXBsZU1vZGVsIjsKLQotCS8qKgotCSAqIFRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIHBhY2thZ2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JU2FtcGxlTW9kZWxQYWNrYWdlIGVJTlNUQU5DRSA9IFNhbXBsZU1vZGVsLmltcGwuU2FtcGxlTW9kZWxQYWNrYWdlSW1wbC5pbml0KCk7Ci0KLQkvKioKLQkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuTW9kZWxJbXBsIDxlbT5Nb2RlbDwvZW0+fScgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuTW9kZWxJbXBsCi0JICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0TW9kZWwoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlpbnQgTU9ERUwgPSAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPlJ1bm5hYmxlczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTU9ERUxfX1JVTk5BQkxFUyA9IDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TGFiZWxzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNT0RFTF9fTEFCRUxTID0gMTsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5NZW1vcmllczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTU9ERUxfX01FTU9SSUVTID0gMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5TY2hlZHVsZXJzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNT0RFTF9fU0NIRURVTEVSUyA9IDM7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlICc8ZW0+TW9kZWw8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTU9ERUxfRkVBVFVSRV9DT1VOVCA9IDQ7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgb2YgdGhlICc8ZW0+TW9kZWw8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTU9ERUxfT1BFUkFUSU9OX0NPVU5UID0gMDsKLQotCS8qKgotCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5SdW5uYWJsZUltcGwgPGVtPlJ1bm5hYmxlPC9lbT59JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5SdW5uYWJsZUltcGwKLQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCNnZXRSdW5uYWJsZSgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCWludCBSVU5OQUJMRSA9IDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TGFiZWxzPC9iPjwvZW0+JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUlVOTkFCTEVfX0xBQkVMUyA9IDA7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJVTk5BQkxFX19OQU1FID0gMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgJzxlbT5SdW5uYWJsZTwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSVU5OQUJMRV9GRUFUVVJFX0NPVU5UID0gMjsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBvZiB0aGUgJzxlbT5SdW5uYWJsZTwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSVU5OQUJMRV9PUEVSQVRJT05fQ09VTlQgPSAwOwotCi0JLyoqCi0JICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5pbXBsLkxhYmVsSW1wbCA8ZW0+TGFiZWw8L2VtPn0nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLkxhYmVsSW1wbAotCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TYW1wbGVNb2RlbFBhY2thZ2VJbXBsI2dldExhYmVsKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JaW50IExBQkVMID0gMjsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTEFCRUxfX05BTUUgPSAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSAnPGVtPkxhYmVsPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExBQkVMX0ZFQVRVUkVfQ09VTlQgPSAxOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBvcGVyYXRpb25zIG9mIHRoZSAnPGVtPkxhYmVsPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExBQkVMX09QRVJBVElPTl9DT1VOVCA9IDA7Ci0KLQkvKioKLQkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuTWVtb3J5SW1wbCA8ZW0+TWVtb3J5PC9lbT59JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5NZW1vcnlJbXBsCi0JICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0TWVtb3J5KCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JaW50IE1FTU9SWSA9IDM7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1FTU9SWV9fTkFNRSA9IDA7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlICc8ZW0+TWVtb3J5PC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1FTU9SWV9GRUFUVVJFX0NPVU5UID0gMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBvZiB0aGUgJzxlbT5NZW1vcnk8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTUVNT1JZX09QRVJBVElPTl9DT1VOVCA9IDA7Ci0KLQkvKioKLQkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuU2NoZWR1bGVySW1wbCA8ZW0+U2NoZWR1bGVyPC9lbT59JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TY2hlZHVsZXJJbXBsCi0JICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0U2NoZWR1bGVyKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JaW50IFNDSEVEVUxFUiA9IDQ7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNDSEVEVUxFUl9fTkFNRSA9IDA7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlICc8ZW0+U2NoZWR1bGVyPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNDSEVEVUxFUl9GRUFUVVJFX0NPVU5UID0gMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBvZiB0aGUgJzxlbT5TY2hlZHVsZXI8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgU0NIRURVTEVSX09QRVJBVElPTl9DT1VOVCA9IDA7Ci0KLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciBjbGFzcyAne0BsaW5rIFNhbXBsZU1vZGVsLk1vZGVsIDxlbT5Nb2RlbDwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJzxlbT5Nb2RlbDwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLk1vZGVsCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVDbGFzcyBnZXRNb2RlbCgpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdCAne0BsaW5rIFNhbXBsZU1vZGVsLk1vZGVsI2dldFJ1bm5hYmxlcyA8ZW0+UnVubmFibGVzPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgJzxlbT5SdW5uYWJsZXM8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5Nb2RlbCNnZXRSdW5uYWJsZXMoKQotCSAqIEBzZWUgI2dldE1vZGVsKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRVJlZmVyZW5jZSBnZXRNb2RlbF9SdW5uYWJsZXMoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgJ3tAbGluayBTYW1wbGVNb2RlbC5Nb2RlbCNnZXRMYWJlbHMgPGVtPkxhYmVsczwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0ICc8ZW0+TGFiZWxzPC9lbT4nLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0TGFiZWxzKCkKLQkgKiBAc2VlICNnZXRNb2RlbCgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVSZWZlcmVuY2UgZ2V0TW9kZWxfTGFiZWxzKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0ICd7QGxpbmsgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0TWVtb3JpZXMgPGVtPk1lbW9yaWVzPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgJzxlbT5NZW1vcmllczwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLk1vZGVsI2dldE1lbW9yaWVzKCkKLQkgKiBAc2VlICNnZXRNb2RlbCgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVSZWZlcmVuY2UgZ2V0TW9kZWxfTWVtb3JpZXMoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgJ3tAbGluayBTYW1wbGVNb2RlbC5Nb2RlbCNnZXRTY2hlZHVsZXJzIDxlbT5TY2hlZHVsZXJzPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgJzxlbT5TY2hlZHVsZXJzPC9lbT4nLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0U2NoZWR1bGVycygpCi0JICogQHNlZSAjZ2V0TW9kZWwoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFUmVmZXJlbmNlIGdldE1vZGVsX1NjaGVkdWxlcnMoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciBjbGFzcyAne0BsaW5rIFNhbXBsZU1vZGVsLlJ1bm5hYmxlIDxlbT5SdW5uYWJsZTwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJzxlbT5SdW5uYWJsZTwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlJ1bm5hYmxlCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVDbGFzcyBnZXRSdW5uYWJsZSgpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSByZWZlcmVuY2UgJ3tAbGluayBTYW1wbGVNb2RlbC5SdW5uYWJsZSNnZXRMYWJlbHMgPGVtPkxhYmVsczwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIHJlZmVyZW5jZSAnPGVtPkxhYmVsczwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlJ1bm5hYmxlI2dldExhYmVscygpCi0JICogQHNlZSAjZ2V0UnVubmFibGUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFUmVmZXJlbmNlIGdldFJ1bm5hYmxlX0xhYmVscygpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBhdHRyaWJ1dGUgJ3tAbGluayBTYW1wbGVNb2RlbC5SdW5uYWJsZSNnZXROYW1lIDxlbT5OYW1lPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgYXR0cmlidXRlICc8ZW0+TmFtZTwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlJ1bm5hYmxlI2dldE5hbWUoKQotCSAqIEBzZWUgI2dldFJ1bm5hYmxlKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRUF0dHJpYnV0ZSBnZXRSdW5uYWJsZV9OYW1lKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJ3tAbGluayBTYW1wbGVNb2RlbC5MYWJlbCA8ZW0+TGFiZWw8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIGNsYXNzICc8ZW0+TGFiZWw8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5MYWJlbAotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFQ2xhc3MgZ2V0TGFiZWwoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgYXR0cmlidXRlICd7QGxpbmsgU2FtcGxlTW9kZWwuTGFiZWwjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAnPGVtPk5hbWU8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5MYWJlbCNnZXROYW1lKCkKLQkgKiBAc2VlICNnZXRMYWJlbCgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVBdHRyaWJ1dGUgZ2V0TGFiZWxfTmFtZSgpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIGNsYXNzICd7QGxpbmsgU2FtcGxlTW9kZWwuTWVtb3J5IDxlbT5NZW1vcnk8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIGNsYXNzICc8ZW0+TWVtb3J5PC9lbT4nLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTWVtb3J5Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUVDbGFzcyBnZXRNZW1vcnkoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgYXR0cmlidXRlICd7QGxpbmsgU2FtcGxlTW9kZWwuTWVtb3J5I2dldE5hbWUgPGVtPk5hbWU8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBhdHRyaWJ1dGUgJzxlbT5OYW1lPC9lbT4nLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTWVtb3J5I2dldE5hbWUoKQotCSAqIEBzZWUgI2dldE1lbW9yeSgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVBdHRyaWJ1dGUgZ2V0TWVtb3J5X05hbWUoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciBjbGFzcyAne0BsaW5rIFNhbXBsZU1vZGVsLlNjaGVkdWxlciA8ZW0+U2NoZWR1bGVyPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciBjbGFzcyAnPGVtPlNjaGVkdWxlcjwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlNjaGVkdWxlcgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFQ2xhc3MgZ2V0U2NoZWR1bGVyKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAne0BsaW5rIFNhbXBsZU1vZGVsLlNjaGVkdWxlciNnZXROYW1lIDxlbT5OYW1lPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgYXR0cmlidXRlICc8ZW0+TmFtZTwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlNjaGVkdWxlciNnZXROYW1lKCkKLQkgKiBAc2VlICNnZXRTY2hlZHVsZXIoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFQXR0cmlidXRlIGdldFNjaGVkdWxlcl9OYW1lKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBmYWN0b3J5IHRoYXQgY3JlYXRlcyB0aGUgaW5zdGFuY2VzIG9mIHRoZSBtb2RlbC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIGZhY3RvcnkgdGhhdCBjcmVhdGVzIHRoZSBpbnN0YW5jZXMgb2YgdGhlIG1vZGVsLgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlTYW1wbGVNb2RlbEZhY3RvcnkgZ2V0U2FtcGxlTW9kZWxGYWN0b3J5KCk7Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIERlZmluZXMgbGl0ZXJhbHMgZm9yIHRoZSBtZXRhIG9iamVjdHMgdGhhdCByZXByZXNlbnQKLQkgKiA8dWw+Ci0JICogICA8bGk+ZWFjaCBjbGFzcyw8L2xpPgotCSAqICAgPGxpPmVhY2ggZmVhdHVyZSBvZiBlYWNoIGNsYXNzLDwvbGk+Ci0JICogICA8bGk+ZWFjaCBvcGVyYXRpb24gb2YgZWFjaCBjbGFzcyw8L2xpPgotCSAqICAgPGxpPmVhY2ggZW51bSw8L2xpPgotCSAqICAgPGxpPmFuZCBlYWNoIGRhdGEgdHlwZTwvbGk+Ci0JICogPC91bD4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JaW50ZXJmYWNlIExpdGVyYWxzIHsKLQkJLyoqCi0JCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5pbXBsLk1vZGVsSW1wbCA8ZW0+TW9kZWw8L2VtPn0nIGNsYXNzLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLk1vZGVsSW1wbAotCQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCNnZXRNb2RlbCgpCi0JCSAqIEBnZW5lcmF0ZWQKLQkJICovCi0JCUVDbGFzcyBNT0RFTCA9IGVJTlNUQU5DRS5nZXRNb2RlbCgpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+UnVubmFibGVzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdCBmZWF0dXJlLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRVJlZmVyZW5jZSBNT0RFTF9fUlVOTkFCTEVTID0gZUlOU1RBTkNFLmdldE1vZGVsX1J1bm5hYmxlcygpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+TGFiZWxzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdCBmZWF0dXJlLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRVJlZmVyZW5jZSBNT0RFTF9fTEFCRUxTID0gZUlOU1RBTkNFLmdldE1vZGVsX0xhYmVscygpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+TWVtb3JpZXM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0IGZlYXR1cmUuCi0JCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFUmVmZXJlbmNlIE1PREVMX19NRU1PUklFUyA9IGVJTlNUQU5DRS5nZXRNb2RlbF9NZW1vcmllcygpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+U2NoZWR1bGVyczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgZmVhdHVyZS4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBnZW5lcmF0ZWQKLQkJICovCi0JCUVSZWZlcmVuY2UgTU9ERUxfX1NDSEVEVUxFUlMgPSBlSU5TVEFOQ0UuZ2V0TW9kZWxfU2NoZWR1bGVycygpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5SdW5uYWJsZUltcGwgPGVtPlJ1bm5hYmxlPC9lbT59JyBjbGFzcy4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5SdW5uYWJsZUltcGwKLQkJICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0UnVubmFibGUoKQotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFQ2xhc3MgUlVOTkFCTEUgPSBlSU5TVEFOQ0UuZ2V0UnVubmFibGUoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPkxhYmVsczwvYj48L2VtPicgcmVmZXJlbmNlIGZlYXR1cmUuCi0JCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFUmVmZXJlbmNlIFJVTk5BQkxFX19MQUJFTFMgPSBlSU5TVEFOQ0UuZ2V0UnVubmFibGVfTGFiZWxzKCk7Ci0KLQkJLyoqCi0JCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUgZmVhdHVyZS4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBnZW5lcmF0ZWQKLQkJICovCi0JCUVBdHRyaWJ1dGUgUlVOTkFCTEVfX05BTUUgPSBlSU5TVEFOQ0UuZ2V0UnVubmFibGVfTmFtZSgpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5MYWJlbEltcGwgPGVtPkxhYmVsPC9lbT59JyBjbGFzcy4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5MYWJlbEltcGwKLQkJICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0TGFiZWwoKQotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFQ2xhc3MgTEFCRUwgPSBlSU5TVEFOQ0UuZ2V0TGFiZWwoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZSBmZWF0dXJlLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRUF0dHJpYnV0ZSBMQUJFTF9fTkFNRSA9IGVJTlNUQU5DRS5nZXRMYWJlbF9OYW1lKCk7Ci0KLQkJLyoqCi0JCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5pbXBsLk1lbW9yeUltcGwgPGVtPk1lbW9yeTwvZW0+fScgY2xhc3MuCi0JCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuTWVtb3J5SW1wbAotCQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCNnZXRNZW1vcnkoKQotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFQ2xhc3MgTUVNT1JZID0gZUlOU1RBTkNFLmdldE1lbW9yeSgpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlIGZlYXR1cmUuCi0JCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFQXR0cmlidXRlIE1FTU9SWV9fTkFNRSA9IGVJTlNUQU5DRS5nZXRNZW1vcnlfTmFtZSgpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5TY2hlZHVsZXJJbXBsIDxlbT5TY2hlZHVsZXI8L2VtPn0nIGNsYXNzLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNjaGVkdWxlckltcGwKLQkJICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0U2NoZWR1bGVyKCkKLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRUNsYXNzIFNDSEVEVUxFUiA9IGVJTlNUQU5DRS5nZXRTY2hlZHVsZXIoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZSBmZWF0dXJlLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRUF0dHJpYnV0ZSBTQ0hFRFVMRVJfX05BTUUgPSBlSU5TVEFOQ0UuZ2V0U2NoZWR1bGVyX05hbWUoKTsKLQotCX0KLQotfSAvL1NhbXBsZU1vZGVsUGFja2FnZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9TY2hlZHVsZXIuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvU2NoZWR1bGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxMTQ4MzkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9TY2hlZHVsZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIEEgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlNjaGVkdWxlcjwvYj48L2VtPicuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqCi0gKiA8cD4KLSAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKLSAqIDwvcD4KLSAqIDx1bD4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5TY2hlZHVsZXIjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fTwvbGk+Ci0gKiA8L3VsPgotICoKLSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldFNjaGVkdWxlcigpCi0gKiBAbW9kZWwKLSAqIEBnZW5lcmF0ZWQKLSAqLwotcHVibGljIGludGVyZmFjZSBTY2hlZHVsZXIgZXh0ZW5kcyBFT2JqZWN0IHsKLQkvKioKLQkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8cD4KLQkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZSBpc24ndCBjbGVhciwKLQkgKiB0aGVyZSByZWFsbHkgc2hvdWxkIGJlIG1vcmUgb2YgYSBkZXNjcmlwdGlvbiBoZXJlLi4uCi0JICogPC9wPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSAnPGVtPk5hbWU8L2VtPicgYXR0cmlidXRlLgotCSAqIEBzZWUgI3NldE5hbWUoU3RyaW5nKQotCSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldFNjaGVkdWxlcl9OYW1lKCkKLQkgKiBAbW9kZWwKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JU3RyaW5nIGdldE5hbWUoKTsKLQotCS8qKgotCSAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLlNjaGVkdWxlciNnZXROYW1lIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiBAc2VlICNnZXROYW1lKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0Jdm9pZCBzZXROYW1lKFN0cmluZyB2YWx1ZSk7Ci0KLX0gLy8gU2NoZWR1bGVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvTGFiZWxJbXBsLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvTGFiZWxJbXBsLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1NmIzY2YuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL0xhYmVsSW1wbC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTYzICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsLmltcGw7Ci0KLWltcG9ydCBTYW1wbGVNb2RlbC5MYWJlbDsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2U7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuTWluaW1hbEVPYmplY3RJbXBsOwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+TGFiZWw8L2I+PC9lbT4nLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiA8cD4KLSAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOgotICogPC9wPgotICogPHVsPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuTGFiZWxJbXBsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBjbGFzcyBMYWJlbEltcGwgZXh0ZW5kcyBNaW5pbWFsRU9iamVjdEltcGwuQ29udGFpbmVyIGltcGxlbWVudHMgTGFiZWwgewotCS8qKgotCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXROYW1lKCkgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldE5hbWUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUVfRURFRkFVTFQgPSBudWxsOwotCi0JLyoqCi0JICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TmFtZSgpIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXROYW1lKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgU3RyaW5nIG5hbWUgPSBOQU1FX0VERUZBVUxUOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJvdGVjdGVkIExhYmVsSW1wbCgpIHsKLQkJc3VwZXIoKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgRUNsYXNzIGVTdGF0aWNDbGFzcygpIHsKLQkJcmV0dXJuIFNhbXBsZU1vZGVsUGFja2FnZS5MaXRlcmFscy5MQUJFTDsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7Ci0JCXJldHVybiBuYW1lOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIG5ld05hbWUpIHsKLQkJU3RyaW5nIG9sZE5hbWUgPSBuYW1lOwotCQluYW1lID0gbmV3TmFtZTsKLQkJaWYgKGVOb3RpZmljYXRpb25SZXF1aXJlZCgpKQotCQkJZU5vdGlmeShuZXcgRU5vdGlmaWNhdGlvbkltcGwodGhpcywgTm90aWZpY2F0aW9uLlNFVCwgU2FtcGxlTW9kZWxQYWNrYWdlLkxBQkVMX19OQU1FLCBvbGROYW1lLCBuYW1lKSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIE9iamVjdCBlR2V0KGludCBmZWF0dXJlSUQsIGJvb2xlYW4gcmVzb2x2ZSwgYm9vbGVhbiBjb3JlVHlwZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTEFCRUxfX05BTUU6Ci0JCQkJcmV0dXJuIGdldE5hbWUoKTsKLQkJfQotCQlyZXR1cm4gc3VwZXIuZUdldChmZWF0dXJlSUQsIHJlc29sdmUsIGNvcmVUeXBlKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgdm9pZCBlU2V0KGludCBmZWF0dXJlSUQsIE9iamVjdCBuZXdWYWx1ZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTEFCRUxfX05BTUU6Ci0JCQkJc2V0TmFtZSgoU3RyaW5nKW5ld1ZhbHVlKTsKLQkJCQlyZXR1cm47Ci0JCX0KLQkJc3VwZXIuZVNldChmZWF0dXJlSUQsIG5ld1ZhbHVlKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgdm9pZCBlVW5zZXQoaW50IGZlYXR1cmVJRCkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTEFCRUxfX05BTUU6Ci0JCQkJc2V0TmFtZShOQU1FX0VERUZBVUxUKTsKLQkJCQlyZXR1cm47Ci0JCX0KLQkJc3VwZXIuZVVuc2V0KGZlYXR1cmVJRCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIGJvb2xlYW4gZUlzU2V0KGludCBmZWF0dXJlSUQpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLkxBQkVMX19OQU1FOgotCQkJCXJldHVybiBOQU1FX0VERUZBVUxUID09IG51bGwgPyBuYW1lICE9IG51bGwgOiAhTkFNRV9FREVGQVVMVC5lcXVhbHMobmFtZSk7Ci0JCX0KLQkJcmV0dXJuIHN1cGVyLmVJc1NldChmZWF0dXJlSUQpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7Ci0JCWlmIChlSXNQcm94eSgpKSByZXR1cm4gc3VwZXIudG9TdHJpbmcoKTsKLQotCQlTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzdXBlci50b1N0cmluZygpKTsKLQkJcmVzdWx0LmFwcGVuZCgiIChuYW1lOiAiKTsKLQkJcmVzdWx0LmFwcGVuZChuYW1lKTsKLQkJcmVzdWx0LmFwcGVuZCgnKScpOwotCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Ci0JfQotCi19IC8vTGFiZWxJbXBsCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvTWVtb3J5SW1wbC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL01lbW9yeUltcGwuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI1YjFjNS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvTWVtb3J5SW1wbC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTYzICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsLmltcGw7Ci0KLWltcG9ydCBTYW1wbGVNb2RlbC5NZW1vcnk7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLk1pbmltYWxFT2JqZWN0SW1wbDsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPk1lbW9yeTwvYj48L2VtPicuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqIDxwPgotICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQ6Ci0gKiA8L3A+Ci0gKiA8dWw+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5NZW1vcnlJbXBsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBjbGFzcyBNZW1vcnlJbXBsIGV4dGVuZHMgTWluaW1hbEVPYmplY3RJbXBsLkNvbnRhaW5lciBpbXBsZW1lbnRzIE1lbW9yeSB7Ci0JLyoqCi0JICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSAjZ2V0TmFtZSgpCi0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgTkFNRV9FREVGQVVMVCA9IG51bGw7Ci0KLQkvKioKLQkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXROYW1lKCkgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldE5hbWUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBTdHJpbmcgbmFtZSA9IE5BTUVfRURFRkFVTFQ7Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcm90ZWN0ZWQgTWVtb3J5SW1wbCgpIHsKLQkJc3VwZXIoKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgRUNsYXNzIGVTdGF0aWNDbGFzcygpIHsKLQkJcmV0dXJuIFNhbXBsZU1vZGVsUGFja2FnZS5MaXRlcmFscy5NRU1PUlk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFN0cmluZyBnZXROYW1lKCkgewotCQlyZXR1cm4gbmFtZTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgdm9pZCBzZXROYW1lKFN0cmluZyBuZXdOYW1lKSB7Ci0JCVN0cmluZyBvbGROYW1lID0gbmFtZTsKLQkJbmFtZSA9IG5ld05hbWU7Ci0JCWlmIChlTm90aWZpY2F0aW9uUmVxdWlyZWQoKSkKLQkJCWVOb3RpZnkobmV3IEVOb3RpZmljYXRpb25JbXBsKHRoaXMsIE5vdGlmaWNhdGlvbi5TRVQsIFNhbXBsZU1vZGVsUGFja2FnZS5NRU1PUllfX05BTUUsIG9sZE5hbWUsIG5hbWUpKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgT2JqZWN0IGVHZXQoaW50IGZlYXR1cmVJRCwgYm9vbGVhbiByZXNvbHZlLCBib29sZWFuIGNvcmVUeXBlKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NRU1PUllfX05BTUU6Ci0JCQkJcmV0dXJuIGdldE5hbWUoKTsKLQkJfQotCQlyZXR1cm4gc3VwZXIuZUdldChmZWF0dXJlSUQsIHJlc29sdmUsIGNvcmVUeXBlKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgdm9pZCBlU2V0KGludCBmZWF0dXJlSUQsIE9iamVjdCBuZXdWYWx1ZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTUVNT1JZX19OQU1FOgotCQkJCXNldE5hbWUoKFN0cmluZyluZXdWYWx1ZSk7Ci0JCQkJcmV0dXJuOwotCQl9Ci0JCXN1cGVyLmVTZXQoZmVhdHVyZUlELCBuZXdWYWx1ZSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgZVVuc2V0KGludCBmZWF0dXJlSUQpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1FTU9SWV9fTkFNRToKLQkJCQlzZXROYW1lKE5BTUVfRURFRkFVTFQpOwotCQkJCXJldHVybjsKLQkJfQotCQlzdXBlci5lVW5zZXQoZmVhdHVyZUlEKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgYm9vbGVhbiBlSXNTZXQoaW50IGZlYXR1cmVJRCkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTUVNT1JZX19OQU1FOgotCQkJCXJldHVybiBOQU1FX0VERUZBVUxUID09IG51bGwgPyBuYW1lICE9IG51bGwgOiAhTkFNRV9FREVGQVVMVC5lcXVhbHMobmFtZSk7Ci0JCX0KLQkJcmV0dXJuIHN1cGVyLmVJc1NldChmZWF0dXJlSUQpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7Ci0JCWlmIChlSXNQcm94eSgpKSByZXR1cm4gc3VwZXIudG9TdHJpbmcoKTsKLQotCQlTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzdXBlci50b1N0cmluZygpKTsKLQkJcmVzdWx0LmFwcGVuZCgiIChuYW1lOiAiKTsKLQkJcmVzdWx0LmFwcGVuZChuYW1lKTsKLQkJcmVzdWx0LmFwcGVuZCgnKScpOwotCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Ci0JfQotCi19IC8vTWVtb3J5SW1wbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL01vZGVsSW1wbC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL01vZGVsSW1wbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmZjZGNjLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9Nb2RlbEltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI2MiArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbC5pbXBsOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTGFiZWw7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuTWVtb3J5OwotaW1wb3J0IFNhbXBsZU1vZGVsLk1vZGVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZTsKLWltcG9ydCBTYW1wbGVNb2RlbC5TY2hlZHVsZXI7Ci0KLWltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbkNoYWluOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLkVMaXN0OwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuSW50ZXJuYWxFT2JqZWN0OwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuTWluaW1hbEVPYmplY3RJbXBsOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuRU9iamVjdENvbnRhaW5tZW50RUxpc3Q7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuSW50ZXJuYWxFTGlzdDsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPk1vZGVsPC9iPjwvZW0+Jy4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICogPHA+Ci0gKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZDoKLSAqIDwvcD4KLSAqIDx1bD4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5pbXBsLk1vZGVsSW1wbCNnZXRSdW5uYWJsZXMgPGVtPlJ1bm5hYmxlczwvZW0+fTwvbGk+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5Nb2RlbEltcGwjZ2V0TGFiZWxzIDxlbT5MYWJlbHM8L2VtPn08L2xpPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuTW9kZWxJbXBsI2dldE1lbW9yaWVzIDxlbT5NZW1vcmllczwvZW0+fTwvbGk+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5Nb2RlbEltcGwjZ2V0U2NoZWR1bGVycyA8ZW0+U2NoZWR1bGVyczwvZW0+fTwvbGk+Ci0gKiA8L3VsPgotICoKLSAqIEBnZW5lcmF0ZWQKLSAqLwotcHVibGljIGNsYXNzIE1vZGVsSW1wbCBleHRlbmRzIE1pbmltYWxFT2JqZWN0SW1wbC5Db250YWluZXIgaW1wbGVtZW50cyBNb2RlbCB7Ci0JLyoqCi0JICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0UnVubmFibGVzKCkgPGVtPlJ1bm5hYmxlczwvZW0+fScgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXRSdW5uYWJsZXMoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBFTGlzdDxTYW1wbGVNb2RlbC5SdW5uYWJsZT4gcnVubmFibGVzOwotCi0JLyoqCi0JICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TGFiZWxzKCkgPGVtPkxhYmVsczwvZW0+fScgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXRMYWJlbHMoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBFTGlzdDxMYWJlbD4gbGFiZWxzOwotCi0JLyoqCi0JICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TWVtb3JpZXMoKSA8ZW0+TWVtb3JpZXM8L2VtPn0nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSAjZ2V0TWVtb3JpZXMoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBFTGlzdDxNZW1vcnk+IG1lbW9yaWVzOwotCi0JLyoqCi0JICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0U2NoZWR1bGVycygpIDxlbT5TY2hlZHVsZXJzPC9lbT59JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldFNjaGVkdWxlcnMoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBFTGlzdDxTY2hlZHVsZXI+IHNjaGVkdWxlcnM7Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcm90ZWN0ZWQgTW9kZWxJbXBsKCkgewotCQlzdXBlcigpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXByb3RlY3RlZCBFQ2xhc3MgZVN0YXRpY0NsYXNzKCkgewotCQlyZXR1cm4gU2FtcGxlTW9kZWxQYWNrYWdlLkxpdGVyYWxzLk1PREVMOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFTGlzdDxTYW1wbGVNb2RlbC5SdW5uYWJsZT4gZ2V0UnVubmFibGVzKCkgewotCQlpZiAocnVubmFibGVzID09IG51bGwpIHsKLQkJCXJ1bm5hYmxlcyA9IG5ldyBFT2JqZWN0Q29udGFpbm1lbnRFTGlzdDxTYW1wbGVNb2RlbC5SdW5uYWJsZT4oU2FtcGxlTW9kZWwuUnVubmFibGUuY2xhc3MsIHRoaXMsIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fUlVOTkFCTEVTKTsKLQkJfQotCQlyZXR1cm4gcnVubmFibGVzOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFTGlzdDxMYWJlbD4gZ2V0TGFiZWxzKCkgewotCQlpZiAobGFiZWxzID09IG51bGwpIHsKLQkJCWxhYmVscyA9IG5ldyBFT2JqZWN0Q29udGFpbm1lbnRFTGlzdDxMYWJlbD4oTGFiZWwuY2xhc3MsIHRoaXMsIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fTEFCRUxTKTsKLQkJfQotCQlyZXR1cm4gbGFiZWxzOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFTGlzdDxNZW1vcnk+IGdldE1lbW9yaWVzKCkgewotCQlpZiAobWVtb3JpZXMgPT0gbnVsbCkgewotCQkJbWVtb3JpZXMgPSBuZXcgRU9iamVjdENvbnRhaW5tZW50RUxpc3Q8TWVtb3J5PihNZW1vcnkuY2xhc3MsIHRoaXMsIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fTUVNT1JJRVMpOwotCQl9Ci0JCXJldHVybiBtZW1vcmllczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUxpc3Q8U2NoZWR1bGVyPiBnZXRTY2hlZHVsZXJzKCkgewotCQlpZiAoc2NoZWR1bGVycyA9PSBudWxsKSB7Ci0JCQlzY2hlZHVsZXJzID0gbmV3IEVPYmplY3RDb250YWlubWVudEVMaXN0PFNjaGVkdWxlcj4oU2NoZWR1bGVyLmNsYXNzLCB0aGlzLCBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1NDSEVEVUxFUlMpOwotCQl9Ci0JCXJldHVybiBzY2hlZHVsZXJzOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBOb3RpZmljYXRpb25DaGFpbiBlSW52ZXJzZVJlbW92ZShJbnRlcm5hbEVPYmplY3Qgb3RoZXJFbmQsIGludCBmZWF0dXJlSUQsIE5vdGlmaWNhdGlvbkNoYWluIG1zZ3MpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19SVU5OQUJMRVM6Ci0JCQkJcmV0dXJuICgoSW50ZXJuYWxFTGlzdDw/PilnZXRSdW5uYWJsZXMoKSkuYmFzaWNSZW1vdmUob3RoZXJFbmQsIG1zZ3MpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX0xBQkVMUzoKLQkJCQlyZXR1cm4gKChJbnRlcm5hbEVMaXN0PD8+KWdldExhYmVscygpKS5iYXNpY1JlbW92ZShvdGhlckVuZCwgbXNncyk7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fTUVNT1JJRVM6Ci0JCQkJcmV0dXJuICgoSW50ZXJuYWxFTGlzdDw/PilnZXRNZW1vcmllcygpKS5iYXNpY1JlbW92ZShvdGhlckVuZCwgbXNncyk7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fU0NIRURVTEVSUzoKLQkJCQlyZXR1cm4gKChJbnRlcm5hbEVMaXN0PD8+KWdldFNjaGVkdWxlcnMoKSkuYmFzaWNSZW1vdmUob3RoZXJFbmQsIG1zZ3MpOwotCQl9Ci0JCXJldHVybiBzdXBlci5lSW52ZXJzZVJlbW92ZShvdGhlckVuZCwgZmVhdHVyZUlELCBtc2dzKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgT2JqZWN0IGVHZXQoaW50IGZlYXR1cmVJRCwgYm9vbGVhbiByZXNvbHZlLCBib29sZWFuIGNvcmVUeXBlKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fUlVOTkFCTEVTOgotCQkJCXJldHVybiBnZXRSdW5uYWJsZXMoKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19MQUJFTFM6Ci0JCQkJcmV0dXJuIGdldExhYmVscygpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX01FTU9SSUVTOgotCQkJCXJldHVybiBnZXRNZW1vcmllcygpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1NDSEVEVUxFUlM6Ci0JCQkJcmV0dXJuIGdldFNjaGVkdWxlcnMoKTsKLQkJfQotCQlyZXR1cm4gc3VwZXIuZUdldChmZWF0dXJlSUQsIHJlc29sdmUsIGNvcmVUeXBlKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAU3VwcHJlc3NXYXJuaW5ncygidW5jaGVja2VkIikKLQlAT3ZlcnJpZGUKLQlwdWJsaWMgdm9pZCBlU2V0KGludCBmZWF0dXJlSUQsIE9iamVjdCBuZXdWYWx1ZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1JVTk5BQkxFUzoKLQkJCQlnZXRSdW5uYWJsZXMoKS5jbGVhcigpOwotCQkJCWdldFJ1bm5hYmxlcygpLmFkZEFsbCgoQ29sbGVjdGlvbjw/IGV4dGVuZHMgU2FtcGxlTW9kZWwuUnVubmFibGU+KW5ld1ZhbHVlKTsKLQkJCQlyZXR1cm47Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fTEFCRUxTOgotCQkJCWdldExhYmVscygpLmNsZWFyKCk7Ci0JCQkJZ2V0TGFiZWxzKCkuYWRkQWxsKChDb2xsZWN0aW9uPD8gZXh0ZW5kcyBMYWJlbD4pbmV3VmFsdWUpOwotCQkJCXJldHVybjsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19NRU1PUklFUzoKLQkJCQlnZXRNZW1vcmllcygpLmNsZWFyKCk7Ci0JCQkJZ2V0TWVtb3JpZXMoKS5hZGRBbGwoKENvbGxlY3Rpb248PyBleHRlbmRzIE1lbW9yeT4pbmV3VmFsdWUpOwotCQkJCXJldHVybjsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19TQ0hFRFVMRVJTOgotCQkJCWdldFNjaGVkdWxlcnMoKS5jbGVhcigpOwotCQkJCWdldFNjaGVkdWxlcnMoKS5hZGRBbGwoKENvbGxlY3Rpb248PyBleHRlbmRzIFNjaGVkdWxlcj4pbmV3VmFsdWUpOwotCQkJCXJldHVybjsKLQkJfQotCQlzdXBlci5lU2V0KGZlYXR1cmVJRCwgbmV3VmFsdWUpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyB2b2lkIGVVbnNldChpbnQgZmVhdHVyZUlEKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fUlVOTkFCTEVTOgotCQkJCWdldFJ1bm5hYmxlcygpLmNsZWFyKCk7Ci0JCQkJcmV0dXJuOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX0xBQkVMUzoKLQkJCQlnZXRMYWJlbHMoKS5jbGVhcigpOwotCQkJCXJldHVybjsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19NRU1PUklFUzoKLQkJCQlnZXRNZW1vcmllcygpLmNsZWFyKCk7Ci0JCQkJcmV0dXJuOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1NDSEVEVUxFUlM6Ci0JCQkJZ2V0U2NoZWR1bGVycygpLmNsZWFyKCk7Ci0JCQkJcmV0dXJuOwotCQl9Ci0JCXN1cGVyLmVVbnNldChmZWF0dXJlSUQpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBib29sZWFuIGVJc1NldChpbnQgZmVhdHVyZUlEKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fUlVOTkFCTEVTOgotCQkJCXJldHVybiBydW5uYWJsZXMgIT0gbnVsbCAmJiAhcnVubmFibGVzLmlzRW1wdHkoKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19MQUJFTFM6Ci0JCQkJcmV0dXJuIGxhYmVscyAhPSBudWxsICYmICFsYWJlbHMuaXNFbXB0eSgpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX01FTU9SSUVTOgotCQkJCXJldHVybiBtZW1vcmllcyAhPSBudWxsICYmICFtZW1vcmllcy5pc0VtcHR5KCk7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fU0NIRURVTEVSUzoKLQkJCQlyZXR1cm4gc2NoZWR1bGVycyAhPSBudWxsICYmICFzY2hlZHVsZXJzLmlzRW1wdHkoKTsKLQkJfQotCQlyZXR1cm4gc3VwZXIuZUlzU2V0KGZlYXR1cmVJRCk7Ci0JfQotCi19IC8vTW9kZWxJbXBsCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvUnVubmFibGVJbXBsLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvUnVubmFibGVJbXBsLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3MTI1MTcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1J1bm5hYmxlSW1wbC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjI0ICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsLmltcGw7Ci0KLWltcG9ydCBTYW1wbGVNb2RlbC5MYWJlbDsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2U7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5JbnRlcm5hbEVPYmplY3Q7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5NaW5pbWFsRU9iamVjdEltcGw7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5SdW5uYWJsZTwvYj48L2VtPicuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqIDxwPgotICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQ6Ci0gKiA8L3A+Ci0gKiA8dWw+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5SdW5uYWJsZUltcGwjZ2V0TGFiZWxzIDxlbT5MYWJlbHM8L2VtPn08L2xpPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuUnVubmFibGVJbXBsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBjbGFzcyBSdW5uYWJsZUltcGwgZXh0ZW5kcyBNaW5pbWFsRU9iamVjdEltcGwuQ29udGFpbmVyIGltcGxlbWVudHMgU2FtcGxlTW9kZWwuUnVubmFibGUgewotCS8qKgotCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldExhYmVscygpIDxlbT5MYWJlbHM8L2VtPn0nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldExhYmVscygpCi0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JcHJvdGVjdGVkIExhYmVsIGxhYmVsczsKLQotCS8qKgotCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXROYW1lKCkgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldE5hbWUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUVfRURFRkFVTFQgPSBudWxsOwotCi0JLyoqCi0JICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TmFtZSgpIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXROYW1lKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgU3RyaW5nIG5hbWUgPSBOQU1FX0VERUZBVUxUOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJvdGVjdGVkIFJ1bm5hYmxlSW1wbCgpIHsKLQkJc3VwZXIoKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgRUNsYXNzIGVTdGF0aWNDbGFzcygpIHsKLQkJcmV0dXJuIFNhbXBsZU1vZGVsUGFja2FnZS5MaXRlcmFscy5SVU5OQUJMRTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgTGFiZWwgZ2V0TGFiZWxzKCkgewotCQlpZiAobGFiZWxzICE9IG51bGwgJiYgbGFiZWxzLmVJc1Byb3h5KCkpIHsKLQkJCUludGVybmFsRU9iamVjdCBvbGRMYWJlbHMgPSAoSW50ZXJuYWxFT2JqZWN0KWxhYmVsczsKLQkJCWxhYmVscyA9IChMYWJlbCllUmVzb2x2ZVByb3h5KG9sZExhYmVscyk7Ci0JCQlpZiAobGFiZWxzICE9IG9sZExhYmVscykgewotCQkJCWlmIChlTm90aWZpY2F0aW9uUmVxdWlyZWQoKSkKLQkJCQkJZU5vdGlmeShuZXcgRU5vdGlmaWNhdGlvbkltcGwodGhpcywgTm90aWZpY2F0aW9uLlJFU09MVkUsIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTEFCRUxTLCBvbGRMYWJlbHMsIGxhYmVscykpOwotCQkJfQotCQl9Ci0JCXJldHVybiBsYWJlbHM7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIExhYmVsIGJhc2ljR2V0TGFiZWxzKCkgewotCQlyZXR1cm4gbGFiZWxzOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyB2b2lkIHNldExhYmVscyhMYWJlbCBuZXdMYWJlbHMpIHsKLQkJTGFiZWwgb2xkTGFiZWxzID0gbGFiZWxzOwotCQlsYWJlbHMgPSBuZXdMYWJlbHM7Ci0JCWlmIChlTm90aWZpY2F0aW9uUmVxdWlyZWQoKSkKLQkJCWVOb3RpZnkobmV3IEVOb3RpZmljYXRpb25JbXBsKHRoaXMsIE5vdGlmaWNhdGlvbi5TRVQsIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTEFCRUxTLCBvbGRMYWJlbHMsIGxhYmVscykpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKLQkJcmV0dXJuIG5hbWU7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmV3TmFtZSkgewotCQlTdHJpbmcgb2xkTmFtZSA9IG5hbWU7Ci0JCW5hbWUgPSBuZXdOYW1lOwotCQlpZiAoZU5vdGlmaWNhdGlvblJlcXVpcmVkKCkpCi0JCQllTm90aWZ5KG5ldyBFTm90aWZpY2F0aW9uSW1wbCh0aGlzLCBOb3RpZmljYXRpb24uU0VULCBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX05BTUUsIG9sZE5hbWUsIG5hbWUpKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgT2JqZWN0IGVHZXQoaW50IGZlYXR1cmVJRCwgYm9vbGVhbiByZXNvbHZlLCBib29sZWFuIGNvcmVUeXBlKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTEFCRUxTOgotCQkJCWlmIChyZXNvbHZlKSByZXR1cm4gZ2V0TGFiZWxzKCk7Ci0JCQkJcmV0dXJuIGJhc2ljR2V0TGFiZWxzKCk7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTkFNRToKLQkJCQlyZXR1cm4gZ2V0TmFtZSgpOwotCQl9Ci0JCXJldHVybiBzdXBlci5lR2V0KGZlYXR1cmVJRCwgcmVzb2x2ZSwgY29yZVR5cGUpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyB2b2lkIGVTZXQoaW50IGZlYXR1cmVJRCwgT2JqZWN0IG5ld1ZhbHVlKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTEFCRUxTOgotCQkJCXNldExhYmVscygoTGFiZWwpbmV3VmFsdWUpOwotCQkJCXJldHVybjsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLlJVTk5BQkxFX19OQU1FOgotCQkJCXNldE5hbWUoKFN0cmluZyluZXdWYWx1ZSk7Ci0JCQkJcmV0dXJuOwotCQl9Ci0JCXN1cGVyLmVTZXQoZmVhdHVyZUlELCBuZXdWYWx1ZSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgZVVuc2V0KGludCBmZWF0dXJlSUQpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLlJVTk5BQkxFX19MQUJFTFM6Ci0JCQkJc2V0TGFiZWxzKChMYWJlbCludWxsKTsKLQkJCQlyZXR1cm47Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTkFNRToKLQkJCQlzZXROYW1lKE5BTUVfRURFRkFVTFQpOwotCQkJCXJldHVybjsKLQkJfQotCQlzdXBlci5lVW5zZXQoZmVhdHVyZUlEKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgYm9vbGVhbiBlSXNTZXQoaW50IGZlYXR1cmVJRCkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX0xBQkVMUzoKLQkJCQlyZXR1cm4gbGFiZWxzICE9IG51bGw7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTkFNRToKLQkJCQlyZXR1cm4gTkFNRV9FREVGQVVMVCA9PSBudWxsID8gbmFtZSAhPSBudWxsIDogIU5BTUVfRURFRkFVTFQuZXF1YWxzKG5hbWUpOwotCQl9Ci0JCXJldHVybiBzdXBlci5lSXNTZXQoZmVhdHVyZUlEKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewotCQlpZiAoZUlzUHJveHkoKSkgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCk7Ci0KLQkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7Ci0JCXJlc3VsdC5hcHBlbmQoIiAobmFtZTogIik7Ci0JCXJlc3VsdC5hcHBlbmQobmFtZSk7Ci0JCXJlc3VsdC5hcHBlbmQoJyknKTsKLQkJcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwotCX0KLQotfSAvL1J1bm5hYmxlSW1wbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1NhbXBsZU1vZGVsRmFjdG9yeUltcGwuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9TYW1wbGVNb2RlbEZhY3RvcnlJbXBsLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkOTYyYTEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1NhbXBsZU1vZGVsRmFjdG9yeUltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE0NCArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbC5pbXBsOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTGFiZWw7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuTWVtb3J5OwotaW1wb3J0IFNhbXBsZU1vZGVsLk1vZGVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsRmFjdG9yeTsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2U7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2NoZWR1bGVyOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVBhY2thZ2U7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FRmFjdG9yeUltcGw7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucGx1Z2luLkVjb3JlUGx1Z2luOwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgPGI+RmFjdG9yeTwvYj4uCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqIEBnZW5lcmF0ZWQKLSAqLwotcHVibGljIGNsYXNzIFNhbXBsZU1vZGVsRmFjdG9yeUltcGwgZXh0ZW5kcyBFRmFjdG9yeUltcGwgaW1wbGVtZW50cyBTYW1wbGVNb2RlbEZhY3RvcnkgewotCS8qKgotCSAqIENyZWF0ZXMgdGhlIGRlZmF1bHQgZmFjdG9yeSBpbXBsZW1lbnRhdGlvbi4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgc3RhdGljIFNhbXBsZU1vZGVsRmFjdG9yeSBpbml0KCkgewotCQl0cnkgewotCQkJU2FtcGxlTW9kZWxGYWN0b3J5IHRoZVNhbXBsZU1vZGVsRmFjdG9yeSA9IChTYW1wbGVNb2RlbEZhY3RvcnkpRVBhY2thZ2UuUmVnaXN0cnkuSU5TVEFOQ0UuZ2V0RUZhY3RvcnkoU2FtcGxlTW9kZWxQYWNrYWdlLmVOU19VUkkpOwotCQkJaWYgKHRoZVNhbXBsZU1vZGVsRmFjdG9yeSAhPSBudWxsKSB7Ci0JCQkJcmV0dXJuIHRoZVNhbXBsZU1vZGVsRmFjdG9yeTsKLQkJCX0KLQkJfQotCQljYXRjaCAoRXhjZXB0aW9uIGV4Y2VwdGlvbikgewotCQkJRWNvcmVQbHVnaW4uSU5TVEFOQ0UubG9nKGV4Y2VwdGlvbik7Ci0JCX0KLQkJcmV0dXJuIG5ldyBTYW1wbGVNb2RlbEZhY3RvcnlJbXBsKCk7Ci0JfQotCi0JLyoqCi0JICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGUgZmFjdG9yeS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgU2FtcGxlTW9kZWxGYWN0b3J5SW1wbCgpIHsKLQkJc3VwZXIoKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgRU9iamVjdCBjcmVhdGUoRUNsYXNzIGVDbGFzcykgewotCQlzd2l0Y2ggKGVDbGFzcy5nZXRDbGFzc2lmaWVySUQoKSkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUw6IHJldHVybiBjcmVhdGVNb2RlbCgpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEU6IHJldHVybiBjcmVhdGVSdW5uYWJsZSgpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTEFCRUw6IHJldHVybiBjcmVhdGVMYWJlbCgpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTUVNT1JZOiByZXR1cm4gY3JlYXRlTWVtb3J5KCk7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5TQ0hFRFVMRVI6IHJldHVybiBjcmVhdGVTY2hlZHVsZXIoKTsKLQkJCWRlZmF1bHQ6Ci0JCQkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGhlIGNsYXNzICciICsgZUNsYXNzLmdldE5hbWUoKSArICInIGlzIG5vdCBhIHZhbGlkIGNsYXNzaWZpZXIiKTsKLQkJfQotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBNb2RlbCBjcmVhdGVNb2RlbCgpIHsKLQkJTW9kZWxJbXBsIG1vZGVsID0gbmV3IE1vZGVsSW1wbCgpOwotCQlyZXR1cm4gbW9kZWw7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFNhbXBsZU1vZGVsLlJ1bm5hYmxlIGNyZWF0ZVJ1bm5hYmxlKCkgewotCQlSdW5uYWJsZUltcGwgcnVubmFibGUgPSBuZXcgUnVubmFibGVJbXBsKCk7Ci0JCXJldHVybiBydW5uYWJsZTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgTGFiZWwgY3JlYXRlTGFiZWwoKSB7Ci0JCUxhYmVsSW1wbCBsYWJlbCA9IG5ldyBMYWJlbEltcGwoKTsKLQkJcmV0dXJuIGxhYmVsOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBNZW1vcnkgY3JlYXRlTWVtb3J5KCkgewotCQlNZW1vcnlJbXBsIG1lbW9yeSA9IG5ldyBNZW1vcnlJbXBsKCk7Ci0JCXJldHVybiBtZW1vcnk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFNjaGVkdWxlciBjcmVhdGVTY2hlZHVsZXIoKSB7Ci0JCVNjaGVkdWxlckltcGwgc2NoZWR1bGVyID0gbmV3IFNjaGVkdWxlckltcGwoKTsKLQkJcmV0dXJuIHNjaGVkdWxlcjsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgU2FtcGxlTW9kZWxQYWNrYWdlIGdldFNhbXBsZU1vZGVsUGFja2FnZSgpIHsKLQkJcmV0dXJuIChTYW1wbGVNb2RlbFBhY2thZ2UpZ2V0RVBhY2thZ2UoKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBkZXByZWNhdGVkCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUBEZXByZWNhdGVkCi0JcHVibGljIHN0YXRpYyBTYW1wbGVNb2RlbFBhY2thZ2UgZ2V0UGFja2FnZSgpIHsKLQkJcmV0dXJuIFNhbXBsZU1vZGVsUGFja2FnZS5lSU5TVEFOQ0U7Ci0JfQotCi19IC8vU2FtcGxlTW9kZWxGYWN0b3J5SW1wbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1NhbXBsZU1vZGVsUGFja2FnZUltcGwuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9TYW1wbGVNb2RlbFBhY2thZ2VJbXBsLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4NjA0NzEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1NhbXBsZU1vZGVsUGFja2FnZUltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDM0OSArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbC5pbXBsOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTGFiZWw7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuTWVtb3J5OwotaW1wb3J0IFNhbXBsZU1vZGVsLk1vZGVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsRmFjdG9yeTsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2U7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2NoZWR1bGVyOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVBdHRyaWJ1dGU7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVBhY2thZ2U7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVSZWZlcmVuY2U7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FUGFja2FnZUltcGw7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCA8Yj5QYWNrYWdlPC9iPi4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgY2xhc3MgU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCBleHRlbmRzIEVQYWNrYWdlSW1wbCBpbXBsZW1lbnRzIFNhbXBsZU1vZGVsUGFja2FnZSB7Ci0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJpdmF0ZSBFQ2xhc3MgbW9kZWxFQ2xhc3MgPSBudWxsOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJpdmF0ZSBFQ2xhc3MgcnVubmFibGVFQ2xhc3MgPSBudWxsOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJpdmF0ZSBFQ2xhc3MgbGFiZWxFQ2xhc3MgPSBudWxsOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJpdmF0ZSBFQ2xhc3MgbWVtb3J5RUNsYXNzID0gbnVsbDsKLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByaXZhdGUgRUNsYXNzIHNjaGVkdWxlckVDbGFzcyA9IG51bGw7Ci0KLQkvKioKLQkgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIHRoZSBtb2RlbCA8Yj5QYWNrYWdlPC9iPiwgcmVnaXN0ZXJlZCB3aXRoCi0JICoge0BsaW5rIG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUGFja2FnZS5SZWdpc3RyeSBFUGFja2FnZS5SZWdpc3RyeX0gYnkgdGhlIHBhY2thZ2UKLQkgKiBwYWNrYWdlIFVSSSB2YWx1ZS4KLQkgKiA8cD5Ob3RlOiB0aGUgY29ycmVjdCB3YXkgdG8gY3JlYXRlIHRoZSBwYWNrYWdlIGlzIHZpYSB0aGUgc3RhdGljCi0JICogZmFjdG9yeSBtZXRob2Qge0BsaW5rICNpbml0IGluaXQoKX0sIHdoaWNoIGFsc28gcGVyZm9ybXMKLQkgKiBpbml0aWFsaXphdGlvbiBvZiB0aGUgcGFja2FnZSwgb3IgcmV0dXJucyB0aGUgcmVnaXN0ZXJlZCBwYWNrYWdlLAotCSAqIGlmIG9uZSBhbHJlYWR5IGV4aXN0cy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlLlJlZ2lzdHJ5Ci0JICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZU5TX1VSSQotCSAqIEBzZWUgI2luaXQoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcml2YXRlIFNhbXBsZU1vZGVsUGFja2FnZUltcGwoKSB7Ci0JCXN1cGVyKGVOU19VUkksIFNhbXBsZU1vZGVsRmFjdG9yeS5lSU5TVEFOQ0UpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNJbml0ZWQgPSBmYWxzZTsKLQotCS8qKgotCSAqIENyZWF0ZXMsIHJlZ2lzdGVycywgYW5kIGluaXRpYWxpemVzIHRoZSA8Yj5QYWNrYWdlPC9iPiBmb3IgdGhpcyBtb2RlbCwgYW5kIGZvciBhbnkgb3RoZXJzIHVwb24gd2hpY2ggaXQgZGVwZW5kcy4KLQkgKiAKLQkgKiA8cD5UaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUge0BsaW5rIFNhbXBsZU1vZGVsUGFja2FnZSNlSU5TVEFOQ0V9IHdoZW4gdGhhdCBmaWVsZCBpcyBhY2Nlc3NlZC4KLQkgKiBDbGllbnRzIHNob3VsZCBub3QgaW52b2tlIGl0IGRpcmVjdGx5LiBJbnN0ZWFkLCB0aGV5IHNob3VsZCBzaW1wbHkgYWNjZXNzIHRoYXQgZmllbGQgdG8gb2J0YWluIHRoZSBwYWNrYWdlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSAjZU5TX1VSSQotCSAqIEBzZWUgI2NyZWF0ZVBhY2thZ2VDb250ZW50cygpCi0JICogQHNlZSAjaW5pdGlhbGl6ZVBhY2thZ2VDb250ZW50cygpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBzdGF0aWMgU2FtcGxlTW9kZWxQYWNrYWdlIGluaXQoKSB7Ci0JCWlmIChpc0luaXRlZCkgcmV0dXJuIChTYW1wbGVNb2RlbFBhY2thZ2UpRVBhY2thZ2UuUmVnaXN0cnkuSU5TVEFOQ0UuZ2V0RVBhY2thZ2UoU2FtcGxlTW9kZWxQYWNrYWdlLmVOU19VUkkpOwotCi0JCS8vIE9idGFpbiBvciBjcmVhdGUgYW5kIHJlZ2lzdGVyIHBhY2thZ2UKLQkJU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCB0aGVTYW1wbGVNb2RlbFBhY2thZ2UgPSAoU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCkoRVBhY2thZ2UuUmVnaXN0cnkuSU5TVEFOQ0UuZ2V0KGVOU19VUkkpIGluc3RhbmNlb2YgU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCA/IEVQYWNrYWdlLlJlZ2lzdHJ5LklOU1RBTkNFLmdldChlTlNfVVJJKSA6IG5ldyBTYW1wbGVNb2RlbFBhY2thZ2VJbXBsKCkpOwotCi0JCWlzSW5pdGVkID0gdHJ1ZTsKLQotCQkvLyBDcmVhdGUgcGFja2FnZSBtZXRhLWRhdGEgb2JqZWN0cwotCQl0aGVTYW1wbGVNb2RlbFBhY2thZ2UuY3JlYXRlUGFja2FnZUNvbnRlbnRzKCk7Ci0KLQkJLy8gSW5pdGlhbGl6ZSBjcmVhdGVkIG1ldGEtZGF0YQotCQl0aGVTYW1wbGVNb2RlbFBhY2thZ2UuaW5pdGlhbGl6ZVBhY2thZ2VDb250ZW50cygpOwotCi0JCS8vIE1hcmsgbWV0YS1kYXRhIHRvIGluZGljYXRlIGl0IGNhbid0IGJlIGNoYW5nZWQKLQkJdGhlU2FtcGxlTW9kZWxQYWNrYWdlLmZyZWV6ZSgpOwotCi0gIAotCQkvLyBVcGRhdGUgdGhlIHJlZ2lzdHJ5IGFuZCByZXR1cm4gdGhlIHBhY2thZ2UKLQkJRVBhY2thZ2UuUmVnaXN0cnkuSU5TVEFOQ0UucHV0KFNhbXBsZU1vZGVsUGFja2FnZS5lTlNfVVJJLCB0aGVTYW1wbGVNb2RlbFBhY2thZ2UpOwotCQlyZXR1cm4gdGhlU2FtcGxlTW9kZWxQYWNrYWdlOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFQ2xhc3MgZ2V0TW9kZWwoKSB7Ci0JCXJldHVybiBtb2RlbEVDbGFzczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRVJlZmVyZW5jZSBnZXRNb2RlbF9SdW5uYWJsZXMoKSB7Ci0JCXJldHVybiAoRVJlZmVyZW5jZSltb2RlbEVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDApOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFUmVmZXJlbmNlIGdldE1vZGVsX0xhYmVscygpIHsKLQkJcmV0dXJuIChFUmVmZXJlbmNlKW1vZGVsRUNsYXNzLmdldEVTdHJ1Y3R1cmFsRmVhdHVyZXMoKS5nZXQoMSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEVSZWZlcmVuY2UgZ2V0TW9kZWxfTWVtb3JpZXMoKSB7Ci0JCXJldHVybiAoRVJlZmVyZW5jZSltb2RlbEVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDIpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFUmVmZXJlbmNlIGdldE1vZGVsX1NjaGVkdWxlcnMoKSB7Ci0JCXJldHVybiAoRVJlZmVyZW5jZSltb2RlbEVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDMpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFQ2xhc3MgZ2V0UnVubmFibGUoKSB7Ci0JCXJldHVybiBydW5uYWJsZUVDbGFzczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRVJlZmVyZW5jZSBnZXRSdW5uYWJsZV9MYWJlbHMoKSB7Ci0JCXJldHVybiAoRVJlZmVyZW5jZSlydW5uYWJsZUVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDApOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFQXR0cmlidXRlIGdldFJ1bm5hYmxlX05hbWUoKSB7Ci0JCXJldHVybiAoRUF0dHJpYnV0ZSlydW5uYWJsZUVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDEpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFQ2xhc3MgZ2V0TGFiZWwoKSB7Ci0JCXJldHVybiBsYWJlbEVDbGFzczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUF0dHJpYnV0ZSBnZXRMYWJlbF9OYW1lKCkgewotCQlyZXR1cm4gKEVBdHRyaWJ1dGUpbGFiZWxFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgwKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUNsYXNzIGdldE1lbW9yeSgpIHsKLQkJcmV0dXJuIG1lbW9yeUVDbGFzczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUF0dHJpYnV0ZSBnZXRNZW1vcnlfTmFtZSgpIHsKLQkJcmV0dXJuIChFQXR0cmlidXRlKW1lbW9yeUVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDApOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFQ2xhc3MgZ2V0U2NoZWR1bGVyKCkgewotCQlyZXR1cm4gc2NoZWR1bGVyRUNsYXNzOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFQXR0cmlidXRlIGdldFNjaGVkdWxlcl9OYW1lKCkgewotCQlyZXR1cm4gKEVBdHRyaWJ1dGUpc2NoZWR1bGVyRUNsYXNzLmdldEVTdHJ1Y3R1cmFsRmVhdHVyZXMoKS5nZXQoMCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFNhbXBsZU1vZGVsRmFjdG9yeSBnZXRTYW1wbGVNb2RlbEZhY3RvcnkoKSB7Ci0JCXJldHVybiAoU2FtcGxlTW9kZWxGYWN0b3J5KWdldEVGYWN0b3J5SW5zdGFuY2UoKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcml2YXRlIGJvb2xlYW4gaXNDcmVhdGVkID0gZmFsc2U7Ci0KLQkvKioKLQkgKiBDcmVhdGVzIHRoZSBtZXRhLW1vZGVsIG9iamVjdHMgZm9yIHRoZSBwYWNrYWdlLiAgVGhpcyBtZXRob2QgaXMKLQkgKiBndWFyZGVkIHRvIGhhdmUgbm8gYWZmZWN0IG9uIGFueSBpbnZvY2F0aW9uIGJ1dCBpdHMgZmlyc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIHZvaWQgY3JlYXRlUGFja2FnZUNvbnRlbnRzKCkgewotCQlpZiAoaXNDcmVhdGVkKSByZXR1cm47Ci0JCWlzQ3JlYXRlZCA9IHRydWU7Ci0KLQkJLy8gQ3JlYXRlIGNsYXNzZXMgYW5kIHRoZWlyIGZlYXR1cmVzCi0JCW1vZGVsRUNsYXNzID0gY3JlYXRlRUNsYXNzKE1PREVMKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShtb2RlbEVDbGFzcywgTU9ERUxfX1JVTk5BQkxFUyk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UobW9kZWxFQ2xhc3MsIE1PREVMX19MQUJFTFMpOwotCQljcmVhdGVFUmVmZXJlbmNlKG1vZGVsRUNsYXNzLCBNT0RFTF9fTUVNT1JJRVMpOwotCQljcmVhdGVFUmVmZXJlbmNlKG1vZGVsRUNsYXNzLCBNT0RFTF9fU0NIRURVTEVSUyk7Ci0KLQkJcnVubmFibGVFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoUlVOTkFCTEUpOwotCQljcmVhdGVFUmVmZXJlbmNlKHJ1bm5hYmxlRUNsYXNzLCBSVU5OQUJMRV9fTEFCRUxTKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShydW5uYWJsZUVDbGFzcywgUlVOTkFCTEVfX05BTUUpOwotCi0JCWxhYmVsRUNsYXNzID0gY3JlYXRlRUNsYXNzKExBQkVMKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShsYWJlbEVDbGFzcywgTEFCRUxfX05BTUUpOwotCi0JCW1lbW9yeUVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhNRU1PUlkpOwotCQljcmVhdGVFQXR0cmlidXRlKG1lbW9yeUVDbGFzcywgTUVNT1JZX19OQU1FKTsKLQotCQlzY2hlZHVsZXJFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoU0NIRURVTEVSKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShzY2hlZHVsZXJFQ2xhc3MsIFNDSEVEVUxFUl9fTkFNRSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJpdmF0ZSBib29sZWFuIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQotCS8qKgotCSAqIENvbXBsZXRlIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgcGFja2FnZSBhbmQgaXRzIG1ldGEtbW9kZWwuICBUaGlzCi0JICogbWV0aG9kIGlzIGd1YXJkZWQgdG8gaGF2ZSBubyBhZmZlY3Qgb24gYW55IGludm9jYXRpb24gYnV0IGl0cyBmaXJzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgdm9pZCBpbml0aWFsaXplUGFja2FnZUNvbnRlbnRzKCkgewotCQlpZiAoaXNJbml0aWFsaXplZCkgcmV0dXJuOwotCQlpc0luaXRpYWxpemVkID0gdHJ1ZTsKLQotCQkvLyBJbml0aWFsaXplIHBhY2thZ2UKLQkJc2V0TmFtZShlTkFNRSk7Ci0JCXNldE5zUHJlZml4KGVOU19QUkVGSVgpOwotCQlzZXROc1VSSShlTlNfVVJJKTsKLQotCQkvLyBDcmVhdGUgdHlwZSBwYXJhbWV0ZXJzCi0KLQkJLy8gU2V0IGJvdW5kcyBmb3IgdHlwZSBwYXJhbWV0ZXJzCi0KLQkJLy8gQWRkIHN1cGVydHlwZXMgdG8gY2xhc3NlcwotCi0JCS8vIEluaXRpYWxpemUgY2xhc3NlcywgZmVhdHVyZXMsIGFuZCBvcGVyYXRpb25zOyBhZGQgcGFyYW1ldGVycwotCQlpbml0RUNsYXNzKG1vZGVsRUNsYXNzLCBNb2RlbC5jbGFzcywgIk1vZGVsIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFLCBJU19HRU5FUkFURURfSU5TVEFOQ0VfQ0xBU1MpOwotCQlpbml0RVJlZmVyZW5jZShnZXRNb2RlbF9SdW5uYWJsZXMoKSwgdGhpcy5nZXRSdW5uYWJsZSgpLCBudWxsLCAicnVubmFibGVzIiwgbnVsbCwgMCwgLTEsIE1vZGVsLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCQlpbml0RVJlZmVyZW5jZShnZXRNb2RlbF9MYWJlbHMoKSwgdGhpcy5nZXRMYWJlbCgpLCBudWxsLCAibGFiZWxzIiwgbnVsbCwgMCwgLTEsIE1vZGVsLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCQlpbml0RVJlZmVyZW5jZShnZXRNb2RlbF9NZW1vcmllcygpLCB0aGlzLmdldE1lbW9yeSgpLCBudWxsLCAibWVtb3JpZXMiLCBudWxsLCAwLCAtMSwgTW9kZWwuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7Ci0JCWluaXRFUmVmZXJlbmNlKGdldE1vZGVsX1NjaGVkdWxlcnMoKSwgdGhpcy5nZXRTY2hlZHVsZXIoKSwgbnVsbCwgInNjaGVkdWxlcnMiLCBudWxsLCAwLCAtMSwgTW9kZWwuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgSVNfQ09NUE9TSVRFLCAhSVNfUkVTT0xWRV9QUk9YSUVTLCAhSVNfVU5TRVRUQUJMRSwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7Ci0KLQkJaW5pdEVDbGFzcyhydW5uYWJsZUVDbGFzcywgU2FtcGxlTW9kZWwuUnVubmFibGUuY2xhc3MsICJSdW5uYWJsZSIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSwgSVNfR0VORVJBVEVEX0lOU1RBTkNFX0NMQVNTKTsKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0UnVubmFibGVfTGFiZWxzKCksIHRoaXMuZ2V0TGFiZWwoKSwgbnVsbCwgImxhYmVscyIsIG51bGwsIDAsIDEsIFNhbXBsZU1vZGVsLlJ1bm5hYmxlLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19DT01QT1NJVEUsIElTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCQlpbml0RUF0dHJpYnV0ZShnZXRSdW5uYWJsZV9OYW1lKCksIGVjb3JlUGFja2FnZS5nZXRFU3RyaW5nKCksICJuYW1lIiwgbnVsbCwgMCwgMSwgU2FtcGxlTW9kZWwuUnVubmFibGUuY2xhc3MsICFJU19UUkFOU0lFTlQsICFJU19WT0xBVElMRSwgSVNfQ0hBTkdFQUJMRSwgIUlTX1VOU0VUVEFCTEUsICFJU19JRCwgSVNfVU5JUVVFLCAhSVNfREVSSVZFRCwgSVNfT1JERVJFRCk7Ci0KLQkJaW5pdEVDbGFzcyhsYWJlbEVDbGFzcywgTGFiZWwuY2xhc3MsICJMYWJlbCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSwgSVNfR0VORVJBVEVEX0lOU1RBTkNFX0NMQVNTKTsKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0TGFiZWxfTmFtZSgpLCBlY29yZVBhY2thZ2UuZ2V0RVN0cmluZygpLCAibmFtZSIsIG51bGwsIDAsIDEsIExhYmVsLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCi0JCWluaXRFQ2xhc3MobWVtb3J5RUNsYXNzLCBNZW1vcnkuY2xhc3MsICJNZW1vcnkiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UsIElTX0dFTkVSQVRFRF9JTlNUQU5DRV9DTEFTUyk7Ci0JCWluaXRFQXR0cmlidXRlKGdldE1lbW9yeV9OYW1lKCksIGVjb3JlUGFja2FnZS5nZXRFU3RyaW5nKCksICJuYW1lIiwgbnVsbCwgMCwgMSwgTWVtb3J5LmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCi0JCWluaXRFQ2xhc3Moc2NoZWR1bGVyRUNsYXNzLCBTY2hlZHVsZXIuY2xhc3MsICJTY2hlZHVsZXIiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UsIElTX0dFTkVSQVRFRF9JTlNUQU5DRV9DTEFTUyk7Ci0JCWluaXRFQXR0cmlidXRlKGdldFNjaGVkdWxlcl9OYW1lKCksIGVjb3JlUGFja2FnZS5nZXRFU3RyaW5nKCksICJuYW1lIiwgbnVsbCwgMCwgMSwgU2NoZWR1bGVyLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCi0JCS8vIENyZWF0ZSByZXNvdXJjZQotCQljcmVhdGVSZXNvdXJjZShlTlNfVVJJKTsKLQl9Ci0KLX0gLy9TYW1wbGVNb2RlbFBhY2thZ2VJbXBsCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvU2NoZWR1bGVySW1wbC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1NjaGVkdWxlckltcGwuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjg3ZGNjNy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvU2NoZWR1bGVySW1wbC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTYzICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsLmltcGw7Ci0KLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2U7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2NoZWR1bGVyOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLk1pbmltYWxFT2JqZWN0SW1wbDsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPlNjaGVkdWxlcjwvYj48L2VtPicuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqIDxwPgotICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQ6Ci0gKiA8L3A+Ci0gKiA8dWw+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5TY2hlZHVsZXJJbXBsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBjbGFzcyBTY2hlZHVsZXJJbXBsIGV4dGVuZHMgTWluaW1hbEVPYmplY3RJbXBsLkNvbnRhaW5lciBpbXBsZW1lbnRzIFNjaGVkdWxlciB7Ci0JLyoqCi0JICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSAjZ2V0TmFtZSgpCi0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgTkFNRV9FREVGQVVMVCA9IG51bGw7Ci0KLQkvKioKLQkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXROYW1lKCkgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldE5hbWUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBTdHJpbmcgbmFtZSA9IE5BTUVfRURFRkFVTFQ7Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcm90ZWN0ZWQgU2NoZWR1bGVySW1wbCgpIHsKLQkJc3VwZXIoKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgRUNsYXNzIGVTdGF0aWNDbGFzcygpIHsKLQkJcmV0dXJuIFNhbXBsZU1vZGVsUGFja2FnZS5MaXRlcmFscy5TQ0hFRFVMRVI7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFN0cmluZyBnZXROYW1lKCkgewotCQlyZXR1cm4gbmFtZTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgdm9pZCBzZXROYW1lKFN0cmluZyBuZXdOYW1lKSB7Ci0JCVN0cmluZyBvbGROYW1lID0gbmFtZTsKLQkJbmFtZSA9IG5ld05hbWU7Ci0JCWlmIChlTm90aWZpY2F0aW9uUmVxdWlyZWQoKSkKLQkJCWVOb3RpZnkobmV3IEVOb3RpZmljYXRpb25JbXBsKHRoaXMsIE5vdGlmaWNhdGlvbi5TRVQsIFNhbXBsZU1vZGVsUGFja2FnZS5TQ0hFRFVMRVJfX05BTUUsIG9sZE5hbWUsIG5hbWUpKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgT2JqZWN0IGVHZXQoaW50IGZlYXR1cmVJRCwgYm9vbGVhbiByZXNvbHZlLCBib29sZWFuIGNvcmVUeXBlKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5TQ0hFRFVMRVJfX05BTUU6Ci0JCQkJcmV0dXJuIGdldE5hbWUoKTsKLQkJfQotCQlyZXR1cm4gc3VwZXIuZUdldChmZWF0dXJlSUQsIHJlc29sdmUsIGNvcmVUeXBlKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgdm9pZCBlU2V0KGludCBmZWF0dXJlSUQsIE9iamVjdCBuZXdWYWx1ZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuU0NIRURVTEVSX19OQU1FOgotCQkJCXNldE5hbWUoKFN0cmluZyluZXdWYWx1ZSk7Ci0JCQkJcmV0dXJuOwotCQl9Ci0JCXN1cGVyLmVTZXQoZmVhdHVyZUlELCBuZXdWYWx1ZSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgZVVuc2V0KGludCBmZWF0dXJlSUQpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLlNDSEVEVUxFUl9fTkFNRToKLQkJCQlzZXROYW1lKE5BTUVfRURFRkFVTFQpOwotCQkJCXJldHVybjsKLQkJfQotCQlzdXBlci5lVW5zZXQoZmVhdHVyZUlEKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgYm9vbGVhbiBlSXNTZXQoaW50IGZlYXR1cmVJRCkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuU0NIRURVTEVSX19OQU1FOgotCQkJCXJldHVybiBOQU1FX0VERUZBVUxUID09IG51bGwgPyBuYW1lICE9IG51bGwgOiAhTkFNRV9FREVGQVVMVC5lcXVhbHMobmFtZSk7Ci0JCX0KLQkJcmV0dXJuIHN1cGVyLmVJc1NldChmZWF0dXJlSUQpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7Ci0JCWlmIChlSXNQcm94eSgpKSByZXR1cm4gc3VwZXIudG9TdHJpbmcoKTsKLQotCQlTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzdXBlci50b1N0cmluZygpKTsKLQkJcmVzdWx0LmFwcGVuZCgiIChuYW1lOiAiKTsKLQkJcmVzdWx0LmFwcGVuZChuYW1lKTsKLQkJcmVzdWx0LmFwcGVuZCgnKScpOwotCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Ci0JfQotCi19IC8vU2NoZWR1bGVySW1wbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC91dGlsL1NhbXBsZU1vZGVsQWRhcHRlckZhY3RvcnkuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvdXRpbC9TYW1wbGVNb2RlbEFkYXB0ZXJGYWN0b3J5LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwMGZjM2QuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC91dGlsL1NhbXBsZU1vZGVsQWRhcHRlckZhY3RvcnkuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE5NiArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbC51dGlsOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTGFiZWw7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuTWVtb3J5OwotaW1wb3J0IFNhbXBsZU1vZGVsLk1vZGVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZTsKLWltcG9ydCBTYW1wbGVNb2RlbC5TY2hlZHVsZXI7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWVyOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuaW1wbC5BZGFwdGVyRmFjdG9yeUltcGw7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogVGhlIDxiPkFkYXB0ZXIgRmFjdG9yeTwvYj4gZm9yIHRoZSBtb2RlbC4KLSAqIEl0IHByb3ZpZGVzIGFuIGFkYXB0ZXIgPGNvZGU+Y3JlYXRlWFhYPC9jb2RlPiBtZXRob2QgZm9yIGVhY2ggY2xhc3Mgb2YgdGhlIG1vZGVsLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZQotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgY2xhc3MgU2FtcGxlTW9kZWxBZGFwdGVyRmFjdG9yeSBleHRlbmRzIEFkYXB0ZXJGYWN0b3J5SW1wbCB7Ci0JLyoqCi0JICogVGhlIGNhY2hlZCBtb2RlbCBwYWNrYWdlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByb3RlY3RlZCBzdGF0aWMgU2FtcGxlTW9kZWxQYWNrYWdlIG1vZGVsUGFja2FnZTsKLQotCS8qKgotCSAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgdGhlIGFkYXB0ZXIgZmFjdG9yeS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgU2FtcGxlTW9kZWxBZGFwdGVyRmFjdG9yeSgpIHsKLQkJaWYgKG1vZGVsUGFja2FnZSA9PSBudWxsKSB7Ci0JCQltb2RlbFBhY2thZ2UgPSBTYW1wbGVNb2RlbFBhY2thZ2UuZUlOU1RBTkNFOwotCQl9Ci0JfQotCi0JLyoqCi0JICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmFjdG9yeSBpcyBhcHBsaWNhYmxlIGZvciB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBvYmplY3QgaXMgZWl0aGVyIHRoZSBtb2RlbCdzIHBhY2thZ2Ugb3IgaXMgYW4gaW5zdGFuY2Ugb2JqZWN0IG9mIHRoZSBtb2RlbC4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHdoZXRoZXIgdGhpcyBmYWN0b3J5IGlzIGFwcGxpY2FibGUgZm9yIHRoZSB0eXBlIG9mIHRoZSBvYmplY3QuCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBib29sZWFuIGlzRmFjdG9yeUZvclR5cGUoT2JqZWN0IG9iamVjdCkgewotCQlpZiAob2JqZWN0ID09IG1vZGVsUGFja2FnZSkgewotCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQkJaWYgKG9iamVjdCBpbnN0YW5jZW9mIEVPYmplY3QpIHsKLQkJCXJldHVybiAoKEVPYmplY3Qpb2JqZWN0KS5lQ2xhc3MoKS5nZXRFUGFja2FnZSgpID09IG1vZGVsUGFja2FnZTsKLQkJfQotCQlyZXR1cm4gZmFsc2U7Ci0JfQotCi0JLyoqCi0JICogVGhlIHN3aXRjaCB0aGF0IGRlbGVnYXRlcyB0byB0aGUgPGNvZGU+Y3JlYXRlWFhYPC9jb2RlPiBtZXRob2RzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByb3RlY3RlZCBTYW1wbGVNb2RlbFN3aXRjaDxBZGFwdGVyPiBtb2RlbFN3aXRjaCA9Ci0JCW5ldyBTYW1wbGVNb2RlbFN3aXRjaDxBZGFwdGVyPigpIHsKLQkJCUBPdmVycmlkZQotCQkJcHVibGljIEFkYXB0ZXIgY2FzZU1vZGVsKE1vZGVsIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVNb2RlbEFkYXB0ZXIoKTsKLQkJCX0KLQkJCUBPdmVycmlkZQotCQkJcHVibGljIEFkYXB0ZXIgY2FzZVJ1bm5hYmxlKFNhbXBsZU1vZGVsLlJ1bm5hYmxlIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVSdW5uYWJsZUFkYXB0ZXIoKTsKLQkJCX0KLQkJCUBPdmVycmlkZQotCQkJcHVibGljIEFkYXB0ZXIgY2FzZUxhYmVsKExhYmVsIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVMYWJlbEFkYXB0ZXIoKTsKLQkJCX0KLQkJCUBPdmVycmlkZQotCQkJcHVibGljIEFkYXB0ZXIgY2FzZU1lbW9yeShNZW1vcnkgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZU1lbW9yeUFkYXB0ZXIoKTsKLQkJCX0KLQkJCUBPdmVycmlkZQotCQkJcHVibGljIEFkYXB0ZXIgY2FzZVNjaGVkdWxlcihTY2hlZHVsZXIgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZVNjaGVkdWxlckFkYXB0ZXIoKTsKLQkJCX0KLQkJCUBPdmVycmlkZQotCQkJcHVibGljIEFkYXB0ZXIgZGVmYXVsdENhc2UoRU9iamVjdCBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlRU9iamVjdEFkYXB0ZXIoKTsKLQkJCX0KLQkJfTsKLQotCS8qKgotCSAqIENyZWF0ZXMgYW4gYWRhcHRlciBmb3IgdGhlIDxjb2RlPnRhcmdldDwvY29kZT4uCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdG8gYWRhcHQuCi0JICogQHJldHVybiB0aGUgYWRhcHRlciBmb3IgdGhlIDxjb2RlPnRhcmdldDwvY29kZT4uCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZUFkYXB0ZXIoTm90aWZpZXIgdGFyZ2V0KSB7Ci0JCXJldHVybiBtb2RlbFN3aXRjaC5kb1N3aXRjaCgoRU9iamVjdCl0YXJnZXQpOwotCX0KLQotCi0JLyoqCi0JICogQ3JlYXRlcyBhIG5ldyBhZGFwdGVyIGZvciBhbiBvYmplY3Qgb2YgY2xhc3MgJ3tAbGluayBTYW1wbGVNb2RlbC5Nb2RlbCA8ZW0+TW9kZWw8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbCBzbyB0aGF0IHdlIGNhbiBlYXNpbHkgaWdub3JlIGNhc2VzOwotCSAqIGl0J3MgdXNlZnVsIHRvIGlnbm9yZSBhIGNhc2Ugd2hlbiBpbmhlcml0YW5jZSB3aWxsIGNhdGNoIGFsbCB0aGUgY2FzZXMgYW55d2F5LgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG5ldyBhZGFwdGVyLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTW9kZWwKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEFkYXB0ZXIgY3JlYXRlTW9kZWxBZGFwdGVyKCkgewotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLQkvKioKLQkgKiBDcmVhdGVzIGEgbmV3IGFkYXB0ZXIgZm9yIGFuIG9iamVjdCBvZiBjbGFzcyAne0BsaW5rIFNhbXBsZU1vZGVsLlJ1bm5hYmxlIDxlbT5SdW5uYWJsZTwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsIHNvIHRoYXQgd2UgY2FuIGVhc2lseSBpZ25vcmUgY2FzZXM7Ci0JICogaXQncyB1c2VmdWwgdG8gaWdub3JlIGEgY2FzZSB3aGVuIGluaGVyaXRhbmNlIHdpbGwgY2F0Y2ggYWxsIHRoZSBjYXNlcyBhbnl3YXkuCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbmV3IGFkYXB0ZXIuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5SdW5uYWJsZQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgQWRhcHRlciBjcmVhdGVSdW5uYWJsZUFkYXB0ZXIoKSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotCS8qKgotCSAqIENyZWF0ZXMgYSBuZXcgYWRhcHRlciBmb3IgYW4gb2JqZWN0IG9mIGNsYXNzICd7QGxpbmsgU2FtcGxlTW9kZWwuTGFiZWwgPGVtPkxhYmVsPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIFRoaXMgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGwgc28gdGhhdCB3ZSBjYW4gZWFzaWx5IGlnbm9yZSBjYXNlczsKLQkgKiBpdCdzIHVzZWZ1bCB0byBpZ25vcmUgYSBjYXNlIHdoZW4gaW5oZXJpdGFuY2Ugd2lsbCBjYXRjaCBhbGwgdGhlIGNhc2VzIGFueXdheS4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBuZXcgYWRhcHRlci4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLkxhYmVsCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZUxhYmVsQWRhcHRlcigpIHsKLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0JLyoqCi0JICogQ3JlYXRlcyBhIG5ldyBhZGFwdGVyIGZvciBhbiBvYmplY3Qgb2YgY2xhc3MgJ3tAbGluayBTYW1wbGVNb2RlbC5NZW1vcnkgPGVtPk1lbW9yeTwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsIHNvIHRoYXQgd2UgY2FuIGVhc2lseSBpZ25vcmUgY2FzZXM7Ci0JICogaXQncyB1c2VmdWwgdG8gaWdub3JlIGEgY2FzZSB3aGVuIGluaGVyaXRhbmNlIHdpbGwgY2F0Y2ggYWxsIHRoZSBjYXNlcyBhbnl3YXkuCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbmV3IGFkYXB0ZXIuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5NZW1vcnkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEFkYXB0ZXIgY3JlYXRlTWVtb3J5QWRhcHRlcigpIHsKLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0JLyoqCi0JICogQ3JlYXRlcyBhIG5ldyBhZGFwdGVyIGZvciBhbiBvYmplY3Qgb2YgY2xhc3MgJ3tAbGluayBTYW1wbGVNb2RlbC5TY2hlZHVsZXIgPGVtPlNjaGVkdWxlcjwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsIHNvIHRoYXQgd2UgY2FuIGVhc2lseSBpZ25vcmUgY2FzZXM7Ci0JICogaXQncyB1c2VmdWwgdG8gaWdub3JlIGEgY2FzZSB3aGVuIGluaGVyaXRhbmNlIHdpbGwgY2F0Y2ggYWxsIHRoZSBjYXNlcyBhbnl3YXkuCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbmV3IGFkYXB0ZXIuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TY2hlZHVsZXIKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEFkYXB0ZXIgY3JlYXRlU2NoZWR1bGVyQWRhcHRlcigpIHsKLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0JLyoqCi0JICogQ3JlYXRlcyBhIG5ldyBhZGFwdGVyIGZvciB0aGUgZGVmYXVsdCBjYXNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbC4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBuZXcgYWRhcHRlci4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEFkYXB0ZXIgY3JlYXRlRU9iamVjdEFkYXB0ZXIoKSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotfSAvL1NhbXBsZU1vZGVsQWRhcHRlckZhY3RvcnkKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvdXRpbC9TYW1wbGVNb2RlbFN3aXRjaC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC91dGlsL1NhbXBsZU1vZGVsU3dpdGNoLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMmEyMjYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC91dGlsL1NhbXBsZU1vZGVsU3dpdGNoLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxOTggKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWwudXRpbDsKLQotaW1wb3J0IFNhbXBsZU1vZGVsLkxhYmVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLk1lbW9yeTsKLWltcG9ydCBTYW1wbGVNb2RlbC5Nb2RlbDsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2U7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2NoZWR1bGVyOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuU3dpdGNoOwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBUaGUgPGI+U3dpdGNoPC9iPiBmb3IgdGhlIG1vZGVsJ3MgaW5oZXJpdGFuY2UgaGllcmFyY2h5LgotICogSXQgc3VwcG9ydHMgdGhlIGNhbGwge0BsaW5rICNkb1N3aXRjaChFT2JqZWN0KSBkb1N3aXRjaChvYmplY3QpfQotICogdG8gaW52b2tlIHRoZSA8Y29kZT5jYXNlWFhYPC9jb2RlPiBtZXRob2QgZm9yIGVhY2ggY2xhc3Mgb2YgdGhlIG1vZGVsLAotICogc3RhcnRpbmcgd2l0aCB0aGUgYWN0dWFsIGNsYXNzIG9mIHRoZSBvYmplY3QKLSAqIGFuZCBwcm9jZWVkaW5nIHVwIHRoZSBpbmhlcml0YW5jZSBoaWVyYXJjaHkKLSAqIHVudGlsIGEgbm9uLW51bGwgcmVzdWx0IGlzIHJldHVybmVkLAotICogd2hpY2ggaXMgdGhlIHJlc3VsdCBvZiB0aGUgc3dpdGNoLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZQotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgY2xhc3MgU2FtcGxlTW9kZWxTd2l0Y2g8VD4gZXh0ZW5kcyBTd2l0Y2g8VD4gewotCS8qKgotCSAqIFRoZSBjYWNoZWQgbW9kZWwgcGFja2FnZQotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByb3RlY3RlZCBzdGF0aWMgU2FtcGxlTW9kZWxQYWNrYWdlIG1vZGVsUGFja2FnZTsKLQotCS8qKgotCSAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgdGhlIHN3aXRjaC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgU2FtcGxlTW9kZWxTd2l0Y2goKSB7Ci0JCWlmIChtb2RlbFBhY2thZ2UgPT0gbnVsbCkgewotCQkJbW9kZWxQYWNrYWdlID0gU2FtcGxlTW9kZWxQYWNrYWdlLmVJTlNUQU5DRTsKLQkJfQotCX0KLQotCS8qKgotCSAqIENoZWNrcyB3aGV0aGVyIHRoaXMgaXMgYSBzd2l0Y2ggZm9yIHRoZSBnaXZlbiBwYWNrYWdlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIGVQYWNrYWdlIHRoZSBwYWNrYWdlIGluIHF1ZXN0aW9uLgotCSAqIEByZXR1cm4gd2hldGhlciB0aGlzIGlzIGEgc3dpdGNoIGZvciB0aGUgZ2l2ZW4gcGFja2FnZS4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIGJvb2xlYW4gaXNTd2l0Y2hGb3IoRVBhY2thZ2UgZVBhY2thZ2UpIHsKLQkJcmV0dXJuIGVQYWNrYWdlID09IG1vZGVsUGFja2FnZTsKLQl9Ci0KLQkvKioKLQkgKiBDYWxscyA8Y29kZT5jYXNlWFhYPC9jb2RlPiBmb3IgZWFjaCBjbGFzcyBvZiB0aGUgbW9kZWwgdW50aWwgb25lIHJldHVybnMgYSBub24gbnVsbCByZXN1bHQ7IGl0IHlpZWxkcyB0aGF0IHJlc3VsdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIGZpcnN0IG5vbi1udWxsIHJlc3VsdCByZXR1cm5lZCBieSBhIDxjb2RlPmNhc2VYWFg8L2NvZGU+IGNhbGwuCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXByb3RlY3RlZCBUIGRvU3dpdGNoKGludCBjbGFzc2lmaWVySUQsIEVPYmplY3QgdGhlRU9iamVjdCkgewotCQlzd2l0Y2ggKGNsYXNzaWZpZXJJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUw6IHsKLQkJCQlNb2RlbCBtb2RlbCA9IChNb2RlbCl0aGVFT2JqZWN0OwotCQkJCVQgcmVzdWx0ID0gY2FzZU1vZGVsKG1vZGVsKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRTogewotCQkJCVNhbXBsZU1vZGVsLlJ1bm5hYmxlIHJ1bm5hYmxlID0gKFNhbXBsZU1vZGVsLlJ1bm5hYmxlKXRoZUVPYmplY3Q7Ci0JCQkJVCByZXN1bHQgPSBjYXNlUnVubmFibGUocnVubmFibGUpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLkxBQkVMOiB7Ci0JCQkJTGFiZWwgbGFiZWwgPSAoTGFiZWwpdGhlRU9iamVjdDsKLQkJCQlUIHJlc3VsdCA9IGNhc2VMYWJlbChsYWJlbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTUVNT1JZOiB7Ci0JCQkJTWVtb3J5IG1lbW9yeSA9IChNZW1vcnkpdGhlRU9iamVjdDsKLQkJCQlUIHJlc3VsdCA9IGNhc2VNZW1vcnkobWVtb3J5KTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5TQ0hFRFVMRVI6IHsKLQkJCQlTY2hlZHVsZXIgc2NoZWR1bGVyID0gKFNjaGVkdWxlcil0aGVFT2JqZWN0OwotCQkJCVQgcmVzdWx0ID0gY2FzZVNjaGVkdWxlcihzY2hlZHVsZXIpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWRlZmF1bHQ6IHJldHVybiBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJfQotCX0KLQotCS8qKgotCSAqIFJldHVybnMgdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPk1vZGVsPC9lbT4nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGw7Ci0JICogcmV0dXJuaW5nIGEgbm9uLW51bGwgcmVzdWx0IHdpbGwgdGVybWluYXRlIHRoZSBzd2l0Y2guCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIG9iamVjdCB0aGUgdGFyZ2V0IG9mIHRoZSBzd2l0Y2guCi0JICogQHJldHVybiB0aGUgcmVzdWx0IG9mIGludGVycHJldGluZyB0aGUgb2JqZWN0IGFzIGFuIGluc3RhbmNlIG9mICc8ZW0+TW9kZWw8L2VtPicuCi0JICogQHNlZSAjZG9Td2l0Y2gob3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3QpIGRvU3dpdGNoKEVPYmplY3QpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBUIGNhc2VNb2RlbChNb2RlbCBvYmplY3QpIHsKLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgcmVzdWx0IG9mIGludGVycHJldGluZyB0aGUgb2JqZWN0IGFzIGFuIGluc3RhbmNlIG9mICc8ZW0+UnVubmFibGU8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbDsKLQkgKiByZXR1cm5pbmcgYSBub24tbnVsbCByZXN1bHQgd2lsbCB0ZXJtaW5hdGUgdGhlIHN3aXRjaC4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcGFyYW0gb2JqZWN0IHRoZSB0YXJnZXQgb2YgdGhlIHN3aXRjaC4KLQkgKiBAcmV0dXJuIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5SdW5uYWJsZTwvZW0+Jy4KLQkgKiBAc2VlICNkb1N3aXRjaChvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdCkgZG9Td2l0Y2goRU9iamVjdCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFQgY2FzZVJ1bm5hYmxlKFNhbXBsZU1vZGVsLlJ1bm5hYmxlIG9iamVjdCkgewotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5MYWJlbDwvZW0+Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIFRoaXMgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsOwotCSAqIHJldHVybmluZyBhIG5vbi1udWxsIHJlc3VsdCB3aWxsIHRlcm1pbmF0ZSB0aGUgc3dpdGNoLgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSBvYmplY3QgdGhlIHRhcmdldCBvZiB0aGUgc3dpdGNoLgotCSAqIEByZXR1cm4gdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPkxhYmVsPC9lbT4nLgotCSAqIEBzZWUgI2RvU3dpdGNoKG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0KSBkb1N3aXRjaChFT2JqZWN0KQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgVCBjYXNlTGFiZWwoTGFiZWwgb2JqZWN0KSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotCS8qKgotCSAqIFJldHVybnMgdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPk1lbW9yeTwvZW0+Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIFRoaXMgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsOwotCSAqIHJldHVybmluZyBhIG5vbi1udWxsIHJlc3VsdCB3aWxsIHRlcm1pbmF0ZSB0aGUgc3dpdGNoLgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSBvYmplY3QgdGhlIHRhcmdldCBvZiB0aGUgc3dpdGNoLgotCSAqIEByZXR1cm4gdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPk1lbW9yeTwvZW0+Jy4KLQkgKiBAc2VlICNkb1N3aXRjaChvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdCkgZG9Td2l0Y2goRU9iamVjdCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFQgY2FzZU1lbW9yeShNZW1vcnkgb2JqZWN0KSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotCS8qKgotCSAqIFJldHVybnMgdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPlNjaGVkdWxlcjwvZW0+Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIFRoaXMgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsOwotCSAqIHJldHVybmluZyBhIG5vbi1udWxsIHJlc3VsdCB3aWxsIHRlcm1pbmF0ZSB0aGUgc3dpdGNoLgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSBvYmplY3QgdGhlIHRhcmdldCBvZiB0aGUgc3dpdGNoLgotCSAqIEByZXR1cm4gdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPlNjaGVkdWxlcjwvZW0+Jy4KLQkgKiBAc2VlICNkb1N3aXRjaChvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdCkgZG9Td2l0Y2goRU9iamVjdCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFQgY2FzZVNjaGVkdWxlcihTY2hlZHVsZXIgb2JqZWN0KSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotCS8qKgotCSAqIFJldHVybnMgdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPkVPYmplY3Q8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbDsKLQkgKiByZXR1cm5pbmcgYSBub24tbnVsbCByZXN1bHQgd2lsbCB0ZXJtaW5hdGUgdGhlIHN3aXRjaCwgYnV0IHRoaXMgaXMgdGhlIGxhc3QgY2FzZSBhbnl3YXkuCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIG9iamVjdCB0aGUgdGFyZ2V0IG9mIHRoZSBzd2l0Y2guCi0JICogQHJldHVybiB0aGUgcmVzdWx0IG9mIGludGVycHJldGluZyB0aGUgb2JqZWN0IGFzIGFuIGluc3RhbmNlIG9mICc8ZW0+RU9iamVjdDwvZW0+Jy4KLQkgKiBAc2VlICNkb1N3aXRjaChvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIFQgZGVmYXVsdENhc2UoRU9iamVjdCBvYmplY3QpIHsKLQkJcmV0dXJuIG51bGw7Ci0JfQotCi19IC8vU2FtcGxlTW9kZWxTd2l0Y2gKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmZlYXR1cmUvLmdpdGlnbm9yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmZlYXR1cmUvLmdpdGlnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U5MDJlOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5mZWF0dXJlLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1vdXRwdXQvKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmZlYXR1cmUvLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5mZWF0dXJlLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWU1MjBhLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmZlYXR1cmUvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5mZWF0dXJlPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZU5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NGY5M2E5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmZlYXR1cmUvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWJpbi5pbmNsdWRlcyA9IGZlYXR1cmUueG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuZmVhdHVyZS9mZWF0dXJlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWYwYTliNC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxmZWF0dXJlCi0gICAgICBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuZmVhdHVyZSIKLSAgICAgIGxhYmVsPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5mZWF0dXJlcyIKLSAgICAgIHZlcnNpb249IjEuMC4wLnF1YWxpZmllciI+Ci0KLSAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZGVzY3JpcHRpb24iPgotICAgICAgW0VudGVyIEZlYXR1cmUgRGVzY3JpcHRpb24gaGVyZS5dCi0gICA8L2Rlc2NyaXB0aW9uPgotCi0gICA8Y29weXJpZ2h0IHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9jb3B5cmlnaHQiPgotICAgICAgW0VudGVyIENvcHlyaWdodCBEZXNjcmlwdGlvbiBoZXJlLl0KLSAgIDwvY29weXJpZ2h0PgotCi0gICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbGljZW5zZSI+Ci0gICAgICBbRW50ZXIgTGljZW5zZSBEZXNjcmlwdGlvbiBoZXJlLl0KLSAgIDwvbGljZW5zZT4KLQotICAgPGluY2x1ZGVzCi0gICAgICAgICBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmZlYXR1cmUiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0iYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLTwvZmVhdHVyZT4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5mZWF0dXJlLy5naXRpZ25vcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uZmVhdHVyZS8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTkwMmU4Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5mZWF0dXJlLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1vdXRwdXQvKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5mZWF0dXJlLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmZlYXR1cmUvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NWVlMjguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmZlYXR1cmUvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uZmVhdHVyZTwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVOYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NGY5M2E5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1iaW4uaW5jbHVkZXMgPSBmZWF0dXJlLnhtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmZlYXR1cmUvZmVhdHVyZS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uZmVhdHVyZS9mZWF0dXJlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI0MjVjYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08ZmVhdHVyZQotICAgICAgaWQ9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5mZWF0dXJlIgotICAgICAgbGFiZWw9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5mZWF0dXJlIgotICAgICAgdmVyc2lvbj0iMS4wLjAucXVhbGlmaWVyIj4KLQotICAgPGRlc2NyaXB0aW9uIHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9kZXNjcmlwdGlvbiI+Ci0gICAgICBbRW50ZXIgRmVhdHVyZSBEZXNjcmlwdGlvbiBoZXJlLl0KLSAgIDwvZGVzY3JpcHRpb24+Ci0KLSAgIDxjb3B5cmlnaHQgdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2NvcHlyaWdodCI+Ci0gICAgICBbRW50ZXIgQ29weXJpZ2h0IERlc2NyaXB0aW9uIGhlcmUuXQotICAgPC9jb3B5cmlnaHQ+Ci0KLSAgIDxsaWNlbnNlIHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9saWNlbnNlIj4KLSAgICAgIFtFbnRlciBMaWNlbnNlIERlc2NyaXB0aW9uIGhlcmUuXQotICAgPC9saWNlbnNlPgotCi0gICA8aW5jbHVkZXMKLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbCIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydCIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbCIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotPC9mZWF0dXJlPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmM0MTczLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb3JlLmZlYXR1cmU8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlTmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb3JlLmZlYXR1cmUvYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzNjlhYTguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1iaW4uaW5jbHVkZXMgPSBmZWF0dXJlLnhtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbAotc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb3JlLmZlYXR1cmUvZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KLSAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICAgICAgYm9keSB7Ci0gICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOwotICAgICAgfQotICAgICAgaDF7Ci0gICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKLSAgICAgIH0KLSAgICAgIGgyewotICAgICAgICBmb250LXNpemU6MWVtOwotICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOwotICAgICAgICBtYXJnaW4tdG9wOjFlbTsKLSAgICAgIH0KLSAgICAgIHAgewotICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwotICAgICAgfQotICAgICAgdWwsIG9sewotICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKLSAgICAgIH0KLSAgICA8L3N0eWxlPgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgotICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCi0gICAgICBQVUJMSUMgTElDRU5TRSAoJmxkcXVvO0FHUkVFTUVOVCZyZHF1bzspLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCi0gICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQmIzAzOTtTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0aW9uJnJkcXVvOyBtZWFuczo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50Ci0gICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKLSAgICAgICAgPHVsPgotICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgotICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCi0gICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgotICAgICAgICAmbGRxdW87b3JpZ2luYXRlcyZyZHF1bzsgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCi0gICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3ImIzAzOTtzIGJlaGFsZi4KLSAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0Ci0gICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+JmxkcXVvO0NvbnRyaWJ1dG9yJnJkcXVvOyBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KLSAgICA8cD4mbGRxdW87TGljZW5zZWQgUGF0ZW50cyZyZHF1bzsgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAotICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQotICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UHJvZ3JhbSZyZHF1bzsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKLSAgICAgIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1JlY2lwaWVudCZyZHF1bzsgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAotICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO0Rlcml2YXRpdmUgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKLSAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKLSAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87TW9kaWZpZWQgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0Ci0gICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKLSAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQotICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKLSAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKLSAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCi0gICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCi0gICAgICBXb3JrcyB0aGVyZW9mLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGlzdHJpYnV0ZSZyZHF1bzsgbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKLSAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTb3VyY2UgQ29kZSZyZHF1bzsgbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCi0gICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAotICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87U2Vjb25kYXJ5IExpY2Vuc2UmcmRxdW87IG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCi0gICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQotICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKLSAgICAgIENvbnRyaWJ1dG9yLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKLSAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKLSAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKLSAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKLSAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAotICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKLSAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAotICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAotICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLSAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55Ci0gICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgotICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQotICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQotICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKLSAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KLSAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcwotICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKLSAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCi0gICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCi0gICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KLSAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCYjMDM5O3MKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAotICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCi0gICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCi0gICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmVjZWlwdCBvZiB0aGUKLSAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCi0gICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgotICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgotICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKLSAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KLSAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bwotICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5Ci0gICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKLSAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKLSAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAotICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJiMwMzk7IHJpZ2h0cyBpbiB0aGUKLSAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQotICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCi0gICAgICAgICAgPC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQotICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQotICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bwotICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAotICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKLSAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKLSAgICAgICgmbHNxdW87bm90aWNlcyZyc3F1bzspIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAotICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQotICAgICAgbm90aWNlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgotICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCi0gICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKLSAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQotICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAotICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCi0gICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCi0gICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZsZHF1bztDb21tZXJjaWFsIENvbnRyaWJ1dG9yJnJkcXVvOykKLSAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKLSAgICAgICgmbGRxdW87SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcmRxdW87KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCi0gICAgICAoY29sbGVjdGl2ZWx5ICZsZHF1bztMb3NzZXMmcmRxdW87KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucwotICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKLSAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KLSAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KLSAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCi0gICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KLSAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKLSAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKLSAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKLSAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCi0gICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgotICAgIDwvcD4KLSAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCi0gICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLSAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcwotICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciYjMDM5O3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCi0gICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcwotICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcwotICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJmxkcXVvO0FTIElTJnJkcXVvOyBCQVNJUywgV0lUSE9VVAotICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLSAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLSAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKLSAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKLSAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cwotICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQotICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKLSAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLSAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKLSAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAotICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUwotICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgotICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCi0gICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCi0gICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKLSAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKLSAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KLSAgICA8L3A+Ci0gICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKLSAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCi0gICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQmIzAzOTtzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIGdyYW50ZWQKLSAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotICAgIDwvcD4KLSAgICA8cD5BbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCi0gICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCi0gICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKLSAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KLSAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50JiMwMzk7cyBvYmxpZ2F0aW9ucyB1bmRlcgotICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKLSAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCi0gICAgPC9wPgotICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKLSAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQotICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCi0gICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50Ci0gICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKLSAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKLSAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKLSAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgotICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCi0gICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgotICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldwotICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKLSAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KLSAgICA8L3A+Ci0gICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50Ci0gICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKLSAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCi0gICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCi0gICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKLSAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCi0gICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEgJm5kYXNoOyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgotICAgIDxwPiZsZHF1bztUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCi0gICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCi0gICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKLSAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS4mcmRxdW87Ci0gICAgPC9wPgotICAgIDxibG9ja3F1b3RlPgotICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQotICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCi0gICAgICA8L3A+Ci0gICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAotICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQotICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgotICAgICAgICBzdWNoIGEgbm90aWNlLgotICAgICAgPC9wPgotICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9mZWF0dXJlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM1ZjA0My4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb3JlLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGZlYXR1cmUKLSAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlIgotICAgICAgbGFiZWw9IkFQUDRNQyBNb2RlbCBUcmFuc2Zvcm1hdGlvbiBDb3JlIEZlYXR1cmUiCi0gICAgICB2ZXJzaW9uPSIxLjAuMC5xdWFsaWZpZXIiCi0gICAgICBwcm92aWRlci1uYW1lPSJFY2xpcHNlIEFQUDRNQyIKLSAgICAgIGxpY2Vuc2UtZmVhdHVyZT0ib3JnLmVjbGlwc2UubGljZW5zZSIKLSAgICAgIGxpY2Vuc2UtZmVhdHVyZS12ZXJzaW9uPSIwLjAuMCI+Ci0KLSAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHBzOi8vcHJvamVjdHMuZWNsaXBzZS5vcmcvcHJvamVjdHMvdGVjaG5vbG9neS5hcHA0bWMiPgotICAgICAgQVBQNE1DIE1vZGVsIFRyYW5zZm9ybWF0aW9uIENvcmUKLSAgIDwvZGVzY3JpcHRpb24+Ci0KLSAgIDxjb3B5cmlnaHQgdXJsPSJodHRwczovL3Byb2plY3RzLmVjbGlwc2Uub3JnL3Byb2plY3RzL3RlY2hub2xvZ3kuYXBwNG1jIj4KLSAgICAgIChjKSBDb3B5cmlnaHQgRWNsaXBzZSBBUFA0TUMgY29udHJpYnV0b3JzIGFuZCBvdGhlcnMuIDIwMTgtMjAyMC4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gICA8L2NvcHlyaWdodD4KLQotICAgPGxpY2Vuc2UgdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2xpY2Vuc2UiPgotICAgICAgW0VudGVyIExpY2Vuc2UgRGVzY3JpcHRpb24gaGVyZS5dCi0gICA8L2xpY2Vuc2U+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucyIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbiIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotPC9mZWF0dXJlPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNjEzY2QuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZU5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9hYm91dC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzNjlhYTguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSMgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSMgCi0jICAgQ29udHJpYnV0b3JzOgotIyAgCSBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotYmluLmluY2x1ZGVzID0gZmVhdHVyZS54bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwKLXNyYy5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Ci0gICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+Ci0gICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgIGJvZHkgewotICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKLSAgICAgIH0KLSAgICAgIGgxewotICAgICAgICBmb250LXNpemU6MS41ZW07Ci0gICAgICB9Ci0gICAgICBoMnsKLSAgICAgICAgZm9udC1zaXplOjFlbTsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKLSAgICAgICAgbWFyZ2luLXRvcDoxZW07Ci0gICAgICB9Ci0gICAgICBwIHsKLSAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOwotICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKLSAgICAgIH0KLSAgICAgIHVsLCBvbHsKLSAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7Ci0gICAgICB9Ci0gICAgPC9zdHlsZT4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KLSAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQotICAgICAgUFVCTElDIExJQ0VOU0UgKCZsZHF1bztBR1JFRU1FTlQmcmRxdW87KS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgotICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJiMwMzk7UyBBQ0NFUFRBTkNFIE9GIFRISVMgQUdSRUVNRU5ULgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImRlZmluaXRpb25zIj4xLiBERUZJTklUSU9OUzwvaDI+Ci0gICAgPHA+JmxkcXVvO0NvbnRyaWJ1dGlvbiZyZHF1bzsgbWVhbnM6PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAotICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPgotICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KLSAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgotICAgICAgICA8L3VsPgotICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQotICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KLSAgICAgICAgJmxkcXVvO29yaWdpbmF0ZXMmcmRxdW87IGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAotICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJiMwMzk7cyBiZWhhbGYuCi0gICAgICAgIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgY2hhbmdlcyBvciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gdGhhdAotICAgICAgICBhcmUgbm90IE1vZGlmaWVkIFdvcmtzLgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxwPiZsZHF1bztDb250cmlidXRvciZyZHF1bzsgbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+Ci0gICAgPHA+JmxkcXVvO0xpY2Vuc2VkIFBhdGVudHMmcmRxdW87IG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKLSAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKLSAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1Byb2dyYW0mcmRxdW87IG1lYW5zIHRoZSBDb250cmlidXRpb25zIERpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzCi0gICAgICBBZ3JlZW1lbnQuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztSZWNpcGllbnQmcmRxdW87IG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztEZXJpdmF0aXZlIFdvcmtzJnJkcXVvOyBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCi0gICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCi0gICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCi0gICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO01vZGlmaWVkIFdvcmtzJnJkcXVvOyBzaGFsbCBtZWFuIGFueSB3b3JrIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0gdGhhdAotICAgICAgcmVzdWx0cyBmcm9tIGFuIGFkZGl0aW9uIHRvLCBkZWxldGlvbiBmcm9tLCBvciBtb2RpZmljYXRpb24gb2YgdGhlCi0gICAgICBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbSwgaW5jbHVkaW5nLCBmb3IgcHVycG9zZXMgb2YgY2xhcml0eSBhbnkgbmV3IGZpbGUKLSAgICAgIGluIFNvdXJjZSBDb2RlIGZvcm0gdGhhdCBjb250YWlucyBhbnkgY29udGVudHMgb2YgdGhlIFByb2dyYW0uIE1vZGlmaWVkCi0gICAgICBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IGNvbnRhaW4gb25seSBkZWNsYXJhdGlvbnMsIGludGVyZmFjZXMsCi0gICAgICB0eXBlcywgY2xhc3Nlcywgc3RydWN0dXJlcywgb3IgZmlsZXMgb2YgdGhlIFByb2dyYW0gc29sZWx5IGluIGVhY2ggY2FzZQotICAgICAgaW4gb3JkZXIgdG8gbGluayB0bywgYmluZCBieSBuYW1lLCBvciBzdWJjbGFzcyB0aGUgUHJvZ3JhbSBvciBNb2RpZmllZAotICAgICAgV29ya3MgdGhlcmVvZi4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO0Rpc3RyaWJ1dGUmcmRxdW87IG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCi0gICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87U291cmNlIENvZGUmcmRxdW87IG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZwotICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKLSAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1NlY29uZGFyeSBMaWNlbnNlJnJkcXVvOyBtZWFucyBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotICAgICAgVmVyc2lvbiAyLjAsIG9yIGFueSBsYXRlciB2ZXJzaW9ucyBvZiB0aGF0IGxpY2Vuc2UsIGluY2x1ZGluZyBhbnkKLSAgICAgIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcyBpZGVudGlmaWVkIGJ5IHRoZSBpbml0aWFsCi0gICAgICBDb250cmlidXRvci4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJncmFudC1vZi1yaWdodHMiPjIuIEdSQU5UIE9GIFJJR0hUUzwvaDI+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQotICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0Ci0gICAgICAgIGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCi0gICAgICAgIHB1YmxpY2x5IHBlcmZvcm0sIERpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCi0gICAgICAgIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQotICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50Ci0gICAgICAgIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCi0gICAgICAgIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKLSAgICAgICAgaWYgYW55LCBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsCi0gICAgICAgIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwKLSAgICAgICAgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2gKLSAgICAgICAgYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkCi0gICAgICAgIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueQotICAgICAgICBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIKLSAgICAgICAgc2UgaXMgbGljZW5zZWQgaGVyZXVuZGVyLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUKLSAgICAgICAgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKLSAgICAgICAgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCi0gICAgICAgIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuCi0gICAgICAgIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMKLSAgICAgICAgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKLSAgICAgICAgcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzCi0gICAgICAgIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZQotICAgICAgICByZXNwb25zaWJpbGl0eSB0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLAotICAgICAgICBpZiBhbnkuIEZvciBleGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvCi0gICAgICAgIGFsbG93IFJlY2lwaWVudCB0byBEaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQmIzAzOTtzCi0gICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCi0gICAgICA8L2xpPgotICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKLSAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKLSAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgotICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAotICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQmIzAzOTtzIHJlY2VpcHQgb2YgdGhlCi0gICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgotICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KLSAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KLSAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55Ci0gICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCi0gICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KLSAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQotICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPgotICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCi0gICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKLSAgICAgICAgPHVsPgotICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCi0gICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcwotICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcwotICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOwotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKLSAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKLSAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOwotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cyYjMDM5OyByaWdodHMgaW4gdGhlCi0gICAgICAgICAgICBTb3VyY2UgQ29kZSB1bmRlciBzZWN0aW9uIDMuMjsgYW5kCi0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aXYpIHJlcXVpcmVzIGFueSBzdWJzZXF1ZW50IGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieSBhbnkgcGFydHkKLSAgICAgICAgICAgIHRvIGJlIHVuZGVyIGEgbGljZW5zZSB0aGF0IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgc2VjdGlvbiAzLgotICAgICAgICAgIDwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+My4yIFdoZW4gdGhlIFByb2dyYW0gaXMgRGlzdHJpYnV0ZWQgYXMgU291cmNlIENvZGU6PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBvciBpZiB0aGUgUHJvZ3JhbSAoaSkKLSAgICAgICAgaXMgY29tYmluZWQgd2l0aCBvdGhlciBtYXRlcmlhbCBpbiBhIHNlcGFyYXRlIGZpbGUgb3IgZmlsZXMgbWFkZSBhdmFpbGFibGUKLSAgICAgICAgdW5kZXIgYSBTZWNvbmRhcnkgTGljZW5zZSwgYW5kIChpaSkgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IgYXR0YWNoZWQgdG8KLSAgICAgICAgdGhlIFNvdXJjZSBDb2RlIHRoZSBub3RpY2UgZGVzY3JpYmVkIGluIEV4aGliaXQgQSBvZiB0aGlzIEFncmVlbWVudCwKLSAgICAgICAgdGhlbiB0aGUgUHJvZ3JhbSBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHN1Y2gKLSAgICAgICAgU2Vjb25kYXJ5IExpY2Vuc2VzLCBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uPC9saT4KLSAgICA8L3VsPgotICAgIDxwPjMuMyBDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssCi0gICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzLCBkaXNjbGFpbWVycyBvZiB3YXJyYW50eSwgb3IgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5Ci0gICAgICAoJmxzcXVvO25vdGljZXMmcnNxdW87KSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKLSAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKLSAgICAgIG5vdGljZXMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KLSAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcwotICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCi0gICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKLSAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKLSAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgotICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQotICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgmbGRxdW87Q29tbWVyY2lhbCBDb250cmlidXRvciZyZHF1bzspCi0gICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCi0gICAgICAoJmxkcXVvO0luZGVtbmlmaWVkIENvbnRyaWJ1dG9yJnJkcXVvOykgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cwotICAgICAgKGNvbGxlY3RpdmVseSAmbGRxdW87TG9zc2VzJnJkcXVvOykgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKLSAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50Ci0gICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCi0gICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCi0gICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZwotICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCi0gICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCi0gICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCi0gICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCi0gICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAotICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KLSAgICA8L3A+Ci0gICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQotICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLSAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi0gICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKLSAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3ImIzAzOTtzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgotICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKLSAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKLSAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKLSAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+Ci0gICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAotICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOICZsZHF1bztBUyBJUyZyZHF1bzsgQkFTSVMsIFdJVEhPVVQKLSAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCi0gICAgICBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCi0gICAgICBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzCi0gICAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCi0gICAgICBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKLSAgICAgIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKLSAgICAgIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlCi0gICAgICB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yCi0gICAgICBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJkaXNjbGFpbWVyIj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvaDI+Ci0gICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAotICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZCi0gICAgICBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gICAgICBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwKLSAgICAgIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gICAgICBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gICAgICBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMKLSAgICAgIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJnZW5lcmFsIj43LiBHRU5FUkFMPC9oMj4KLSAgICA8cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgotICAgICAgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mIHRoZQotICAgICAgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24gYnkgdGhlCi0gICAgICBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0gZXh0ZW50Ci0gICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuCi0gICAgPC9wPgotICAgIDxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKLSAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmCi0gICAgICAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKQotICAgICAgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyBncmFudGVkCi0gICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLSAgICA8L3A+Ci0gICAgPHA+QWxsIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0bwotICAgICAgY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZAotICAgICAgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nCi0gICAgICBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAotICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCi0gICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCYjMDM5O3Mgb2JsaWdhdGlvbnMgdW5kZXIKLSAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCi0gICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgotICAgIDwvcD4KLSAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCi0gICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKLSAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcwotICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAotICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0Ci0gICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50Ci0gICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCi0gICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKLSAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KLSAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKLSAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCi0gICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCi0gICAgPC9wPgotICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAotICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55Ci0gICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAotICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAotICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCi0gICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgotICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBICZuZGFzaDsgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KLSAgICA8cD4mbGRxdW87VGhpcyBTb3VyY2UgQ29kZSBtYXkgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIAotICAgIAlTZWNvbmRhcnkgTGljZW5zZXMgd2hlbiB0aGUgY29uZGl0aW9ucyBmb3Igc3VjaCBhdmFpbGFiaWxpdHkgc2V0IGZvcnRoIAotICAgIAlpbiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgdi4gMi4wIGFyZSBzYXRpc2ZpZWQ6IHtuYW1lIGxpY2Vuc2UocyksCi0gICAgCXZlcnNpb24ocyksIGFuZCBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgaGVyZX0uJnJkcXVvOwotICAgIDwvcD4KLSAgICA8YmxvY2txdW90ZT4KLSAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKLSAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgotICAgICAgPC9wPgotICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKLSAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKLSAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKLSAgICAgICAgc3VjaCBhIG5vdGljZS4KLSAgICAgIDwvcD4KLSAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KLSAgICA8L2Jsb2NrcXVvdGU+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9mZWF0dXJlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTlhYTA2YS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxmZWF0dXJlCi0gICAgICBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUiCi0gICAgICBsYWJlbD0iQVBQNE1DIE1vZGVsIFRyYW5zZm9ybWF0aW9uIEV4YW1wbGVzIEZlYXR1cmUiCi0gICAgICB2ZXJzaW9uPSIxLjAuMC5xdWFsaWZpZXIiCi0gICAgICBwcm92aWRlci1uYW1lPSJFY2xpcHNlIEFQUDRNQyIKLSAgICAgIGxpY2Vuc2UtZmVhdHVyZT0ib3JnLmVjbGlwc2UubGljZW5zZSIKLSAgICAgIGxpY2Vuc2UtZmVhdHVyZS12ZXJzaW9uPSIwLjAuMCI+Ci0KLSAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHBzOi8vcHJvamVjdHMuZWNsaXBzZS5vcmcvcHJvamVjdHMvdGVjaG5vbG9neS5hcHA0bWMiPgotICAgICAgQVBQNE1DIE1vZGVsIFRyYW5zZm9ybWF0aW9uIEV4YW1wbGVzCi0gICA8L2Rlc2NyaXB0aW9uPgotCi0gICA8Y29weXJpZ2h0IHVybD0iaHR0cHM6Ly9wcm9qZWN0cy5lY2xpcHNlLm9yZy9wcm9qZWN0cy90ZWNobm9sb2d5LmFwcDRtYyI+Ci0gICAgICAoYykgQ29weXJpZ2h0IEVjbGlwc2UgQVBQNE1DIGNvbnRyaWJ1dG9ycyBhbmQgb3RoZXJzLiAyMDE4LTIwMjAuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotICAgPC9jb3B5cmlnaHQ+Ci0KLSAgIDxsaWNlbnNlIHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9saWNlbnNlIj4KLSAgICAgIFtFbnRlciBMaWNlbnNlIERlc2NyaXB0aW9uIGhlcmUuXQotICAgPC9saWNlbnNlPgotCi0gICA8cmVxdWlyZXM+Ci0gICAgICA8aW1wb3J0IGZlYXR1cmU9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb3JlLmZlYXR1cmUiIHZlcnNpb249IjEuMC4wLnF1YWxpZmllciIvPgotICAgPC9yZXF1aXJlcz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLTwvZmVhdHVyZT4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uZmVhdHVyZS8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uZmVhdHVyZS8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDc1NWZjYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLmZlYXR1cmUvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi5mZWF0dXJlPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZU5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi5mZWF0dXJlL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLmZlYXR1cmUvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLmZlYXR1cmUvYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NGY5M2E5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYmluLmluY2x1ZGVzID0gZmVhdHVyZS54bWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uZmVhdHVyZS9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLmZlYXR1cmUvZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uZmVhdHVyZS9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KLSAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICAgICAgYm9keSB7Ci0gICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOwotICAgICAgfQotICAgICAgaDF7Ci0gICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKLSAgICAgIH0KLSAgICAgIGgyewotICAgICAgICBmb250LXNpemU6MWVtOwotICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOwotICAgICAgICBtYXJnaW4tdG9wOjFlbTsKLSAgICAgIH0KLSAgICAgIHAgewotICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwotICAgICAgfQotICAgICAgdWwsIG9sewotICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKLSAgICAgIH0KLSAgICA8L3N0eWxlPgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgotICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCi0gICAgICBQVUJMSUMgTElDRU5TRSAoJmxkcXVvO0FHUkVFTUVOVCZyZHF1bzspLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCi0gICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQmIzAzOTtTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0aW9uJnJkcXVvOyBtZWFuczo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50Ci0gICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKLSAgICAgICAgPHVsPgotICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgotICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCi0gICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgotICAgICAgICAmbGRxdW87b3JpZ2luYXRlcyZyZHF1bzsgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCi0gICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3ImIzAzOTtzIGJlaGFsZi4KLSAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0Ci0gICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+JmxkcXVvO0NvbnRyaWJ1dG9yJnJkcXVvOyBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KLSAgICA8cD4mbGRxdW87TGljZW5zZWQgUGF0ZW50cyZyZHF1bzsgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAotICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQotICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UHJvZ3JhbSZyZHF1bzsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKLSAgICAgIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1JlY2lwaWVudCZyZHF1bzsgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAotICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO0Rlcml2YXRpdmUgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKLSAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKLSAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87TW9kaWZpZWQgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0Ci0gICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKLSAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQotICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKLSAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKLSAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCi0gICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCi0gICAgICBXb3JrcyB0aGVyZW9mLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGlzdHJpYnV0ZSZyZHF1bzsgbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKLSAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTb3VyY2UgQ29kZSZyZHF1bzsgbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCi0gICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAotICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87U2Vjb25kYXJ5IExpY2Vuc2UmcmRxdW87IG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCi0gICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQotICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKLSAgICAgIENvbnRyaWJ1dG9yLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKLSAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKLSAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKLSAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKLSAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAotICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKLSAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAotICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAotICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLSAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55Ci0gICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgotICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQotICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQotICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKLSAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KLSAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcwotICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKLSAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCi0gICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCi0gICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KLSAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCYjMDM5O3MKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAotICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCi0gICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCi0gICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmVjZWlwdCBvZiB0aGUKLSAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCi0gICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgotICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgotICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKLSAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KLSAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bwotICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5Ci0gICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKLSAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKLSAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAotICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJiMwMzk7IHJpZ2h0cyBpbiB0aGUKLSAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQotICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCi0gICAgICAgICAgPC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQotICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQotICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bwotICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAotICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKLSAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKLSAgICAgICgmbHNxdW87bm90aWNlcyZyc3F1bzspIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAotICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQotICAgICAgbm90aWNlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgotICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCi0gICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKLSAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQotICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAotICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCi0gICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCi0gICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZsZHF1bztDb21tZXJjaWFsIENvbnRyaWJ1dG9yJnJkcXVvOykKLSAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKLSAgICAgICgmbGRxdW87SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcmRxdW87KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCi0gICAgICAoY29sbGVjdGl2ZWx5ICZsZHF1bztMb3NzZXMmcmRxdW87KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucwotICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKLSAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KLSAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KLSAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCi0gICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KLSAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKLSAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKLSAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKLSAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCi0gICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgotICAgIDwvcD4KLSAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCi0gICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLSAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcwotICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciYjMDM5O3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCi0gICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcwotICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcwotICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJmxkcXVvO0FTIElTJnJkcXVvOyBCQVNJUywgV0lUSE9VVAotICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLSAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLSAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKLSAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKLSAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cwotICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQotICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKLSAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLSAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKLSAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAotICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUwotICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgotICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCi0gICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCi0gICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKLSAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKLSAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KLSAgICA8L3A+Ci0gICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKLSAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCi0gICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQmIzAzOTtzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIGdyYW50ZWQKLSAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotICAgIDwvcD4KLSAgICA8cD5BbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCi0gICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCi0gICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKLSAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KLSAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50JiMwMzk7cyBvYmxpZ2F0aW9ucyB1bmRlcgotICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKLSAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCi0gICAgPC9wPgotICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKLSAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQotICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCi0gICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50Ci0gICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKLSAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKLSAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKLSAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgotICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCi0gICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgotICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldwotICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKLSAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KLSAgICA8L3A+Ci0gICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50Ci0gICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKLSAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCi0gICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCi0gICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKLSAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCi0gICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEgJm5kYXNoOyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgotICAgIDxwPiZsZHF1bztUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCi0gICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCi0gICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKLSAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS4mcmRxdW87Ci0gICAgPC9wPgotICAgIDxibG9ja3F1b3RlPgotICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQotICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCi0gICAgICA8L3A+Ci0gICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAotICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQotICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgotICAgICAgICBzdWNoIGEgbm90aWNlLgotICAgICAgPC9wPgotICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uZmVhdHVyZS9mZWF0dXJlLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uZmVhdHVyZS9mZWF0dXJlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmIxY2UxMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGZlYXR1cmUKLSAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi5mZWF0dXJlIgotICAgICAgbGFiZWw9IkxvZzRqIENvbmZpZ3VyYXRpb24gRmVhdHVyZSIKLSAgICAgIHZlcnNpb249IjEuMC4wLnF1YWxpZmllciIKLSAgICAgIHByb3ZpZGVyLW5hbWU9IkVjbGlwc2UgQVBQNE1DIgotICAgICAgbGljZW5zZS1mZWF0dXJlPSJvcmcuZWNsaXBzZS5saWNlbnNlIgotICAgICAgbGljZW5zZS1mZWF0dXJlLXZlcnNpb249IjAuMC4wIj4KLQotICAgPGRlc2NyaXB0aW9uIHVybD0iaHR0cHM6Ly9wcm9qZWN0cy5lY2xpcHNlLm9yZy9wcm9qZWN0cy90ZWNobm9sb2d5LmFwcDRtYyI+Ci0gICAgICBMb2c0aiBjb25maWd1cmF0aW9uIGZlYXR1cmUgZm9yIG1vZGVsIHRyYW5zZm9ybWF0aW9uLgotSW5jbHVkZXMgYXBwZW5kZXIgZm9yIHRoZSBFY2xpcHNlIFVJIGFuZCBhbiBhcHBlbmRlciBwZXIgdHJhbnNmb3JtYXRpb24gc2Vzc2lvbi4KLSAgIDwvZGVzY3JpcHRpb24+Ci0KLSAgIDxjb3B5cmlnaHQgdXJsPSJodHRwczovL3Byb2plY3RzLmVjbGlwc2Uub3JnL3Byb2plY3RzL3RlY2hub2xvZ3kuYXBwNG1jIj4KLSAgICAgIChjKSBDb3B5cmlnaHQgRWNsaXBzZSBBUFA0TUMgY29udHJpYnV0b3JzIGFuZCBvdGhlcnMuIDIwMTgtMjAyMC4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gICA8L2NvcHlyaWdodD4KLQotICAgPGxpY2Vuc2UgdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2xpY2Vuc2UiPgotICAgICAgW0VudGVyIExpY2Vuc2UgRGVzY3JpcHRpb24gaGVyZS5dCi0gICA8L2xpY2Vuc2U+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbiIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIGZyYWdtZW50PSJ0cnVlIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi08L2ZlYXR1cmU+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5jbGFzc3BhdGggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjYTdiZGIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4OTM4N2YuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbjwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnh0ZXh0LnVpLnNoYXJlZC54dGV4dEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuZHMuY29yZS5idWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnh0ZXh0LnVpLnNoYXJlZC54dGV4dE5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlmMjZjMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLWVuY29kaW5nLzxwcm9qZWN0Pj1VVEYtOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5kcy5hbm5vdGF0aW9ucy5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5kcy5hbm5vdGF0aW9ucy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNhMzU2Yi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5wZGUuZHMuYW5ub3RhdGlvbnMucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLWNsYXNzcGF0aD10cnVlCi1kc1ZlcnNpb249VjFfMwotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLWVuYWJsZWQ9dHJ1ZQotZ2VuZXJhdGVCdW5kbGVBY3RpdmF0aW9uUG9saWN5TGF6eT10cnVlCi1wYXRoPU9TR0ktSU5GCi12YWxpZGF0aW9uRXJyb3JMZXZlbD1lcnJvcgotdmFsaWRhdGlvbkVycm9yTGV2ZWwubWlzc2luZ0ltcGxpY2l0VW5iaW5kTWV0aG9kPWVycm9yCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzEwYzJjNC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wCi1CdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogQVBQNE1DIE1vZGVsIFRyYW5zZm9ybWF0aW9uIEJhc2UgQXBwbGljYXRpb24KLUJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgQVBQNE1DCi1SZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lO3Zpc2liaWxpdHk6PXJlZXhwb3J0LAotIG9yZy5lY2xpcHNlLmVtZi5lY29yZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKLSBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pO3Zpc2liaWxpdHk6PXJlZXhwb3J0LAotIG9yZy5lY2xpcHNlLnh0ZXh0LnhiYXNlLmxpYiwKLSBvcmcuZWNsaXBzZS54dGVuZC5saWIsCi0gb3JnLmVjbGlwc2UueHRlbmQubGliLm1hY3JvCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOAotRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlO3ZlcnNpb249IjEuMC4wIgotQXV0b21hdGljLU1vZHVsZS1OYW1lOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24KLVNlcnZpY2UtQ29tcG9uZW50OiBPU0dJLUlORi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZS5UcmFuc2Zvcm1lckZhY3RvcnlDb21wb25lbnQueG1sLAotIE9TR0ktSU5GL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLkVxdWlub3hUcmFuc2Zvcm1hdGlvblN0YXJ0ZXIueG1sLAotIE9TR0ktSU5GL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLlN0YXJ0VHJhbnNmb3JtYXRpb25Db21tYW5kLnhtbAotQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkKLUltcG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucywKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcywKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLAotIG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50O3ZlcnNpb249IjEuNC4wIiwKLSBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9uczt2ZXJzaW9uPSJbMS4zLjAsMi4wLjApIjtyZXNvbHV0aW9uOj1vcHRpb25hbCwKLSBvcmcuc2xmNGo7dmVyc2lvbj0iMS43LjIiCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL09TR0ktSU5GL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLkVxdWlub3hUcmFuc2Zvcm1hdGlvblN0YXJ0ZXIueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9PU0dJLUlORi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZS5FcXVpbm94VHJhbnNmb3JtYXRpb25TdGFydGVyLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNkMzIyYy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL09TR0ktSU5GL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLkVxdWlub3hUcmFuc2Zvcm1hdGlvblN0YXJ0ZXIueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4zLjAiIGFjdGl2YXRlPSJhY3RpdmF0ZSIgaW1tZWRpYXRlPSJ0cnVlIiBuYW1lPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZS5FcXVpbm94VHJhbnNmb3JtYXRpb25TdGFydGVyIj4KLSAgIDxyZWZlcmVuY2UgY2FyZGluYWxpdHk9IjEuLjEiIGZpZWxkPSJlbnZpcm9ubWVudEluZm8iIGludGVyZmFjZT0ib3JnLmVjbGlwc2Uub3NnaS5zZXJ2aWNlLmVudmlyb25tZW50LkVudmlyb25tZW50SW5mbyIgbmFtZT0iZW52aXJvbm1lbnRJbmZvIi8+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0ic3RhcnRUcmFuc2Zvcm1hdGlvbmNvbW1hbmQiIGludGVyZmFjZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UuU3RhcnRUcmFuc2Zvcm1hdGlvbkNvbW1hbmQiIG5hbWU9InN0YXJ0VHJhbnNmb3JtYXRpb25jb21tYW5kIi8+Ci0gICA8aW1wbGVtZW50YXRpb24gY2xhc3M9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLkVxdWlub3hUcmFuc2Zvcm1hdGlvblN0YXJ0ZXIiLz4KLTwvc2NyOmNvbXBvbmVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL09TR0ktSU5GL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLlN0YXJ0VHJhbnNmb3JtYXRpb25Db21tYW5kLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vT1NHSS1JTkYvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UuU3RhcnRUcmFuc2Zvcm1hdGlvbkNvbW1hbmQueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmNmYTBlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vT1NHSS1JTkYvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UuU3RhcnRUcmFuc2Zvcm1hdGlvbkNvbW1hbmQueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHNjcjpjb21wb25lbnQgeG1sbnM6c2NyPSJodHRwOi8vd3d3Lm9zZ2kub3JnL3htbG5zL3Njci92MS4zLjAiIG5hbWU9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLlN0YXJ0VHJhbnNmb3JtYXRpb25Db21tYW5kIj4KLSAgIDxzZXJ2aWNlPgotICAgICAgPHByb3ZpZGUgaW50ZXJmYWNlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZS5TdGFydFRyYW5zZm9ybWF0aW9uQ29tbWFuZCIvPgotICAgPC9zZXJ2aWNlPgotICAgPHJlZmVyZW5jZSBjYXJkaW5hbGl0eT0iMS4uMSIgZmllbGQ9ImN1c3RvbU9iamVjdFN0b3JlIiBpbnRlcmZhY2U9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLklDdXN0b21PYmplY3RzU3RvcmUiIG5hbWU9ImN1c3RvbU9iamVjdFN0b3JlIi8+Ci0gICA8cmVmZXJlbmNlIGNhcmRpbmFsaXR5PSIxLi4xIiBmaWVsZD0iZmFjdG9yeSIgaW50ZXJmYWNlPSJvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5Db21wb25lbnRGYWN0b3J5IiBuYW1lPSJmYWN0b3J5IiB0YXJnZXQ9Iihjb21wb25lbnQuZmFjdG9yeT1UUkFOU0ZPUk1FUl9GQUNUT1JZKSIvPgotICAgPGltcGxlbWVudGF0aW9uIGNsYXNzPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZS5TdGFydFRyYW5zZm9ybWF0aW9uQ29tbWFuZCIvPgotPC9zY3I6Y29tcG9uZW50PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vT1NHSS1JTkYvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UuVHJhbnNmb3JtZXJGYWN0b3J5Q29tcG9uZW50LnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vT1NHSS1JTkYvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UuVHJhbnNmb3JtZXJGYWN0b3J5Q29tcG9uZW50LnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAzMTZjYS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL09TR0ktSU5GL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLlRyYW5zZm9ybWVyRmFjdG9yeUNvbXBvbmVudC54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08c2NyOmNvbXBvbmVudCB4bWxuczpzY3I9Imh0dHA6Ly93d3cub3NnaS5vcmcveG1sbnMvc2NyL3YxLjMuMCIgZmFjdG9yeT0iVFJBTlNGT1JNRVJfRkFDVE9SWSIgbmFtZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UuVHJhbnNmb3JtZXJGYWN0b3J5Q29tcG9uZW50Ij4KLSAgIDxyZWZlcmVuY2UgY2FyZGluYWxpdHk9IjAuLm4iIGZpZWxkPSJhbGxNb2RlbFRvTW9kZWxDb25maWciIGludGVyZmFjZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuZXhlY3V0aW9udHlwZS5JTW9kZWxUb01vZGVsQ29uZmlnIiBuYW1lPSJhbGxNb2RlbFRvTW9kZWxDb25maWciLz4KLSAgIDxyZWZlcmVuY2UgY2FyZGluYWxpdHk9IjAuLm4iIGZpZWxkPSJhbGxNb2RlbFRvVGV4dENvbmZpZyIgaW50ZXJmYWNlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLklNb2RlbFRvVGV4dENvbmZpZyIgbmFtZT0iYWxsTW9kZWxUb1RleHRDb25maWciLz4KLSAgIDxyZWZlcmVuY2UgY2FyZGluYWxpdHk9IjAuLm4iIGZpZWxkPSJtMm1UcmFuc2Zvcm1lcnMiIGludGVyZmFjZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuTW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXIiIG5hbWU9Im0ybVRyYW5zZm9ybWVycyIvPgotICAgPHJlZmVyZW5jZSBjYXJkaW5hbGl0eT0iMC4ubiIgZmllbGQ9Im0ydFRyYW5zZm9ybWVycyIgaW50ZXJmYWNlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5Nb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyIiBuYW1lPSJtMnRUcmFuc2Zvcm1lcnMiLz4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UuVHJhbnNmb3JtZXJGYWN0b3J5Q29tcG9uZW50Ii8+Ci08L3Njcjpjb21wb25lbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9hYm91dC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmODlkNTYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSMgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSMgCi0jICAgQ29udHJpYnV0b3JzOgotIyAgCSBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotc291cmNlLi4gPSBzcmMvCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sLFwKLSAgICAgICAgICAgICAgIE9TR0ktSU5GLwotc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vZXBsLTIuMC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KLSAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICAgICAgYm9keSB7Ci0gICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOwotICAgICAgfQotICAgICAgaDF7Ci0gICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKLSAgICAgIH0KLSAgICAgIGgyewotICAgICAgICBmb250LXNpemU6MWVtOwotICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOwotICAgICAgICBtYXJnaW4tdG9wOjFlbTsKLSAgICAgIH0KLSAgICAgIHAgewotICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwotICAgICAgfQotICAgICAgdWwsIG9sewotICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKLSAgICAgIH0KLSAgICA8L3N0eWxlPgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgotICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCi0gICAgICBQVUJMSUMgTElDRU5TRSAoJmxkcXVvO0FHUkVFTUVOVCZyZHF1bzspLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCi0gICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQmIzAzOTtTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0aW9uJnJkcXVvOyBtZWFuczo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50Ci0gICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKLSAgICAgICAgPHVsPgotICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgotICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCi0gICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgotICAgICAgICAmbGRxdW87b3JpZ2luYXRlcyZyZHF1bzsgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCi0gICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3ImIzAzOTtzIGJlaGFsZi4KLSAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0Ci0gICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+JmxkcXVvO0NvbnRyaWJ1dG9yJnJkcXVvOyBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KLSAgICA8cD4mbGRxdW87TGljZW5zZWQgUGF0ZW50cyZyZHF1bzsgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAotICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQotICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UHJvZ3JhbSZyZHF1bzsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKLSAgICAgIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1JlY2lwaWVudCZyZHF1bzsgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAotICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO0Rlcml2YXRpdmUgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKLSAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKLSAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87TW9kaWZpZWQgV29ya3MmcmRxdW87IHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0Ci0gICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKLSAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQotICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKLSAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKLSAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCi0gICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCi0gICAgICBXb3JrcyB0aGVyZW9mLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGlzdHJpYnV0ZSZyZHF1bzsgbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKLSAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTb3VyY2UgQ29kZSZyZHF1bzsgbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCi0gICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAotICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87U2Vjb25kYXJ5IExpY2Vuc2UmcmRxdW87IG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCi0gICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQotICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKLSAgICAgIENvbnRyaWJ1dG9yLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKLSAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKLSAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci0gICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKLSAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKLSAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAotICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKLSAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAotICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAotICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLSAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55Ci0gICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgotICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQotICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQotICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKLSAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KLSAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcwotICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKLSAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCi0gICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCi0gICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KLSAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCYjMDM5O3MKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAotICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCi0gICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCi0gICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmVjZWlwdCBvZiB0aGUKLSAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCi0gICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgotICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgotICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKLSAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KLSAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bwotICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5Ci0gICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+Ci0gICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKLSAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKLSAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCi0gICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAotICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7Ci0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJiMwMzk7IHJpZ2h0cyBpbiB0aGUKLSAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQotICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCi0gICAgICAgICAgPC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQotICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQotICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bwotICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAotICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKLSAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKLSAgICAgICgmbHNxdW87bm90aWNlcyZyc3F1bzspIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAotICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQotICAgICAgbm90aWNlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgotICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCi0gICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKLSAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQotICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAotICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCi0gICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCi0gICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZsZHF1bztDb21tZXJjaWFsIENvbnRyaWJ1dG9yJnJkcXVvOykKLSAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKLSAgICAgICgmbGRxdW87SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcmRxdW87KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCi0gICAgICAoY29sbGVjdGl2ZWx5ICZsZHF1bztMb3NzZXMmcmRxdW87KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucwotICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKLSAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KLSAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KLSAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCi0gICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KLSAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKLSAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKLSAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKLSAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCi0gICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgotICAgIDwvcD4KLSAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCi0gICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLSAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcwotICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciYjMDM5O3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCi0gICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcwotICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcwotICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJmxkcXVvO0FTIElTJnJkcXVvOyBCQVNJUywgV0lUSE9VVAotICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLSAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLSAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKLSAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKLSAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cwotICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQotICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKLSAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLSAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KLSAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECi0gICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKLSAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAotICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUwotICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgotICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCi0gICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCi0gICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKLSAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKLSAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KLSAgICA8L3A+Ci0gICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKLSAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCi0gICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQmIzAzOTtzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIGdyYW50ZWQKLSAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotICAgIDwvcD4KLSAgICA8cD5BbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCi0gICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCi0gICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKLSAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KLSAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50JiMwMzk7cyBvYmxpZ2F0aW9ucyB1bmRlcgotICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKLSAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCi0gICAgPC9wPgotICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKLSAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQotICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCi0gICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50Ci0gICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKLSAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKLSAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKLSAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgotICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCi0gICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgotICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldwotICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKLSAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KLSAgICA8L3A+Ci0gICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50Ci0gICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKLSAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCi0gICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCi0gICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKLSAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCi0gICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEgJm5kYXNoOyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgotICAgIDxwPiZsZHF1bztUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCi0gICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCi0gICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKLSAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS4mcmRxdW87Ci0gICAgPC9wPgotICAgIDxibG9ja3F1b3RlPgotICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQotICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCi0gICAgICA8L3A+Ci0gICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAotICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQotICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgotICAgICAgICBzdWNoIGEgbm90aWNlLgotICAgICAgPC9wPgotICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL0VxdWlub3hUcmFuc2Zvcm1hdGlvblN0YXJ0ZXIuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL0VxdWlub3hUcmFuc2Zvcm1hdGlvblN0YXJ0ZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDNjNDNhNC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9FcXVpbm94VHJhbnNmb3JtYXRpb25TdGFydGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5LCAyMDIwIFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKgotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKgotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotcGFja2FnZSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZTsKLQotaW1wb3J0IGphdmEudXRpbC5BcnJheXM7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnNlcnZpY2UuZW52aXJvbm1lbnQuRW52aXJvbm1lbnRJbmZvOwotaW1wb3J0IG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50LmFubm90YXRpb25zLkFjdGl2YXRlOwotaW1wb3J0IG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50LmFubm90YXRpb25zLkNvbXBvbmVudDsKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5SZWZlcmVuY2U7Ci0KLS8qKgotICogSW1tZWRpYXRlIGNvbXBvbmVudCB0aGF0IGdldHMgYWN0aXZhdGVkIG9uY2UgdGhlIEVxdWlub3gKLSAqIHtAbGluayBFbnZpcm9ubWVudEluZm99IGlzIGF2YWlsYWJsZS4gVHJpZ2dlcnMgdGhlIFRyYW5zZm9ybWF0aW9uIHByb2Nlc3MgYmFzZWQgb24KLSAqIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLiBWaWEgLWNvbnNvbGUgcGFyYW1ldGVyIGl0IGlzIGFsc28gcG9zc2libGUgdG8KLSAqIHNpbXBseSBzdGFydCB0aGUgYXBwbGljYXRpb24gaW4gYW4gaW50ZXJhY3RpdmUgbW9kZSBieSBrZWVwaW5nIHRoZSBPU0dpCi0gKiBjb25zb2xlIG9wZW4uIE90aGVyd2lzZSB0aGUgYXBwbGljYXRpb24gd2lsbCBpbW1lZGlhdGVseSBjbG9zZWQgYWZ0ZXIKLSAqIGV4ZWN1dGlvbi4KLSAqIDxwPgotICogPGI+Tm90ZTo8L2I+PGJyPgotICogRXZlbiB3aGVuIHN0YXJ0aW5nIHRoZSBhcHAgd2l0aCB0aGUgRXF1aW5veCBPU0dpIGZyYW1ld29yayB2aWEgYm5kIGxhdW5jaGVyLAotICogdGhlIHtAbGluayBFbnZpcm9ubWVudEluZm99IHdpbGwgYmUgYXZhaWxhYmxlLiBCdXQgaXQgd2lsbCBub3QgY29udGFpbiB0aGUKLSAqIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiB0aGF0IHR5cGljYWxseSBnZXRzIHNldCB0aGUgdGhlIEVxdWlub3ggbGF1bmNoZXIuCi0gKiBUaGVyZWZvcmUgdGhlIFRyYW5zZm9ybWF0aW9uIHN0YXJ0IHdpbGwgbm90IGJlIHByb2Nlc3NlZCBpZiB0aGUKLSAqIHtAbGluayBFbnZpcm9ubWVudEluZm99IGlzIG5vdCBpbml0aWFsaXplZCBwcm9wZXJseS4KLSAqIDwvcD4KLSAqLwotQENvbXBvbmVudChpbW1lZGlhdGUgPSB0cnVlKQotcHVibGljIGNsYXNzIEVxdWlub3hUcmFuc2Zvcm1hdGlvblN0YXJ0ZXIgewotCi0JLyoqCi0JICogTGF1bmNoZXIgYXJndW1lbnRzIHByb3ZpZGVkIGJ5IHRoZSBFcXVpbm94IGxhdW5jaGVyLgotCSAqLwotCUBSZWZlcmVuY2UKLQlFbnZpcm9ubWVudEluZm8gZW52aXJvbm1lbnRJbmZvOwotIAotCUBSZWZlcmVuY2UKLQlwcm90ZWN0ZWQgU3RhcnRUcmFuc2Zvcm1hdGlvbkNvbW1hbmQgc3RhcnRUcmFuc2Zvcm1hdGlvbmNvbW1hbmQ7Ci0KLQlAQWN0aXZhdGUKLQl2b2lkIGFjdGl2YXRlKCkgewotCQkvLyBvbmx5IHByb2Nlc3MgbW9kZWwgVHJhbnNmb3JtYXRpb24gYWN0aXZhdGlvbiBpZiB0aGUgRW52aXJvbm1lbnRJbmZvIGlzIGluaXRpYWxpemVkCi0JCS8vIHByb3Blcmx5Ci0JCWlmICh0aGlzLmVudmlyb25tZW50SW5mby5nZXROb25GcmFtZXdvcmtBcmdzKCkgIT0gbnVsbCkgewotCQkJLy8gY2hlY2sgaWYgYSBwcm9kdWN0IG9yIGFuIGFwcGxpY2F0aW9uIHdhcyBzdGFydGVkCi0JCQkvLyBpZiB5ZXMgdGhpcyBzdGFydGVyIHNob3VsZCBkbyBub3RoaW5nCi0JCQlib29sZWFuIGlzUHJvZHVjdCA9Ci0JCQkJCUFycmF5cy5zdHJlYW0oZW52aXJvbm1lbnRJbmZvLmdldE5vbkZyYW1ld29ya0FyZ3MoKSkuYW55TWF0Y2goYXJnIC0+ICItcHJvZHVjdCIuZXF1YWxzKGFyZykpCi0JCQkJCXx8IHRoaXMuZW52aXJvbm1lbnRJbmZvLmdldFByb3BlcnR5KCJlY2xpcHNlLnByb2R1Y3QiKSAhPSBudWxsOwotCQkJCi0JCQlib29sZWFuIGlnbm9yZUFwcCA9IEJvb2xlYW4udmFsdWVPZihTeXN0ZW0uZ2V0UHJvcGVydHkoImVjbGlwc2UuaWdub3JlQXBwIikpOwotCQkJYm9vbGVhbiBpc0FwcGxpY2F0aW9uID0gIWlnbm9yZUFwcCAmJgotCQkJCQkoQXJyYXlzLnN0cmVhbShlbnZpcm9ubWVudEluZm8uZ2V0Tm9uRnJhbWV3b3JrQXJncygpKS5hbnlNYXRjaChhcmcgLT4gIi1hcHBsaWNhdGlvbiIuZXF1YWxzKGFyZykpCi0JCQkJCXx8IHRoaXMuZW52aXJvbm1lbnRJbmZvLmdldFByb3BlcnR5KCJlY2xpcHNlLmFwcGxpY2F0aW9uIikgIT0gbnVsbCk7Ci0KLQkJCWlmICghaXNQcm9kdWN0ICYmICFpc0FwcGxpY2F0aW9uKSB7Ci0JCQkJdGhpcy5zdGFydFRyYW5zZm9ybWF0aW9uY29tbWFuZC5zdGFydFRyYW5zZm9ybWF0aW9uKHRoaXMuZW52aXJvbm1lbnRJbmZvLmdldE5vbkZyYW1ld29ya0FyZ3MoKSk7Ci0JCQl9Ci0JCX0KLQl9Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9TdGFydFRyYW5zZm9ybWF0aW9uQ29tbWFuZC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2FwcGxpY2F0aW9uL2Jhc2UvU3RhcnRUcmFuc2Zvcm1hdGlvbkNvbW1hbmQuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNhN2E5Zi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9TdGFydFRyYW5zZm9ybWF0aW9uQ29tbWFuZC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjEyICswLDAgQEAKLS8qKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlOwotCi1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOwotaW1wb3J0IGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS51dGlsLkRpY3Rpb25hcnk7Ci1pbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuUHJvcGVydGllczsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLklDdXN0b21PYmplY3RzU3RvcmU7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuTW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXI7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLklNb2RlbFRvTW9kZWxDb25maWc7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuZXhlY3V0aW9udHlwZS5JTW9kZWxUb1RleHRDb25maWc7Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuQ29tcG9uZW50RmFjdG9yeTsKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5Db21wb25lbnRJbnN0YW5jZTsKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5Db21wb25lbnQ7Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuUmVmZXJlbmNlOwotaW1wb3J0IG9yZy5zbGY0ai5Mb2dnZXI7Ci1pbXBvcnQgb3JnLnNsZjRqLkxvZ2dlckZhY3Rvcnk7Ci0KLUBDb21wb25lbnQoc2VydmljZSA9IFN0YXJ0VHJhbnNmb3JtYXRpb25Db21tYW5kLmNsYXNzKQotcHVibGljIGNsYXNzIFN0YXJ0VHJhbnNmb3JtYXRpb25Db21tYW5kIHsKLQotCUBSZWZlcmVuY2UodGFyZ2V0ID0gIihjb21wb25lbnQuZmFjdG9yeT1UUkFOU0ZPUk1FUl9GQUNUT1JZKSIpCi0JQ29tcG9uZW50RmFjdG9yeTxUcmFuc2Zvcm1lckZhY3RvcnlDb21wb25lbnQ+IGZhY3Rvcnk7Ci0KLQlAUmVmZXJlbmNlCi0JSUN1c3RvbU9iamVjdHNTdG9yZSBjdXN0b21PYmplY3RTdG9yZTsKLQkKLQlwdWJsaWMgdm9pZCBzdGFydHRlc3QoKSB7Ci0JCVN5c3RlbS5vdXQucHJpbnRsbigiSGVsbG8gV29ybGQgISEiKTsKLQl9Ci0KLQlwdWJsaWMgdm9pZCBzdGFydFRyYW5zZm9ybWF0aW9uKFN0cmluZ1tdIGFyZ3MpIHsKLQotCQl0cnkgewotCi0JCQlTdHJpbmcgcHJvcGVydGllc0ZpbGVQYXRoID0gbnVsbDsKLQotCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7Ci0JCQkJU3RyaW5nIGFyZyA9IGFyZ3NbaV07Ci0JCQkJaWYgKGFyZy5lcXVhbHMoIi0tcHJvcGVydGllcyIpKSB7Ci0JCQkJCXByb3BlcnRpZXNGaWxlUGF0aCA9IGFyZ3NbKytpXTsKLQkJCQl9Ci0JCQl9Ci0KLQkJCWlmIChwcm9wZXJ0aWVzRmlsZVBhdGggPT0gbnVsbCkgewotCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiTW9kZWwgdHJhbnNmb3JtYXRpb24gY2FuIG5vdCBiZSBwZXJmb3JtZWQgYXMgUHJvcGVydGllcyBmaWxlIHBhdGggaXMgbm90IHN1cHBsaWVkIik7Ci0JCQl9Ci0JCQlQcm9wZXJ0aWVzIGlucHV0UGFyYW1ldGVycyA9IGdldElucHV0UGFyYW1ldGVycyhwcm9wZXJ0aWVzRmlsZVBhdGgpOwotCi0JCQlpZiAoaW5wdXRQYXJhbWV0ZXJzICE9IG51bGwpIHsKLQotCQkJCUxvZ2dlciBsb2dnZXIgPSBnZXRMb2dnZXIoaW5wdXRQYXJhbWV0ZXJzKTsKLQotCQkJCWxvZ2dlci5pbmZvKCJTdGFydGluZyBNb2RlbCB0cmFuc2Zvcm1hdGlvbiAuLi4iKTsKLQotCQkJCURpY3Rpb25hcnk8U3RyaW5nLCBPYmplY3Q+IGRpY3Rpb25hcnlGb3JGYWN0b3J5ID0gbmV3IEhhc2h0YWJsZTw+KCk7Ci0KLQkJCQlmb3IgKGZpbmFsIFN0cmluZyBuYW1lIDogaW5wdXRQYXJhbWV0ZXJzLnN0cmluZ1Byb3BlcnR5TmFtZXMoKSkgewotCQkJCQlkaWN0aW9uYXJ5Rm9yRmFjdG9yeS5wdXQobmFtZSwgaW5wdXRQYXJhbWV0ZXJzLmdldFByb3BlcnR5KG5hbWUpKTsKLQkJCQkJY3VzdG9tT2JqZWN0U3RvcmUuaW5kZXhEYXRhKG5hbWUsIGlucHV0UGFyYW1ldGVycy5nZXRQcm9wZXJ0eShuYW1lKSk7Ci0JCQkJfQotCQkJCQotCQkJCWN1c3RvbU9iamVjdFN0b3JlLmluamVjdE1lbWJlcnMoUHJvcGVydGllcy5jbGFzcywgaW5wdXRQYXJhbWV0ZXJzKTsgCi0JCQkJCi0JCQkJY3VzdG9tT2JqZWN0U3RvcmUuaW5qZWN0TWVtYmVycyhMb2dnZXIuY2xhc3MsIGxvZ2dlcik7Ci0KLQkJCQlDb21wb25lbnRJbnN0YW5jZTxUcmFuc2Zvcm1lckZhY3RvcnlDb21wb25lbnQ+IG5ld0luc3RhbmNlID0gZmFjdG9yeS5uZXdJbnN0YW5jZShkaWN0aW9uYXJ5Rm9yRmFjdG9yeSk7Ci0KLQkJCQlUcmFuc2Zvcm1lckZhY3RvcnlDb21wb25lbnQgZmFjdG9yeUluc3RhbmNlID0gbmV3SW5zdGFuY2UuZ2V0SW5zdGFuY2UoKTsKLQotCQkJCUxpc3Q8TW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXI+IG0ybVRyYW5zZm9ybWVycyA9IGZhY3RvcnlJbnN0YW5jZS5nZXRBbGxNMk1UcmFuc2Zvcm1lcnMoKTsKLQotCQkJCUxpc3Q8SU1vZGVsVG9Nb2RlbENvbmZpZz4gYWxsTW9kZWxUb01vZGVsQ29uZmlnID0gZmFjdG9yeUluc3RhbmNlLmdldEFsbE1vZGVsVG9Nb2RlbENvbmZpZygpOwotCi0JCQkJTGlzdDxNb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyPiBtMnRUcmFuc2Zvcm1lcnMgPSBmYWN0b3J5SW5zdGFuY2UuZ2V0QWxsTTJUVHJhbnNmb3JtZXJzKCk7Ci0KLQkJCQlMaXN0PElNb2RlbFRvVGV4dENvbmZpZz4gYWxsTW9kZWxUb1RleHRDb25maWcgPSBmYWN0b3J5SW5zdGFuY2UuZ2V0QWxsTW9kZWxUb1RleHRDb25maWcoKTsKLQotCQkJCWxvZ2dlci5kZWJ1ZygiTW9kZWwyTW9kZWwgdHJhbnNmb3JtZXJzIDogIiArIG0ybVRyYW5zZm9ybWVycyk7Ci0JCQkJbG9nZ2VyLmRlYnVnKCJNb2RlbDJUZXh0IHRyYW5zZm9ybWVycyA6ICIgKyBtMnRUcmFuc2Zvcm1lcnMpOwotCQkJCWxvZ2dlci5kZWJ1ZygiTW9kZWwyTW9kZWwgdHJhbnNmb3JtYXRpb24gY29uZmlndXJhdGlvbiA6ICIgKyBhbGxNb2RlbFRvTW9kZWxDb25maWcpOwotCQkJCWxvZ2dlci5kZWJ1ZygiTW9kZWwyVGV4dCB0cmFuc2Zvcm1hdGlvbiBjb25maWd1cmF0aW9uIDogIiArIGFsbE1vZGVsVG9UZXh0Q29uZmlnKTsKLQotLy8JCQkJICAtIE1vZGVsIHRvIE1vZGVsIHRyYW5zZm9ybWF0aW9uCi0JCQkJCi0JCQkJaWYobTJtVHJhbnNmb3JtZXJzLnNpemUoKT4wKQotCQkJCWxvZ2dlci5pbmZvKCIqKioqKioqKioqKioqKioqKiogTW9kZWwgdG8gTW9kZWwgVHJhbnNmb3JtYXRpb24gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOwotCQkJCWZvciAoTW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXIgbW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXIgOiBtMm1UcmFuc2Zvcm1lcnMpIHsKLQotCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIioqIEV4ZWN1dGluZyBNMk0gdHJhbnNmb3JtZXIgOiAiK21vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyLmdldENsYXNzKCkuZ2V0VHlwZU5hbWUoKSk7Ci0JCQkJCWZvciAoSU1vZGVsVG9Nb2RlbENvbmZpZyBpTW9kZWxUb01vZGVsQ29uZmlnIDogYWxsTW9kZWxUb01vZGVsQ29uZmlnKSB7Ci0JCQkJCQltb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lci5tMm1UcmFuc2Zvcm1hdGlvbihpTW9kZWxUb01vZGVsQ29uZmlnLmdldElucHV0UmVzb3VyY2VTZXQoKSwKLQkJCQkJCQkJaU1vZGVsVG9Nb2RlbENvbmZpZy5nZXRPdXB1dFJlc291cmNlU2V0KCkpOwotCQkJCQl9Ci0KLQkJCQl9Ci0KLQkJCQlpZihtMnRUcmFuc2Zvcm1lcnMuc2l6ZSgpPjApCi0JCQkJbG9nZ2VyLmluZm8oIioqKioqKioqKioqKioqKioqKiBNb2RlbCB0byBUZXh0IFRyYW5zZm9ybWF0aW9uICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiKTsKLS8vCQkJCSAgLSBNb2RlbCB0byBUZXh0IHRyYW5zZm9ybWF0aW9uCi0KLQkJCQlmb3IgKE1vZGVsMlRleHRSb290VHJhbnNmb3JtZXIgbW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lciA6IG0ydFRyYW5zZm9ybWVycykgewotCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIioqIEV4ZWN1dGluZyBNMlQgdHJhbnNmb3JtZXIgOiAiK21vZGVsMlRleHRSb290VHJhbnNmb3JtZXIuZ2V0Q2xhc3MoKS5nZXRUeXBlTmFtZSgpKTsKLQotCQkJCQlmb3IgKElNb2RlbFRvVGV4dENvbmZpZyBpTW9kZWxUb1RleHRDb25maWcgOiBhbGxNb2RlbFRvVGV4dENvbmZpZykgewotCQkJCQkJbW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lci5tMnRUcmFuc2Zvcm1hdGlvbihpTW9kZWxUb1RleHRDb25maWcuZ2V0SW5wdXRSZXNvdXJjZVNldCgpKTsKLQkJCQkJfQotCi0JCQkJfQotCi0JCQl9IGVsc2UgewotCQkJCVN5c3RlbS5vdXQucHJpbnRsbigKLQkJCQkJCSJFUlJPUiAhISBVbmFibGUgdG8gc3RhcnQgdHJhbnNmb3JtYXRpb24gYXMgcmVxdWlyZWQgcGFyYW1ldGVycyBhcmUgbm90IHNldCBpbiBpbnB1dCBwcm9wZXJ0aWVzIGZpbGUiKTsKLQotCQkJfQotCi0JCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKLQkJCWUucHJpbnRTdGFja1RyYWNlKCk7Ci0JCX0KLQl9Ci0KLQlwcm90ZWN0ZWQgUHJvcGVydGllcyBnZXRJbnB1dFBhcmFtZXRlcnMoU3RyaW5nIGlucHV0UHJvcHNGaWxlKSB0aHJvd3MgSU9FeGNlcHRpb24sIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0KLQkJaWYgKGlucHV0UHJvcHNGaWxlICE9IG51bGwgJiYgaW5wdXRQcm9wc0ZpbGUubGVuZ3RoKCkgPiAwKSB7Ci0KLQkJCUZpbGUgcHJvcGVydGllc0ZpbGUgPSBuZXcgRmlsZShpbnB1dFByb3BzRmlsZSk7Ci0KLQkJCVByb3BlcnRpZXMgcHJvcGVydGllcyA9IG5ldyBQcm9wZXJ0aWVzKCk7Ci0KLQkJCXByb3BlcnRpZXMubG9hZChuZXcgRmlsZUlucHV0U3RyZWFtKHByb3BlcnRpZXNGaWxlKSk7Ci0KLQkJCS8vIE5vdyBjaGVja2luZyBpZiB0aGUgdXNlciBoYXMgc3BlY2lmaWVkIGFic29sdXRlIHBhdGhzIGluIHRoZSBwcm9wZXJ0aWVzIGZpbGUKLQkJCS8vID8KLQotCQkJT2JqZWN0IGlucHV0TW9kZWxzRm9sZGVyID0gcHJvcGVydGllcy5nZXQoImlucHV0X21vZGVsc19mb2xkZXIiKTsKLQkJCU9iamVjdCBtMm1fb3V0cHV0TW9kZWxzRm9sZGVyID0gcHJvcGVydGllcy5nZXQoIm0ybV9vdXRwdXRfZm9sZGVyIik7Ci0JCQlPYmplY3QgbTJ0X291dHB1dF9mb2xkZXIgPSBwcm9wZXJ0aWVzLmdldCgibTJ0X291dHB1dF9mb2xkZXIiKTsKLQkJCU9iamVjdCBsb2dGaWxlID0gcHJvcGVydGllcy5nZXQoImxvZ19maWxlIik7Ci0KLQkJCWlmIChpbnB1dE1vZGVsc0ZvbGRlciAhPSBudWxsKSB7Ci0JCQkJU3RyaW5nIHBhdGggPSBpbnB1dE1vZGVsc0ZvbGRlci50b1N0cmluZygpOwotCi0JCQkJU3RyaW5nIG5ld1BhdGggPSBuZXcgRmlsZShwYXRoKS5leGlzdHMoKSA/IHBhdGgKLQkJCQkJCTogbmV3IEZpbGUocHJvcGVydGllc0ZpbGUuZ2V0UGFyZW50KCkgKyBGaWxlLnNlcGFyYXRvciArIHBhdGgpLmdldENhbm9uaWNhbFBhdGgoKTsKLQotCQkJCXByb3BlcnRpZXMucHV0KCJpbnB1dF9tb2RlbHNfZm9sZGVyIiwgbmV3UGF0aCk7Ci0KLQkJCX0KLQkJCWlmIChtMm1fb3V0cHV0TW9kZWxzRm9sZGVyICE9IG51bGwpIHsKLQkJCQlTdHJpbmcgcGF0aCA9IG0ybV9vdXRwdXRNb2RlbHNGb2xkZXIudG9TdHJpbmcoKTsKLQotCQkJCVN0cmluZyBuZXdQYXRoID0gbmV3IEZpbGUocGF0aCkuZXhpc3RzKCkgPyBwYXRoCi0JCQkJCQk6IG5ldyBGaWxlKHByb3BlcnRpZXNGaWxlLmdldFBhcmVudCgpICsgRmlsZS5zZXBhcmF0b3IgKyBwYXRoKS5nZXRDYW5vbmljYWxQYXRoKCk7Ci0KLQkJCQlwcm9wZXJ0aWVzLnB1dCgibTJtX291dHB1dF9mb2xkZXIiLCBuZXdQYXRoKTsKLQotCQkJfQotCQkJaWYgKG0ydF9vdXRwdXRfZm9sZGVyICE9IG51bGwpIHsKLQkJCQlTdHJpbmcgcGF0aCA9IG0ydF9vdXRwdXRfZm9sZGVyLnRvU3RyaW5nKCk7Ci0KLQkJCQlTdHJpbmcgbmV3UGF0aCA9IG5ldyBGaWxlKHBhdGgpLmV4aXN0cygpID8gcGF0aAotCQkJCQkJOiBuZXcgRmlsZShwcm9wZXJ0aWVzRmlsZS5nZXRQYXJlbnQoKSArIEZpbGUuc2VwYXJhdG9yICsgcGF0aCkuZ2V0Q2Fub25pY2FsUGF0aCgpOwotCi0JCQkJcHJvcGVydGllcy5wdXQoIm0ydF9vdXRwdXRfZm9sZGVyIiwgbmV3UGF0aCk7Ci0KLQkJCX0KLQkJCWlmIChsb2dGaWxlICE9IG51bGwpIHsKLQkJCQlTdHJpbmcgcGF0aCA9IGxvZ0ZpbGUudG9TdHJpbmcoKTsKLQotCQkJCVN0cmluZyBuZXdQYXRoID0gbmV3IEZpbGUocGF0aCkuZXhpc3RzKCkgPyBwYXRoCi0JCQkJCQk6IG5ldyBGaWxlKHByb3BlcnRpZXNGaWxlLmdldFBhcmVudCgpICsgRmlsZS5zZXBhcmF0b3IgKyBwYXRoKS5nZXRDYW5vbmljYWxQYXRoKCk7Ci0KLQkJCQlwcm9wZXJ0aWVzLnB1dCgibG9nX2ZpbGUiLCBuZXdQYXRoKTsKLQotCQkJfQotCi0JCQlyZXR1cm4gcHJvcGVydGllczsKLQkJfQotCi0JCXJldHVybiBudWxsOwotCi0JfQotCi0JcHJvdGVjdGVkIExvZ2dlciBnZXRMb2dnZXIoUHJvcGVydGllcyBpbnB1dFBhcmFtZXRlcnMpIHsKLQkJCi0JCVN0cmluZyBsb2dGaWxlUGF0aCA9IGlucHV0UGFyYW1ldGVycy5nZXRQcm9wZXJ0eSgibG9nX2ZpbGUiKTsKLQkJU3lzdGVtLnNldFByb3BlcnR5KCJBUFA0TUNfVFJBTlNGT1JNQVRJT05fTE9HX0ZJTEUiLCBsb2dGaWxlUGF0aCk7Ci0JCUxvZ2dlciBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcihTdGFydFRyYW5zZm9ybWF0aW9uQ29tbWFuZC5jbGFzcyk7Ci0KLQkJcmV0dXJuIGxvZ2dlcjsKLQl9Ci0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9UcmFuc2Zvcm1lckZhY3RvcnlDb21wb25lbnQuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL1RyYW5zZm9ybWVyRmFjdG9yeUNvbXBvbmVudC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzU5ZDIxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL1RyYW5zZm9ybWVyRmFjdG9yeUNvbXBvbmVudC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAyMCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2U7Ci0gCi1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5Nb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcy5Nb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGUuSU1vZGVsVG9Nb2RlbENvbmZpZzsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLklNb2RlbFRvVGV4dENvbmZpZzsKLWltcG9ydCBvcmcub3NnaS5zZXJ2aWNlLmNvbXBvbmVudC5hbm5vdGF0aW9ucy5Db21wb25lbnQ7Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuUmVmZXJlbmNlOwotIAotQENvbXBvbmVudChmYWN0b3J5ID0gIlRSQU5TRk9STUVSX0ZBQ1RPUlkiKQotcHVibGljIGNsYXNzIFRyYW5zZm9ybWVyRmFjdG9yeUNvbXBvbmVudCB7IAotCQotCUBSZWZlcmVuY2UKLQlMaXN0PE1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyPiBtMm1UcmFuc2Zvcm1lcnM7Ci0JCi0JQFJlZmVyZW5jZQotCUxpc3Q8TW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lcj4gbTJ0VHJhbnNmb3JtZXJzOwotCi0JQFJlZmVyZW5jZQotCUxpc3Q8SU1vZGVsVG9Nb2RlbENvbmZpZz4gYWxsTW9kZWxUb01vZGVsQ29uZmlnOwotCi0JQFJlZmVyZW5jZQotCUxpc3Q8SU1vZGVsVG9UZXh0Q29uZmlnPiBhbGxNb2RlbFRvVGV4dENvbmZpZzsKLQkKLQlwdWJsaWMgTGlzdDxNb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lcj4gIGdldEFsbE0yTVRyYW5zZm9ybWVycygpewotCQlyZXR1cm4gbTJtVHJhbnNmb3JtZXJzOwotCX0KLQkKLQlwdWJsaWMgTGlzdDxNb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyPiAgZ2V0QWxsTTJUVHJhbnNmb3JtZXJzKCl7Ci0JCXJldHVybiBtMnRUcmFuc2Zvcm1lcnM7Ci0JfQotCi0JcHVibGljIExpc3Q8SU1vZGVsVG9Nb2RlbENvbmZpZz4gZ2V0QWxsTW9kZWxUb01vZGVsQ29uZmlnKCkgewotCQlyZXR1cm4gYWxsTW9kZWxUb01vZGVsQ29uZmlnOwotCX0KLQotCXB1YmxpYyBMaXN0PElNb2RlbFRvVGV4dENvbmZpZz4gZ2V0QWxsTW9kZWxUb1RleHRDb25maWcoKSB7Ci0JCXJldHVybiBhbGxNb2RlbFRvVGV4dENvbmZpZzsKLQl9Ci0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLmNsYXNzcGF0aCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjgzMzdlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJ4dGVuZC1nZW4iLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDc1OTdlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5kcy5jb3JlLmJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0TmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlmMjZjMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotZW5jb2RpbmcvPHByb2plY3Q+PVVURi04CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5wZGUuZHMuYW5ub3RhdGlvbnMucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5kcy5hbm5vdGF0aW9ucy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNhMzU2Yi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5kcy5hbm5vdGF0aW9ucy5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotY2xhc3NwYXRoPXRydWUKLWRzVmVyc2lvbj1WMV8zCi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotZW5hYmxlZD10cnVlCi1nZW5lcmF0ZUJ1bmRsZUFjdGl2YXRpb25Qb2xpY3lMYXp5PXRydWUKLXBhdGg9T1NHSS1JTkYKLXZhbGlkYXRpb25FcnJvckxldmVsPWVycm9yCi12YWxpZGF0aW9uRXJyb3JMZXZlbC5taXNzaW5nSW1wbGljaXRVbmJpbmRNZXRob2Q9ZXJyb3IKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFhNjAzYy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjAKLUJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKLUJ1bmRsZS1OYW1lOiBBUFA0TUMgTW9kZWwgVHJhbnNmb3JtYXRpb24gRXh0ZW5zaW9ucwotQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnM7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMS4wLjAucXVhbGlmaWVyCi1CdW5kbGUtVmVuZG9yOiBFY2xpcHNlIEFQUDRNQwotQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEphdmFTRS0xLjgKLVJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCi0gb3JnLmVjbGlwc2UuZW1mLmVjb3JlO3Zpc2liaWxpdHk6PXJlZXhwb3J0LAotIG9yZy5lY2xpcHNlLmVtZi5lY29yZS54bWk7dmlzaWJpbGl0eTo9cmVleHBvcnQsCi0gb3JnLmVjbGlwc2UueHRleHQueGJhc2UubGliO3Zpc2liaWxpdHk6PXJlZXhwb3J0LAotIG9yZy5lY2xpcHNlLmVtZjtidW5kbGUtdmVyc2lvbj0iMi42LjAiO3Zpc2liaWxpdHk6PXJlZXhwb3J0Ci1FeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnM7dmVyc2lvbj0iMS4wLjAiLAotIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzO3ZlcnNpb249IjEuMC4wIiwKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlO3ZlcnNpb249IjEuMC4wIgotQXV0b21hdGljLU1vZHVsZS1OYW1lOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucwotSW1wb3J0LVBhY2thZ2U6IG9yZy5vc2dpLnNlcnZpY2UuY29tcG9uZW50LmFubm90YXRpb25zO3ZlcnNpb249IlsxLjMuMCwyLjAuMCkiO3Jlc29sdXRpb246PW9wdGlvbmFsLAotIG9yZy5zbGY0ajt2ZXJzaW9uPSIxLjcuMiIKLUJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5Ci1TZXJ2aWNlLUNvbXBvbmVudDogT1NHSS1JTkYvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuQ3VzdG9tT2JqZWN0c1N0b3JlLnhtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL09TR0ktSU5GL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLkN1c3RvbU9iamVjdHNTdG9yZS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvT1NHSS1JTkYvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuQ3VzdG9tT2JqZWN0c1N0b3JlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDBhZjRmMy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvT1NHSS1JTkYvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuQ3VzdG9tT2JqZWN0c1N0b3JlLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxzY3I6Y29tcG9uZW50IHhtbG5zOnNjcj0iaHR0cDovL3d3dy5vc2dpLm9yZy94bWxucy9zY3IvdjEuMy4wIiBuYW1lPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5DdXN0b21PYmplY3RzU3RvcmUiPgotICAgPHNlcnZpY2Ugc2NvcGU9InNpbmdsZXRvbiI+Ci0gICAgICA8cHJvdmlkZSBpbnRlcmZhY2U9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLklDdXN0b21PYmplY3RzU3RvcmUiLz4KLSAgIDwvc2VydmljZT4KLSAgIDxpbXBsZW1lbnRhdGlvbiBjbGFzcz0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuQ3VzdG9tT2JqZWN0c1N0b3JlIi8+Ci08L3Njcjpjb21wb25lbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWRiMzcyLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSMgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSMgCi0jICAgQ29udHJpYnV0b3JzOgotIyAgCSBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotc291cmNlLi4gPSBzcmMvLFwKLSAgICAgICAgICAgeHRlbmQtZ2VuLwotb3V0cHV0Li4gPSBiaW4vCi1iaW4uaW5jbHVkZXMgPSBNRVRBLUlORi8sXAotICAgICAgICAgICAgICAgLixcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBPU0dJLUlORi8KLXNyYy5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvZXBsLTIuMC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL2VwbC0yLjAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM3YTE4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Ci0gICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+Ci0gICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgIGJvZHkgewotICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKLSAgICAgIH0KLSAgICAgIGgxewotICAgICAgICBmb250LXNpemU6MS41ZW07Ci0gICAgICB9Ci0gICAgICBoMnsKLSAgICAgICAgZm9udC1zaXplOjFlbTsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKLSAgICAgICAgbWFyZ2luLXRvcDoxZW07Ci0gICAgICB9Ci0gICAgICBwIHsKLSAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOwotICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKLSAgICAgIH0KLSAgICAgIHVsLCBvbHsKLSAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7Ci0gICAgICB9Ci0gICAgPC9zdHlsZT4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KLSAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQotICAgICAgUFVCTElDIExJQ0VOU0UgKCZsZHF1bztBR1JFRU1FTlQmcmRxdW87KS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgotICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJiMwMzk7UyBBQ0NFUFRBTkNFIE9GIFRISVMgQUdSRUVNRU5ULgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImRlZmluaXRpb25zIj4xLiBERUZJTklUSU9OUzwvaDI+Ci0gICAgPHA+JmxkcXVvO0NvbnRyaWJ1dGlvbiZyZHF1bzsgbWVhbnM6PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAotICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPgotICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KLSAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgotICAgICAgICA8L3VsPgotICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQotICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KLSAgICAgICAgJmxkcXVvO29yaWdpbmF0ZXMmcmRxdW87IGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAotICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJiMwMzk7cyBiZWhhbGYuCi0gICAgICAgIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgY2hhbmdlcyBvciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gdGhhdAotICAgICAgICBhcmUgbm90IE1vZGlmaWVkIFdvcmtzLgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxwPiZsZHF1bztDb250cmlidXRvciZyZHF1bzsgbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+Ci0gICAgPHA+JmxkcXVvO0xpY2Vuc2VkIFBhdGVudHMmcmRxdW87IG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKLSAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKLSAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1Byb2dyYW0mcmRxdW87IG1lYW5zIHRoZSBDb250cmlidXRpb25zIERpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzCi0gICAgICBBZ3JlZW1lbnQuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztSZWNpcGllbnQmcmRxdW87IG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztEZXJpdmF0aXZlIFdvcmtzJnJkcXVvOyBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCi0gICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCi0gICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCi0gICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO01vZGlmaWVkIFdvcmtzJnJkcXVvOyBzaGFsbCBtZWFuIGFueSB3b3JrIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0gdGhhdAotICAgICAgcmVzdWx0cyBmcm9tIGFuIGFkZGl0aW9uIHRvLCBkZWxldGlvbiBmcm9tLCBvciBtb2RpZmljYXRpb24gb2YgdGhlCi0gICAgICBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbSwgaW5jbHVkaW5nLCBmb3IgcHVycG9zZXMgb2YgY2xhcml0eSBhbnkgbmV3IGZpbGUKLSAgICAgIGluIFNvdXJjZSBDb2RlIGZvcm0gdGhhdCBjb250YWlucyBhbnkgY29udGVudHMgb2YgdGhlIFByb2dyYW0uIE1vZGlmaWVkCi0gICAgICBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IGNvbnRhaW4gb25seSBkZWNsYXJhdGlvbnMsIGludGVyZmFjZXMsCi0gICAgICB0eXBlcywgY2xhc3Nlcywgc3RydWN0dXJlcywgb3IgZmlsZXMgb2YgdGhlIFByb2dyYW0gc29sZWx5IGluIGVhY2ggY2FzZQotICAgICAgaW4gb3JkZXIgdG8gbGluayB0bywgYmluZCBieSBuYW1lLCBvciBzdWJjbGFzcyB0aGUgUHJvZ3JhbSBvciBNb2RpZmllZAotICAgICAgV29ya3MgdGhlcmVvZi4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO0Rpc3RyaWJ1dGUmcmRxdW87IG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCi0gICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87U291cmNlIENvZGUmcmRxdW87IG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZwotICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKLSAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1NlY29uZGFyeSBMaWNlbnNlJnJkcXVvOyBtZWFucyBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotICAgICAgVmVyc2lvbiAyLjAsIG9yIGFueSBsYXRlciB2ZXJzaW9ucyBvZiB0aGF0IGxpY2Vuc2UsIGluY2x1ZGluZyBhbnkKLSAgICAgIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcyBpZGVudGlmaWVkIGJ5IHRoZSBpbml0aWFsCi0gICAgICBDb250cmlidXRvci4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJncmFudC1vZi1yaWdodHMiPjIuIEdSQU5UIE9GIFJJR0hUUzwvaDI+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQotICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0Ci0gICAgICAgIGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCi0gICAgICAgIHB1YmxpY2x5IHBlcmZvcm0sIERpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCi0gICAgICAgIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQotICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50Ci0gICAgICAgIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCi0gICAgICAgIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKLSAgICAgICAgaWYgYW55LCBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsCi0gICAgICAgIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwKLSAgICAgICAgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2gKLSAgICAgICAgYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkCi0gICAgICAgIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueQotICAgICAgICBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIKLSAgICAgICAgc2UgaXMgbGljZW5zZWQgaGVyZXVuZGVyLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUKLSAgICAgICAgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKLSAgICAgICAgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCi0gICAgICAgIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuCi0gICAgICAgIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMKLSAgICAgICAgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKLSAgICAgICAgcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzCi0gICAgICAgIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZQotICAgICAgICByZXNwb25zaWJpbGl0eSB0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLAotICAgICAgICBpZiBhbnkuIEZvciBleGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvCi0gICAgICAgIGFsbG93IFJlY2lwaWVudCB0byBEaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQmIzAzOTtzCi0gICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCi0gICAgICA8L2xpPgotICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKLSAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKLSAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCi0gICAgICA8L2xpPgotICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgotICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAotICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQmIzAzOTtzIHJlY2VpcHQgb2YgdGhlCi0gICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgotICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KLSAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+Ci0gICAgPHVsPgotICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KLSAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55Ci0gICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCi0gICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KLSAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQotICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPgotICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCi0gICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKLSAgICAgICAgPHVsPgotICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCi0gICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcwotICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcwotICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOwotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKLSAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKLSAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOwotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cyYjMDM5OyByaWdodHMgaW4gdGhlCi0gICAgICAgICAgICBTb3VyY2UgQ29kZSB1bmRlciBzZWN0aW9uIDMuMjsgYW5kCi0gICAgICAgICAgPC9saT4KLSAgICAgICAgICA8bGk+aXYpIHJlcXVpcmVzIGFueSBzdWJzZXF1ZW50IGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieSBhbnkgcGFydHkKLSAgICAgICAgICAgIHRvIGJlIHVuZGVyIGEgbGljZW5zZSB0aGF0IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgc2VjdGlvbiAzLgotICAgICAgICAgIDwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPHA+My4yIFdoZW4gdGhlIFByb2dyYW0gaXMgRGlzdHJpYnV0ZWQgYXMgU291cmNlIENvZGU6PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBvciBpZiB0aGUgUHJvZ3JhbSAoaSkKLSAgICAgICAgaXMgY29tYmluZWQgd2l0aCBvdGhlciBtYXRlcmlhbCBpbiBhIHNlcGFyYXRlIGZpbGUgb3IgZmlsZXMgbWFkZSBhdmFpbGFibGUKLSAgICAgICAgdW5kZXIgYSBTZWNvbmRhcnkgTGljZW5zZSwgYW5kIChpaSkgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IgYXR0YWNoZWQgdG8KLSAgICAgICAgdGhlIFNvdXJjZSBDb2RlIHRoZSBub3RpY2UgZGVzY3JpYmVkIGluIEV4aGliaXQgQSBvZiB0aGlzIEFncmVlbWVudCwKLSAgICAgICAgdGhlbiB0aGUgUHJvZ3JhbSBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHN1Y2gKLSAgICAgICAgU2Vjb25kYXJ5IExpY2Vuc2VzLCBhbmQKLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uPC9saT4KLSAgICA8L3VsPgotICAgIDxwPjMuMyBDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssCi0gICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzLCBkaXNjbGFpbWVycyBvZiB3YXJyYW50eSwgb3IgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5Ci0gICAgICAoJmxzcXVvO25vdGljZXMmcnNxdW87KSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKLSAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKLSAgICAgIG5vdGljZXMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KLSAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcwotICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCi0gICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKLSAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKLSAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgotICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQotICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgmbGRxdW87Q29tbWVyY2lhbCBDb250cmlidXRvciZyZHF1bzspCi0gICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCi0gICAgICAoJmxkcXVvO0luZGVtbmlmaWVkIENvbnRyaWJ1dG9yJnJkcXVvOykgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cwotICAgICAgKGNvbGxlY3RpdmVseSAmbGRxdW87TG9zc2VzJnJkcXVvOykgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKLSAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50Ci0gICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCi0gICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCi0gICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZwotICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCi0gICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCi0gICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCi0gICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCi0gICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAotICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KLSAgICA8L3A+Ci0gICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQotICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLSAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi0gICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKLSAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3ImIzAzOTtzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgotICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKLSAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKLSAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKLSAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+Ci0gICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAotICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOICZsZHF1bztBUyBJUyZyZHF1bzsgQkFTSVMsIFdJVEhPVVQKLSAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCi0gICAgICBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCi0gICAgICBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzCi0gICAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCi0gICAgICBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKLSAgICAgIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKLSAgICAgIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlCi0gICAgICB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yCi0gICAgICBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJkaXNjbGFpbWVyIj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvaDI+Ci0gICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAotICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZCi0gICAgICBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gICAgICBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwKLSAgICAgIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gICAgICBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gICAgICBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMKLSAgICAgIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJnZW5lcmFsIj43LiBHRU5FUkFMPC9oMj4KLSAgICA8cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgotICAgICAgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mIHRoZQotICAgICAgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24gYnkgdGhlCi0gICAgICBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0gZXh0ZW50Ci0gICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuCi0gICAgPC9wPgotICAgIDxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKLSAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmCi0gICAgICAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKQotICAgICAgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyBncmFudGVkCi0gICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLSAgICA8L3A+Ci0gICAgPHA+QWxsIFJlY2lwaWVudCYjMDM5O3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0bwotICAgICAgY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZAotICAgICAgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nCi0gICAgICBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAotICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCi0gICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCYjMDM5O3Mgb2JsaWdhdGlvbnMgdW5kZXIKLSAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCi0gICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgotICAgIDwvcD4KLSAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCi0gICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKLSAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcwotICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAotICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0Ci0gICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50Ci0gICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCi0gICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKLSAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KLSAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKLSAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCi0gICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCi0gICAgPC9wPgotICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAotICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55Ci0gICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAotICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAotICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCi0gICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgotICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBICZuZGFzaDsgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KLSAgICA8cD4mbGRxdW87VGhpcyBTb3VyY2UgQ29kZSBtYXkgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIAotICAgIAlTZWNvbmRhcnkgTGljZW5zZXMgd2hlbiB0aGUgY29uZGl0aW9ucyBmb3Igc3VjaCBhdmFpbGFiaWxpdHkgc2V0IGZvcnRoIAotICAgIAlpbiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgdi4gMi4wIGFyZSBzYXRpc2ZpZWQ6IHtuYW1lIGxpY2Vuc2UocyksCi0gICAgCXZlcnNpb24ocyksIGFuZCBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgaGVyZX0uJnJkcXVvOwotICAgIDwvcD4KLSAgICA8YmxvY2txdW90ZT4KLSAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKLSAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgotICAgICAgPC9wPgotICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKLSAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKLSAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKLSAgICAgICAgc3VjaCBhIG5vdGljZS4KLSAgICAgIDwvcD4KLSAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KLSAgICA8L2Jsb2NrcXVvdGU+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL0N1c3RvbU9iamVjdHNTdG9yZS54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvQ3VzdG9tT2JqZWN0c1N0b3JlLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzZjM2NlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvQ3VzdG9tT2JqZWN0c1N0b3JlLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMKLQotaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwCi1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuQ29tcG9uZW50Ci1pbXBvcnQgb3JnLm9zZ2kuc2VydmljZS5jb21wb25lbnQuYW5ub3RhdGlvbnMuU2VydmljZVNjb3BlCi0KLUBDb21wb25lbnQoc2NvcGUgPVNlcnZpY2VTY29wZS5TSU5HTEVUT04pCi1jbGFzcyBDdXN0b21PYmplY3RzU3RvcmUgaW1wbGVtZW50cyBJQ3VzdG9tT2JqZWN0c1N0b3JlewotCi0JdmFyIGNsc0luc3RhbmNlTWFwID0gbmV3IEhhc2hNYXAoKTsKLQotCXZhciAgZGF0YU1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOwotCQotCW92ZXJyaWRlIDxUPiBUIGdldEluc3RhbmNlKE9iamVjdCBjbHMpIHsKLQkJdmFsIHZhbHVlID0gY2xzSW5zdGFuY2VNYXAuZ2V0KGNscyk7Ci0JCXJldHVybiB2YWx1ZSBhcyBUCi0JfQotCi0Jb3ZlcnJpZGUgPFQ+IHZvaWQgaW5qZWN0TWVtYmVycyhPYmplY3QgY2xzLCBUIGluc3RhbmNlKSB7Ci0JCWNsc0luc3RhbmNlTWFwLnB1dChjbHMsIGluc3RhbmNlKTsKLQl9Ci0JCi0Jb3ZlcnJpZGUgPFQ+IHZvaWQgaW5kZXhEYXRhKFN0cmluZyBrZXksIFQgdmFsdWUpewotCQlkYXRhTWFwLnB1dChrZXksIHZhbHVlKTsJCQotCX0KLQkKLQlvdmVycmlkZSA8VD4gZ2V0RGF0YShTdHJpbmcga2V5KXsKLQkJZGF0YU1hcC5nZXQoa2V5KSBhcyBUCi0JfQotCi0Jb3ZlcnJpZGUgdm9pZCBjbGVhckNhY2hlKCkgewotCQljbHNJbnN0YW5jZU1hcC5jbGVhcgotCQlkYXRhTWFwLmNsZWFyCi0JfQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9JQ3VzdG9tT2JqZWN0c1N0b3JlLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL0lDdXN0b21PYmplY3RzU3RvcmUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDFlOTQ2Ni4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL0lDdXN0b21PYmplY3RzU3RvcmUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zOwotCi1wdWJsaWMgaW50ZXJmYWNlIElDdXN0b21PYmplY3RzU3RvcmUgewotCXB1YmxpYyA8VD4gVCBnZXRJbnN0YW5jZShPYmplY3QgY2xzKTsKLQotCXB1YmxpYyA8VD4gdm9pZCBpbmplY3RNZW1iZXJzKE9iamVjdCBjbHMsIFQgaW5zdGFuY2UpOwotCi0JcHVibGljIDxUPiB2b2lkIGluZGV4RGF0YShTdHJpbmcga2V5LCBUIHZhbHVlKTsKLQotCXB1YmxpYyA8VD4gVCBnZXREYXRhKFN0cmluZyBrZXkpOwotCi0JcHVibGljIHZvaWQgY2xlYXJDYWNoZSgpOwotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2Jhc2UvdGVtcGxhdGVzL0Fic3RyYWN0VHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2Jhc2UvdGVtcGxhdGVzL0Fic3RyYWN0VHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkNmQ3NzcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9iYXNlL3RlbXBsYXRlcy9BYnN0cmFjdFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzCi0KLWltcG9ydCBqYXZhLnV0aWwuUHJvcGVydGllcwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLklDdXN0b21PYmplY3RzU3RvcmUKLWltcG9ydCBvcmcuc2xmNGouTG9nZ2VyCi0KLWFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHJhbnNmb3JtZXIgewotCi0KLQkvKioKLQkgKiBQcm92aWRlcyBMb2c0SiBsb2dnZXIgd2hpY2ggY2FuIGJlIHVzZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgVHJhbnNmb3JtZXIgY2xhc3Nlcy4KLQkgKiBOb3RlOiBSb290IExvZ2dlciBpcyBpbml0aWFsaXplZCBkdXJpbmcgdGhlIHN0YXJ0dXAgYW5kIHRoZSBjb3JyZXNwb25kaW5nIEFwcGVuZGVycyBhcmUgaG9va2VkIHRvIGl0IGFjY29yZGluZ2x5LgotCSAqIEluIGNhc2UsIGlmIHVzZXIgc3BlY2lmaWMgYXBwZW5kZXJzIGFyZSB0byBiZSBhdHRhY2hlZCB0byB0aGUgbG9nZ2VyLCB0aGlzIG1ldGhvZCBzaG91bGQgYmUgb3ZlcnJpZGRlbiBhbmQgbmV3IEFwcGVuZGVycyBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGxvZ2dlciAKLQkgKiAKLQkgKi8KLQlwcm90ZWN0ZWQgZGVmIExvZ2dlciBnZXRMb2dnZXIoSUN1c3RvbU9iamVjdHNTdG9yZSBjdXN0KSB7Ci0JCXJldHVybiBjdXN0LmdldEluc3RhbmNlKExvZ2dlcik7Ci0KLQl9Ci0KLQlwcm90ZWN0ZWQgZGVmIFN0cmluZyBnZXRQcm9wZXJ0eShTdHJpbmcgcHJvcEtleSwgSUN1c3RvbU9iamVjdHNTdG9yZSBjdXN0b21PYmpzU3RvcmUpIHsKLQotCQl2YWwgUHJvcGVydGllcyBwcm9wZXJ0aWVzID0gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKFByb3BlcnRpZXMpOwotCi0JCXZhbCB2YWx1ZSA9IHByb3BlcnRpZXMuZ2V0KHByb3BLZXkpCi0KLQkJaWYgKHZhbHVlID09PSBudWxsKSB7Ci0JCQl0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oIlJlcXVlc3QgaW5wdXQga2V5IDogXCIiICsgcHJvcEtleSArCi0JCQkJIlwiIG5vdCBzdXBwbGllZCBpbiB0aGUgaW5wdXQgcHJvcGVydGllcyBmaWxlIikKLQkJfQotCi0JCXJldHVybiB2YWx1ZS50b1N0cmluZwotCi0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2Jhc2UvdGVtcGxhdGVzL0lSb290VHJhbnNmb3JtZXIuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvSVJvb3RUcmFuc2Zvcm1lci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTU3ZTk1Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvSVJvb3RUcmFuc2Zvcm1lci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAyMCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXM7Ci0KLXB1YmxpYyBpbnRlcmZhY2UgSVJvb3RUcmFuc2Zvcm1lciB7Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvSVN1YlRyYW5zZm9ybWVyLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2Jhc2UvdGVtcGxhdGVzL0lTdWJUcmFuc2Zvcm1lci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWI1ZmIwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvSVN1YlRyYW5zZm9ybWVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDIwIFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKgotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKgotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotcGFja2FnZSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlczsKLQotcHVibGljIGludGVyZmFjZSBJU3ViVHJhbnNmb3JtZXIgewotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2Jhc2UvdGVtcGxhdGVzL01vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9iYXNlL3RlbXBsYXRlcy9Nb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDVmODc3MC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2Jhc2UvdGVtcGxhdGVzL01vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldAotCi1hYnN0cmFjdCBjbGFzcyBNb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0VHJhbnNmb3JtZXIgIGltcGxlbWVudHMgSVJvb3RUcmFuc2Zvcm1lcnsKLQkgZGVmIHZvaWQgbTJtVHJhbnNmb3JtYXRpb24oUmVzb3VyY2VTZXQgaW5wdXRSZXNvdXJjZVNldCwgUmVzb3VyY2VTZXQgb3V0cHV0UmVzb3VyY2VTZXQpICAKLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9iYXNlL3RlbXBsYXRlcy9Nb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9iYXNlL3RlbXBsYXRlcy9Nb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzkyYTk2Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLS8qKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKgotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzCi0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQKLQotIGFic3RyYWN0IGNsYXNzIE1vZGVsMlRleHRSb290VHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdFRyYW5zZm9ybWVyICBpbXBsZW1lbnRzIElSb290VHJhbnNmb3JtZXJ7Ci0KLQkgZGVmIHZvaWQgbTJ0VHJhbnNmb3JtYXRpb24oUmVzb3VyY2VTZXQgaW5wdXRSZXNvdXJjZVNldCkgIAotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9leGVjdXRpb250eXBlL0lNb2RlbFRvTW9kZWxDb25maWcuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvZXhlY3V0aW9udHlwZS9JTW9kZWxUb01vZGVsQ29uZmlnLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0M2FkMDMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9leGVjdXRpb250eXBlL0lNb2RlbFRvTW9kZWxDb25maWcuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLS8qKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKgotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGU7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQ7Ci0KLXB1YmxpYyBpbnRlcmZhY2UgSU1vZGVsVG9Nb2RlbENvbmZpZyB7Ci0KLQlwdWJsaWMgUmVzb3VyY2VTZXQgZ2V0SW5wdXRSZXNvdXJjZVNldCgpOwotCi0JcHVibGljIFJlc291cmNlU2V0IGdldE91cHV0UmVzb3VyY2VTZXQoKTsKLQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2V4ZWN1dGlvbnR5cGUvSU1vZGVsVG9UZXh0Q29uZmlnLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2V4ZWN1dGlvbnR5cGUvSU1vZGVsVG9UZXh0Q29uZmlnLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwYzYyMGUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9leGVjdXRpb250eXBlL0lNb2RlbFRvVGV4dENvbmZpZy5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuZXhlY3V0aW9udHlwZTsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsKLQotcHVibGljIGludGVyZmFjZSBJTW9kZWxUb1RleHRDb25maWcgewotCi0JcHVibGljIFJlc291cmNlU2V0IGdldElucHV0UmVzb3VyY2VTZXQoKTsKLQkKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjYTdiZGIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24vLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24vLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1NmZjN2YuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb248L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5ZjI2YzAuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLWVuY29kaW5nLzxwcm9qZWN0Pj1VVEYtOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNjhhNjEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWJlOTM1MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjAKLUJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKLUJ1bmRsZS1OYW1lOiBBUFA0TUMgVHJhbnNmb3JtYXRpb24gTG9nNGogQ29uZmlndXJhdGlvbgotQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24KLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUZyYWdtZW50LUhvc3Q6IG9yZy5hcGFjaGUubG9nNGo7YnVuZGxlLXZlcnNpb249IjEuMi4xNSIKLUF1dG9tYXRpYy1Nb2R1bGUtTmFtZTogb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLmNvbnZlcnRlcnMubG9nNGouY29uZmlndXJhdGlvbgotQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEphdmFTRS0xLjgKLVJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5lcXVpbm94LmNvbW1vbjtidW5kbGUtdmVyc2lvbj0iMy4xMC4wIjtyZXNvbHV0aW9uOj1vcHRpb25hbCwKLSBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWU7YnVuZGxlLXZlcnNpb249IjMuMTQuMCI7cmVzb2x1dGlvbjo9b3B0aW9uYWwsCi0gb3JnLmVjbGlwc2UudWkuY29uc29sZTtyZXNvbHV0aW9uOj1vcHRpb25hbCwKLSBvcmcuZWNsaXBzZS51aTtidW5kbGUtdmVyc2lvbj0iMy4xMTUuMCI7cmVzb2x1dGlvbjo9b3B0aW9uYWwKLUJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgQVBQNE1DCi1JbXBvcnQtUGFja2FnZTogamF2YXgueG1sLnBhcnNlcnMsCi0gb3JnLmVjbGlwc2UuZXF1aW5veC5sb2c7dmVyc2lvbj0iMS4wLjAiO3Jlc29sdXRpb246PW9wdGlvbmFsLAotIG9yZy5vc2dpLmZyYW1ld29yazt2ZXJzaW9uPSIxLjkuMCI7cmVzb2x1dGlvbjo9b3B0aW9uYWwsCi0gb3JnLm9zZ2kuc2VydmljZS5sb2c7dmVyc2lvbj0iMS40LjAiO3Jlc29sdXRpb246PW9wdGlvbmFsLAotIG9yZy5vc2dpLnV0aWwudHJhY2tlcjt2ZXJzaW9uPSIxLjUuMiI7cmVzb2x1dGlvbjo9b3B0aW9uYWwsCi0gb3JnLnczYy5kb20sCi0gb3JnLnhtbC5zYXgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3M2QxNjYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLXNvdXJjZS4uID0gc3JjLwotb3V0cHV0Li4gPSBiaW4vCi1iaW4uaW5jbHVkZXMgPSBNRVRBLUlORi8sXAotICAgICAgICAgICAgICAgLixcCi0gICAgICAgICAgICAgICBsb2c0ai54bWwsXAotICAgICAgICAgICAgICAgaGVhZGxlc3NfbG9nNGoueG1sCi1zcmMuaW5jbHVkZXMgPSBsb2c0ai54bWwsXAotICAgICAgICAgICAgICAgaGVhZGxlc3NfbG9nNGoueG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24vaGVhZGxlc3NfbG9nNGoueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uL2hlYWRsZXNzX2xvZzRqLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIxZGNiOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24vaGVhZGxlc3NfbG9nNGoueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+Ci08IURPQ1RZUEUgbG9nNGo6Y29uZmlndXJhdGlvbiBTWVNURU0gImxvZzRqLmR0ZCI+Ci08bG9nNGo6Y29uZmlndXJhdGlvbiB4bWxuczpsb2c0aj0naHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9sb2c0ai8nPgotCi0JPGFwcGVuZGVyIG5hbWU9IkNPTlNPTEUiIGNsYXNzPSJvcmcuYXBhY2hlLmxvZzRqLkNvbnNvbGVBcHBlbmRlciI+Ci0JCTwhLS0gb25seSBsb2cgZXJyb3JzIHRvIHRoZSBjb25zb2xlIC0tPgotCQk8cGFyYW0gbmFtZT0iVGhyZXNob2xkIiB2YWx1ZT0iJHthcHA0bWN0cmFuc2Zvcm1hdGlvbi5sb2cubGV2ZWx9Ii8+Ci0JICAgIDxsYXlvdXQgY2xhc3M9Im9yZy5hcGFjaGUubG9nNGouUGF0dGVybkxheW91dCI+Ci0JCQk8cGFyYW0gbmFtZT0iQ29udmVyc2lvblBhdHRlcm4iIHZhbHVlPSIlbSVuIiAvPgotCSAgICA8L2xheW91dD4KLQk8L2FwcGVuZGVyPgotCi0JPGFwcGVuZGVyIG5hbWU9IkZJTEUiIGNsYXNzPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi5UcmFuc2Zvcm1hdGlvbkZpbGVBcHBlbmRlciI+Ci0JCTxwYXJhbSBuYW1lPSJhcHBlbmQiIHZhbHVlPSJ0cnVlIi8+Ci0JICAgIDxsYXlvdXQgY2xhc3M9Im9yZy5hcGFjaGUubG9nNGouUGF0dGVybkxheW91dCI+Ci0JCQk8cGFyYW0gbmFtZT0iQ29udmVyc2lvblBhdHRlcm4iCi0JCQkgIHZhbHVlPSIlZHt5eXl5LU1NLWRkX0hIX21tX3NzfSAtICUtNXA6ICAlbSVuIiAvPgotCSAgICA8L2xheW91dD4KLQk8L2FwcGVuZGVyPgotCi0JPHJvb3Q+Ci0JCTwhLS0gc2V0IHRoZSBsb2cgbGV2ZWwgdG8gZGVidWcgdG8gY2F0Y2ggZXZlcnl0aGluZyAtLT4KLQkJPCEtLSBvbiB0aGUgYXBwZW5kZXJzIHRoZSB0aHJlc2hvbGQgaXMgc2V0IHRvIGZpbHRlciBmdXJ0aGVyIC0tPgotCQk8bGV2ZWwgdmFsdWU9ImRlYnVnIiAvPgotCQk8YXBwZW5kZXItcmVmIHJlZj0iQ09OU09MRSIgLz4KLQkJPGFwcGVuZGVyLXJlZiByZWY9IkZJTEUiIC8+Ci0JPC9yb290PgotCi08L2xvZzRqOmNvbmZpZ3VyYXRpb24+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uL2xvZzRqLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9sb2c0ai54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDk1ZDYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uL2xvZzRqLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgotPCFET0NUWVBFIGxvZzRqOmNvbmZpZ3VyYXRpb24gU1lTVEVNICJsb2c0ai5kdGQiPgotPGxvZzRqOmNvbmZpZ3VyYXRpb24geG1sbnM6bG9nNGo9J2h0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvbG9nNGovJz4KLQotCTxhcHBlbmRlciBuYW1lPSJDT05TT0xFIiBjbGFzcz0ib3JnLmFwYWNoZS5sb2c0ai5Db25zb2xlQXBwZW5kZXIiPgotCQk8IS0tIG9ubHkgbG9nIGVycm9ycyB0byB0aGUgY29uc29sZSAtLT4KLQkJPHBhcmFtIG5hbWU9IlRocmVzaG9sZCIgdmFsdWU9IiR7YXBwNG1jdHJhbnNmb3JtYXRpb24ubG9nLmxldmVsfSIvPgotCSAgICA8bGF5b3V0IGNsYXNzPSJvcmcuYXBhY2hlLmxvZzRqLlBhdHRlcm5MYXlvdXQiPgotCQkJPHBhcmFtIG5hbWU9IkNvbnZlcnNpb25QYXR0ZXJuIiB2YWx1ZT0iJW0lbiIgLz4KLQkgICAgPC9sYXlvdXQ+Ci0JPC9hcHBlbmRlcj4KLQotCTxhcHBlbmRlciBuYW1lPSJGSUxFIiBjbGFzcz0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uVHJhbnNmb3JtYXRpb25GaWxlQXBwZW5kZXIiPgotCQk8cGFyYW0gbmFtZT0iYXBwZW5kIiB2YWx1ZT0idHJ1ZSIvPgotCSAgICA8bGF5b3V0IGNsYXNzPSJvcmcuYXBhY2hlLmxvZzRqLlBhdHRlcm5MYXlvdXQiPgotCQkJPHBhcmFtIG5hbWU9IkNvbnZlcnNpb25QYXR0ZXJuIgotCQkJICB2YWx1ZT0iJWR7eXl5eS1NTS1kZF9ISF9tbV9zc30gLSAlLTVwOiAgJW0lbiIgLz4KLQkgICAgPC9sYXlvdXQ+Ci0JPC9hcHBlbmRlcj4KLQotCTxhcHBlbmRlciBuYW1lPSJFQ0xJUFNFIiBjbGFzcz0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24uRWNsaXBzZUxvZ0FwcGVuZGVyIj4KLQkJPCEtLSBvbmx5IGxvZyBlcnJvcnMgdG8gdGhlIGVjbGlwc2UgbG9nIC0tPgotCQk8cGFyYW0gbmFtZT0iVGhyZXNob2xkIiB2YWx1ZT0iRVJST1IiLz4KLQk8L2FwcGVuZGVyPgotCQotCTxhcHBlbmRlciBuYW1lPSJFQ0xJUFNFX0NPTlNPTEUiIGNsYXNzPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi5DdXN0b21Db25zb2xlQXBwZW5kZXIiPgotCQk8IS0tIG9ubHkgbG9nIGVycm9ycyB0byB0aGUgY29uc29sZSAtLT4KLQkJPHBhcmFtIG5hbWU9IlRocmVzaG9sZCIgdmFsdWU9IiR7YXBwNG1jdHJhbnNmb3JtYXRpb24ubG9nLmxldmVsfSIvPgotCSAgICA8bGF5b3V0IGNsYXNzPSJvcmcuYXBhY2hlLmxvZzRqLlBhdHRlcm5MYXlvdXQiPgotCQkJPHBhcmFtIG5hbWU9IkNvbnZlcnNpb25QYXR0ZXJuIgotCQkJICB2YWx1ZT0iJWR7eXl5eS1NTS1kZF9ISF9tbV9zc30gLSAlLTVwOiAgJW0lbiIgLz4KLQkgICAgPC9sYXlvdXQ+Ci0JPC9hcHBlbmRlcj4KLQotCTxyb290PgotCQk8IS0tIHNldCB0aGUgbG9nIGxldmVsIHRvIGRlYnVnIHRvIGNhdGNoIGV2ZXJ5dGhpbmcgLS0+Ci0JCTwhLS0gb24gdGhlIGFwcGVuZGVycyB0aGUgdGhyZXNob2xkIGlzIHNldCB0byBmaWx0ZXIgZnVydGhlciAtLT4KLQkJPGxldmVsIHZhbHVlPSJkZWJ1ZyIgLz4KLQkJPCEtLSAgPGFwcGVuZGVyLXJlZiByZWY9IkNPTlNPTEUiIC8+ICAtLT4KLQkJPGFwcGVuZGVyLXJlZiByZWY9IkVDTElQU0UiIC8+Ci0JCTxhcHBlbmRlci1yZWYgcmVmPSJGSUxFIiAvPgotCQk8YXBwZW5kZXItcmVmIHJlZj0iRUNMSVBTRV9DT05TT0xFIiAvPgotCTwvcm9vdD4KLQotPC9sb2c0ajpjb25maWd1cmF0aW9uPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2xvZzRqL2NvbmZpZ3VyYXRpb24vQ3VzdG9tQ29uc29sZUFwcGVuZGVyLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9sb2c0ai9jb25maWd1cmF0aW9uL0N1c3RvbUNvbnNvbGVBcHBlbmRlci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTQ1ZGE4Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2xvZzRqL2NvbmZpZ3VyYXRpb24vQ3VzdG9tQ29uc29sZUFwcGVuZGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMDkgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAyMCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb247Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkNvbnNvbGVBcHBlbmRlcjsKLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxheW91dDsKLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLnNwaS5Mb2dnaW5nRXZlbnQ7Ci1pbXBvcnQgb3JnLmVjbGlwc2UudWkuSVZpZXdQYXJ0OwotaW1wb3J0IG9yZy5lY2xpcHNlLnVpLlBhcnRJbml0RXhjZXB0aW9uOwotaW1wb3J0IG9yZy5lY2xpcHNlLnVpLlBsYXRmb3JtVUk7Ci1pbXBvcnQgb3JnLmVjbGlwc2UudWkuY29uc29sZS5Db25zb2xlUGx1Z2luOwotaW1wb3J0IG9yZy5lY2xpcHNlLnVpLmNvbnNvbGUuSUNvbnNvbGU7Ci1pbXBvcnQgb3JnLmVjbGlwc2UudWkuY29uc29sZS5JQ29uc29sZUNvbnN0YW50czsKLWltcG9ydCBvcmcuZWNsaXBzZS51aS5jb25zb2xlLklDb25zb2xlTWFuYWdlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS51aS5jb25zb2xlLk1lc3NhZ2VDb25zb2xlOwotaW1wb3J0IG9yZy5lY2xpcHNlLnVpLmNvbnNvbGUuTWVzc2FnZUNvbnNvbGVTdHJlYW07Ci0KLXB1YmxpYyBjbGFzcyBDdXN0b21Db25zb2xlQXBwZW5kZXIgZXh0ZW5kcyBDb25zb2xlQXBwZW5kZXIgewotCi0JcHVibGljIEN1c3RvbUNvbnNvbGVBcHBlbmRlcigpIHsKLQl9Ci0KLQlwdWJsaWMgQ3VzdG9tQ29uc29sZUFwcGVuZGVyKExheW91dCBsYXlvdXQpIHsKLQkJc3VwZXIobGF5b3V0LCBTWVNURU1fT1VUKTsKLQl9Ci0KLQkgIHB1YmxpYyBDdXN0b21Db25zb2xlQXBwZW5kZXIoTGF5b3V0IGxheW91dCwgU3RyaW5nIHRhcmdldCkgewotCQkgICAgc3VwZXIuc2V0TGF5b3V0KGxheW91dCk7Ci0JCSAgICBzdXBlci5zZXRUYXJnZXQodGFyZ2V0KTsKLQkJICAgIHN1cGVyLmFjdGl2YXRlT3B0aW9ucygpOwotCQkgIH0KLQkgIAotCXByaXZhdGUgTWVzc2FnZUNvbnNvbGUgbXlDb25zb2xlOwotCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgYXBwZW5kKExvZ2dpbmdFdmVudCBldmVudCkgewotCQkJaWYgKGxvZ01lc3NhZ2VPbkNvbnNvbGUoZXZlbnQpID09IGZhbHNlKSB7Ci0JCQkJbXlDb25zb2xlID0gZmluZENvbnNvbGUoIkFTRiBTTEciKTsKLQkJCQlsb2dNZXNzYWdlT25Db25zb2xlKGV2ZW50KTsKLQkJCX0KLQl9Ci0JQE92ZXJyaWRlCi0JcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGRvQXBwZW5kKExvZ2dpbmdFdmVudCBldmVudCkgewotCQkKLQkJaWYgKGxvZ01lc3NhZ2VPbkNvbnNvbGUoZXZlbnQpID09IGZhbHNlKSB7Ci0JCQlteUNvbnNvbGUgPSBmaW5kQ29uc29sZSgiQVNGIFNMRyIpOwotCQkJbG9nTWVzc2FnZU9uQ29uc29sZShldmVudCk7Ci0JCX0KLQl9Ci0KLQlwcml2YXRlIGJvb2xlYW4gbG9nTWVzc2FnZU9uQ29uc29sZShMb2dnaW5nRXZlbnQgZXZlbnQpIHsKLQkJaWYgKG15Q29uc29sZSAhPSBudWxsKSB7Ci0JCQlNZXNzYWdlQ29uc29sZVN0cmVhbSBvdXQgPSBteUNvbnNvbGUubmV3TWVzc2FnZVN0cmVhbSgpOwotCQkJb3V0LnByaW50bG4oZXZlbnQuZ2V0TWVzc2FnZSgpLnRvU3RyaW5nKCkpOwotCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQkJcmV0dXJuIGZhbHNlOwotCX0KLQotCi0JcHJpdmF0ZSBNZXNzYWdlQ29uc29sZSBmaW5kQ29uc29sZShTdHJpbmcgbmFtZSkgewotCi0JCW9wZW5Db25zb2xlVmlldygpOwotCQlDb25zb2xlUGx1Z2luIHBsdWdpbiA9IENvbnNvbGVQbHVnaW4uZ2V0RGVmYXVsdCgpOwotCQlpZiAocGx1Z2luICE9IG51bGwpIHsKLQkJCUlDb25zb2xlTWFuYWdlciBjb25NYW4gPSBwbHVnaW4uZ2V0Q29uc29sZU1hbmFnZXIoKTsKLQkJCWlmIChjb25NYW4gIT0gbnVsbCkgewotCQkJCUlDb25zb2xlW10gZXhpc3RpbmcgPSBjb25NYW4uZ2V0Q29uc29sZXMoKTsKLQkJCQlmb3IgKGludCBpID0gMDsgaSA8IGV4aXN0aW5nLmxlbmd0aDsgaSsrKQotCQkJCQlpZiAobmFtZS5lcXVhbHMoZXhpc3RpbmdbaV0uZ2V0TmFtZSgpKSkKLQkJCQkJCXJldHVybiAoTWVzc2FnZUNvbnNvbGUpIGV4aXN0aW5nW2ldOwotCQkJCS8vIG5vIGNvbnNvbGUgZm91bmQsIHNvIGNyZWF0ZSBhIG5ldyBvbmUKLQkJCQlNZXNzYWdlQ29uc29sZSBteUNvbnNvbGUgPSBuZXcgTWVzc2FnZUNvbnNvbGUobmFtZSwgbnVsbCk7Ci0JCQkJY29uTWFuLmFkZENvbnNvbGVzKG5ldyBJQ29uc29sZVtdIHsgbXlDb25zb2xlIH0pOwotCQkJCQotCQkJCXJldHVybiBteUNvbnNvbGU7Ci0KLQkJCX0KLQotCQl9Ci0JCXJldHVybiBudWxsOwotCX0KLQotCXByaXZhdGUgdm9pZCBvcGVuQ29uc29sZVZpZXcoKSB7Ci0JCXRyeSB7Ci0JCQlJVmlld1BhcnQgZmluZFZpZXcgPSBQbGF0Zm9ybVVJLmdldFdvcmtiZW5jaCgpLmdldEFjdGl2ZVdvcmtiZW5jaFdpbmRvdygpLmdldEFjdGl2ZVBhZ2UoKQotCQkJCQkuZmluZFZpZXcoSUNvbnNvbGVDb25zdGFudHMuSURfQ09OU09MRV9WSUVXKTsKLQkJCWlmIChmaW5kVmlldyA9PSBudWxsKSB7Ci0JCQkJUGxhdGZvcm1VSS5nZXRXb3JrYmVuY2goKS5nZXRBY3RpdmVXb3JrYmVuY2hXaW5kb3coKS5nZXRBY3RpdmVQYWdlKCkKLQkJCQkJCS5zaG93VmlldyhJQ29uc29sZUNvbnN0YW50cy5JRF9DT05TT0xFX1ZJRVcpOwotCQkJfQotCi0JCX0gY2F0Y2ggKFBhcnRJbml0RXhjZXB0aW9uIGUpIHsKLQkJCS8vIFRPRE86Q3VycmVudGx5IG5vdCBsb2dnaW5nIGFueSBtZXNzYWdlIGZvciB0aGlzIGV4Y2VwdGlvbgotCQl9Ci0JfQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vbG9nNGovY29uZmlndXJhdGlvbi9FY2xpcHNlTG9nQXBwZW5kZXIuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2xvZzRqL2NvbmZpZ3VyYXRpb24vRWNsaXBzZUxvZ0FwcGVuZGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxYWQ5NDIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vbG9nNGovY29uZmlndXJhdGlvbi9FY2xpcHNlTG9nQXBwZW5kZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai5jb25maWd1cmF0aW9uOwotCi1pbXBvcnQgb3JnLmFwYWNoZS5sb2c0ai5BcHBlbmRlclNrZWxldG9uOwotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouTGV2ZWw7Ci1pbXBvcnQgb3JnLmFwYWNoZS5sb2c0ai5zcGkuTG9nZ2luZ0V2ZW50OwotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouc3BpLlRocm93YWJsZUluZm9ybWF0aW9uOwotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5JU3RhdHVzOwotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5QbGF0Zm9ybTsKLWltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuU3RhdHVzOwotaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7Ci1pbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkZyYW1ld29ya1V0aWw7Ci0KLS8qKgotICogQ3VzdG9tIExvZzRqIGFwcGVuZGVyIHRoYXQgZm9yd2FyZHMgbG9nIHN0YXRlbWVudHMgdG8gdGhlIEVjbGlwc2UgbG9nZ2luZyBtZWNoYW5pc20uCi0gKi8KLXB1YmxpYyBjbGFzcyBFY2xpcHNlTG9nQXBwZW5kZXIgZXh0ZW5kcyBBcHBlbmRlclNrZWxldG9uIHsKLQotCXByaXZhdGUgaW50IGdldFN0YXR1cyhmaW5hbCBMb2dnaW5nRXZlbnQgZXZlbnQpIHsKLQkJZmluYWwgTGV2ZWwgbGV2ZWwgPSBldmVudC5nZXRMZXZlbCgpOwotCi0JCWludCBzdGF0dXMgPSBJU3RhdHVzLklORk87Ci0KLQkJaWYgKGxldmVsID09IExldmVsLkVSUk9SKSB7Ci0JCQlzdGF0dXMgPSBJU3RhdHVzLkVSUk9SOwotCQl9Ci0JCWVsc2UgaWYgKGxldmVsID09IExldmVsLklORk8pIHsKLQkJCXN0YXR1cyA9IElTdGF0dXMuSU5GTzsKLQkJfQotCQllbHNlIGlmIChsZXZlbCA9PSBMZXZlbC5XQVJOKSB7Ci0JCQlzdGF0dXMgPSBJU3RhdHVzLldBUk5JTkc7Ci0JCX0KLQkJZWxzZSBpZiAobGV2ZWwgPT0gTGV2ZWwuRkFUQUwpIHsKLQkJCXN0YXR1cyA9IElTdGF0dXMuRVJST1I7Ci0JCX0KLQkJcmV0dXJuIHN0YXR1czsKLQl9Ci0KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgdm9pZCBhcHBlbmQoZmluYWwgTG9nZ2luZ0V2ZW50IGV2ZW50KSB7Ci0KLQkJZmluYWwgT2JqZWN0IG1lc3NhZ2VPYmplY3QgPSBldmVudC5nZXRNZXNzYWdlKCk7Ci0JCWZpbmFsIFRocm93YWJsZUluZm9ybWF0aW9uIHRocm93YWJsZUluZm9ybWF0aW9uID0gZXZlbnQuZ2V0VGhyb3dhYmxlSW5mb3JtYXRpb24oKTsKLQkJZmluYWwgaW50IHN0YXR1cyA9IGdldFN0YXR1cyhldmVudCk7Ci0KLQkJQnVuZGxlIGJ1bmRsZSA9IEZyYW1ld29ya1V0aWwuZ2V0QnVuZGxlKGdldENsYXNzKCkpOwotCQlpZiAoYnVuZGxlICE9IG51bGwpIHsKLQkJCWlmICh0aHJvd2FibGVJbmZvcm1hdGlvbiAhPSBudWxsKSB7Ci0JCQkJUGxhdGZvcm0uZ2V0TG9nKGJ1bmRsZSkubG9nKG5ldyBTdGF0dXMoc3RhdHVzLCBidW5kbGUuZ2V0U3ltYm9saWNOYW1lKCksCi0JCQkJCQkJCW1lc3NhZ2VPYmplY3QgIT0gbnVsbCA/IG1lc3NhZ2VPYmplY3QudG9TdHJpbmcoKSA6ICIiLAotCQkJCQkJCQl0aHJvd2FibGVJbmZvcm1hdGlvbi5nZXRUaHJvd2FibGUoKSkpOwotCQkJfQotCQkJZWxzZSB7Ci0JCQkJUGxhdGZvcm0uZ2V0TG9nKGJ1bmRsZSkubG9nKG5ldyBTdGF0dXMoc3RhdHVzLCBidW5kbGUuZ2V0U3ltYm9saWNOYW1lKCksCi0JCQkJCQltZXNzYWdlT2JqZWN0ICE9IG51bGwgPyBtZXNzYWdlT2JqZWN0LnRvU3RyaW5nKCkgOiAiIikpOwotCQkJfQotCQl9Ci0JfQotCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgY2xvc2UoKSB7Ci0JfQotCi0JQE92ZXJyaWRlCi0JcHVibGljIGJvb2xlYW4gcmVxdWlyZXNMYXlvdXQoKSB7Ci0JCXJldHVybiBmYWxzZTsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2xvZzRqL2NvbmZpZ3VyYXRpb24vVHJhbnNmb3JtYXRpb25GaWxlQXBwZW5kZXIuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2xvZzRqL2NvbmZpZ3VyYXRpb24vVHJhbnNmb3JtYXRpb25GaWxlQXBwZW5kZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ4ODMzYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmNvbmZpZ3VyYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9sb2c0ai9jb25maWd1cmF0aW9uL1RyYW5zZm9ybWF0aW9uRmlsZUFwcGVuZGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5LCAyMDIwIFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKgotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKgotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotcGFja2FnZSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbjsKLQotaW1wb3J0IGphdmEuaW8uRmlsZTsKLQotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouRmlsZUFwcGVuZGVyOwotCi0vKioKLSAqIEN1c3RvbSBMb2c0aiBhcHBlbmRlciB0aGF0IGlzIHdyaXRpbmcgbG9nIHN0YXRlbWVudHMgdG8gYSBkZWRpY2F0ZWQgbG9nIGZpbGUKLSAqIGlmIHRoZSBzeXN0ZW0gcHJvcGVydHkgPGk+T1VUUFVUX0RJUkVDVE9SWTwvaT4gaXMgc2V0LiBXaXRoIHRoaXMgbWVjaGFuaXNtIGl0Ci0gKiBpcyBwb3NzaWJsZSB0byB3cml0ZSBhIGxvZyBmaWxlIHBlciBtaWdyYXRpb24gc2Vzc2lvbiB0byBhIGRlZGljYXRlZCBsb2cgZmlsZQotICogb25seS4KLSAqLwotcHVibGljIGNsYXNzIFRyYW5zZm9ybWF0aW9uRmlsZUFwcGVuZGVyIGV4dGVuZHMgRmlsZUFwcGVuZGVyIHsKLQotCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIGJvb2xlYW4gY2hlY2tFbnRyeUNvbmRpdGlvbnMoKSB7Ci0JCS8vIHdlIG9ubHkgYXBwZW5kIGlmIGFuIG91dHB1dCBkaXJlY3RvcnkgaXMgc2V0Ci0JCVN0cmluZyBsb2dGaWxlUGF0aCA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgiQVBQNE1DX1RSQU5TRk9STUFUSU9OX0xPR19GSUxFIik7Ci0JCWlmIChsb2dGaWxlUGF0aCAhPSBudWxsKSB7Ci0JCQlpZiAobmV3IEZpbGUobG9nRmlsZVBhdGgpLmNhbldyaXRlKCk9PWZhbHNlKSB7IAotCQkJCXJldHVybiBmYWxzZTsKLQkJCX0KLQkJCXN1cGVyLnNldEZpbGUobG9nRmlsZVBhdGgpOwotCQkJc3VwZXIuYWN0aXZhdGVPcHRpb25zKCk7Ci0KLQkJCXJldHVybiBzdXBlci5jaGVja0VudHJ5Q29uZGl0aW9ucygpOwotCQl9ICAKLQkJcmV0dXJuIGZhbHNlOwotCX0KLQotIAotCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgYWN0aXZhdGVPcHRpb25zKCkgewotCQkvLyBzaW1wbHkgYXZvaWQgdGhlIGxvZyB3YXJuaW5nIGZvciBtaXNzaW5nIGZpbGVOYW1lIGNvbmZpZ3VyYXRpb24KLQkJaWYgKGZpbGVOYW1lICE9IG51bGwpIHsKLQkJCXN1cGVyLmFjdGl2YXRlT3B0aW9ucygpOwotCQl9Ci0JfQotCi0gCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1Y2Y3ZjAuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTk2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0gIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KLQotICA8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb248L2dyb3VwSWQ+Ci0gIDxhcnRpZmFjdElkPnBhcmVudDwvYXJ0aWZhY3RJZD4KLSAgPHZlcnNpb24+MS4wLjAtU05BUFNIT1Q8L3ZlcnNpb24+Ci0gICAKLSAgPHBhY2thZ2luZz5wb208L3BhY2thZ2luZz4KLSAgCi0gIDxuYW1lPkFQUDRNQyBNb2RlbCBUcmFuc2Zvcm1hdGlvbjwvbmFtZT4KLSAKLSAgPHByb3BlcnRpZXM+Ci0gICAgPHR5Y2hvLnZlcnNpb24+Mi4wLjA8L3R5Y2hvLnZlcnNpb24+Ci0gICAgCi0gICAgPHByb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmc+VVRGLTg8L3Byb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmc+Ci0gICAgPHByb2plY3QucmVwb3J0aW5nLm91dHB1dEVuY29kaW5nPlVURi04PC9wcm9qZWN0LnJlcG9ydGluZy5vdXRwdXRFbmNvZGluZz4KLQkKLQkKLSAgPC9wcm9wZXJ0aWVzPgotIAotCTxwbHVnaW5SZXBvc2l0b3JpZXM+Ci0JCTxwbHVnaW5SZXBvc2l0b3J5PgotCQkJPGlkPmNiaTwvaWQ+Ci0JCQk8dXJsPmh0dHBzOi8vcmVwby5lY2xpcHNlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9jYmktcmVsZWFzZXMvPC91cmw+Ci0JCQk8cmVsZWFzZXM+Ci0JCQkJPGVuYWJsZWQ+dHJ1ZTwvZW5hYmxlZD4KLQkJCTwvcmVsZWFzZXM+Ci0JCQk8c25hcHNob3RzPgotCQkJCTxlbmFibGVkPmZhbHNlPC9lbmFibGVkPgotCQkJPC9zbmFwc2hvdHM+Ci0JCTwvcGx1Z2luUmVwb3NpdG9yeT4KLQk8L3BsdWdpblJlcG9zaXRvcmllcz4KLQotCTxtb2R1bGVzPgotCi0JCTwhLS0gZXhhbXBsZSBwbHVnaW5zIC0tPgotCQk8bW9kdWxlPmV4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWw8L21vZHVsZT4KLQkJPG1vZHVsZT5leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybTwvbW9kdWxlPgotCQk8bW9kdWxlPmV4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0PC9tb2R1bGU+Ci0JCTxtb2R1bGU+ZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHA8L21vZHVsZT4KLQotCQk8IS0tIEFtbHQySW5jaHJvbiB0cmFuc2Zvcm1hdGlvbiBwbHVnaW5zIC0tPgotCQk8IS0tCi0JCTxtb2R1bGU+ZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3Q8L21vZHVsZT4KLQkJPG1vZHVsZT5leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcDwvbW9kdWxlPgotCQk8bW9kdWxlPmV4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtPC9tb2R1bGU+Ci0JCTxtb2R1bGU+ZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzPC9tb2R1bGU+Ci0JCS0tPgotCi0JCTwhLS0gY29yZSAtLT4KLSAgCQk8bW9kdWxlPnBsdWdpbnM8L21vZHVsZT4KLQkJPG1vZHVsZT5mZWF0dXJlczwvbW9kdWxlPgotCQk8bW9kdWxlPnJlbGVuZzwvbW9kdWxlPgotCTwvbW9kdWxlcz4KLSAgCi0gIAk8YnVpbGQ+Ci0KLQkJPHBsdWdpbnM+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLnh0ZW5kPC9ncm91cElkPgotCQkJCTxhcnRpZmFjdElkPnh0ZW5kLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLQkJCQk8dmVyc2lvbj4yLjIwLjA8L3ZlcnNpb24+Ci0JCQkJPGV4ZWN1dGlvbnM+Ci0JCQkJCTxleGVjdXRpb24+Ci0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+Y29tcGlsZTwvZ29hbD4KLQkJCQkJCQk8Z29hbD54dGVuZC1pbnN0YWxsLWRlYnVnLWluZm88L2dvYWw+Ci0JCQkJCQkJPGdvYWw+dGVzdENvbXBpbGU8L2dvYWw+Ci0JCQkJCQkJPGdvYWw+eHRlbmQtdGVzdC1pbnN0YWxsLWRlYnVnLWluZm88L2dvYWw+Ci0JCQkJCQk8L2dvYWxzPgotCQkJCQk8L2V4ZWN1dGlvbj4KLQkJCQk8L2V4ZWN1dGlvbnM+Ci0JCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxvdXRwdXREaXJlY3Rvcnk+JHtiYXNlZGlyfS94dGVuZC1nZW48L291dHB1dERpcmVjdG9yeT4KLQkJCQkJPHRlc3RPdXRwdXREaXJlY3Rvcnk+JHtiYXNlZGlyfS94dGVuZC1nZW48L3Rlc3RPdXRwdXREaXJlY3Rvcnk+Ci0JCQkJPC9jb25maWd1cmF0aW9uPgotCQkJPC9wbHVnaW4+Ci0KLQkJCTxwbHVnaW4+Ci0JCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UudHljaG88L2dyb3VwSWQ+Ci0JCQkJPGFydGlmYWN0SWQ+dHljaG8tbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPiR7dHljaG8udmVyc2lvbn08L3ZlcnNpb24+Ci0JCQkJPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4KLQkJCTwvcGx1Z2luPgotCi0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLnR5Y2hvPC9ncm91cElkPgotCQkJCTxhcnRpZmFjdElkPnR5Y2hvLWNvbXBpbGVyLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLQkJCQk8dmVyc2lvbj4ke3R5Y2hvLnZlcnNpb259PC92ZXJzaW9uPgotCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQk8dmVyYm9zZT50cnVlPC92ZXJib3NlPgotCQkJCQk8c291cmNlPjEuODwvc291cmNlPgotCQkJCQk8dGFyZ2V0PjEuODwvdGFyZ2V0PgotCQkJCTwvY29uZmlndXJhdGlvbj4KLQkJCTwvcGx1Z2luPgotCi0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLnR5Y2hvPC9ncm91cElkPgotCQkJCTxhcnRpZmFjdElkPnRhcmdldC1wbGF0Zm9ybS1jb25maWd1cmF0aW9uPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPiR7dHljaG8udmVyc2lvbn08L3ZlcnNpb24+Ci0JCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxlbnZpcm9ubWVudHM+Ci0JCQkJCQk8ZW52aXJvbm1lbnQ+Ci0JCQkJCQkJPG9zPmxpbnV4PC9vcz4KLQkJCQkJCQk8d3M+Z3RrPC93cz4KLQkJCQkJCQk8YXJjaD54ODZfNjQ8L2FyY2g+Ci0JCQkJCQk8L2Vudmlyb25tZW50PgotCQkJCQkJPGVudmlyb25tZW50PgotCQkJCQkJCTxvcz53aW4zMjwvb3M+Ci0JCQkJCQkJPHdzPndpbjMyPC93cz4KLQkJCQkJCQk8YXJjaD54ODZfNjQ8L2FyY2g+Ci0JCQkJCQk8L2Vudmlyb25tZW50PgotCQkJCQkJPGVudmlyb25tZW50PgotCQkJCQkJCTxvcz5tYWNvc3g8L29zPgotCQkJCQkJCTx3cz5jb2NvYTwvd3M+Ci0JCQkJCQkJPGFyY2g+eDg2XzY0PC9hcmNoPgotCQkJCQkJPC9lbnZpcm9ubWVudD4KLQkJCQkJPC9lbnZpcm9ubWVudHM+Ci0KLQkJCQkJPHRhcmdldD4KLQkJCQkJCTxhcnRpZmFjdD4KLQkJCQkJCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb248L2dyb3VwSWQ+Ci0JCQkJCQkJPGFydGlmYWN0SWQ+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldDwvYXJ0aWZhY3RJZD4KLQkJCQkJCQk8dmVyc2lvbj4xLjAuMC1TTkFQU0hPVDwvdmVyc2lvbj4KLQkJCQkJCTwvYXJ0aWZhY3Q+Ci0JCQkJCTwvdGFyZ2V0PgotCQkJCQk8dGFyZ2V0RGVmaW5pdGlvbkluY2x1ZGVTb3VyY2U+aG9ub3I8L3RhcmdldERlZmluaXRpb25JbmNsdWRlU291cmNlPgotCQkJCTwvY29uZmlndXJhdGlvbj4KLQkJCTwvcGx1Z2luPgotCQkJCi0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLnR5Y2hvPC9ncm91cElkPgotCQkJCTxhcnRpZmFjdElkPnR5Y2hvLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLQkJCQk8dmVyc2lvbj4ke3R5Y2hvLnZlcnNpb259PC92ZXJzaW9uPgotCQkJPC9wbHVnaW4+Ci0KLQkJCTxwbHVnaW4+Ci0JCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UudHljaG88L2dyb3VwSWQ+Ci0JCQkJPGFydGlmYWN0SWQ+dHljaG8tc291cmNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLQkJCQk8dmVyc2lvbj4ke3R5Y2hvLnZlcnNpb259PC92ZXJzaW9uPgotCi0JCQkJPGV4ZWN1dGlvbnM+Ci0JCQkJCTxleGVjdXRpb24+Ci0JCQkJCQk8aWQ+cGx1Z2luLXNvdXJjZTwvaWQ+Ci0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cGx1Z2luLXNvdXJjZTwvZ29hbD4KLQkJCQkJCTwvZ29hbHM+Ci0JCQkJCTwvZXhlY3V0aW9uPgotCQkJCTwvZXhlY3V0aW9ucz4KLQkJCTwvcGx1Z2luPgotCi0JCSAgIDxwbHVnaW4+Ci0JCQkJPGFydGlmYWN0SWQ+bWF2ZW4tY2xlYW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjMuMC4wPC92ZXJzaW9uPgotCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQk8ZmlsZXNldHM+Ci0JCQkJCQk8ZmlsZXNldD4KLQkJCQkJCQk8ZGlyZWN0b3J5PiR7YmFzZWRpcn08L2RpcmVjdG9yeT4KLQkJCQkJCQk8aW5jbHVkZXM+Ci0JCQkJCQkJCTxpbmNsdWRlPioqL3h0ZW5kLWdlbi8qKjwvaW5jbHVkZT4KLQkJCQkJCQk8L2luY2x1ZGVzPgotCQkJCQkJCTxmb2xsb3dTeW1saW5rcz5mYWxzZTwvZm9sbG93U3ltbGlua3M+Ci0JCQkJCQk8L2ZpbGVzZXQ+Ci0JCQkJCTwvZmlsZXNldHM+Ci0JCQkJPC9jb25maWd1cmF0aW9uPgotCQkJPC9wbHVnaW4+Ci0JCTwvcGx1Z2lucz4KLQk8L2J1aWxkPgotCi0JPHByb2ZpbGVzPgotCQk8cHJvZmlsZT4KLQkJCTxpZD5zaWduPC9pZD4KLQkJCTxidWlsZD4KLQkJCQk8cGx1Z2lucz4KLQkJCQkJPHBsdWdpbj4KLQkJCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLmNiaS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgotCQkJCQkJPGFydGlmYWN0SWQ+ZWNsaXBzZS1qYXJzaWduZXItcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCQkJPHZlcnNpb24+MS4xLjM8L3ZlcnNpb24+Ci0JCQkJCQk8ZXhlY3V0aW9ucz4KLQkJCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJCQk8aWQ+c2lnbjwvaWQ+Ci0JCQkJCQkJCTxwaGFzZT5wYWNrYWdlPC9waGFzZT4KLQkJCQkJCQkJPGdvYWxzPgotCQkJCQkJCQkJPGdvYWw+c2lnbjwvZ29hbD4KLQkJCQkJCQkJPC9nb2Fscz4KLQkJCQkJCQk8L2V4ZWN1dGlvbj4KLQkJCQkJCTwvZXhlY3V0aW9ucz4KLQkJCQkJPC9wbHVnaW4+Ci0JCQkJPC9wbHVnaW5zPgotCQkJPC9idWlsZD4KLQkJPC9wcm9maWxlPgotCTwvcHJvZmlsZXM+ICAKLTwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL2Rldl91dGlscy8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL2Rldl91dGlscy8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmZkMmY0NC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9kZXZfdXRpbHMvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5kZXZfdXRpbHM8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9kZXZfdXRpbHMvd29ya2luZ1NldHMucHNmIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvZGV2X3V0aWxzL3dvcmtpbmdTZXRzLnBzZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjQ0Nzc4Yi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9kZXZfdXRpbHMvd29ya2luZ1NldHMucHNmCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwc2YgdmVyc2lvbj0iMi4wIj4KLQotPHdvcmtpbmdTZXRzIGVkaXRQYWdlSWQ9Im9yZy5lY2xpcHNlLmpkdC51aS5KYXZhV29ya2luZ1NldFBhZ2UiIGlkPSIxNTI5OTE0NjI1MzgwXzEyIiBsYWJlbD0iYnVpbGQiIG5hbWU9ImJ1aWxkIj4KLTxpdGVtIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UudWkuaW50ZXJuYWwubW9kZWwuUmVzb3VyY2VGYWN0b3J5IiBwYXRoPSIvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldCIgdHlwZT0iNCIvPgotPGl0ZW0gZWxlbWVudElEPSI9b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiLz4KLTxpdGVtIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UudWkuaW50ZXJuYWwubW9kZWwuUmVzb3VyY2VGYWN0b3J5IiBwYXRoPSIvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwbyIgdHlwZT0iNCIvPgotPGl0ZW0gZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5tb2RlbC5SZXNvdXJjZUZhY3RvcnkiIHBhdGg9Ii9kZXZfdXRpbHMiIHR5cGU9IjQiLz4KLTwvd29ya2luZ1NldHM+Ci08d29ya2luZ1NldHMgZWRpdFBhZ2VJZD0ib3JnLmVjbGlwc2UuamR0LnVpLkphdmFXb3JraW5nU2V0UGFnZSIgaWQ9IjE1Mjk5MTUyMDI1NTRfMTgiIGxhYmVsPSJFeGFtcGxlc19CdWlsZGVycyIgbmFtZT0iRXhhbXBsZXNfQnVpbGRlcnMiPgotPGl0ZW0gZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5tb2RlbC5SZXNvdXJjZUZhY3RvcnkiIHBhdGg9Ii9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZSIgdHlwZT0iNCIvPgotPGl0ZW0gZWxlbWVudElEPSI9b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiLz4KLTwvd29ya2luZ1NldHM+Ci08d29ya2luZ1NldHMgZWRpdFBhZ2VJZD0ib3JnLmVjbGlwc2UuamR0LnVpLkphdmFXb3JraW5nU2V0UGFnZSIgaWQ9IjE1Mjk0MzkwMjk2NzdfOCIgbGFiZWw9InNhbXBsZS5tb2RlbC50cmFuc2Zvcm1hdGlvbi5leGFtcGxlIiBuYW1lPSJzYW1wbGUubW9kZWwudHJhbnNmb3JtYXRpb24uZXhhbXBsZSI+Ci08aXRlbSBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLnVpLmludGVybmFsLm1vZGVsLlJlc291cmNlRmFjdG9yeSIgcGF0aD0iL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlIiB0eXBlPSI0Ii8+Ci08aXRlbSBlbGVtZW50SUQ9Ij1hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwIiBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLmpkdC51aS5QZXJzaXN0YWJsZUphdmFFbGVtZW50RmFjdG9yeSIvPgotPGl0ZW0gZWxlbWVudElEPSI9YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybSIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiLz4KLTxpdGVtIGVsZW1lbnRJRD0iPWFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5Ii8+Ci08aXRlbSBlbGVtZW50SUQ9Ij1hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5Ii8+Ci08aXRlbSBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLnVpLmludGVybmFsLm1vZGVsLlJlc291cmNlRmFjdG9yeSIgcGF0aD0iL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5mZWF0dXJlIiB0eXBlPSI0Ii8+Ci08L3dvcmtpbmdTZXRzPgotPHdvcmtpbmdTZXRzIGVkaXRQYWdlSWQ9Im9yZy5lY2xpcHNlLmpkdC51aS5KYXZhV29ya2luZ1NldFBhZ2UiIGlkPSIxNTI5NDM5MDI5Njc3XzI0IiBsYWJlbD0ic2FtcGxlLm1vZGVsLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGUuY3VzdG9taXphdGlvbiIgbmFtZT0ic2FtcGxlLm1vZGVsLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGUuY3VzdG9taXphdGlvbiI+Ci08aXRlbSBlbGVtZW50SUQ9Ij1hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcCIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiLz4KLTxpdGVtIGVsZW1lbnRJRD0iPWFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdCIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiLz4KLTxpdGVtIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UudWkuaW50ZXJuYWwubW9kZWwuUmVzb3VyY2VGYWN0b3J5IiBwYXRoPSIvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuZmVhdHVyZSIgdHlwZT0iNCIvPgotPC93b3JraW5nU2V0cz4KLTx3b3JraW5nU2V0cyBlZGl0UGFnZUlkPSJvcmcuZWNsaXBzZS5qZHQudWkuSmF2YVdvcmtpbmdTZXRQYWdlIiBpZD0iMTUyOTIxNTMzMjY0MV8xIiBsYWJlbD0idHJhbnNmb3JtYXRpb24uZnJhbWV3b3JrIiBuYW1lPSJ0cmFuc2Zvcm1hdGlvbi5mcmFtZXdvcmsiPgotPGl0ZW0gZWxlbWVudElEPSI9b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uIiBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLmpkdC51aS5QZXJzaXN0YWJsZUphdmFFbGVtZW50RmFjdG9yeSIvPgotPGl0ZW0gZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5tb2RlbC5SZXNvdXJjZUZhY3RvcnkiIHBhdGg9Ii9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlIiB0eXBlPSI0Ii8+Ci08aXRlbSBlbGVtZW50SUQ9Ij1vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucyIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiLz4KLTxpdGVtIGVsZW1lbnRJRD0iPW9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5sb2c0ai51aS5jb25maWd1cmF0aW9uIiBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLmpkdC51aS5QZXJzaXN0YWJsZUphdmFFbGVtZW50RmFjdG9yeSIvPgotPGl0ZW0gZWxlbWVudElEPSI9b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmxvZzRqLmhlYWRsZXNzLmNvbmZpZ3VyYXRpb24iIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5Ii8+Ci08L3dvcmtpbmdTZXRzPgotPC9wc2Y+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzUwMDlkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLmNsYXNzcGF0aAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxjbGFzc3BhdGg+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KYXZhU0UtMS44Ii8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Ci08L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLmdpdGlnbm9yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLmdpdGlnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJkZDU4OC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLS9iaW4vCi0vdGFyZ2V0LwotL3h0ZW5kLWdlbi8KLS9leGFtcGxlcy8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJmZDhkMi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlcjwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OWYyNmMwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotZW5jb2RpbmcvPHByb2plY3Q+PVVURi04CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzY4YTYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMWVjZWEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wCi1CdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogQVBQNE1DIFRyYW5zZm9ybWF0aW9uIEV4YW1wbGVzIEluc3RhbGxlcgotQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlcjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44Ci1SZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51aQotQnVuZGxlLVZlbmRvcjogRWNsaXBzZSBBUFA0TUMKLUF1dG9tYXRpYy1Nb2R1bGUtTmFtZTogb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9hYm91dC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyYmQwY2IuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSMgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSMgCi0jICAgQ29udHJpYnV0b3JzOgotIyAgCSBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIGV4YW1wbGVzLyxcCi0gICAgICAgICAgICAgICBpY29ucy8sXAotICAgICAgICAgICAgICAgcGx1Z2luLnByb3BlcnRpZXMsXAotICAgICAgICAgICAgICAgcGx1Z2luLnhtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbAotc3JjLmluY2x1ZGVzID0gZXhhbXBsZXMvLFwKLSAgICAgICAgICAgICAgIGljb25zLyxcCi0gICAgICAgICAgICAgICBjb3B5RXhhbXBsZUxpYi5hbnQsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBnZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnQsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2NvcHlFeGFtcGxlTGliLmFudCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvY29weUV4YW1wbGVMaWIuYW50CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTRlYjg5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvY29weUV4YW1wbGVMaWIuYW50CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08IS0tCi0JQ29weXJpZ2h0IChjKSAyMDEyIEVjbGlzcGUgY29udHJpYnV0b3JzIGFuZCBvdGhlcnMuCi0JQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotCWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotCXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0JaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLS0tPgotPHByb2plY3QgbmFtZT0iY29weUV4YW1wbGVMaWIiIGJhc2VkaXI9Ii4uIj4KLQotCTxwcm9wZXJ0eSBuYW1lPSJleGFtcGxlcy5wYXRoIiB2YWx1ZT0iLi4vLi4vYnVpbGQvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9leGFtcGxlcyIgLz4KLQkKLQk8YmFzZW5hbWUgZmlsZT0iJHtidWlsZC5wcm9qZWN0fSIgcHJvcGVydHk9InByb2plY3QiIC8+Ci0KLQk8bWFjcm9kZWYgbmFtZT0iY29weUV4YW1wbGUiPgotCQk8YXR0cmlidXRlIG5hbWU9InByb2plY3QiIC8+Ci0JCTxzZXF1ZW50aWFsPgotCQkJPGRlbGV0ZSBpbmNsdWRlZW1wdHlkaXJzPSJ0cnVlIiBmYWlsb25lcnJvcj0iZmFsc2UiPgotCQkJCTxmaWxlc2V0IGRpcj0iJHtleGFtcGxlcy5wYXRofS9Ae3Byb2plY3R9Ij4KLQkJCQkJPGluY2x1ZGUgbmFtZT0iKioiIC8+Ci0JCQkJPC9maWxlc2V0PgotCQkJPC9kZWxldGU+Ci0KLQkJCTxjb3B5IHRvZGlyPSIke2V4YW1wbGVzLnBhdGh9L0B7cHJvamVjdH0iIG92ZXJ3cml0ZT0idHJ1ZSI+Ci0JCQkJPGZpbGVzZXQgZGlyPSJAe3Byb2plY3R9Ij4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLmV4dGVybmFsVG9vbEJ1aWxkZXJzLyIgLz4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0iZGF0YWJhc2UvIiAvPgotCQkJCQk8ZXhjbHVkZSBuYW1lPSJiaW4vIiAvPgotCQkJCQk8ZXhjbHVkZSBuYW1lPSJ0YXJnZXQvIiAvPgotCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UubXlseW4qIiAvPgotCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLmFwaS50b29scy5wcmVmcyIgLz4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovLmdpdGlnbm9yZSIgLz4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcG9tLnhtbCIgLz4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcmVsZWFzZS4qIiAvPgotCQkJCQk8aW5jbHVkZSBuYW1lPSIqKiIgLz4KLQkJCQk8L2ZpbGVzZXQ+Ci0JCQk8L2NvcHk+Ci0JCQkKLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMucGF0aH0vQHtwcm9qZWN0fS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0ic2ciCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMucGF0aH0vQHtwcm9qZWN0fS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0icyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMuYXBpQW5hbHlzaXNCdWlsZGVyLio/Jmx0Oy9idWlsZENvbW1hbmQ+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLnBhdGh9L0B7cHJvamVjdH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5lbWYuY2RvLnJlbGVuZy52ZXJzaW9uLlZlcnNpb25CdWlsZGVyLio/Jmx0Oy9idWlsZENvbW1hbmQ+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLnBhdGh9L0B7cHJvamVjdH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLnBhdGh9L0B7cHJvamVjdH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5lbWYuY2RvLnJlbGVuZy52ZXJzaW9uLlZlcnNpb25OYXR1cmUmbHQ7L25hdHVyZT4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQotCQk8L3NlcXVlbnRpYWw+Ci0JPC9tYWNyb2RlZj4KLQotPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2VwbC0yLjAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM3YTE4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2VwbC0yLjAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgotICAgIDx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAyLjA8L3RpdGxlPgotICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gICAgICBib2R5IHsKLSAgICAgICAgbWFyZ2luOiAxLjVlbSAzZW07Ci0gICAgICB9Ci0gICAgICBoMXsKLSAgICAgICAgZm9udC1zaXplOjEuNWVtOwotICAgICAgfQotICAgICAgaDJ7Ci0gICAgICAgIGZvbnQtc2l6ZToxZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206MC41ZW07Ci0gICAgICAgIG1hcmdpbi10b3A6MWVtOwotICAgICAgfQotICAgICAgcCB7Ci0gICAgICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Ci0gICAgICB9Ci0gICAgICB1bCwgb2x7Ci0gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lOwotICAgICAgfQotICAgIDwvc3R5bGU+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPGgxPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMDwvaDE+Ci0gICAgPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKLSAgICAgIFBVQkxJQyBMSUNFTlNFICgmbGRxdW87QUdSRUVNRU5UJnJkcXVvOykuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KLSAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCYjMDM5O1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgotICAgIDxwPiZsZHF1bztDb250cmlidXRpb24mcmRxdW87IG1lYW5zOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvbnRlbnQKLSAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT4KLSAgICAgICAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvbGk+Ci0gICAgICAgICAgPGxpPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgICAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KLSAgICAgICAgYW5kIGFyZSBEaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCi0gICAgICAgICZsZHF1bztvcmlnaW5hdGVzJnJkcXVvOyBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvciYjMDM5O3MgYmVoYWxmLgotICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKLSAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0b3ImcmRxdW87IG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9wPgotICAgIDxwPiZsZHF1bztMaWNlbnNlZCBQYXRlbnRzJnJkcXVvOyBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCi0gICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCi0gICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztQcm9ncmFtJnJkcXVvOyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcwotICAgICAgQWdyZWVtZW50LgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UmVjaXBpZW50JnJkcXVvOyBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICBvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGVyaXZhdGl2ZSBXb3JrcyZyZHF1bzsgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgotICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQotICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztNb2RpZmllZCBXb3JrcyZyZHF1bzsgc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKLSAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQotICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCi0gICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAotICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAotICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKLSAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKLSAgICAgIFdvcmtzIHRoZXJlb2YuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztEaXN0cmlidXRlJnJkcXVvOyBtZWFucyB0aGUgYWN0cyBvZiBhKSBkaXN0cmlidXRpbmcgb3IgYikgbWFraW5nIGF2YWlsYWJsZQotICAgICAgaW4gYW55IG1hbm5lciB0aGF0IGVuYWJsZXMgdGhlIHRyYW5zZmVyIG9mIGEgY29weS4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1NvdXJjZSBDb2RlJnJkcXVvOyBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKLSAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCi0gICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTZWNvbmRhcnkgTGljZW5zZSZyZHF1bzsgbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKLSAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55Ci0gICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAotICAgICAgQ29udHJpYnV0b3IuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLSAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAotICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLSAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAotICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAotICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCi0gICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAotICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCi0gICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCi0gICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAotICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKLSAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCi0gICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCi0gICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCi0gICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQotICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgotICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCi0gICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi0gICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cwotICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKLSAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bwotICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50JiMwMzk7cwotICAgICAgICByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50Ci0gICAgICAgIGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0Ci0gICAgICAgIGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgotICAgICAgPC9saT4KLSAgICAgIDxsaT5lKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8gQ29udHJpYnV0b3IKLSAgICAgICAgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbiB0aG9zZSBzZXQgZm9ydGgKLSAgICAgICAgaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyByZWNlaXB0IG9mIHRoZQotICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKLSAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+Ci0gICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCi0gICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQotICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQotICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCi0gICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKLSAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT4KLSAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQotICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKLSAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKLSAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCi0gICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCi0gICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMmIzAzOTsgcmlnaHRzIGluIHRoZQotICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5Ci0gICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KLSAgICAgICAgICA8L2xpPgotICAgICAgICA8L3VsPgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCi0gICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCi0gICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCi0gICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCi0gICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCi0gICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAotICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQotICAgICAgKCZsc3F1bztub3RpY2VzJnJzcXVvOykgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbSBmcm9tIGFueSBjb3B5IG9mIHRoZSBQcm9ncmFtIHdoaWNoCi0gICAgICB0aGV5IERpc3RyaWJ1dGUsIHByb3ZpZGVkIHRoYXQgQ29udHJpYnV0b3JzIG1heSBhZGQgdGhlaXIgb3duIGFwcHJvcHJpYXRlCi0gICAgICBub3RpY2VzLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImNvbW1lcmNpYWwtZGlzdHJpYnV0aW9uIj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvaDI+Ci0gICAgPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMKLSAgICAgIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcwotICAgICAgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZiB0aGUgUHJvZ3JhbSwgdGhlCi0gICAgICBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkCi0gICAgICBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIKLSAgICAgIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEKLSAgICAgIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAoJmxkcXVvO0NvbW1lcmNpYWwgQ29udHJpYnV0b3ImcmRxdW87KQotICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgotICAgICAgKCZsZHF1bztJbmRlbW5pZmllZCBDb250cmlidXRvciZyZHF1bzspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKLSAgICAgIChjb2xsZWN0aXZlbHkgJmxkcXVvO0xvc3NlcyZyZHF1bzspIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zCi0gICAgICBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudAotICAgICAgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgotICAgICAgd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLgotICAgICAgVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcKLSAgICAgIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0bwotICAgICAgcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAotICAgICAgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLAotICAgICAgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKLSAgICAgIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCi0gICAgPC9wPgotICAgIDxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0KLSAgICAgIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCi0gICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotICAgICAgY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zCi0gICAgICBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJiMwMzk7cyByZXNwb25zaWJpbGl0eSBhbG9uZS4KLSAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCi0gICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi0gICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCi0gICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgotICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKLSAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmbGRxdW87QVMgSVMmcmRxdW87IEJBU0lTLCBXSVRIT1VUCi0gICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAotICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAotICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcwotICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCi0gICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCi0gICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQotICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgotICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgotICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKLSAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQotICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCi0gICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCi0gICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+Ci0gICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKLSAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKLSAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQotICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAotICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgotICAgIDwvcD4KLSAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCi0gICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgotICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKLSAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyByaWdodHMgZ3JhbnRlZAotICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi0gICAgPC9wPgotICAgIDxwPkFsbCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KLSAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKLSAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZwotICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQotICAgICAgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQmIzAzOTtzIG9ibGlnYXRpb25zIHVuZGVyCi0gICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQotICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KLSAgICA8L3A+Ci0gICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5Ci0gICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKLSAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAotICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAotICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcwotICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCi0gICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KLSAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCi0gICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3Ci0gICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQotICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgotICAgIDwvcD4KLSAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKLSAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQotICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKLSAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKLSAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAotICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KLSAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSAmbmRhc2g7IEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZTwvaDI+Ci0gICAgPHA+JmxkcXVvO1RoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKLSAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKLSAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAotICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LiZyZHF1bzsKLSAgICA8L3A+Ci0gICAgPGJsb2NrcXVvdGU+Ci0gICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCi0gICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KLSAgICAgIDwvcD4KLSAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCi0gICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCi0gICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCi0gICAgICAgIHN1Y2ggYSBub3RpY2UuCi0gICAgICA8L3A+Ci0gICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+Ci0gICAgPC9ibG9ja3F1b3RlPgotICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9nZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2dlbmVyYXRlVHJhbnNmb3JtYXRpb25FeGFtcGxlc0J1aWxkZXJzLmFudApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTM2MzU3Yy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2dlbmVyYXRlVHJhbnNmb3JtYXRpb25FeGFtcGxlc0J1aWxkZXJzLmFudAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/PgotPCEtLQotCUNvcHlyaWdodCAoYykgMjAxMiBFY2xpcHNlIGNvbnRyaWJ1dG9ycyBhbmQgb3RoZXJzLgotCUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLQlhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLQl3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotCWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0tLT4KLTxwcm9qZWN0IG5hbWU9ImdlbmVyYXRlRXhhbXBsZUJ1aWxkZXJzIiBkZWZhdWx0PSJtYWluIj4KLQotCQotCQotCQotCQotCTx0YXJnZXQgbmFtZT0ibWFpbiI+Ci0JCTxlY2hvIG1lc3NhZ2U9IiR7cmVsZW5nLmxvY2F0aW9ufSI+PC9lY2hvPgotCQk8amF2YSBmb3JrPSJmYWxzZSIgY2xhc3NwYXRoPSIke3JlbGVuZy5sb2NhdGlvbn0vYmluIiBjbGFzc25hbWU9Im9yZy5lY2xpcHNlLmFwcDRtYy5wbGF0Zm9ybS5leGFtcGxlc2J1aWxkZXIuR2VuZXJhdGVFeGFtcGxlQnVpbGRlcnMiPgotCQkJPGFyZyB2YWx1ZT0iJHtyZWxlbmcubG9jYXRpb259IiAvPgotCQkJPGFyZyB2YWx1ZT0iJHtidWlsZC5wcm9qZWN0fSIgLz4KLQkJPC9qYXZhPgotCTwvdGFyZ2V0PgotCi08L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2ljb25zL2Z1bGwvY3Rvb2wxNi9OZXdFTUZFeGFtcGxlLmdpZiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvaWNvbnMvZnVsbC9jdG9vbDE2L05ld0VNRkV4YW1wbGUuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YWNiYmM2Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvaWNvbnMvZnVsbC9jdG9vbDE2L05ld0VNRkV4YW1wbGUuZ2lmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9pY29ucy9mdWxsL3dpemJhbi9OZXdFTUZFeGFtcGxlLmdpZiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvaWNvbnMvZnVsbC93aXpiYW4vTmV3RU1GRXhhbXBsZS5naWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyNDk4MzEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9pY29ucy9mdWxsL3dpemJhbi9OZXdFTUZFeGFtcGxlLmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciBnZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnQubGF1bmNoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyIGdlbmVyYXRlVHJhbnNmb3JtYXRpb25FeGFtcGxlc0J1aWxkZXJzLmFudC5sYXVuY2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiMDUyZmMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyIGdlbmVyYXRlVHJhbnNmb3JtYXRpb25FeGFtcGxlc0J1aWxkZXJzLmFudC5sYXVuY2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KLTxsYXVuY2hDb25maWd1cmF0aW9uIHR5cGU9Im9yZy5lY2xpcHNlLmFudC5BbnRMYXVuY2hDb25maWd1cmF0aW9uVHlwZSI+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aS5ERUZBVUxUX1ZNX0lOU1RBTEwiIHZhbHVlPSJ0cnVlIi8+Ci08bGlzdEF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuTUFQUEVEX1JFU09VUkNFX1BBVEhTIj4KLTxsaXN0RW50cnkgdmFsdWU9Ii9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2dlbmVyYXRlVHJhbnNmb3JtYXRpb25FeGFtcGxlc0J1aWxkZXJzLmFudCIvPgotPC9saXN0QXR0cmlidXRlPgotPGxpc3RBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLk1BUFBFRF9SRVNPVVJDRV9UWVBFUyI+Ci08bGlzdEVudHJ5IHZhbHVlPSIxIi8+Ci08L2xpc3RBdHRyaWJ1dGU+Ci08bGlzdEF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuQ0xBU1NQQVRIIj4KLTxsaXN0RW50cnkgdmFsdWU9IiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7IHN0YW5kYWxvbmU9JnF1b3Q7bm8mcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cnVudGltZUNsYXNzcGF0aEVudHJ5IGNvbnRhaW5lclBhdGg9JnF1b3Q7b3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9qcmU4JnF1b3Q7IHBhdGg9JnF1b3Q7MSZxdW90OyB0eXBlPSZxdW90OzQmcXVvdDsvJmd0OyYjMTM7JiMxMDsiLz4KLTxsaXN0RW50cnkgdmFsdWU9IiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7IHN0YW5kYWxvbmU9JnF1b3Q7bm8mcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cnVudGltZUNsYXNzcGF0aEVudHJ5IGlkPSZxdW90O29yZy5lY2xpcHNlLmFudC51aS5jbGFzc3BhdGhlbnRyeS5hbnRIb21lJnF1b3Q7Jmd0OyYjMTM7JiMxMDsmbHQ7bWVtZW50byBkZWZhdWx0PSZxdW90O3RydWUmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3J1bnRpbWVDbGFzc3BhdGhFbnRyeSZndDsmIzEzOyYjMTA7Ii8+Ci08bGlzdEVudHJ5IHZhbHVlPSImbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90OyBzdGFuZGFsb25lPSZxdW90O25vJnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3J1bnRpbWVDbGFzc3BhdGhFbnRyeSBpZD0mcXVvdDtvcmcuZWNsaXBzZS5hbnQudWkuY2xhc3NwYXRoZW50cnkuZXh0cmFDbGFzc3BhdGhFbnRyaWVzJnF1b3Q7Jmd0OyYjMTM7JiMxMDsmbHQ7bWVtZW50by8mZ3Q7JiMxMzsmIzEwOyZsdDsvcnVudGltZUNsYXNzcGF0aEVudHJ5Jmd0OyYjMTM7JiMxMDsiLz4KLTxsaXN0RW50cnkgdmFsdWU9IiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7IHN0YW5kYWxvbmU9JnF1b3Q7bm8mcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cnVudGltZUNsYXNzcGF0aEVudHJ5IGludGVybmFsQXJjaGl2ZT0mcXVvdDsvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmJ1aWxkZXIvYmluJnF1b3Q7IHBhdGg9JnF1b3Q7MyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsiLz4KLTwvbGlzdEF0dHJpYnV0ZT4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkNMQVNTUEFUSF9QUk9WSURFUiIgdmFsdWU9Im9yZy5lY2xpcHNlLmFudC51aS5BbnRDbGFzc3BhdGhQcm92aWRlciIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkRFRkFVTFRfQ0xBU1NQQVRIIiB2YWx1ZT0iZmFsc2UiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIiIHZhbHVlPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL2pyZTgiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLk1BSU5fVFlQRSIgdmFsdWU9Im9yZy5lY2xpcHNlLmFudC5pbnRlcm5hbC5sYXVuY2hpbmcucmVtb3RlLkludGVybmFsQW50UnVubmVyIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5QUk9KRUNUX0FUVFIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5TT1VSQ0VfUEFUSF9QUk9WSURFUiIgdmFsdWU9Im9yZy5lY2xpcHNlLmFudC51aS5BbnRDbGFzc3BhdGhQcm92aWRlciIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9MT0NBVElPTiIgdmFsdWU9IiR7d29ya3NwYWNlX2xvYzovb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9nZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnR9Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX1RPT0xfQVJHVU1FTlRTIiB2YWx1ZT0iLURidWlsZC5wcm9qZWN0PSR7cHJvamVjdF9sb2M6L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXJ9JiMxMzsmIzEwOy1EcmVsZW5nLmxvY2F0aW9uPSR7cHJvamVjdF9sb2M6L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5idWlsZGVyfSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9InByb2Nlc3NfZmFjdG9yeV9pZCIgdmFsdWU9Im9yZy5lY2xpcHNlLmFudC51aS5yZW1vdGVBbnRQcm9jZXNzRmFjdG9yeSIvPgotPC9sYXVuY2hDb25maWd1cmF0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9wbHVnaW4ucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvcGx1Z2luLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNTZlY2QuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9wbHVnaW4ucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIyAgQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0jICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotIyAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0jIAotIyAgIENvbnRyaWJ1dG9yczoKLSMgIAkgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSMgCi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLQotIyBOTFNfTUVTU0FHRUZPUk1BVF9WQVIKLQotX1VJX0FNQUxUSEVBX0V4YW1wbGVzQ2F0ZWdvcnlfbmFtZSA9IEFNQUxUSEVBIEV4YW1wbGVzCi0KLV9VSV9BTUFMVEhFQV9EZW1vY2FyRXhhbXBsZXNXaXphcmRfbmFtZSA9IERlbW9jYXIgRXhhbXBsZXMKLV9VSV9BTUFMVEhFQV9EZW1vY2FyRXhhbXBsZXNXaXphcmRfZGVzYyA9IENyZWF0ZSBwcm9qZWN0cyB0aGF0IGNvbnRhaW4gdGhlIERlbW9jYXIgRXhhbXBsZQotX1VJX0FNQUxUSEVBX0h3bW9kZWxFeGFtcGxlc1dpemFyZF9uYW1lID0gSHdtb2RlbCBFeGFtcGxlcwotX1VJX0FNQUxUSEVBX0h3bW9kZWxFeGFtcGxlc1dpemFyZF9kZXNjID0gQ3JlYXRlIGEgcHJvamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBId21vZGVsIEV4YW1wbGUKLV9VSV9BTUFMVEhFQV9Nb2RlbGluZ0V4YW1wbGVzV2l6YXJkX25hbWUgPSBNb2RlbGluZyBFeGFtcGxlcwotX1VJX0FNQUxUSEVBX01vZGVsaW5nRXhhbXBsZXNXaXphcmRfZGVzYyA9IENyZWF0ZSBhIHByb2plY3QgdGhhdCBjb250YWlucyB0aGUgTW9kZWxpbmcgRXhhbXBsZQotCi1fVUlfQU1BTFRIRUFfRXhhbXBsZV9EZW1vY2FyX1Byb2plY3RfZGVzYyA9IFRoZSBwcm9qZWN0IGNvbnRhaW5zIHRoZSBBTUFMVEhFQSBtb2RlbHMgb2YgdGhlIERlbW9jYXIgZXhhbXBsZQotX1VJX0FNQUxUSEVBX0V4YW1wbGVfSHdtb2RlbF9Qcm9qZWN0X2Rlc2MgPSBUaGUgcHJvamVjdCBjb250YWlucyB0aGUgQU1BTFRIRUEgbW9kZWxzIG9mIGhhcmR3YXJlIGRlc2NyaXB0aW9uIGV4YW1wbGVzCi1fVUlfQU1BTFRIRUFfRXhhbXBsZV9Nb2RlbGluZ19Qcm9qZWN0X2Rlc2MgPSBUaGUgcHJvamVjdCBjb250YWlucyB0aGUgQU1BTFRIRUEgbW9kZWxzIG9mIE1vZGVsaW5nIEV4YW1wbGVzCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL3BsdWdpbi54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2NjA1YTEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9wbHVnaW4ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/ZWNsaXBzZSB2ZXJzaW9uPSIzLjQiPz4KLTxwbHVnaW4+Ci0gICA8ZXh0ZW5zaW9uIHBvaW50PSJvcmcuZWNsaXBzZS51aS5uZXdXaXphcmRzIj4KLSAgICAgIDxjYXRlZ29yeQotICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50b29scy5FeGFtcGxlcyIKLSAgICAgICAgICAgIG5hbWU9IkFQUDRNQyBUb29scyBFeGFtcGxlcyIKLSAgICAgICAgICAgIHBhcmVudENhdGVnb3J5PSJvcmcuZWNsaXBzZS51aS5FeGFtcGxlcyI+Ci0gICAgICA8L2NhdGVnb3J5PgotICAgICAgICAgICAgPHdpemFyZAotICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5UcmFuc2Zvcm1hdGlvbldpemFyZCIKLSAgICAgICAgICAgIG5hbWU9Ik1vZGVsIFRyYW5zZm9ybWF0aW9uIEV4YW1wbGUiCi0gICAgICAgICAgICBjbGFzcz0ib3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51aS53aXphcmQuRXhhbXBsZUluc3RhbGxlcldpemFyZCIKLSAgICAgICAgICAgIGNhdGVnb3J5PSJvcmcuZWNsaXBzZS51aS5FeGFtcGxlcy9vcmcuZWNsaXBzZS5hcHA0bWMudG9vbHMuRXhhbXBsZXMiCi0gICAgICAgICAgICBwcm9qZWN0PSJ0cnVlIgotICAgICAgICAgICAgaWNvbj0iaWNvbnMvZnVsbC9jdG9vbDE2L05ld0VNRkV4YW1wbGUuZ2lmIj4KLSAgICAgICAgIDxkZXNjcmlwdGlvbj5FTUYgbW9kZWwgdHJhbnNmb3JtYXRpb24gZXhhbXBsZTwvZGVzY3JpcHRpb24+Ci0gICAgICA8L3dpemFyZD4KLSAgIDwvZXh0ZW5zaW9uPgotCi0KLSAgIDxleHRlbnNpb24gcG9pbnQ9Im9yZy5lY2xpcHNlLmVtZi5jb21tb24udWkuZXhhbXBsZXMiPgotICAgICAgPGV4YW1wbGUKLSAgICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuRXhhbXBsZXMiCi0gICAgICAgICAgICB3aXphcmRJRD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLlRyYW5zZm9ybWF0aW9uV2l6YXJkIgotICAgICAgICAgICAgcGFnZUltYWdlPSJpY29ucy9mdWxsL3dpemJhbi9OZXdFTUZFeGFtcGxlLmdpZiI+Ci0gICAgICAgICAgICAgICA8cHJvamVjdERlc2NyaXB0b3IKLSAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAiCi0gICAgICAgICAgICAgICAgICAgICBjb250ZW50VVJJPSJleGFtcGxlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLyIKLSAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTYW1wbGUgQXBwbGljYXRpb24gUHJvamVjdCIvPgotICAgICAgICAgICAgICAgPHByb2plY3REZXNjcmlwdG9yCi0gICAgICAgICAgICAgICAgICAgICBuYW1lPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0IgotICAgICAgICAgICAgICAgICAgICAgY29udGVudFVSST0iZXhhbXBsZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8iCi0gICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU2FtcGxlIE0yVCBwcm9qZWN0Ii8+Ci0gICAgICAgICAgICAgICA8cHJvamVjdERlc2NyaXB0b3IKLSAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0iCi0gICAgICAgICAgICAgICAgICAgICBjb250ZW50VVJJPSJleGFtcGxlcy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLyIKLSAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTYW1wbGUgTTJNIHByb2plY3QiLz4KLSAgICAgICAgICAgICAgIDxwcm9qZWN0RGVzY3JpcHRvcgotICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsIgotICAgICAgICAgICAgICAgICAgICAgY29udGVudFVSST0iZXhhbXBsZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLyIKLSAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTYW1wbGUgRU1GIG1vZGVsIi8+Ci0gICAgICA8L2V4YW1wbGU+Ci0gICAgPC9leHRlbnNpb24+Ci0gICAgCi0gICAgCi08L3BsdWdpbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjcxZTUwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlVwZGF0ZVNpdGVCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuVXBkYXRlU2l0ZU5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby9hYm91dC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmZjg2ZDcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1wb20ubW9kZWwuYXJ0aWZhY3RJZCA9IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8KLXBvbS5tb2RlbC5uYW1lID0gQVBQNE1DIE1vZGVsIFRyYW5zZm9ybWF0aW9uIFAyIFVwZGF0ZXNpdGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2NhdGVnb3J5LnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vY2F0ZWdvcnkueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZWRhNDZhLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vY2F0ZWdvcnkueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxzaXRlPgotICAgPGZlYXR1cmUgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb3JlLmZlYXR1cmUiPgotICAgICAgPGNhdGVnb3J5IG5hbWU9IkFQUDRNQyBNb2RlbCBUcmFuc2Zvcm1hdGlvbiIvPgotICAgPC9mZWF0dXJlPgotICAgPGZlYXR1cmUgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlIj4KLSAgICAgIDxjYXRlZ29yeSBuYW1lPSJBUFA0TUMgTW9kZWwgVHJhbnNmb3JtYXRpb24iLz4KLSAgIDwvZmVhdHVyZT4KLSAgIDxmZWF0dXJlIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ubG9nNGouY29uZmlndXJhdGlvbi5mZWF0dXJlIj4KLSAgICAgIDxjYXRlZ29yeSBuYW1lPSJBUFA0TUMgTW9kZWwgVHJhbnNmb3JtYXRpb24iLz4KLSAgIDwvZmVhdHVyZT4KLSAgIDxjYXRlZ29yeS1kZWYgbmFtZT0iQVBQNE1DIE1vZGVsIFRyYW5zZm9ybWF0aW9uIiBsYWJlbD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwbyIvPgotPC9zaXRlPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2VwbC0yLjAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM3YTE4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2VwbC0yLjAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgotICAgIDx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAyLjA8L3RpdGxlPgotICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gICAgICBib2R5IHsKLSAgICAgICAgbWFyZ2luOiAxLjVlbSAzZW07Ci0gICAgICB9Ci0gICAgICBoMXsKLSAgICAgICAgZm9udC1zaXplOjEuNWVtOwotICAgICAgfQotICAgICAgaDJ7Ci0gICAgICAgIGZvbnQtc2l6ZToxZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206MC41ZW07Ci0gICAgICAgIG1hcmdpbi10b3A6MWVtOwotICAgICAgfQotICAgICAgcCB7Ci0gICAgICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Ci0gICAgICB9Ci0gICAgICB1bCwgb2x7Ci0gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lOwotICAgICAgfQotICAgIDwvc3R5bGU+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPGgxPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMDwvaDE+Ci0gICAgPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKLSAgICAgIFBVQkxJQyBMSUNFTlNFICgmbGRxdW87QUdSRUVNRU5UJnJkcXVvOykuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KLSAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCYjMDM5O1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgotICAgIDxwPiZsZHF1bztDb250cmlidXRpb24mcmRxdW87IG1lYW5zOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvbnRlbnQKLSAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT4KLSAgICAgICAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvbGk+Ci0gICAgICAgICAgPGxpPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgICAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KLSAgICAgICAgYW5kIGFyZSBEaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCi0gICAgICAgICZsZHF1bztvcmlnaW5hdGVzJnJkcXVvOyBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvciYjMDM5O3MgYmVoYWxmLgotICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKLSAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0b3ImcmRxdW87IG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9wPgotICAgIDxwPiZsZHF1bztMaWNlbnNlZCBQYXRlbnRzJnJkcXVvOyBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCi0gICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCi0gICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztQcm9ncmFtJnJkcXVvOyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcwotICAgICAgQWdyZWVtZW50LgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UmVjaXBpZW50JnJkcXVvOyBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICBvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGVyaXZhdGl2ZSBXb3JrcyZyZHF1bzsgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgotICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQotICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztNb2RpZmllZCBXb3JrcyZyZHF1bzsgc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKLSAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQotICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCi0gICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAotICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAotICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKLSAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKLSAgICAgIFdvcmtzIHRoZXJlb2YuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztEaXN0cmlidXRlJnJkcXVvOyBtZWFucyB0aGUgYWN0cyBvZiBhKSBkaXN0cmlidXRpbmcgb3IgYikgbWFraW5nIGF2YWlsYWJsZQotICAgICAgaW4gYW55IG1hbm5lciB0aGF0IGVuYWJsZXMgdGhlIHRyYW5zZmVyIG9mIGEgY29weS4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1NvdXJjZSBDb2RlJnJkcXVvOyBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKLSAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCi0gICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTZWNvbmRhcnkgTGljZW5zZSZyZHF1bzsgbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKLSAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55Ci0gICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAotICAgICAgQ29udHJpYnV0b3IuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLSAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAotICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLSAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAotICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAotICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCi0gICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAotICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCi0gICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCi0gICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAotICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKLSAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCi0gICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCi0gICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCi0gICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQotICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgotICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCi0gICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi0gICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cwotICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKLSAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bwotICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50JiMwMzk7cwotICAgICAgICByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50Ci0gICAgICAgIGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0Ci0gICAgICAgIGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgotICAgICAgPC9saT4KLSAgICAgIDxsaT5lKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8gQ29udHJpYnV0b3IKLSAgICAgICAgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbiB0aG9zZSBzZXQgZm9ydGgKLSAgICAgICAgaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyByZWNlaXB0IG9mIHRoZQotICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKLSAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+Ci0gICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCi0gICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQotICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQotICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCi0gICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKLSAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT4KLSAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQotICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKLSAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKLSAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCi0gICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCi0gICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMmIzAzOTsgcmlnaHRzIGluIHRoZQotICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5Ci0gICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KLSAgICAgICAgICA8L2xpPgotICAgICAgICA8L3VsPgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCi0gICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCi0gICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCi0gICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCi0gICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCi0gICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAotICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQotICAgICAgKCZsc3F1bztub3RpY2VzJnJzcXVvOykgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbSBmcm9tIGFueSBjb3B5IG9mIHRoZSBQcm9ncmFtIHdoaWNoCi0gICAgICB0aGV5IERpc3RyaWJ1dGUsIHByb3ZpZGVkIHRoYXQgQ29udHJpYnV0b3JzIG1heSBhZGQgdGhlaXIgb3duIGFwcHJvcHJpYXRlCi0gICAgICBub3RpY2VzLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImNvbW1lcmNpYWwtZGlzdHJpYnV0aW9uIj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvaDI+Ci0gICAgPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMKLSAgICAgIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcwotICAgICAgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZiB0aGUgUHJvZ3JhbSwgdGhlCi0gICAgICBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkCi0gICAgICBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIKLSAgICAgIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEKLSAgICAgIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAoJmxkcXVvO0NvbW1lcmNpYWwgQ29udHJpYnV0b3ImcmRxdW87KQotICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgotICAgICAgKCZsZHF1bztJbmRlbW5pZmllZCBDb250cmlidXRvciZyZHF1bzspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKLSAgICAgIChjb2xsZWN0aXZlbHkgJmxkcXVvO0xvc3NlcyZyZHF1bzspIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zCi0gICAgICBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudAotICAgICAgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgotICAgICAgd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLgotICAgICAgVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcKLSAgICAgIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0bwotICAgICAgcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAotICAgICAgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLAotICAgICAgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKLSAgICAgIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCi0gICAgPC9wPgotICAgIDxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0KLSAgICAgIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCi0gICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotICAgICAgY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zCi0gICAgICBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJiMwMzk7cyByZXNwb25zaWJpbGl0eSBhbG9uZS4KLSAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCi0gICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi0gICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCi0gICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgotICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKLSAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmbGRxdW87QVMgSVMmcmRxdW87IEJBU0lTLCBXSVRIT1VUCi0gICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAotICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAotICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcwotICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCi0gICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCi0gICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQotICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgotICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgotICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKLSAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQotICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCi0gICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCi0gICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+Ci0gICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKLSAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKLSAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQotICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAotICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgotICAgIDwvcD4KLSAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCi0gICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgotICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKLSAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyByaWdodHMgZ3JhbnRlZAotICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi0gICAgPC9wPgotICAgIDxwPkFsbCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KLSAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKLSAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZwotICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQotICAgICAgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQmIzAzOTtzIG9ibGlnYXRpb25zIHVuZGVyCi0gICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQotICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KLSAgICA8L3A+Ci0gICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5Ci0gICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKLSAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAotICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAotICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcwotICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCi0gICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KLSAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCi0gICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3Ci0gICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQotICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgotICAgIDwvcD4KLSAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKLSAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQotICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKLSAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKLSAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAotICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KLSAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSAmbmRhc2g7IEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZTwvaDI+Ci0gICAgPHA+JmxkcXVvO1RoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKLSAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKLSAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAotICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LiZyZHF1bzsKLSAgICA8L3A+Ci0gICAgPGJsb2NrcXVvdGU+Ci0gICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCi0gICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KLSAgICAgIDwvcD4KLSAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCi0gICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCi0gICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCi0gICAgICAgIHN1Y2ggYSBub3RpY2UuCi0gICAgICA8L3A+Ci0gICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+Ci0gICAgPC9ibG9ja3F1b3RlPgotICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby9zaXRlVGVtcGxhdGUvaW5kZXguaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vc2l0ZVRlbXBsYXRlL2luZGV4Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlMGY3N2QuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby9zaXRlVGVtcGxhdGUvaW5kZXguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTxodG1sPgotCTxoZWFkPgotCQk8dGl0bGU+JHt1cGRhdGUuc2l0ZS5uYW1lfSBVcGRhdGUgU2l0ZTwvdGl0bGU+Ci0JPC9oZWFkPgotCi0JPGJvZHkgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCIgbGVmdG1hcmdpbj0iMCIgdG9wbWFyZ2luPSIwIj4KLQkJCi0JCTxoMiBjbGFzcz0idGl0bGUiPiR7dXBkYXRlLnNpdGUubmFtZX0gLSBVc2UgdGhpcyBVUkwgaW4gRWNsaXBzZSB0byBpbnN0YWxsICR7dXBkYXRlLnNpdGUubmFtZX08L2gyPgotCQotCQk8cD5UaGlzIGlzIHRoZSBVcGRhdGUgU2l0ZSBmb3IgJHt1cGRhdGUuc2l0ZS5uYW1lfS4KLQkJCTxvbD4KLQkJCQk8bGk+VG8gaW5zdGFsbCAke3VwZGF0ZS5zaXRlLm5hbWV9IGZyb20gdGhpcyBzaXRlLCBzdGFydCB1cCBFY2xpcHNlICR7dGFyZ2V0LmVjbGlwc2UudmVyc2lvbn0sIHRoZW4gZG86Ci0JCQkJCTx1bD48Y29kZT48c3Ryb25nPkhlbHAgPiBJbnN0YWxsIE5ldyBTb2Z0d2FyZS4uLiA+PC9zdHJvbmc+PC9jb2RlPjwvdWw+Ci0JCQkJPC9saT4KLQkJCQk8bGk+Q29weSB0aGlzIHNpdGUncyBVUkwgaW50byBFY2xpcHNlLCBhbmQgaGl0IEVudGVyLjwvbGk+Ci0JCQkJPGxpPldoZW4gdGhlIHNpdGUgbG9hZHMsIHNlbGVjdCB0aGUgZmVhdHVyZXMgdG8gaW5zdGFsbCwgb3IgY2xpY2sgdGhlIDxjb2RlPjxzdHJvbmc+U2VsZWN0IEFsbDwvc3Ryb25nPjwvY29kZT4gYnV0dG9uLjwvbGk+Ci0JCQkJPGxpPlRvIHByb3Blcmx5IHJlc29sdmUgYWxsIGRlcGVuZGVuY2llcywgY2hlY2sgCi0JCQkJCTx1bD48Y29kZT48c3Ryb25nPlt4XSBDb250YWN0IGFsbCB1cGRhdGUgc2l0ZXMgZHVyaW5nIGluc3RhbGwgdG8gZmluZCByZXF1aXJlZCBzb2Z0d2FyZTwvc3Ryb25nPjwvY29kZT48L3VsPgotCQkJCTxsaT5DbGljayA8Y29kZT48c3Ryb25nPk5leHQ8L3N0cm9uZz48L2NvZGU+LCBhZ3JlZSB0byB0aGUgbGljZW5zZSB0ZXJtcywgYW5kIGluc3RhbGwuPC9saT4KLQkJCTwvb2w+Ci0JCTwvcD4KLQotCQk8cD4ke3NpdGUuY29udGVudHN9PC9wPgotCTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0Ly5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTYxZGNlZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0Ly5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldDwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQvYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KLTx0aXRsZT5BYm91dDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keSBsYW5nPSJFTi1VUyI+Ci0JPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+Ci0KLQk8cD5Ob3ZlbWJlciAzMCwgMjAxNzwvcD4KLQk8aDM+TGljZW5zZTwvaDM+Ci0KLQk8cD4KLQkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluCi0JCSgmcXVvdDtDb250ZW50JnF1b3Q7KS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50Ci0JCWlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UKLQkJUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUgRVBMIGlzCi0JCWF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCi0JCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC4KLQk8L3A+Ci0KLQk8cD4KLQkJSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZQotCQlGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyBiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkKLQkJKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5Ci0JCWFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlCi0JCVJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuIElmIG5vIHN1Y2gKLQkJbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkCi0JCWJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlCi0JCWNvZGUgaW4gdGhlIENvbnRlbnQgYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhCi0JCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnLyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uCi0JPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L2VwbC0yLjAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM3YTE4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L2VwbC0yLjAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgotICAgIDx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAyLjA8L3RpdGxlPgotICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gICAgICBib2R5IHsKLSAgICAgICAgbWFyZ2luOiAxLjVlbSAzZW07Ci0gICAgICB9Ci0gICAgICBoMXsKLSAgICAgICAgZm9udC1zaXplOjEuNWVtOwotICAgICAgfQotICAgICAgaDJ7Ci0gICAgICAgIGZvbnQtc2l6ZToxZW07Ci0gICAgICAgIG1hcmdpbi1ib3R0b206MC41ZW07Ci0gICAgICAgIG1hcmdpbi10b3A6MWVtOwotICAgICAgfQotICAgICAgcCB7Ci0gICAgICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Ci0gICAgICB9Ci0gICAgICB1bCwgb2x7Ci0gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lOwotICAgICAgfQotICAgIDwvc3R5bGU+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPGgxPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMDwvaDE+Ci0gICAgPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKLSAgICAgIFBVQkxJQyBMSUNFTlNFICgmbGRxdW87QUdSRUVNRU5UJnJkcXVvOykuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KLSAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCYjMDM5O1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgotICAgIDxwPiZsZHF1bztDb250cmlidXRpb24mcmRxdW87IG1lYW5zOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvbnRlbnQKLSAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT4KLSAgICAgICAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgotICAgICAgICA8dWw+Ci0gICAgICAgICAgPGxpPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvbGk+Ci0gICAgICAgICAgPGxpPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgICAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KLSAgICAgICAgYW5kIGFyZSBEaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCi0gICAgICAgICZsZHF1bztvcmlnaW5hdGVzJnJkcXVvOyBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKLSAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvciYjMDM5O3MgYmVoYWxmLgotICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKLSAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KLSAgICAgIDwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4mbGRxdW87Q29udHJpYnV0b3ImcmRxdW87IG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9wPgotICAgIDxwPiZsZHF1bztMaWNlbnNlZCBQYXRlbnRzJnJkcXVvOyBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCi0gICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCi0gICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztQcm9ncmFtJnJkcXVvOyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcwotICAgICAgQWdyZWVtZW50LgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87UmVjaXBpZW50JnJkcXVvOyBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci0gICAgICBvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgotICAgIDwvcD4KLSAgICA8cD4mbGRxdW87RGVyaXZhdGl2ZSBXb3JrcyZyZHF1bzsgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgotICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQotICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztNb2RpZmllZCBXb3JrcyZyZHF1bzsgc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKLSAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQotICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCi0gICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAotICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAotICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKLSAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKLSAgICAgIFdvcmtzIHRoZXJlb2YuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztEaXN0cmlidXRlJnJkcXVvOyBtZWFucyB0aGUgYWN0cyBvZiBhKSBkaXN0cmlidXRpbmcgb3IgYikgbWFraW5nIGF2YWlsYWJsZQotICAgICAgaW4gYW55IG1hbm5lciB0aGF0IGVuYWJsZXMgdGhlIHRyYW5zZmVyIG9mIGEgY29weS4KLSAgICA8L3A+Ci0gICAgPHA+JmxkcXVvO1NvdXJjZSBDb2RlJnJkcXVvOyBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKLSAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCi0gICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0gICAgPC9wPgotICAgIDxwPiZsZHF1bztTZWNvbmRhcnkgTGljZW5zZSZyZHF1bzsgbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKLSAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55Ci0gICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAotICAgICAgQ29udHJpYnV0b3IuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLSAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAotICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAotICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLSAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAotICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAotICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCi0gICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAotICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCi0gICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCi0gICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAotICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKLSAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCi0gICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KLSAgICAgIDwvbGk+Ci0gICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCi0gICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCi0gICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQotICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgotICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCi0gICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi0gICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cwotICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKLSAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKLSAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bwotICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50JiMwMzk7cwotICAgICAgICByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLgotICAgICAgPC9saT4KLSAgICAgIDxsaT5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50Ci0gICAgICAgIGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0Ci0gICAgICAgIGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgotICAgICAgPC9saT4KLSAgICAgIDxsaT5lKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8gQ29udHJpYnV0b3IKLSAgICAgICAgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbiB0aG9zZSBzZXQgZm9ydGgKLSAgICAgICAgaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyByZWNlaXB0IG9mIHRoZQotICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKLSAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCi0gICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+Ci0gICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgotICAgIDx1bD4KLSAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCi0gICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQotICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQotICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCi0gICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKLSAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAotICAgICAgPC9saT4KLSAgICAgIDxsaT4KLSAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQotICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAotICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKLSAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKLSAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCi0gICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCi0gICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKLSAgICAgICAgICA8L2xpPgotICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMmIzAzOTsgcmlnaHRzIGluIHRoZQotICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAotICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5Ci0gICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KLSAgICAgICAgICA8L2xpPgotICAgICAgICA8L3VsPgotICAgICAgPC9saT4KLSAgICA8L3VsPgotICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KLSAgICA8dWw+Ci0gICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCi0gICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCi0gICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCi0gICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCi0gICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCi0gICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCi0gICAgICA8L2xpPgotICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+Ci0gICAgPC91bD4KLSAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAotICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQotICAgICAgKCZsc3F1bztub3RpY2VzJnJzcXVvOykgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbSBmcm9tIGFueSBjb3B5IG9mIHRoZSBQcm9ncmFtIHdoaWNoCi0gICAgICB0aGV5IERpc3RyaWJ1dGUsIHByb3ZpZGVkIHRoYXQgQ29udHJpYnV0b3JzIG1heSBhZGQgdGhlaXIgb3duIGFwcHJvcHJpYXRlCi0gICAgICBub3RpY2VzLgotICAgIDwvcD4KLSAgICA8aDIgaWQ9ImNvbW1lcmNpYWwtZGlzdHJpYnV0aW9uIj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvaDI+Ci0gICAgPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMKLSAgICAgIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcwotICAgICAgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZiB0aGUgUHJvZ3JhbSwgdGhlCi0gICAgICBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkCi0gICAgICBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIKLSAgICAgIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEKLSAgICAgIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAoJmxkcXVvO0NvbW1lcmNpYWwgQ29udHJpYnV0b3ImcmRxdW87KQotICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgotICAgICAgKCZsZHF1bztJbmRlbW5pZmllZCBDb250cmlidXRvciZyZHF1bzspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKLSAgICAgIChjb2xsZWN0aXZlbHkgJmxkcXVvO0xvc3NlcyZyZHF1bzspIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zCi0gICAgICBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudAotICAgICAgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgotICAgICAgd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLgotICAgICAgVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcKLSAgICAgIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0bwotICAgICAgcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZQotICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAotICAgICAgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLAotICAgICAgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKLSAgICAgIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCi0gICAgPC9wPgotICAgIDxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0KLSAgICAgIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCi0gICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotICAgICAgY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zCi0gICAgICBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJiMwMzk7cyByZXNwb25zaWJpbGl0eSBhbG9uZS4KLSAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCi0gICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi0gICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCi0gICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgotICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKLSAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmbGRxdW87QVMgSVMmcmRxdW87IEJBU0lTLCBXSVRIT1VUCi0gICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAotICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAotICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcwotICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCi0gICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCi0gICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQotICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgotICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgotICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKLSAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQotICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCi0gICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCi0gICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCi0gICAgPC9wPgotICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+Ci0gICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKLSAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKLSAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQotICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAotICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgotICAgIDwvcD4KLSAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCi0gICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgotICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKLSAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCYjMDM5O3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2ggUmVjaXBpZW50JiMwMzk7cyByaWdodHMgZ3JhbnRlZAotICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi0gICAgPC9wPgotICAgIDxwPkFsbCBSZWNpcGllbnQmIzAzOTtzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KLSAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKLSAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZwotICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50JiMwMzk7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQotICAgICAgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQmIzAzOTtzIG9ibGlnYXRpb25zIHVuZGVyCi0gICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQotICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KLSAgICA8L3A+Ci0gICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAotICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5Ci0gICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKLSAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKLSAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAotICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAotICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcwotICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCi0gICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KLSAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCi0gICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3Ci0gICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQotICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgotICAgIDwvcD4KLSAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKLSAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQotICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKLSAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKLSAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAotICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KLSAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KLSAgICA8L3A+Ci0gICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSAmbmRhc2g7IEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZTwvaDI+Ci0gICAgPHA+JmxkcXVvO1RoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKLSAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKLSAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAotICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LiZyZHF1bzsKLSAgICA8L3A+Ci0gICAgPGJsb2NrcXVvdGU+Ci0gICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCi0gICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KLSAgICAgIDwvcD4KLSAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCi0gICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCi0gICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCi0gICAgICAgIHN1Y2ggYSBub3RpY2UuCi0gICAgICA8L3A+Ci0gICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+Ci0gICAgPC9ibG9ja3F1b3RlPgotICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0LnRhcmdldCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC50YXJnZXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5OTI3MjUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0LnRhcmdldAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgotPD9wZGU/PgotPCEtLSBnZW5lcmF0ZWQgd2l0aCBodHRwczovL2dpdGh1Yi5jb20vZWNsaXBzZS1jYmkvdGFyZ2V0cGxhdGZvcm0tZHNsIC0tPgotPHRhcmdldCBuYW1lPSJNb2RlbCBUcmFuc2Zvcm1hdGlvbiBUYXJnZXQiIHNlcXVlbmNlTnVtYmVyPSIxNjAwODUxMDQyIj4KLSAgPGxvY2F0aW9ucz4KLSAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InNsaWNlciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0idHJ1ZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5zZGsuaWRlIiB2ZXJzaW9uPSI0LjE0LjAuSTIwMTkxMjEwLTA2MTAiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUueGNvcmUubGliLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjEuNS4wLnYyMDE5MDQwMS0wODU2Ii8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuZW1mLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIyLjIwLjAudjIwMTkxMDI4LTA5MDUiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5lbWYudHJhbnNhY3Rpb24uZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMS4xMi4wLjIwMTgwNTE0MDgyNCIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLmVtZi52YWxpZGF0aW9uLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjEuMTIuMS4yMDE4MTIwNzA5MTEiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5lbWYud29ya3NwYWNlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjEuMTIuMC4yMDE4MDUxNDA4MjQiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS54dGV4dC5ydW50aW1lLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjIuMjAuMC52MjAxOTEyMDItMTI1NiIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnh0ZXh0LnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIyLjIwLjAudjIwMTkxMjAyLTEyNTYiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS54dGV4dC54YmFzZS5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIyLjIwLjAudjIwMTkxMjAyLTEyNTYiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS54dGV4dC54YmFzZS5saWIuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4yMC4wLnYyMDE5MTIwMi0wOTEwIi8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UueHRlbmQuc2RrLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjIuMjAuMC52MjAxOTEyMDItMTI1NiIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnhwYW5kLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIyLjIuMC52MjAxNjA1MjYwMzE1Ii8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmFwYWNoZS5jb21tb25zLmNsaSIgdmVyc2lvbj0iMS4yLjAudjIwMTQwNDI3MDIyMCIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5sYW5nIiB2ZXJzaW9uPSIyLjYuMC52MjAxNDA0MjcwMjIwIi8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmFwYWNoZS5sb2c0aiIgdmVyc2lvbj0iMS4yLjE1LnYyMDEwMTIwNzA4MTUiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuYXBhY2hlLnhlcmNlcyIgdmVyc2lvbj0iMi45LjAudjIwMTEwMTIxMTYxNyIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5hcGFjaGUueGFsYW4iIHZlcnNpb249IjIuNy4xLnYyMDEwMDUwODA0MDAiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuYXBhY2hlLnhtbC5yZXNvbHZlciIgdmVyc2lvbj0iMS4yLjAudjIwMTAwNTA4MDQwMCIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5hcGFjaGUueG1sLnNlcmlhbGl6ZXIiIHZlcnNpb249IjIuNy4xLnYyMDEwMDUwODA0MDAiLz4KLSAgICAgIDx1bml0IGlkPSJqYXZheC54bWwiIHZlcnNpb249IjEuMy40LnYyMDEwMDUwODA0MDAiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuamRvbSIgdmVyc2lvbj0iMS4xLjEudjIwMTEwMTE1MTQwMCIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5zbGY0ai5hcGkiIHZlcnNpb249IjEuNy4yLnYyMDEyMTEwOC0xMjUwIi8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLnNsZjRqLmltcGwubG9nNGoxMiIgdmVyc2lvbj0iMS43LjIudjIwMTMxMTA1LTIyMDAiLz4KLSAgICAgIDx1bml0IGlkPSJjb20uZ29vZ2xlLmd1YXZhIiB2ZXJzaW9uPSIyNy4xLjAudjIwMTkwNTE3LTE5NDYiLz4KLSAgICAgIDx1bml0IGlkPSJjb20uZ29vZ2xlLmluamVjdCIgdmVyc2lvbj0iMy4wLjAudjIwMTYwNTE3MjEwMCIvPgotICAgICAgPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9yZWxlYXNlcy8yMDE5LTEyIi8+Ci0gICAgPC9sb2NhdGlvbj4KLSAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InNsaWNlciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0idHJ1ZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMubWF0aCIgdmVyc2lvbj0iMi4xLjAudjIwMTEwNTIxMDY1MiIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5tYXRoMyIgdmVyc2lvbj0iMy41LjAudjIwMTkwNjExLTEwMjMiLz4KLSAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvdG9vbHMvb3JiaXQvZG93bmxvYWRzL2Ryb3BzL1IyMDE5MTEyNjIyMzI0Mi9yZXBvc2l0b3J5Ii8+Ci0gICAgPC9sb2NhdGlvbj4KLSAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InNsaWNlciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0idHJ1ZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMucGxhdGZvcm0uc2RrLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuOS45LjIwMjAwNzMwMTMzMiIvPgotICAgICAgPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9hcHA0bWMvdXBkYXRlc2l0ZXMvcmVsZWFzZXMvMC45LjkiLz4KLSAgICA8L2xvY2F0aW9uPgotICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0ic2xpY2VyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJ0cnVlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5zZGsuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMC4xMS4yLjIwMTgwMjIzMDgwNSIvPgotICAgICAgPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9zcGhpbngvdXBkYXRlcy8wLjExLngiLz4KLSAgICA8L2xvY2F0aW9uPgotICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0ic2xpY2VyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJ0cnVlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLmxpY2Vuc2UuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4wLjIudjIwMTgxMDE2LTIyMTAiLz4KLSAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvY2JpL3VwZGF0ZXMvbGljZW5zZSIvPgotICAgIDwvbG9jYXRpb24+Ci0gIDwvbG9jYXRpb25zPgotPC90YXJnZXQ+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQudHBkIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0LnRwZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc0YWJmMi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQudHBkCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotdGFyZ2V0ICJNb2RlbCBUcmFuc2Zvcm1hdGlvbiBUYXJnZXQiCi0KLXdpdGggc291cmNlIGFsbEVudmlyb25tZW50cwotCi1sb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3JlbGVhc2VzLzIwMTktMTIiIHsKLQlvcmcuZWNsaXBzZS5zZGsuaWRlCi0Jb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhjb3JlLmxpYi5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UuZW1mLnNkay5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UuZW1mLnRyYW5zYWN0aW9uLmZlYXR1cmUuZ3JvdXAKLQlvcmcuZWNsaXBzZS5lbWYudmFsaWRhdGlvbi5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UuZW1mLndvcmtzcGFjZS5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UueHRleHQucnVudGltZS5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UueHRleHQuc2RrLmZlYXR1cmUuZ3JvdXAKLQlvcmcuZWNsaXBzZS54dGV4dC54YmFzZS5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UueHRleHQueGJhc2UubGliLmZlYXR1cmUuZ3JvdXAKLQlvcmcuZWNsaXBzZS54dGVuZC5zZGsuZmVhdHVyZS5ncm91cAotCW9yZy5lY2xpcHNlLnhwYW5kLnNkay5mZWF0dXJlLmdyb3VwCi0Jb3JnLmFwYWNoZS5jb21tb25zLmNsaQotCW9yZy5hcGFjaGUuY29tbW9ucy5sYW5nCi0Jb3JnLmFwYWNoZS5sb2c0agotCW9yZy5hcGFjaGUueGVyY2VzCi0Jb3JnLmFwYWNoZS54YWxhbgotCW9yZy5hcGFjaGUueG1sLnJlc29sdmVyCi0Jb3JnLmFwYWNoZS54bWwuc2VyaWFsaXplcgotCWphdmF4LnhtbAotCW9yZy5qZG9tCi0KLQkvLyBTTEY0SgkKLQlvcmcuc2xmNGouYXBpIFsxLjcuMiwxLjcuMykKLQlvcmcuc2xmNGouaW1wbC5sb2c0ajEyIFsxLjcuMiwxLjcuMykKLQotCWNvbS5nb29nbGUuZ3VhdmEKLQljb20uZ29vZ2xlLmluamVjdAotfQotCi1sb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3Rvb2xzL29yYml0L2Rvd25sb2Fkcy9kcm9wcy9SMjAxOTExMjYyMjMyNDIvcmVwb3NpdG9yeSIgewotCW9yZy5hcGFjaGUuY29tbW9ucy5tYXRoCi0Jb3JnLmFwYWNoZS5jb21tb25zLm1hdGgzCi19Ci0KLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS45IiB7Ci0Jb3JnLmVjbGlwc2UuYXBwNG1jLnBsYXRmb3JtLnNkay5mZWF0dXJlLmdyb3VwCi19Ci0KLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3VwZGF0ZXMvMC4xMS54IiB7Ci0Jb3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwCi19Ci0KLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvY2JpL3VwZGF0ZXMvbGljZW5zZSIgewotCW9yZy5lY2xpcHNlLmxpY2Vuc2UuZmVhdHVyZS5ncm91cAotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK