ZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvZW1mLWdyYXBoaWNhbC12aWV3ZXIvLm12bi9leHRlbnNpb25zLnhtbCBiL2VjbGlwc2UtdG9vbHMvZW1mLWdyYXBoaWNhbC12aWV3ZXIvLm12bi9leHRlbnNpb25zLnhtbAppbmRleCA3MTBhOWVjLi4zZjQ4NmIzIDEwMDY0NAotLS0gYS9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyLy5tdm4vZXh0ZW5zaW9ucy54bWwKKysrIGIvZWNsaXBzZS10b29scy9lbWYtZ3JhcGhpY2FsLXZpZXdlci8ubXZuL2V4dGVuc2lvbnMueG1sCkBAIC0zLDYgKzMsNiBAQAogICA8ZXh0ZW5zaW9uPgogICAgIDxncm91cElkPm9yZy5lY2xpcHNlLnR5Y2hvLmV4dHJhczwvZ3JvdXBJZD4KICAgICA8YXJ0aWZhY3RJZD50eWNoby1wb21sZXNzPC9hcnRpZmFjdElkPgotICAgIDx2ZXJzaW9uPjEuNi4wPC92ZXJzaW9uPgorICAgIDx2ZXJzaW9uPjIuMC4wPC92ZXJzaW9uPgogICA8L2V4dGVuc2lvbj4KIDwvZXh0ZW5zaW9ucz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLmVtZi5tZXRhbW9kZWx2aWV3ZXIvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvZWNsaXBzZS10b29scy9lbWYtZ3JhcGhpY2FsLXZpZXdlci9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy5lbWYubWV0YW1vZGVsdmlld2VyLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWYyNmMwCi0tLSAvZGV2L251bGwKKysrIGIvZWNsaXBzZS10b29scy9lbWYtZ3JhcGhpY2FsLXZpZXdlci9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy5lbWYubWV0YW1vZGVsdmlld2VyLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpAQCAtMCwwICsxLDIgQEAKK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCitlbmNvZGluZy88cHJvamVjdD49VVRGLTgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvZW1mLWdyYXBoaWNhbC12aWV3ZXIvcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMuZW1mLnZpZXdlci5wbGFudHVtbC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMgYi9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLmVtZi52aWV3ZXIucGxhbnR1bWwvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZjI2YzAKLS0tIC9kZXYvbnVsbAorKysgYi9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLmVtZi52aWV3ZXIucGxhbnR1bWwvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCkBAIC0wLDAgKzEsMiBAQAorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKK2VuY29kaW5nLzxwcm9qZWN0Pj1VVEYtOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9lbWYtZ3JhcGhpY2FsLXZpZXdlci9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy5lbWYudmlld2VyLnBsYW50dW1sL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvZW1mL3ZpZXdlci9wbGFudHVtbC9oYW5kbGVycy9Db3B5Q29udGVudHNIYW5kbGVyLmphdmEgYi9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLmVtZi52aWV3ZXIucGxhbnR1bWwvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy9lbWYvdmlld2VyL3BsYW50dW1sL2hhbmRsZXJzL0NvcHlDb250ZW50c0hhbmRsZXIuamF2YQppbmRleCAzNWM2YWMxLi4wNWIyYzk4IDEwMDY0NAotLS0gYS9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLmVtZi52aWV3ZXIucGxhbnR1bWwvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy9lbWYvdmlld2VyL3BsYW50dW1sL2hhbmRsZXJzL0NvcHlDb250ZW50c0hhbmRsZXIuamF2YQorKysgYi9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLmVtZi52aWV3ZXIucGxhbnR1bWwvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy9lbWYvdmlld2VyL3BsYW50dW1sL2hhbmRsZXJzL0NvcHlDb250ZW50c0hhbmRsZXIuamF2YQpAQCAtMTUsOSArMTUsNiBAQAogCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy5lbWYudmlld2VyLnBsYW50dW1sLmhhbmRsZXJzOwogCi1pbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKLWltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOwotaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5TdHJpbmdTZWxlY3Rpb247CiBpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOwogCiBpbXBvcnQgamF2YXguaW5qZWN0Lk5hbWVkOwpAQCAtMjYsMjggKzIzLDQxIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZTQudWkuc2VydmljZXMuSVNlcnZpY2VDb25zdGFudHM7CiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVOYW1lZEVsZW1lbnQ7CiBpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2Uudmlld2Vycy5JU3RydWN0dXJlZFNlbGVjdGlvbjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZG5kLkNsaXBib2FyZDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZG5kLlRleHRUcmFuc2ZlcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZG5kLlRyYW5zZmVyOworaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLkRpc3BsYXk7CitpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuU2hlbGw7CiAKIHB1YmxpYyBjbGFzcyBDb3B5Q29udGVudHNIYW5kbGVyIHsKIAogCUBFeGVjdXRlCi0JcHVibGljIHZvaWQgZXhlY3V0ZShATmFtZWQoSVNlcnZpY2VDb25zdGFudHMuQUNUSVZFX1NFTEVDVElPTikgSVN0cnVjdHVyZWRTZWxlY3Rpb24gc2VsZWN0aW9uKSB7Ci0JCVN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCXB1YmxpYyB2b2lkIGV4ZWN1dGUoU2hlbGwgc2hlbGwsQE5hbWVkKElTZXJ2aWNlQ29uc3RhbnRzLkFDVElWRV9TRUxFQ1RJT04pIElTdHJ1Y3R1cmVkU2VsZWN0aW9uIHNlbGVjdGlvbikgeworCQorCQlEaXNwbGF5IGRpc3BsYXkgPSBzaGVsbC5nZXREaXNwbGF5KCk7CisJCQorCQlmaW5hbCBDbGlwYm9hcmQgY2xpcEJvYXJkID0gbmV3IENsaXBib2FyZChkaXNwbGF5KTsKKworCQlTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwogCiAJCUl0ZXJhdG9yPD8+IGl0ZXJhdG9yID0gc2VsZWN0aW9uLml0ZXJhdG9yKCk7CiAKIAkJd2hpbGUgKGl0ZXJhdG9yLmhhc05leHQoKSkgewogCQkJT2JqZWN0IG5leHQgPSBpdGVyYXRvci5uZXh0KCk7Ci0JCQlTeXN0ZW0ub3V0LnByaW50bG4obmV4dCk7CiAKIAkJCWlmIChuZXh0IGluc3RhbmNlb2YgRU5hbWVkRWxlbWVudCkgewogCQkJCVN0cmluZyBuYW1lID0gKChFTmFtZWRFbGVtZW50KSBuZXh0KS5nZXROYW1lKCk7Ci0JCQkJc2IuYXBwZW5kKG5hbWUpOwotCQkJCXNiLmFwcGVuZCgiXG4iKTsKKwkJCQlzdHJpbmdCdWlsZGVyLmFwcGVuZChuYW1lKTsKKwkJCQlzdHJpbmdCdWlsZGVyLmFwcGVuZCgiXG4iKTsKIAkJCX0KIAkJfQotCQlTdHJpbmdTZWxlY3Rpb24gc2VsZWN0aW9uMSA9IG5ldyBTdHJpbmdTZWxlY3Rpb24oc2IudG9TdHJpbmcoKSk7Ci0JCUNsaXBib2FyZCBjbGlwYm9hcmQgPSBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCk7Ci0JCWNsaXBib2FyZC5zZXRDb250ZW50cyhzZWxlY3Rpb24xLCBzZWxlY3Rpb24xKTsKKworCQlUZXh0VHJhbnNmZXIgdGV4dFRyYW5zZmVyID0gVGV4dFRyYW5zZmVyLmdldEluc3RhbmNlKCk7CisgCisJCWNsaXBCb2FyZC5zZXRDb250ZW50cyhuZXcgT2JqZWN0W10geyAgc3RyaW5nQnVpbGRlci50b1N0cmluZygpIH0sCisJCW5ldyBUcmFuc2ZlcltdIHsgdGV4dFRyYW5zZmVyIH0pOworCisKIAl9CiAKIH0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvZW1mLWdyYXBoaWNhbC12aWV3ZXIvcG9tLnhtbCBiL2VjbGlwc2UtdG9vbHMvZW1mLWdyYXBoaWNhbC12aWV3ZXIvcG9tLnhtbAppbmRleCAxMzM1YjU2Li41OGMyYzBlIDEwMDY0NAotLS0gYS9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3BvbS54bWwKKysrIGIvZWNsaXBzZS10b29scy9lbWYtZ3JhcGhpY2FsLXZpZXdlci9wb20ueG1sCkBAIC0xMyw3ICsxMyw3IEBACiAgIDxuYW1lPkVjbGlwc2UgQVBQNE1DIEVNRiBWaWV3ZXJzPC9uYW1lPgogIAogICA8cHJvcGVydGllcz4KLSAgICA8dHljaG8udmVyc2lvbj4xLjYuMDwvdHljaG8udmVyc2lvbj4KKyAgICA8dHljaG8udmVyc2lvbj4yLjAuMDwvdHljaG8udmVyc2lvbj4KICAgICAKICAgICA8cHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz5VVEYtODwvcHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz4KICAgICA8cHJvamVjdC5yZXBvcnRpbmcub3V0cHV0RW5jb2Rpbmc+VVRGLTg8L3Byb2plY3QucmVwb3J0aW5nLm91dHB1dEVuY29kaW5nPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9lbWYtZ3JhcGhpY2FsLXZpZXdlci9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLmVtZi52aWV3ZXJzLnAycmVwby9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9lbWYtZ3JhcGhpY2FsLXZpZXdlci9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLmVtZi52aWV3ZXJzLnAycmVwby9idWlsZC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZGI4OTEKLS0tIC9kZXYvbnVsbAorKysgYi9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMuZW1mLnZpZXdlcnMucDJyZXBvL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyIEBACitwb20ubW9kZWwuYXJ0aWZhY3RJZCA9IG9yZy5lY2xpcHNlLmFwcDRtYy5lbWYudmlld2Vycy5wMnJlcG8KK3BvbS5tb2RlbC5uYW1lID0gRU1GIFZpZXdlcnMgUDIgVXBkYXRlc2l0ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvZW1mLWdyYXBoaWNhbC12aWV3ZXIvcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy5lbWYudmlld2Vycy5wMnJlcG8vcG9tLnhtbCBiL2VjbGlwc2UtdG9vbHMvZW1mLWdyYXBoaWNhbC12aWV3ZXIvcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy5lbWYudmlld2Vycy5wMnJlcG8vcG9tLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDE0MDM4OS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL2VtZi1ncmFwaGljYWwtdmlld2VyL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMuZW1mLnZpZXdlcnMucDJyZXBvL3BvbS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLQl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIj4KLQotICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+Ci0KLSAgPGFydGlmYWN0SWQ+b3JnLmVjbGlwc2UuYXBwNG1jLmVtZi52aWV3ZXJzLnAycmVwbzwvYXJ0aWZhY3RJZD4KLQotICA8cGFja2FnaW5nPmVjbGlwc2UtcmVwb3NpdG9yeTwvcGFja2FnaW5nPgotCi0gIDxwYXJlbnQ+Ci0gIAk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hcHA0bWMuZW1mLnZpZXdlcnM8L2dyb3VwSWQ+Ci0gIAk8YXJ0aWZhY3RJZD5wYXJlbnQ8L2FydGlmYWN0SWQ+Ci0JPHZlcnNpb24+MC45LjgtU05BUFNIT1Q8L3ZlcnNpb24+Ci0gIAk8cmVsYXRpdmVQYXRoPi4uLy4uL3BvbS54bWw8L3JlbGF0aXZlUGF0aD4KLSAgPC9wYXJlbnQ+Ci08L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi8uZ2l0aWdub3JlIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2MzMWY3Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vLmdpdGlnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLm1ldGFkYXRhLwotCi0jIEVjbGlwc2UgdGFyZ2V0IGRpcmVjdG9yaWVzCi1iaW4vCi10YXJnZXQvCi0KLXh0ZW5kLWdlbi8KLW91dHB1dC8qClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi8ubXZuL2V4dGVuc2lvbnMueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi8ubXZuL2V4dGVuc2lvbnMueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTBhOWVjLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vLm12bi9leHRlbnNpb25zLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxleHRlbnNpb25zPgotICA8ZXh0ZW5zaW9uPgotICAgIDxncm91cElkPm9yZy5lY2xpcHNlLnR5Y2hvLmV4dHJhczwvZ3JvdXBJZD4KLSAgICA8YXJ0aWZhY3RJZD50eWNoby1wb21sZXNzPC9hcnRpZmFjdElkPgotICAgIDx2ZXJzaW9uPjEuNi4wPC92ZXJzaW9uPgotICA8L2V4dGVuc2lvbj4KLTwvZXh0ZW5zaW9ucz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL1JFQURNRS5tZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vUkVBRE1FLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vUkVBRE1FLm1kCisrKyAvZGV2L251bGwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jLy5naXRpZ25vcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2ZiOTRjLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLS9iaW4vCi0vdGFyZ2V0LwotL3h0ZW5kLWdlbi8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9BbWFsdGhlYV90b19JbmNocm9uX1RyYW5zZm9ybWF0aW9uLnBuZyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0FtYWx0aGVhX3RvX0luY2hyb25fVHJhbnNmb3JtYXRpb24ucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWQ5ZTZiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL0FtYWx0aGVhX3RvX0luY2hyb25fVHJhbnNmb3JtYXRpb24ucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvTW9kZWxUcmFuc2Zvcm1hdGlvbl9TbGlkZXMucGRmIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvTW9kZWxUcmFuc2Zvcm1hdGlvbl9TbGlkZXMucGRmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmQzMzk0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL01vZGVsVHJhbnNmb3JtYXRpb25fU2xpZGVzLnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL01vZGVsVHJhbnNmb3JtYXRpb25fU2xpZGVzLnBwdHggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9Nb2RlbFRyYW5zZm9ybWF0aW9uX1NsaWRlcy5wcHR4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjZhZjY4Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL01vZGVsVHJhbnNmb3JtYXRpb25fU2xpZGVzLnBwdHgKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9UcmFuc2Zvcm1hdGlvbkZyYW1ld29yay1Jbmhlcml0YW5jZS5ncmFwaG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvVHJhbnNmb3JtYXRpb25GcmFtZXdvcmstSW5oZXJpdGFuY2UuZ3JhcGhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmEzN2YzZi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9UcmFuc2Zvcm1hdGlvbkZyYW1ld29yay1Jbmhlcml0YW5jZS5ncmFwaG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgotPGdyYXBobWwgeG1sbnM9Imh0dHA6Ly9ncmFwaG1sLmdyYXBoZHJhd2luZy5vcmcveG1sbnMiIHhtbG5zOmphdmE9Imh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwveWZpbGVzLWNvbW1vbi8xLjAvamF2YSIgeG1sbnM6c3lzPSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3lmaWxlcy1jb21tb24vbWFya3VwL3ByaW1pdGl2ZXMvMi4wIiB4bWxuczp4PSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3lmaWxlcy1jb21tb24vbWFya3VwLzIuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eT0iaHR0cDovL3d3dy55d29ya3MuY29tL3htbC9ncmFwaG1sIiB4bWxuczp5ZWQ9Imh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwveWVkLzMiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL2dyYXBobWwuZ3JhcGhkcmF3aW5nLm9yZy94bWxucyBodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3NjaGVtYS9ncmFwaG1sLzEuMS95Z3JhcGhtbC54c2QiPgotICA8IS0tQ3JlYXRlZCBieSB5RWQgMy4xOC4yLS0+Ci0gIDxrZXkgYXR0ci5uYW1lPSJEZXNjcmlwdGlvbiIgYXR0ci50eXBlPSJzdHJpbmciIGZvcj0iZ3JhcGgiIGlkPSJkMCIvPgotICA8a2V5IGZvcj0icG9ydCIgaWQ9ImQxIiB5ZmlsZXMudHlwZT0icG9ydGdyYXBoaWNzIi8+Ci0gIDxrZXkgZm9yPSJwb3J0IiBpZD0iZDIiIHlmaWxlcy50eXBlPSJwb3J0Z2VvbWV0cnkiLz4KLSAgPGtleSBmb3I9InBvcnQiIGlkPSJkMyIgeWZpbGVzLnR5cGU9InBvcnR1c2VyZGF0YSIvPgotICA8a2V5IGF0dHIubmFtZT0idXJsIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJub2RlIiBpZD0iZDQiLz4KLSAgPGtleSBhdHRyLm5hbWU9ImRlc2NyaXB0aW9uIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJub2RlIiBpZD0iZDUiLz4KLSAgPGtleSBmb3I9Im5vZGUiIGlkPSJkNiIgeWZpbGVzLnR5cGU9Im5vZGVncmFwaGljcyIvPgotICA8a2V5IGZvcj0iZ3JhcGhtbCIgaWQ9ImQ3IiB5ZmlsZXMudHlwZT0icmVzb3VyY2VzIi8+Ci0gIDxrZXkgYXR0ci5uYW1lPSJ1cmwiIGF0dHIudHlwZT0ic3RyaW5nIiBmb3I9ImVkZ2UiIGlkPSJkOCIvPgotICA8a2V5IGF0dHIubmFtZT0iZGVzY3JpcHRpb24iIGF0dHIudHlwZT0ic3RyaW5nIiBmb3I9ImVkZ2UiIGlkPSJkOSIvPgotICA8a2V5IGZvcj0iZWRnZSIgaWQ9ImQxMCIgeWZpbGVzLnR5cGU9ImVkZ2VncmFwaGljcyIvPgotICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0iRyI+Ci0gICAgPGRhdGEga2V5PSJkMCIvPgotICAgIDxub2RlIGlkPSJuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuMCIgd2lkdGg9IjE4MC4wIiB4PSIyMDguMCIgeT0iOTIuMCIvPgotICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTEzLjM1OTM3NSIgeD0iMzMuMzIwMzEyNSIgeT0iNS42NDk0MTQwNjI1Ij5BYnN0cmFjdFRyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9ub2RlPgotICAgIDxub2RlIGlkPSJuMSI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuMCIgd2lkdGg9IjIyNS4wIiB4PSIxODYuMCIgeT0iMTYwLjAiLz4KLSAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIwNC4wODAwNzgxMjUiIHg9IjEwLjQ1OTk2MDkzNzUiIHk9IjUuNjQ5NDE0MDYyNSI+QWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgPC9kYXRhPgotICAgIDwvbm9kZT4KLSAgICA8bm9kZSBpZD0ibjIiPgotICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjAiIHdpZHRoPSIxODAuMCIgeD0iMTEyLjAiIHk9IjIzNS4wIi8+Ci0gICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMDIuMDI3MzQzNzUiIHg9IjM4Ljk4NjMyODEyNSIgeT0iNS42NDk0MTQwNjI1Ij5Nb2RlbFRyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9ub2RlPgotICAgIDxub2RlIGlkPSJuMyI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuMCIgd2lkdGg9IjE4MC4wIiB4PSIzMDMuMCIgeT0iMjM1LjAiLz4KLSAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9Ijg0LjY3NzczNDM3NSIgeD0iNDcuNjYxMTMyODEyNSIgeT0iNS42NDk0MTQwNjI1Ij5Pc1RyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9ub2RlPgotICAgIDxub2RlIGlkPSJuNCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuMCIgd2lkdGg9IjIxMy4wIiB4PSI4NDMuMCIgeT0iMjM1LjAiLz4KLSAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE0Ny4zOTY0ODQzNzUiIHg9IjMyLjgwMTc1NzgxMjUiIHk9IjUuNjQ5NDE0MDYyNSI+RGVmYXVsdE0yTUluamVjdG9yTW9kdWxlPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9ub2RlPgotICAgIDxub2RlIGlkPSJuNSI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuMCIgd2lkdGg9IjIyMC4wIiB4PSI4MzkuNSIgeT0iMTY3LjAiLz4KLSAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIwNy40MTk5MjE4NzUiIHg9IjYuMjkwMDM5MDYyNSIgeT0iNS42NDk0MTQwNjI1Ij5BYnN0cmFjdFRyYW5zZm9ybWF0aW9uSW5qZWN0b3JNb2R1bGU8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L25vZGU+Ci0gICAgPG5vZGUgaWQ9Im42Ij4KLSAgICAgIDxkYXRhIGtleT0iZDUiLz4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMTcyLjAiIHg9IjM5Ni4wIiB5PSI5Mi4wIi8+Ci0gICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGRkZGRiIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiNGRkZGRkYiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxNjkuNDI3NzM0Mzc1IiB4PSIxLjI4NjEzMjgxMjUiIHk9IjUuNjQ5NDE0MDYyNSI+Y29udGFpbnMgaW5qZWN0b3IsIGxvZ2dlciwgY2FjaGU8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L25vZGU+Ci0gICAgPG5vZGUgaWQ9Im43Ij4KLSAgICAgIDxkYXRhIGtleT0iZDUiLz4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMTcyLjAiIHg9IjQyMS4wIiB5PSIxNjAuMCIvPgotICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkZGRkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjRkZGRkZGIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjQyLjc5Mjk2ODc1IiB4PSItNC4zOTY0ODQzNzUiIHk9IjUuNjQ5NDE0MDYyNSI+Y29udGFpbnMgbW9kZWwgZmFjdG9yaWVzLCBtb2RlbCByb290IG5vZGVzIC4uPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMTgwMjMyNTU4MTM5NTM0ODciIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgPC9kYXRhPgotICAgIDwvbm9kZT4KLSAgICA8bm9kZSBpZD0ibjgiPgotICAgICAgPGRhdGEga2V5PSJkNSIvPgotICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjAiIHdpZHRoPSIxNzIuMCIgeD0iNDg5LjAiIHk9IjIzNS4wIi8+Ci0gICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGRkZGRiIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiNGRkZGRkYiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyMTEuNDM5NDUzMTI1IiB4PSI0LjAiIHk9IjQuMCI+YWN0dWFsIHRyYW5zZm9ybWF0aW9uIG9mIG1vZGVsIGVsZW1lbnQ8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMjk0NTUzNzAwOTE1NDE0MiIgbGFiZWxSYXRpb1k9Ii0wLjUiIG5vZGVSYXRpb1g9IjAuNSIgbm9kZVJhdGlvWT0iLTAuNSIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSI0LjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgPC9kYXRhPgotICAgIDwvbm9kZT4KLSAgICA8ZWRnZSBpZD0iZTAiIHNvdXJjZT0ibjEiIHRhcmdldD0ibjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9ImUxIiBzb3VyY2U9Im4yIiB0YXJnZXQ9Im4xIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlMiIgc291cmNlPSJuMyIgdGFyZ2V0PSJuMSI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0iZTMiIHNvdXJjZT0ibjQiIHRhcmdldD0ibjUiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gIDwvZ3JhcGg+Ci0gIDxkYXRhIGtleT0iZDciPgotICAgIDx5OlJlc291cmNlcy8+Ci0gIDwvZGF0YT4KLTwvZ3JhcGhtbD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL1RyYW5zZm9ybWF0aW9uRnJhbWV3b3JrLUluaGVyaXRhbmNlLnBuZyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL1RyYW5zZm9ybWF0aW9uRnJhbWV3b3JrLUluaGVyaXRhbmNlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdkOGY4Zi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9UcmFuc2Zvcm1hdGlvbkZyYW1ld29yay1Jbmhlcml0YW5jZS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9UcmFuc2Zvcm1hdGlvbkZyYW1ld29yay1Td0FyY2hpdGVjdHVyZS5ncmFwaG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvVHJhbnNmb3JtYXRpb25GcmFtZXdvcmstU3dBcmNoaXRlY3R1cmUuZ3JhcGhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQwMzcxZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9UcmFuc2Zvcm1hdGlvbkZyYW1ld29yay1Td0FyY2hpdGVjdHVyZS5ncmFwaG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ3MiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KLTxncmFwaG1sIHhtbG5zPSJodHRwOi8vZ3JhcGhtbC5ncmFwaGRyYXdpbmcub3JnL3htbG5zIiB4bWxuczpqYXZhPSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3lmaWxlcy1jb21tb24vMS4wL2phdmEiIHhtbG5zOnN5cz0iaHR0cDovL3d3dy55d29ya3MuY29tL3htbC95ZmlsZXMtY29tbW9uL21hcmt1cC9wcmltaXRpdmVzLzIuMCIgeG1sbnM6eD0iaHR0cDovL3d3dy55d29ya3MuY29tL3htbC95ZmlsZXMtY29tbW9uL21hcmt1cC8yLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnk9Imh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwvZ3JhcGhtbCIgeG1sbnM6eWVkPSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3llZC8zIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9ncmFwaG1sLmdyYXBoZHJhd2luZy5vcmcveG1sbnMgaHR0cDovL3d3dy55d29ya3MuY29tL3htbC9zY2hlbWEvZ3JhcGhtbC8xLjEveWdyYXBobWwueHNkIj4KLSAgPCEtLUNyZWF0ZWQgYnkgeUVkIDMuMTguMi0tPgotICA8a2V5IGF0dHIubmFtZT0iRGVzY3JpcHRpb24iIGF0dHIudHlwZT0ic3RyaW5nIiBmb3I9ImdyYXBoIiBpZD0iZDAiLz4KLSAgPGtleSBmb3I9InBvcnQiIGlkPSJkMSIgeWZpbGVzLnR5cGU9InBvcnRncmFwaGljcyIvPgotICA8a2V5IGZvcj0icG9ydCIgaWQ9ImQyIiB5ZmlsZXMudHlwZT0icG9ydGdlb21ldHJ5Ii8+Ci0gIDxrZXkgZm9yPSJwb3J0IiBpZD0iZDMiIHlmaWxlcy50eXBlPSJwb3J0dXNlcmRhdGEiLz4KLSAgPGtleSBhdHRyLm5hbWU9InVybCIgYXR0ci50eXBlPSJzdHJpbmciIGZvcj0ibm9kZSIgaWQ9ImQ0Ii8+Ci0gIDxrZXkgYXR0ci5uYW1lPSJkZXNjcmlwdGlvbiIgYXR0ci50eXBlPSJzdHJpbmciIGZvcj0ibm9kZSIgaWQ9ImQ1Ii8+Ci0gIDxrZXkgZm9yPSJub2RlIiBpZD0iZDYiIHlmaWxlcy50eXBlPSJub2RlZ3JhcGhpY3MiLz4KLSAgPGtleSBmb3I9ImdyYXBobWwiIGlkPSJkNyIgeWZpbGVzLnR5cGU9InJlc291cmNlcyIvPgotICA8a2V5IGF0dHIubmFtZT0idXJsIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJlZGdlIiBpZD0iZDgiLz4KLSAgPGtleSBhdHRyLm5hbWU9ImRlc2NyaXB0aW9uIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJlZGdlIiBpZD0iZDkiLz4KLSAgPGtleSBmb3I9ImVkZ2UiIGlkPSJkMTAiIHlmaWxlcy50eXBlPSJlZGdlZ3JhcGhpY3MiLz4KLSAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9IkciPgotICAgIDxkYXRhIGtleT0iZDAiLz4KLSAgICA8bm9kZSBpZD0ibjAiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIxMDYxLjUzNTI3ODMyMDMxMjUiIHdpZHRoPSI2MDcuMzczODI4MTI1MDAwMyIgeD0iMTMyLjI2ODM1OTM3NTAwMDI3IiB5PSItMi4yNjU4NjkxNDA2MjUwMjg0Ii8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNjA3LjM3MzgyODEyNTAwMDMiIHg9IjAuMCIgeT0iMC4wIj5GcmFtZXdvcms8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9Ijk4IiByaWdodEY9Ijk4LjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2Ny4zNjkxNDA2MjUiIHg9Ii04LjY4NDU3MDMxMjUiIHk9IjAuMCI+Rm9sZGVyIDE1PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjA6Ij4KLSAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMCIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjM3MC4xMDcwNTU2NjQwNjI1IiB3aWR0aD0iNDUwLjAiIHg9IjE2Mi4yNjgzNTkzNzUwMDAyNyIgeT0iMzUuMTEwNTk1NzAzMTI0OTciLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI0NTAuMCIgeD0iMC4wIiB5PSIwLjAiPm9yZy5lY2xpcHNlLmFwcDRjbS50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbjwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iNDkiIGxlZnRGPSI0OS4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI1OS4wMjY4NTU0Njg3NSIgeD0iLTQuNTEzNDI3NzM0Mzc1IiB5PSIwLjAiPkZvbGRlciAxPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjA6Om4wOiI+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4wOjpuMCIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMxNy43MzA1OTA4MjAzMTI1IiB3aWR0aD0iMzcxLjAiIHg9IjIyNi4yNjgzNTkzNzUwMDAyNyIgeT0iNzIuNDg3MDYwNTQ2ODc0OTciLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIzNzEuMCIgeD0iMC4wIiB5PSIwLjAiPi5iYXNlPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjM0IiBib3R0b21GPSIzNC4zNDkwNzg5OTE4MDczNDYiIGxlZnQ9IjgiIGxlZnRGPSI4LjAiIHJpZ2h0PSIyNSIgcmlnaHRGPSIyNS4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNjcuMzY5MTQwNjI1IiB4PSItOC42ODQ1NzAzMTI1IiB5PSIwLjAiPkZvbGRlciAxNzwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4wOjpuMDo6bjA6Ij4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4wOjpuMDo6bjAiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIxNzAuMCIgeD0iMjkwLjAxODM1OTM3NTAwMDMiIHk9IjEwOS44NjM1MjUzOTA2MjQ5NyIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE1My40OTM2NTIzNDM3NSIgeD0iOC4yNTMxNzM4MjgxMjUiIHk9IjMuMCI+QXBwbGljYXRpb246SUFwcGxpY2F0aW9uPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMDo6bjA6Om4xIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjI3Mi4yNzg5NDU2NjY4OTIyIiB5PSIxNDIuODM0MTA2NDQ1MzEyNDciLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMjguMjQ5MDIzNDM3NSIgeD0iMjAuODc1NDg4MjgxMjUiIHk9IjMuMCI+RXh0ZW5zaW9uRXhlY3V0aW9uPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMDo6bjA6Om4yIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjMwNi4yNjgzNTkzNzUwMDAzIiB5PSIxNzUuODA0Njg3NDk5OTk5OTciLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxNDAuNDkzNjUyMzQzNzUiIHg9IjE0Ljc1MzE3MzgyODEyNSIgeT0iMy4wIj5UcmFuc2Zvcm1hdGlvbkNvbmZpZzx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjA6Om4wOjpuMyI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE3MC4wIiB4PSIzNTMuNzQxODkzNjQ1MjcwNiIgeT0iMjEwLjcwMTQ0NjUzMzIwMzEiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxNDkuMjAyNjM2NzE4NzUiIHg9IjEwLjM5ODY4MTY0MDYyNSIgeT0iMy4wIj5FeGVjdXRlVHJhbnNmb3JtYXRpb248eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4wOjpuMDo6bjQiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjk1MTYwNjg0NDAwMzQzNiIgd2lkdGg9IjMwOC4wIiB4PSIyNDkuMjY4MzU5Mzc1MDAwMzMiIHk9IjI2NC4yNDk0NzczMzk3MTcwMyIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkZGRkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMzMuNDAyMzQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyNjcuNDg0Mzc1IiB4PSIyMC4yNTc4MTI1IiB5PSItMS4yMjUzNjg0NTI5OTgyODIiPmV4dGVuc2lvbiAmbHQ7b3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmFwcGxpY2F0aW9ucyZndDsKLSJhcHBsaWNhdGlvbiI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJmYXRhcnJvdzIiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMDo6bjA6Om41Ij4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC45NTE2MDY4NDQwMDM0MzYiIHdpZHRoPSIzMDguMCIgeD0iMjQ5LjI2ODM1OTM3NTAwMDI3IiB5PSIzMDguNjkxNTk3MDc4Mzc4NDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZGRkZGIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjMzLjQwMjM0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjUwLjEzNDc2NTYyNSIgeD0iMjguOTMyNjE3MTg3NSIgeT0iLTEuMjI1MzY4NDUyOTk4MjgyIj5leHRlbnNpb24gJmx0O29yZy5lY2xpcHNlLmNvcmUucnVudGltZS5wcm9kdWN0cyZndDsKLSJwcm9kdWN0Ijx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9ImZhdGFycm93MiIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICA8L2dyYXBoPgotICAgICAgICA8L25vZGU+Ci0gICAgICAgIDxub2RlIGlkPSJuMDo6bjEiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI2MjQuMDUxNzU3ODEyNSIgd2lkdGg9IjQ3OS4zNzM4MjgxMjUwMDAzIiB4PSIxNDcuMjY4MzU5Mzc1MDAwMjciIHk9IjQyMC4yMTc2NTEzNjcxODc1Ii8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNDc5LjM3MzgyODEyNTAwMDMiIHg9IjAuMCIgeT0iMC4wIj5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9uczwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjI3IiBib3R0b21GPSIyNy4yNDYzNjY0MjM1NzI1NjciIGxlZnQ9IjExIiBsZWZ0Rj0iMTEuMCIgcmlnaHQ9IjIzIiByaWdodEY9IjIzLjM3MzgyODEyNTAwMDI3MyIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjU5LjAyNjg1NTQ2ODc1IiB4PSItNC41MTM0Mjc3MzQzNzUiIHk9IjAuMCI+Rm9sZGVyIDQ8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgPC9kYXRhPgotICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMDo6bjE6Ij4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjE6Om4wIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIyNTMuMCIgeD0iMTczLjI2ODM1OTM3NTAwMDI3IiB5PSI0NTcuNTk0MTE2MjEwOTM3NSIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjI0NC41MjUzOTA2MjUiIHg9IjQuMjM3MzA0Njg3NSIgeT0iMy4wIj5BYnN0cmFjdFRyYW5zZm9ybWF0aW9uSW5qZWN0b3JNb2R1bGU8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMTo6bjEiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjI1My4wIiB4PSIxOTMuMjY4MzU5Mzc1MDAwMjciIHk9IjQ5Ny41Mjk0MTg5NDUzMTI1Ii8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTMzLjMwMTc1NzgxMjUiIHg9IjU5Ljg0OTEyMTA5Mzc1IiB5PSIzLjAiPkN1c3RvbU9iamVjdHNTdG9yZTx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4xOjpuMiIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjE0NS4zNzA2MDU0Njg3NSIgd2lkdGg9IjMyMy4wIiB4PSIxOTMuMjY4MzU5Mzc1MDAwMjciIHk9Ijc0OS45MDU4ODM3ODkwNjI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMzIzLjAiIHg9IjAuMCIgeT0iMC4wIj5leGVjdXRpb250eXBlPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjciIGJvdHRvbUY9IjYuOTk0MTQwNjI1IiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iNDAiIHJpZ2h0Rj0iNDAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjU5LjAyNjg1NTQ2ODc1IiB4PSItNC41MTM0Mjc3MzQzNzUiIHk9IjAuMCI+Rm9sZGVyIDI8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMDo6bjE6Om4yOiI+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMTo6bjI6Om4wIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMjUzLjAiIHg9IjIwOC4yNjgzNTkzNzUwMDAyNyIgeT0iNzg3LjI4MjM0ODYzMjgxMjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMzkuNzUwOTc2NTYyNSIgeD0iNTYuNjI0NTExNzE4NzUiIHk9IjMuMCI+SU1vZGVsVG9Nb2RlbENvbmZpZzx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjE6Om4yOjpuMSI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjI1My4wIiB4PSIyMDguMjY4MzU5Mzc1MDAwMjciIHk9Ijg0NS4yODIzNDg2MzI4MTI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTI4LjkyODIyMjY1NjI1IiB4PSI2Mi4wMzU4ODg2NzE4NzUiIHk9IjMuMCI+SU1vZGVsVG9UZXh0Q29uZmlnPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4xOjpuMyIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjE0OC41NjQ2OTcyNjU2MjUiIHdpZHRoPSIzMDguMCIgeD0iMTkzLjI2ODM1OTM3NTAwMDI3IiB5PSI1ODYuMzQxMTg2NTIzNDM3NSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjMwOC4wIiB4PSIwLjAiIHk9IjAuMCI+YmFzZS50ZW1wbGF0ZXM8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIyNSIgbGVmdEY9IjI1LjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjU5LjAyNjg1NTQ2ODc1IiB4PSItNC41MTM0Mjc3MzQzNzUiIHk9IjAuMCI+Rm9sZGVyIDM8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMDo6bjE6Om4zOiI+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMTo6bjM6Om4wIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMjUzLjAiIHg9IjIzMy4yNjgzNTkzNzUwMDAyNyIgeT0iNjIzLjcxNzY1MTM2NzE4NzUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMzMuMzE0NDUzMTI1IiB4PSI1OS44NDI3NzM0Mzc1IiB5PSIzLjAiPkFic3RyYWN0VHJhbnNmb3JtZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjA6Om4xOjpuMzo6bjEiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIyNTMuMCIgeD0iMjMzLjI2ODM1OTM3NTAwMDI3IiB5PSI2NTguOTA1ODgzNzg5MDYyNSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE5Mi41MTI2OTUzMTI1IiB4PSIzMC4yNDM2NTIzNDM3NSIgeT0iMy4wIj5Nb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lcjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMDo6bjE6Om4zOjpuMiI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjI1My4wIiB4PSIyMzMuMjY4MzU5Mzc1MDAwMjciIHk9IjY5MS45MDU4ODM3ODkwNjI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTgxLjY4OTk0MTQwNjI1IiB4PSIzNS42NTUwMjkyOTY4NzUiIHk9IjMuMCI+TW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lcjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICA8L2dyYXBoPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4wOjpuMTo6bjQiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjM4Ljk1NTM5MjI3NDkwNzI0IiB3aWR0aD0iMzk1LjAiIHg9IjE5My4yNjgzNTkzNzUwMDAyNyIgeT0iOTYzLjA2NzY1MDQ4MTIwNzciLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNDMEMwQzAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjMzLjQwMjM0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMzU4LjIxMDkzNzUiIHg9IjE4LjM5NDUzMTI1IiB5PSIyLjc3NjUyNDI2MjQ1MzY3NyI+ZXh0ZW5zaW9uIHBvaW50ICZsdDtvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29uZmlndXJhdGlvbiZndDsKLSJ0cmFuc2Zvcm1hdGlvbi5jb25maWd1cmF0aW9uIjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0iZmF0YXJyb3cyIi8+Ci0gICAgICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgIDwvbm9kZT4KLSAgICAgIDwvZ3JhcGg+Ci0gICAgPC9ub2RlPgotICAgIDxub2RlIGlkPSJuMSIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjEwNjguNzQ2OTQ4MjQyMTg3NSIgd2lkdGg9Ijc3NC42ODQ1NzAzMTI1IiB4PSI3NTUuMjY4MzU5Mzc1MDAwMyIgeT0iLTMuOTUyODgwODU5Mzc1Ii8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNzc0LjY4NDU3MDMxMjUiIHg9IjAuMCIgeT0iMC4wIj5Vc2UgIGNhc2UgKGUuZy4gSW5jaHJvbiBjaHJvblNJTSB0cmFuc2Zvcm1hdGlvbik8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNjcuMzY5MTQwNjI1IiB4PSItOC42ODQ1NzAzMTI1IiB5PSIwLjAiPkZvbGRlciAxNjwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgPC9kYXRhPgotICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOiI+Ci0gICAgICAgIDxub2RlIGlkPSJuMTo6bjAiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIxNDcuOTk5OTk5OTk5OTk5OTciIHdpZHRoPSI1OTkuNzYwMzk3MTM1OTc5NSIgeD0iODU1LjE5MjUzMjU1MTUyMDgiIHk9IjE1MC43MDE0NDY1MzMyMDMxIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTk5Ljc2MDM5NzEzNTk3OTUiIHg9IjAuMCIgeT0iMC4wIj5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iNyIgYm90dG9tRj0iNi42NTcwNDM0NTcwMzEyNSIgbGVmdD0iMTQiIGxlZnRGPSIxNC4yMzA5MTkxMjQxNTQ3NTIiIHJpZ2h0PSIyMiIgcmlnaHRGPSIyMi4wNTU5ODk1MTQwMjA0NCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjU5LjAyNjg1NTQ2ODc1IiB4PSItNC41MTM0Mjc3MzQzNzUiIHk9IjAuMCI+Rm9sZGVyIDU8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgPC9kYXRhPgotICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMTo6bjA6Ij4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjA6Om4wIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIxNzAuMCIgeD0iODg0LjQyMzQ1MTY3NTY3NTYiIHk9IjE4OC4wNzc5MTEzNzY5NTMxIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTIyLjQ0MDkxNzk2ODc1IiB4PSIyMy43Nzk1NDEwMTU2MjUiIHk9IjMuMCI+SW5jaHJvbkFwcGxpY2F0aW9uPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6QXR0cmlidXRlTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgIDwveTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjA6Om4xIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMzIyLjQwNzIyNjU2MjUiIHg9Ijg4NC40MjM0NTE2NzU2NzU2IiB5PSIyNDYuMzQzMjMxMjAxMTcxODIiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkZGRkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjMzLjQwMjM0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMjY3LjQ4NDM3NSIgeD0iMjcuNDYxNDI1NzgxMjUiIHk9Ii0yLjcwMTE3MTg3NSI+ZXh0ZW5zaW9uICZsdDtvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuYXBwbGljYXRpb25zJmd0OwotImFwcGxpY2F0aW9uIjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0iZmF0YXJyb3cyIi8+Ci0gICAgICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMDo6bjIiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjk1MTYwNjg0NDAwMzQzNiIgd2lkdGg9IjMyMi40MDcyMjY1NjI1IiB4PSIxMDk1LjQ4OTcxMzYxMDk3OTgiIHk9IjIwMy4zMTk3NTkzMjIxMzg4NSIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGRkZGRiIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMzMuNDAyMzQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyNjkuOTgwNDY4NzUiIHg9IjI2LjIxMzM3ODkwNjI1IiB5PSItMS4yMjUzNjg0NTI5OTgyODIiPmV4dGVuc2lvbiAmbHQ7b3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLnByb2R1Y3RzJmd0OwotIm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0Ijx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0iZmF0YXJyb3cyIi8+Ci0gICAgICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgIDwvbm9kZT4KLSAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMSIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjcwNC4zMjkzNDU3MDMxMjQ5IiB3aWR0aD0iNzQ0LjY4NDU3MDMxMjUiIHg9Ijc3MC4yNjgzNTkzNzUwMDAzIiB5PSIzNDUuNDY0NzIxNjc5Njg3NSIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9Ijc0NC42ODQ1NzAzMTI1IiB4PSIwLjAiIHk9IjAuMCI+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjE3IiBib3R0b21GPSIxNy4wNzk4ODYwNDU0MDUxNDYiIGxlZnQ9IjkiIGxlZnRGPSI4LjY4NDU3MDMxMjUiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjY3LjM2OTE0MDYyNSIgeD0iLTguNjg0NTcwMzEyNSIgeT0iMC4wIj5Gb2xkZXIgMTQ8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgPC9kYXRhPgotICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMTo6bjE6Ij4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4wIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iODAuMzc2NDY0ODQzNzUiIHdpZHRoPSIyMDAuMCIgeD0iMTA2MS45NTI5Mjk2ODc1MDAzIiB5PSI4NjQuNjI5Mzk0NTMxMjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyMDAuMCIgeD0iMC4wIiB5PSIwLjAiPi5jb25maWd1cmF0aW9uPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgNjwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMTo6bjA6Ij4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMDo6bjAiPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIxNzAuMCIgeD0iMTA3Ni45NTI5Mjk2ODc1MDAzIiB5PSI5MDIuMDA1ODU5Mzc1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTI4LjIyOTk4MDQ2ODc1IiB4PSIyMC44ODUwMDk3NjU2MjUiIHk9IjMuMCI+TTJNVHJhbnNmb3JtYXRpb248eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4xIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iODAuMzc2NDY0ODQzNzUiIHdpZHRoPSIyMDAuMCIgeD0iMTE0MC40NTI5Mjk2ODc1MDAzIiB5PSI3NjkuMjUyOTI5Njg3NSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIwMC4wIiB4PSIwLjAiIHk9IjAuMCI+Lm1vZGVsLmxvYWRlcjwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjU5LjAyNjg1NTQ2ODc1IiB4PSItNC41MTM0Mjc3MzQzNzUiIHk9IjAuMCI+Rm9sZGVyIDc8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMTo6bjE6Om4xOiI+Ci0gICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjE6Om4wIj4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjExNTUuNDUyOTI5Njg3NTAwMyIgeT0iODA2LjYyOTM5NDUzMTI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTU4LjU3ODEyNSIgeD0iNS43MTA5Mzc1IiB5PSIzLjAiPkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iLTAuMDM3MDMwOTAxMjI3Njc4NTUiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4yIiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iODAuMzc2NDY0ODQzNzUiIHdpZHRoPSIyMDAuMCIgeD0iODYxLjk1MjkyOTY4NzUwMDMiIHk9Ijc1OC4wNjQ2OTcyNjU2MjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyMDAuMCIgeD0iMC4wIiB5PSIwLjAiPi5tb2R1bGU8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI1OS4wMjY4NTU0Njg3NSIgeD0iLTQuNTEzNDI3NzM0Mzc1IiB5PSIwLjAiPkZvbGRlciA4PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Om4xOjpuMjoiPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4yOjpuMCI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE3MC4wIiB4PSI4NzYuOTUyOTI5Njg3NTAwMyIgeT0iNzk1LjQ0MTE2MjEwOTM3NSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE2OS4zOTQ1MzEyNSIgeD0iMC4zMDI3MzQzNzUiIHk9IjMuMCI+RGVmYXVsdE0yTUluamVjdG9yTW9kdWxlPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMyIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjM1Ni40NDExNjIxMDkzNzUiIHdpZHRoPSI3MDYuMCIgeD0iNzkzLjk1MjkyOTY4NzUwMDMiIHk9IjM4Mi44NDExODY1MjM0Mzc1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNzA2LjAiIHg9IjAuMCIgeT0iMC4wIj4udGVtcGxhdGVzPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iODA5LjA5Mjc3MzQzNzUiIHk9IjIyMS40MzUzMDI3MzQzNzUiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2Ny4zNjkxNDA2MjUiIHg9Ii04LjY4NDU3MDMxMjUiIHk9IjAuMCI+Rm9sZGVyIDExPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Om4xOjpuMzoiPgotICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4zOjpuMCI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMTEyLjg4NTEwMjcwMjcwMjc0IiB3aWR0aD0iMjUzLjAiIHg9IjgwOC45NTI5Mjk2ODc1MDAzIiB5PSI1MjUuMjIyODY5MTgwODc1MyIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTMiIGZvbnRTdHlsZT0iYm9sZCIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOS45MjYyNjk1MzEyNSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIzOS40OTgwNDY4NzUiIHg9IjYuNzUwOTc2NTYyNSIgeT0iMy4wIj5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iLTAuMDM3MDMwOTAxMjI3Njc4NTUiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjEiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMDQuMDY0Njk3MjY1NjI1IiB3aWR0aD0iMzI5LjUiIHg9IjExNTUuNDUyOTI5Njg3NTAwMyIgeT0iNDIwLjIxNzY1MTM2NzE4NzUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIzMjkuNSIgeD0iMC4wIiB5PSIwLjAiPi5tMm08L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjE1IiBib3R0b21GPSIxNS4wIiBsZWZ0PSIxNSIgbGVmdEY9IjE1LjAiIHJpZ2h0PSIxNSIgcmlnaHRGPSIxNS4wIiB0b3A9IjE1IiB0b3BGPSIxNS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNjcuMzY5MTQwNjI1IiB4PSItOC42ODQ1NzAzMTI1IiB5PSIwLjAiPkZvbGRlciAxMDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMTo6bjM6Om4xOiI+Ci0gICAgICAgICAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjE6Om4zOjpuMTo6bjAiPgotICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjEyMDQuOTUyOTI5Njg3NTAwMyIgeT0iNDU3LjU5NDExNjIxMDkzNzUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxNjQuMzYwODM5ODQzNzUiIHg9IjIuODE5NTgwMDc4MTI1IiB5PSIzLjAiPkFtbHQySW5jaHJvblRyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjE6Om4xIj4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE3MC4wIiB4PSIxMjg0Ljk1MjkyOTY4NzUwMDMiIHk9IjQ4OC43ODIzNDg2MzI4MTI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTE4LjEzMDg1OTM3NSIgeD0iMjUuOTM0NTcwMzEyNSIgeT0iMy4wIj5Nb2RlbFRyYW5zZm9ybWVyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpNZXRob2RMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjE6Om4yIj4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE3MC4wIiB4PSIxMjY2Ljk1MjkyOTY4NzUwMDMiIHk9IjUxOS45NzA1ODEwNTQ2ODc1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTMxLjg2MDgzOTg0Mzc1IiB4PSIxOS4wNjk1ODAwNzgxMjUiIHk9IjMuMCI+U2V0dGluZ3NUcmFuc2Zvcm1lcjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpVTUwgY2xpcENvbnRlbnQ9InRydWUiIGNvbnN0cmFpbnQ9IiIgaGFzRGV0YWlsc0NvbG9yPSJmYWxzZSIgb21pdERldGFpbHM9ImZhbHNlIiBzdGVyZW90eXBlPSIiIHVzZTNERWZmZWN0PSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MPgotICAgICAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjM6Om4xOjpuMyIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjgwLjM3NjQ2NDg0Mzc1IiB3aWR0aD0iMjE1LjkwNzIyNjU2MjUiIHg9IjEyNTQuMDQ1NzAzMTI1MDAwMyIgeT0iNTU0LjkwNTg4Mzc4OTA2MjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyMTUuOTA3MjI2NTYyNSIgeD0iMC4wIiB5PSIwLjAiPi5jb25zdHJhaW50czwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iNCIgbGVmdEY9IjQuNDA3MjI2NTYyNSIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNjcuMzY5MTQwNjI1IiB4PSItOC42ODQ1NzAzMTI1IiB5PSIwLjAiPkZvbGRlciAxMTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMTo6bjM6Om4xOjpuMzoiPgotICAgICAgICAgICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjM6Om4xOjpuMzo6bjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE4MS41IiB4PSIxMjczLjQ1MjkyOTY4NzUwMDMiIHk9IjU5Mi4yODIzNDg2MzI4MTI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTc4LjgxNDQ1MzEyNSIgeD0iMS4zNDI3NzM0Mzc1IiB5PSIzLjAiPmUuZy4gQ29uc3RyYWludHNUcmFuc2Zvcm1lcjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjE6Om40IiB5ZmlsZXMuZm9sZGVydHlwZT0iZ3JvdXAiPgotICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx5OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iODAuMzc2NDY0ODQzNzUiIHdpZHRoPSIyMDAuMCIgeD0iMTIxNS40NTI5Mjk2ODc1MDAzIiB5PSI1OTEuOTA1ODgzNzg5MDYyNSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIwMC4wIiB4PSIwLjAiIHk9IjAuMCI+LnN3PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2Ny4zNjkxNDA2MjUiIHg9Ii04LjY4NDU3MDMxMjUiIHk9IjAuMCI+Rm9sZGVyIDEyPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9InRydWUiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgICAgICAgICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Om4xOjpuMzo6bjE6Om40OiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bm9kZSBpZD0ibjE6Om4xOjpuMzo6bjE6Om40OjpuMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyOC4wIiB3aWR0aD0iMTcwLjAiIHg9IjEyMzAuNDUyOTI5Njg3NTAwMyIgeT0iNjI5LjI4MjM0ODYzMjgxMjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMzYuMjAyNjM2NzE4NzUiIHg9IjE2Ljg5ODY4MTY0MDYyNSIgeT0iMy4wIj4gICAgZS5nIFN3VHJhbnNmcm9tZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjM6Om4xOjpuNSIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjgwLjM3NjQ2NDg0Mzc1IiB3aWR0aD0iMjAwLjAiIHg9IjExNzAuNDUyOTI5Njg3NTAwMyIgeT0iNjI4LjkwNTg4Mzc4OTA2MjUiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyMDAuMCIgeD0iMC4wIiB5PSIwLjAiPi5odzwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNjcuMzY5MTQwNjI1IiB4PSItOC42ODQ1NzAzMTI1IiB5PSIwLjAiPkZvbGRlciAxMzwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICAgICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMTo6bjM6Om4xOjpuNToiPgotICAgICAgICAgICAgICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjM6Om4xOjpuNTo6bjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMjguMCIgd2lkdGg9IjE3MC4wIiB4PSIxMTg1LjQ1MjkyOTY4NzUwMDMiIHk9IjY2Ni4yODIzNDg2MzI4MTI1Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMyIgZm9udFN0eWxlPSJib2xkIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE5LjkyNjI2OTUzMTI1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTIyLjQ3MjY1NjI1IiB4PSIyMy43NjM2NzE4NzUiIHk9IjMuMCI+ZS5nIEh3VHJhbnNmcm9tZXI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5OlVNTCBjbGlwQ29udGVudD0idHJ1ZSIgY29uc3RyYWludD0iIiBoYXNEZXRhaWxzQ29sb3I9ImZhbHNlIiBvbWl0RGV0YWlscz0iZmFsc2UiIHN0ZXJlb3R5cGU9IiIgdXNlM0RFZmZlY3Q9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eTpBdHRyaWJ1dGVMYWJlbC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx5Ok1ldGhvZExhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveTpVTUw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC95OlVNTENsYXNzTm9kZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgICAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgICA8L2dyYXBoPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMTo6bjQiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjM4Ljk1NTM5MjI3NDkwNzI0IiB3aWR0aD0iMzkyLjQ3MzUzNDI3MDI2OTk3IiB4PSI4NzYuOTUyOTI5Njg3NTAwNCIgeT0iOTc4Ljc1ODc4OTA2MjUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkZGRkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjMzLjQwMjM0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMzI4Ljg1NTQ2ODc1IiB4PSIzMS44MDkwMzI3NjAxMzQ5ODMiIHk9IjIuNzc2NTI0MjYyNDUzNjc3Ij5leHRlbnNpb24gJmx0O29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb25maWd1cmF0aW9uJmd0OwotIm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0uY29uZmlnIjx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0iZmF0YXJyb3cyIi8+Ci0gICAgICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgIDwvbm9kZT4KLSAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMiIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjgwLjM3NjQ2NDg0Mzc1IiB3aWR0aD0iMzUyLjQwNzIyNjU2MjUwMDIiIHg9Ijg5Ny44NTY2ODU0NjYyMTY1IiB5PSIzMy40MjM1ODM5ODQzNzUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIzNTIuNDA3MjI2NTYyNTAwMiIgeD0iMC4wIiB5PSIwLjAiPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSI3NSIgbGVmdEY9Ijc0LjU2MjkxNjI4MjA5NTEiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iNTAuMCIgd2lkdGg9IjUwLjAiIHg9IjAuMCIgeT0iNjAuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjY3LjM2OTE0MDYyNSIgeD0iLTguNjg0NTcwMzEyNSIgeT0iMC4wIj5Gb2xkZXIgMTg8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iNSIgYm90dG9tRj0iNS4wIiBsZWZ0PSI1IiBsZWZ0Rj0iNS4wIiByaWdodD0iNSIgcmlnaHRGPSI1LjAiIHRvcD0iNSIgdG9wRj0iNS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8L3k6UmVhbGl6ZXJzPgotICAgICAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICAgICAgPC9kYXRhPgotICAgICAgICAgIDxncmFwaCBlZGdlZGVmYXVsdD0iZGlyZWN0ZWQiIGlkPSJuMTo6bjI6Ij4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjI6Om4wIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpVTUxDbGFzc05vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjI4LjAiIHdpZHRoPSIyNDcuODQ0MzEwMjgwNDA1MTMiIHg9Ijk4Ny40MTk2MDE3NDgzMTE2IiB5PSI3MC44MDAwNDg4MjgxMjUiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEzIiBmb250U3R5bGU9ImJvbGQiIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTkuOTI2MjY5NTMxMjUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyNDIuMzQ4MTQ0NTMxMjUiIHg9IjIuNzQ4MDgyODc0NTc3NTYyNSIgeT0iMy4wIj5BbWx0MkluY2hyb25fVHJhbnNmb3JtYXRpb24ucHJvZHVjdDx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6VU1MIGNsaXBDb250ZW50PSJ0cnVlIiBjb25zdHJhaW50PSIiIGhhc0RldGFpbHNDb2xvcj0iZmFsc2UiIG9taXREZXRhaWxzPSJmYWxzZSIgc3RlcmVvdHlwZT0iIiB1c2UzREVmZmVjdD0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx5OkF0dHJpYnV0ZUxhYmVsLz4KLSAgICAgICAgICAgICAgICAgICAgPHk6TWV0aG9kTGFiZWwvPgotICAgICAgICAgICAgICAgICAgPC95OlVNTD4KLSAgICAgICAgICAgICAgICA8L3k6VU1MQ2xhc3NOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgPC9ncmFwaD4KLSAgICAgICAgPC9ub2RlPgotICAgICAgPC9ncmFwaD4KLSAgICA8L25vZGU+Ci0gICAgPGVkZ2UgaWQ9ImUwIiBzb3VyY2U9Im4xOjpuMDo6bjAiIHRhcmdldD0ibjA6Om4wOjpuMDo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4wOjplMCIgc291cmNlPSJuMDo6bjA6Om4wOjpuMiIgdGFyZ2V0PSJuMDo6bjE6Om4yOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiPgotICAgICAgICAgICAgPHk6UG9pbnQgeD0iNzkuMjY4MzU5Mzc1MDAwMjciIHk9IjI4My44NjcyMjcwNTUzMjA0Ii8+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSI3OS4yNjgzNTkzNzUwMDAyNyIgeT0iNjY2LjY4ODIzMjQyMTg3NSIvPgotICAgICAgICAgIDwveTpQYXRoPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9ImRpYW1vbmQiIHRhcmdldD0ibm9uZSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4wOjplMSIgc291cmNlPSJuMDo6bjA6Om4wOjpuMiIgdGFyZ2V0PSJuMDo6bjE6Om4yOjpuMSI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiPgotICAgICAgICAgICAgPHk6UG9pbnQgeD0iNTMuMjY4MzU5Mzc1MDAwMjciIHk9IjI2OS4xMjM1MzUxNTYyNSIvPgotICAgICAgICAgICAgPHk6UG9pbnQgeD0iNTMuMjY4MzU5Mzc1MDAwMjciIHk9IjY5MS42ODgyMzI0MjE4NzUiLz4KLSAgICAgICAgICA8L3k6UGF0aD4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJkaWFtb25kIiB0YXJnZXQ9Im5vbmUiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMDo6ZTIiIHNvdXJjZT0ibjA6Om4wOjpuMDo6bjIiIHRhcmdldD0ibjA6Om4xOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiPgotICAgICAgICAgICAgPHk6UG9pbnQgeD0iMTE3LjI2ODM1OTM3NTAwMDI3IiB5PSIyOTcuNTU3Nzk4MTA0NDU3MSIvPgotICAgICAgICAgICAgPHk6UG9pbnQgeD0iMTE3LjI2ODM1OTM3NTAwMDI3IiB5PSI0MDguMCIvPgotICAgICAgICAgIDwveTpQYXRoPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9ImRpYW1vbmQiIHRhcmdldD0ibm9uZSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9ImUxIiBzb3VyY2U9Im4xOjpuMTo6bjA6Om4wIiB0YXJnZXQ9Im4wOjpuMTo6bjI6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlMiIgc291cmNlPSJuMTo6bjE6Om4yOjpuMCIgdGFyZ2V0PSJuMDo6bjE6Om4zOjpuMSI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpFZGdlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGNvbmZpZ3VyYXRpb249IkF1dG9GbGlwcGluZ0xhYmVsIiBkaXN0YW5jZT0iMi4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiBwcmVmZXJyZWRQbGFjZW1lbnQ9ImFueXdoZXJlIiByYXRpbz0iMC41IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMDQuNzI4NTE1NjI1IiB4PSItMjYyLjgzOTM4MzY1MjQwNjciIHk9Ii03MC4wNzc4MzI0OTUyODA4NiI+W2d1aWNlXSBiaW5kIHNvdXJjZTx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWwgYXV0b1JvdGF0aW9uRW5hYmxlZD0iZmFsc2UiIGRlZmF1bHRBbmdsZT0iMC4wIiBkZWZhdWx0RGlzdGFuY2U9IjEwLjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWxQYXJhbWV0ZXIgYW5nbGU9IjYuMjgzMTg1MzA3MTc5NTg2IiBkaXN0YW5jZT0iMTIuNjgzNjE2MjMxMjc5NTM3IiBkaXN0YW5jZVRvQ2VudGVyPSJ0cnVlIiBwb3NpdGlvbj0icmlnaHQiIHJhdGlvPSIwLjU4MDgxMTE5NzIzMjYzNDkiIHNlZ21lbnQ9Ii0xIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICA8eTpQcmVmZXJyZWRQbGFjZW1lbnREZXNjcmlwdG9yIGFuZ2xlPSIwLjAiIGFuZ2xlT2Zmc2V0T25SaWdodFNpZGU9IjAiIGFuZ2xlUmVmZXJlbmNlPSJhYnNvbHV0ZSIgYW5nbGVSb3RhdGlvbk9uUmlnaHRTaWRlPSJjbyIgZGlzdGFuY2U9Ii0xLjAiIGZyb3plbj0idHJ1ZSIgcGxhY2VtZW50PSJhbnl3aGVyZSIgc2lkZT0iYW55d2hlcmUiIHNpZGVSZWZlcmVuY2U9InJlbGF0aXZlX3RvX2VkZ2VfZmxvdyIvPgotICAgICAgICAgIDwveTpFZGdlTGFiZWw+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4xOjplMCIgc291cmNlPSJuMTo6bjE6Om4yOjpuMCIgdGFyZ2V0PSJuMTo6bjE6Om4zOjpuMTo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iLTQuNTQ3NDczNTA4ODY0NjQxRS0xMyIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkVkZ2VMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgY29uZmlndXJhdGlvbj0iQXV0b0ZsaXBwaW5nTGFiZWwiIGRpc3RhbmNlPSIyLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHByZWZlcnJlZFBsYWNlbWVudD0iYW55d2hlcmUiIHJhdGlvPSIwLjUiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9Ijk5LjM5NjQ4NDM3NSIgeD0iMzMuNDE0OTY2NjgwMzM5ODMiIHk9Ii05NC45NTg5OTc4MzE5MDY4Ij5bZ3VpY2VdIGJpbmQgdGFyZ2V0PHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgPHk6U21hcnRFZGdlTGFiZWxNb2RlbCBhdXRvUm90YXRpb25FbmFibGVkPSJmYWxzZSIgZGVmYXVsdEFuZ2xlPSIwLjAiIGRlZmF1bHREaXN0YW5jZT0iMTAuMCIvPgotICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPHk6U21hcnRFZGdlTGFiZWxNb2RlbFBhcmFtZXRlciBhbmdsZT0iMC4wIiBkaXN0YW5jZT0iMzAuMCIgZGlzdGFuY2VUb0NlbnRlcj0idHJ1ZSIgcG9zaXRpb249ImNlbnRlciIgcmF0aW89IjAuMjUzNDU5NzcwNTgzMDI0MiIgc2VnbWVudD0iLTEiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgIDx5OlByZWZlcnJlZFBsYWNlbWVudERlc2NyaXB0b3IgYW5nbGU9IjAuMCIgYW5nbGVPZmZzZXRPblJpZ2h0U2lkZT0iMCIgYW5nbGVSZWZlcmVuY2U9ImFic29sdXRlIiBhbmdsZVJvdGF0aW9uT25SaWdodFNpZGU9ImNvIiBkaXN0YW5jZT0iLTEuMCIgZnJvemVuPSJ0cnVlIiBwbGFjZW1lbnQ9ImFueXdoZXJlIiBzaWRlPSJhbnl3aGVyZSIgc2lkZVJlZmVyZW5jZT0icmVsYXRpdmVfdG9fZWRnZV9mbG93Ii8+Ci0gICAgICAgICAgPC95OkVkZ2VMYWJlbD4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlMyIgc291cmNlPSJuMTo6bjE6Om4yOjpuMCIgdGFyZ2V0PSJuMDo6bjE6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMDo6bjE6OmUwIiBzb3VyY2U9Im4wOjpuMTo6bjEiIHRhcmdldD0ibjA6Om4xOjpuMzo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJkaWFtb25kIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0iZTQiIHNvdXJjZT0ibjE6Om4xOjpuNCIgdGFyZ2V0PSJuMDo6bjE6Om40Ij4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkVkZ2VMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgY29uZmlndXJhdGlvbj0iQXV0b0ZsaXBwaW5nTGFiZWwiIGRpc3RhbmNlPSIyLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjE4LjcwMTE3MTg3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHByZWZlcnJlZFBsYWNlbWVudD0iYW55d2hlcmUiIHJhdGlvPSIwLjUiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjE0My40Mjk2ODc1IiB4PSItMjI5LjM2ODg5MTU1NzAzNjQ4IiB5PSItMjcuNTY5ODgxNzc4NTQyODIyIj5leHRlbnRpb24gcG9pbnQgLyBleHRlbnNpb248eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydEVkZ2VMYWJlbE1vZGVsIGF1dG9Sb3RhdGlvbkVuYWJsZWQ9ImZhbHNlIiBkZWZhdWx0QW5nbGU9IjAuMCIgZGVmYXVsdERpc3RhbmNlPSIxMC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydEVkZ2VMYWJlbE1vZGVsUGFyYW1ldGVyIGFuZ2xlPSI2LjI4MzE4NTMwNzE3OTU4NiIgZGlzdGFuY2U9IjE0LjU5MDQ3MTM0NjkwODU4IiBkaXN0YW5jZVRvQ2VudGVyPSJ0cnVlIiBwb3NpdGlvbj0icmlnaHQiIHJhdGlvPSIwLjUzNDI1MDUyODU0Nzg0ODciIHNlZ21lbnQ9Ii0xIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICA8eTpQcmVmZXJyZWRQbGFjZW1lbnREZXNjcmlwdG9yIGFuZ2xlPSIwLjAiIGFuZ2xlT2Zmc2V0T25SaWdodFNpZGU9IjAiIGFuZ2xlUmVmZXJlbmNlPSJhYnNvbHV0ZSIgYW5nbGVSb3RhdGlvbk9uUmlnaHRTaWRlPSJjbyIgZGlzdGFuY2U9Ii0xLjAiIGZyb3plbj0idHJ1ZSIgcGxhY2VtZW50PSJhbnl3aGVyZSIgc2lkZT0iYW55d2hlcmUiIHNpZGVSZWZlcmVuY2U9InJlbGF0aXZlX3RvX2VkZ2VfZmxvdyIvPgotICAgICAgICAgIDwveTpFZGdlTGFiZWw+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4xOjplMSIgc291cmNlPSJuMTo6bjE6Om40IiB0YXJnZXQ9Im4xOjpuMTo6bjI6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpFZGdlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGNvbmZpZ3VyYXRpb249IkF1dG9GbGlwcGluZ0xhYmVsIiBkaXN0YW5jZT0iMi4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiBwcmVmZXJyZWRQbGFjZW1lbnQ9ImFueXdoZXJlIiByYXRpbz0iMC41IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI3NC4wMzEyNSIgeD0iLTcyLjIyMjQyNzg2NzE0MDQ4IiB5PSItMTI4LjIwMjczOTU2MzIyMzUzIj5tb2R1bGUgY2xhc3M8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICA8eTpTbWFydEVkZ2VMYWJlbE1vZGVsIGF1dG9Sb3RhdGlvbkVuYWJsZWQ9ImZhbHNlIiBkZWZhdWx0QW5nbGU9IjAuMCIgZGVmYXVsdERpc3RhbmNlPSIxMC4wIi8+Ci0gICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8eTpTbWFydEVkZ2VMYWJlbE1vZGVsUGFyYW1ldGVyIGFuZ2xlPSIwLjAiIGRpc3RhbmNlPSIzMC4wIiBkaXN0YW5jZVRvQ2VudGVyPSJ0cnVlIiBwb3NpdGlvbj0icmlnaHQiIHJhdGlvPSIwLjgyNDA5MTIzMzYwMjYzNzgiIHNlZ21lbnQ9Ii0xIi8+Ci0gICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICA8eTpQcmVmZXJyZWRQbGFjZW1lbnREZXNjcmlwdG9yIGFuZ2xlPSIwLjAiIGFuZ2xlT2Zmc2V0T25SaWdodFNpZGU9IjAiIGFuZ2xlUmVmZXJlbmNlPSJhYnNvbHV0ZSIgYW5nbGVSb3RhdGlvbk9uUmlnaHRTaWRlPSJjbyIgZGlzdGFuY2U9Ii0xLjAiIGZyb3plbj0idHJ1ZSIgcGxhY2VtZW50PSJhbnl3aGVyZSIgc2lkZT0iYW55d2hlcmUiIHNpZGVSZWZlcmVuY2U9InJlbGF0aXZlX3RvX2VkZ2VfZmxvdyIvPgotICAgICAgICAgIDwveTpFZGdlTGFiZWw+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4xOjplMiIgc291cmNlPSJuMTo6bjE6Om40IiB0YXJnZXQ9Im4xOjpuMTo6bjA6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpFZGdlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGNvbmZpZ3VyYXRpb249IkF1dG9GbGlwcGluZ0xhYmVsIiBkaXN0YW5jZT0iMi4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiBwcmVmZXJyZWRQbGFjZW1lbnQ9ImFueXdoZXJlIiByYXRpbz0iMC41IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI2MS4zMzk4NDM3NSIgeD0iLTQuMzc0MTEzMTg5MDA5Njc3IiB5PSItMzMuNzExMTIwNjA1NDY4NzUiPm0ybSBjbGFzczx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWwgYXV0b1JvdGF0aW9uRW5hYmxlZD0iZmFsc2UiIGRlZmF1bHRBbmdsZT0iMC4wIiBkZWZhdWx0RGlzdGFuY2U9IjEwLjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWxQYXJhbWV0ZXIgYW5nbGU9IjAuMCIgZGlzdGFuY2U9IjMwLjAiIGRpc3RhbmNlVG9DZW50ZXI9InRydWUiIHBvc2l0aW9uPSJjZW50ZXIiIHJhdGlvPSIwLjUiIHNlZ21lbnQ9IjAiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgIDx5OlByZWZlcnJlZFBsYWNlbWVudERlc2NyaXB0b3IgYW5nbGU9IjAuMCIgYW5nbGVPZmZzZXRPblJpZ2h0U2lkZT0iMCIgYW5nbGVSZWZlcmVuY2U9ImFic29sdXRlIiBhbmdsZVJvdGF0aW9uT25SaWdodFNpZGU9ImNvIiBkaXN0YW5jZT0iLTEuMCIgZnJvemVuPSJ0cnVlIiBwbGFjZW1lbnQ9ImFueXdoZXJlIiBzaWRlPSJhbnl3aGVyZSIgc2lkZVJlZmVyZW5jZT0icmVsYXRpdmVfdG9fZWRnZV9mbG93Ii8+Ci0gICAgICAgICAgPC95OkVkZ2VMYWJlbD4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMDo6ZTMiIHNvdXJjZT0ibjA6Om4wOjpuMDo6bjEiIHRhcmdldD0ibjA6Om4xOjpuNCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiPgotICAgICAgICAgICAgPHk6UG9pbnQgeD0iOS45NjgzNTkzNzUwMDA1NDYiIHk9IjI0Ny42MjM1MzUxNTYyNDk5NyIvPgotICAgICAgICAgICAgPHk6UG9pbnQgeD0iMi40NjgzNTkzNzUwMDA1NDU3IiB5PSI4MzkuNjIzNTM1MTU2MjUiLz4KLSAgICAgICAgICA8L3k6UGF0aD4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpFZGdlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGNvbmZpZ3VyYXRpb249IkF1dG9GbGlwcGluZ0xhYmVsIiBkaXN0YW5jZT0iMi4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiBwcmVmZXJyZWRQbGFjZW1lbnQ9ImFueXdoZXJlIiByYXRpbz0iMC41IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxNDIuMDgyMDMxMjUiIHg9Ii0zMzIuNTQ4MTE5MTQ4NDcyMiIgeT0iNDYuMDg5MTkwMTI3OTE4MDciPmdldENvbmZpZ3VyYXRpb25FbGVtZW50czx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWwgYXV0b1JvdGF0aW9uRW5hYmxlZD0iZmFsc2UiIGRlZmF1bHRBbmdsZT0iMC4wIiBkZWZhdWx0RGlzdGFuY2U9IjEwLjAiLz4KLSAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDx5OlNtYXJ0RWRnZUxhYmVsTW9kZWxQYXJhbWV0ZXIgYW5nbGU9IjYuMjgzMTg1MzA3MTc5NTg2IiBkaXN0YW5jZT0iMTIuNDk5OTk5OTk5OTk5NzA5IiBkaXN0YW5jZVRvQ2VudGVyPSJ0cnVlIiBwb3NpdGlvbj0icmlnaHQiIHJhdGlvPSIwLjgxNjA5NzkzMjAxMTg4NDQiIHNlZ21lbnQ9IjAiLz4KLSAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgIDx5OlByZWZlcnJlZFBsYWNlbWVudERlc2NyaXB0b3IgYW5nbGU9IjAuMCIgYW5nbGVPZmZzZXRPblJpZ2h0U2lkZT0iMCIgYW5nbGVSZWZlcmVuY2U9ImFic29sdXRlIiBhbmdsZVJvdGF0aW9uT25SaWdodFNpZGU9ImNvIiBkaXN0YW5jZT0iLTEuMCIgZnJvemVuPSJ0cnVlIiBwbGFjZW1lbnQ9ImFueXdoZXJlIiBzaWRlPSJhbnl3aGVyZSIgc2lkZVJlZmVyZW5jZT0icmVsYXRpdmVfdG9fZWRnZV9mbG93Ii8+Ci0gICAgICAgICAgPC95OkVkZ2VMYWJlbD4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlNSIgc291cmNlPSJuMTo6bjE6Om4zOjpuMCIgdGFyZ2V0PSJuMDo6bjE6Om4zOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSItMi4yNzM3MzY3NTQ0MzIzMjA2RS0xMyIgc3k9Ii00LjMzNTY1ODkwMjc1MzQyMDVFLTE0IiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4xOjpuMTo6bjM6OmUwIiBzb3VyY2U9Im4xOjpuMTo6bjM6Om4xOjpuMCIgdGFyZ2V0PSJuMTo6bjE6Om4zOjpuMCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4xOjpuMzo6ZTEiIHNvdXJjZT0ibjE6Om4xOjpuMzo6bjE6Om4xIiB0YXJnZXQ9Im4xOjpuMTo6bjM6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJuMTo6bjE6Om4zOjplMiIgc291cmNlPSJuMTo6bjE6Om4zOjpuMTo6bjIiIHRhcmdldD0ibjE6Om4xOjpuMzo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4xOjpuMTo6bjM6OmUzIiBzb3VyY2U9Im4xOjpuMTo6bjM6Om4xOjpuMzo6bjAiIHRhcmdldD0ibjE6Om4xOjpuMzo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4xOjpuMTo6bjM6OmU0IiBzb3VyY2U9Im4xOjpuMTo6bjM6Om4xOjpuNDo6bjAiIHRhcmdldD0ibjE6Om4xOjpuMzo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4xOjpuMTo6bjM6OmU1IiBzb3VyY2U9Im4xOjpuMTo6bjM6Om4xOjpuNTo6bjAiIHRhcmdldD0ibjE6Om4xOjpuMzo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4xOjplMCIgc291cmNlPSJuMTo6bjI6Om4wIiB0YXJnZXQ9Im4xOjpuMDo6bjIiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6OmUxIiBzb3VyY2U9Im4xOjpuMjo6bjAiIHRhcmdldD0ibjE6Om4wOjpuMSI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIwLjAiIHN5PSIwLjAiIHR4PSIwLjAiIHR5PSIwLjAiLz4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICA8L2dyYXBoPgotICA8ZGF0YSBrZXk9ImQ3Ij4KLSAgICA8eTpSZXNvdXJjZXMvPgotICA8L2RhdGE+Ci08L2dyYXBobWw+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hbWFsdGhlYS10by1pbmNocm9uLXRyYW5zZm9ybWF0aW9uL0FtYWx0aGVhX3RvX0luY2hyb25fVHJhbnNmb3JtYXRpb24ueG1pbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2RvYy9hbWFsdGhlYS10by1pbmNocm9uLXRyYW5zZm9ybWF0aW9uL0FtYWx0aGVhX3RvX0luY2hyb25fVHJhbnNmb3JtYXRpb24ueG1pbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmNGY4NTguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvYW1hbHRoZWEtdG8taW5jaHJvbi10cmFuc2Zvcm1hdGlvbi9BbWFsdGhlYV90b19JbmNocm9uX1RyYW5zZm9ybWF0aW9uLnhtaW5kCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvZGV2ZWxvcGVyc19ndWlkZS5kb2N4IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvZGV2ZWxvcGVyc19ndWlkZS5kb2N4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2JhNjUxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2RldmVsb3BlcnNfZ3VpZGUuZG9jeAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZG9jL2RldmVsb3BlcnNfZ3VpZGUucGRmIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvZGV2ZWxvcGVyc19ndWlkZS5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjNjU4M2EuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9kb2MvZGV2ZWxvcGVyc19ndWlkZS5wZGYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ly5jbGFzc3BhdGggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ly5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzZGE3MmIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGlicy9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290XzIuOTguNS4yMDE5MDMxNTE0MjQuamFyIiBzb3VyY2VwYXRoPSJsaWJzLXNyYy9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290LnNvdXJjZV8yLjk4LjUuMjAxOTAzMTUxNDI0LnppcCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ly5naXRpZ25vcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ly5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0NGExYzcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0vYmluLwotL3RhcmdldC8KLS94dGVuZC1nZW4vCi0vb3V0cHV0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwMDRkMzQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPmNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3Q8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjA3NDQ4Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjAKLUJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKLUJ1bmRsZS1OYW1lOiBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ci1CdW5kbGUtU3ltYm9saWNOYW1lOiBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ci1CdW5kbGUtVmVyc2lvbjogMi45OC41LnF1YWxpZmllcgotQnVuZGxlLVZlbmRvcjogRWNsaXBzZSBJTkNIUk9OCi1BdXRvbWF0aWMtTW9kdWxlLU5hbWU6IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QKLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44Ci1SZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuZW1mLAotIG9yZy5lY2xpcHNlLmVtZi5lY29yZSwKLSBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pCi1CdW5kbGUtQ2xhc3NQYXRoOiBsaWJzL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3RfMi45OC41LjIwMTkwMzE1MTQyNC5qYXIKLUV4cG9ydC1QYWNrYWdlOiBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290LAotIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QuaW1wbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLAotIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuYXV0b3NhciwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLmF1dG9zYXIuaW1wbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLmF1dG9zYXIudXRpbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLmltcGwsCi0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5tZW1vcnksCi0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5tZW1vcnkuaW1wbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLm1lbW9yeS51dGlsLAotIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwucGVyaXBoZXJhbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLnBlcmlwaGVyYWwuaW1wbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLnBlcmlwaGVyYWwudXRpbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLnJlcXVpcmVtZW50LAotIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwucmVxdWlyZW1lbnQuaW1wbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLnJlcXVpcmVtZW50LnV0aWwsCi0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5zdGltdWxhdGlvbiwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLnN0aW11bGF0aW9uLmltcGwsCi0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5zdGltdWxhdGlvbi51dGlsLAotIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwudXRpbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290LnNldHRpbmdzLAotIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3Quc2V0dGluZ3MuaW1wbCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290LnNldHRpbmdzLnV0aWwsCi0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC51dGlsCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlN2NjZTkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICBsaWJzL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3RfMi45OC41LjIwMTkwMzE1MTQyNC5qYXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbGlicy1zcmMvY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5zb3VyY2VfMi45OC41LjIwMTkwMzE1MTQyNC56aXAgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L2xpYnMtc3JjL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3Quc291cmNlXzIuOTguNS4yMDE5MDMxNTE0MjQuemlwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMWQwODkyLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbGlicy1zcmMvY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5zb3VyY2VfMi45OC41LjIwMTkwMzE1MTQyNC56aXAKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L2xpYnMvY29tLmluY2hyb24ucmVhbHRpbWUucm9vdF8yLjk4LjUuMjAxOTAzMTUxNDI0LmphciBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbGlicy9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290XzIuOTguNS4yMDE5MDMxNTE0MjQuamFyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGNmNmQ5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbGlicy9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290XzIuOTguNS4yMDE5MDMxNTE0MjQuamFyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC9saWNlbnNlL2xpY2Vuc2UudHh0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC9saWNlbnNlL2xpY2Vuc2UudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjIzZGE5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbGljZW5zZS9saWNlbnNlLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotTGljZW5zZQotCi1Db3B5cmlnaHQgqSAyMDE4IElOQ0hST04gR21iSAotCi1UaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLy4KLVNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbGljZW5zZS9yZWFkbWUudHh0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC9saWNlbnNlL3JlYWRtZS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjZTM1NDguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC9saWNlbnNlL3JlYWRtZS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1Db250ZW50cyBvZiB0aGlzIHBsdWdpbiBhcmUgZG93bmxvYWRlZCBmcm9tIDogaHR0cHM6Ly9lY2xpcHNlLmluY2hyb24uY29tL3JlYWx0aW1lL3VwZGF0ZXNpdGVzL3JlbGVhc2UvMi45OC4yLwotCi1EZXNjcmlwdGlvbiBmcm9tIElQWmlsbGEgdy5yLnQuIGNsZWFyYW5jZSBvZiAgQ1EgMTY4MTMKLQotTmFtZTogICAgICAgICAgIElOQ0hST04gUmVhbHRpbWUgU3lzdGVtIE1vZGVsIDIuOTguMgotRGVzY3JpcHRpb246ICAgIElOQ0hST04gUmVhbHRpbWUgU3lzdGVtIE1vZGVsIHByb3ZpZGVzIGEgcG9zc2liaWxpdHkgdG8gZGVzaWduCi10aGUgbW9zdCBzdWl0YWJsZSBzb2Z0d2FyZSBhbmQgaGFyZHdhcmUgYXJjaGl0ZWN0dXJlIGFzIHdlbGwgYXMgdGhlIHBlcmZlY3QKLXRhc2sgbWFwcGluZyBvbnRvIHRoZSBwcm9jZXNzb3JzLiAgR2VuZXJhdGVkIEluY2hyb24gbW9kZWxzIGNhbiBiZSB1c2VkIGZvcgotcmVhbC10aW1lIHNpbXVsYXRpb24sIGFuYWx5c2lzIGFuZCBpbi1kZXB0aCBmb3JlY2FzdCBvZiB5b3VyIGVtYmVkZGVkCi1zb2Z0d2FyZSYjMDM5O3MgZHluYW1pYyBwZXJmb3JtYW5jZS4gCi0KLUluIEFQUDRNQyB0b29scyBwcm9qZWN0IHdlIGFyZSBkZXZlbG9waW5nIGEgdG9vbCB0byB0cmFuc2Zvcm0gQW1hbHRoZWEgbW9kZWwgdG8KLUluY2hyb24gbW9kZWwgKE0yTSkuIEFzIGEgcGFydCBvZiB0aGUgdGFyZ2V0IHdlIHVzZSB0aGUgSW5jaHJvbiB1cGRhdGUgc2l0ZS4KLQotCi1EdWUgRGlsaWdlbmNlOiAgVHlwZV9BCi1MaWNlbnNlKHMpOiAgICAgRWNsaXBzZSBQdWJsaWMgTGljZW5zZQotCi1Qcm9qZWN0IFVSTDogICAgaHR0cDovL3d3dy5pbmNocm9uLmNvbQotU291cmNlIFVSTDogICAgIGh0dHA6Ly9lY2xpcHNlLmluY2hyb24uY29tL3JlYWx0aW1lL3VwZGF0ZXNpdGVzL3JlbGVhc2UvMi45OC4yLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbW9kZWwvcm9vdC5lY29yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbW9kZWwvcm9vdC5lY29yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZmYWM1MC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L21vZGVsL3Jvb3QuZWNvcmUKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAyICswLDAgQEAKLTw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+Ci08ZWNvcmU6RVBhY2thZ2UgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIgeG1pOnZlcnNpb249IjIuMCIgbmFtZT0icm9vdCIgbnNVUkk9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguMyIgbnNQcmVmaXg9InJvb3QiPgotICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+Ci0gICAgPGRldGFpbHMga2V5PSJjb3B5cmlnaHQiIHZhbHVlPSJDb3B5cmlnaHQgKGMpIDIwMTctMjAxOCBJTkNIUk9OIEdtYkgmIzEzOyYjMTA7JiMxMzsmIzEwO1RoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUmIzEzOyYjMTA7YXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAmIzEzOyYjMTA7d2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvJiMxMzsmIzEwOyYjMTM7JiMxMDtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMCYjMTM7JiMxMDsmIzEzOyYjMTA7Q29udHJpYnV0b3JzOiYjMTM7JiMxMDsgICAgSU5DSFJPTiBHbWJIIC0gTWV0YSBNb2RlbCBkZXNpZ24gYW5kIGltcGxlbWVudGF0aW9uIi8+Ci0gIDwvZUFubm90YXRpb25zPgotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlZmVycmFibGUiPgotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpbnRyaW5zaWNJZCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIgaUQ9InRydWUiLz4KLSAgPC9lQ2xhc3NpZmllcnM+Ci0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUm9vdCI+Ci0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1vZGVsIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvQ29udGFpbmVyRWxlbWVudCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2V0dGluZ3MiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9zZXR0aW5ncy9TZXR0aW5ncyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgPC9lQ2xhc3NpZmllcnM+Ci0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVEYXRhVHlwZSIgbmFtZT0iRGlyZWN0b3J5TmFtZSIgaW5zdGFuY2VDbGFzc05hbWU9ImphdmEubGFuZy5TdHJpbmciLz4KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RURhdGFUeXBlIiBuYW1lPSJGaWxlTmFtZSIgaW5zdGFuY2VDbGFzc05hbWU9ImphdmEubGFuZy5TdHJpbmciLz4KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RURhdGFUeXBlIiBuYW1lPSJNdWx0aUxpbmVUZXh0IiBpbnN0YW5jZUNsYXNzTmFtZT0iamF2YS5sYW5nLlN0cmluZyIvPgotICA8ZVN1YnBhY2thZ2VzIG5hbWU9Im1vZGVsIiBuc1VSST0iaHR0cDovL2luY2hyb24uY29tL3JlYWx0aW1lL3Jvb3QvMi45OC4zL21vZGVsIiBuc1ByZWZpeD0ibW9kZWwiPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQWJzdHJhY3RDcHVNb2RlbCIgYWJzdHJhY3Q9InRydWUiLz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFjdGl2YXRlUHJvY2VzcyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0FjdGl2YXRpb25BY3Rpb24iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRhcmdldCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1Byb2Nlc3MiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJBY3RpdmF0aW9uQ29ubmVjdGlvbiIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0Nvbm5lY3Rpb24iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImFjdGl2YXRvcnMiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQWN0aXZhdGlvbkl0ZW0iIGVPcHBvc2l0ZT0iIy8vbW9kZWwvQWN0aXZhdGlvbkl0ZW0vY29ubmVjdGlvbiIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImFuZFNlbWFudGljIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJBY3RpdmF0aW9uSXRlbSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0NhbGxTZXF1ZW5jZUl0ZW0iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbm5lY3Rpb24iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9BY3RpdmF0aW9uQ29ubmVjdGlvbiIgZU9wcG9zaXRlPSIjLy9tb2RlbC9BY3RpdmF0aW9uQ29ubmVjdGlvbi9hY3RpdmF0b3JzIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGVsYXkiIGVUeXBlPSIjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQWN0aXZhdGlvbkFjdGlvbiIgYWJzdHJhY3Q9InRydWUiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9mZnNldCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwZXJpb2QiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGVsYXkiIGVUeXBlPSIjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQWRkcmVzc1JhbmdlIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJiYXNlIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzaXplIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFyaW5jU3lzdGVtIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvU3lzdGVtIi8+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IkJ1ZmZlclN0cmF0ZWd5Ij4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iU2xvdE9yZGVyIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlByaW9yaXR5IiB2YWx1ZT0iMSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJGSUZPIiB2YWx1ZT0iMiIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQnVzTWVzc2FnZSIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZnVsbE1lc3NhZ2VzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL01lc3NhZ2VEYXRhIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV2ZW50cyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9UcmFjZUV2ZW50IiBjb250YWlubWVudD0idHJ1ZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpbkNhbGxHcmFwaCIgZVR5cGU9IiMvL21vZGVsL0NhbGxHcmFwaCIgY29udGFpbm1lbnQ9InRydWUiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3V0Q2FsbEdyYXBoIiBlVHlwZT0iIy8vbW9kZWwvQ2FsbEdyYXBoIiBjb250YWlubWVudD0idHJ1ZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNhbGxiYWNrRnVuY3Rpb24iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImVudHJ5RnVuY3Rpb24iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9Tb3VyY2VGdW5jdGlvbiIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InR5cGUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9DYWxsYmFja0Z1bmN0aW9uVHlwZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJDYWxsYmFja0Z1bmN0aW9uVHlwZSI+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkluaXQiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUHJvY2Vzc0FjdGl2YXRlZCIgdmFsdWU9IjEiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUHJvY2Vzc0Jsb2NrZWQiIHZhbHVlPSIyIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlByb2Nlc3NUZXJtaW5hdGVkIiB2YWx1ZT0iMyIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJQcm9jZXNzVW5ibG9ja2VkIiB2YWx1ZT0iNCIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJDb29wZXJhdGl2ZVNjaGVkdWxlIiB2YWx1ZT0iNSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJTdWJzY2hlZHVsZXJDaGFuZ2VkIiB2YWx1ZT0iNiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJUaW1lckV4cGlyZWQiIHZhbHVlPSI3Ii8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDYWxsR3JhcGgiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImVuZGxlc3NMb29wIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZ3JhcGhFbnRyaWVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0dyYXBoRW50cnlCYXNlIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2FsbFNlcXVlbmNlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvR3JhcGhFbnRyeUJhc2UiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNhbGxzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0NhbGxTZXF1ZW5jZUl0ZW0iIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDYWxsU2VxdWVuY2VJdGVtIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvZmZzZXQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icGVyaW9kIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ0FOQnVzTWVzc2FnZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0J1c01lc3NhZ2UiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImZvcm1hdCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL0NBTkJ1c01lc3NhZ2VGb3JtYXQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IlN0YW5kYXJkIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iY2FuSWQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2l6ZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iQ0FOQnVzTWVzc2FnZUZvcm1hdCI+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlN0YW5kYXJkIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkV4dGVuZGVkIiB2YWx1ZT0iMSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJKMTkzOV9UUF9CQU0iIHZhbHVlPSIyIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkoxOTM5X1RQX1AyUCIgdmFsdWU9IjMiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iSWdub3JlIiB2YWx1ZT0iNCIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2xvY2siIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9UcmFjZU9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZnJlcXVlbmN5IiBlVHlwZT0iIy8vbW9kZWwvRnJlcXVlbmN5IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InBlcmlvZCIgb3JkZXJlZD0iZmFsc2UiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImRyaWZ0IiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyYW5nZSIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InN0YXJ0VGltZUZpeGVkIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzdGFydFRpbWVJc1JhbmRvbSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhcnRUaW1lTWluIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGFydFRpbWVNYXgiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InN0YXJ0VmFsdWUiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ1c2VycyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9DbG9ja1VzZXIiIGVPcHBvc2l0ZT0iIy8vbW9kZWwvQ2xvY2tVc2VyL2Nsb2NrIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2xvY2tVc2VyIiBhYnN0cmFjdD0idHJ1ZSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY2xvY2siIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9DbG9jayIgZU9wcG9zaXRlPSIjLy9tb2RlbC9DbG9jay91c2VycyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29udGFpbmVyIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QgIy8vbW9kZWwvQ29udGFpbmVyRWxlbWVudCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29udGVudHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQ29udGFpbmVyRWxlbWVudCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbnRhaW5lckVsZW1lbnQiIGFic3RyYWN0PSJ0cnVlIi8+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb21waWxlclNldHRpbmdzIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc1RhcmdldENvbXBpbGVyIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc1RhcmdldENvbXBpbGVyT3ZlcnJpZGVWYWx1ZXMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InR5cGUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ2ZXJzaW9uIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icGF0aCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImFyZ3MiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbXBvbmVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ2YXJpYWJsZXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvbWVtb3J5L0RhdGFPYmplY3QiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZnVuY3Rpb25zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0Z1bmN0aW9uIiBjb250YWlubWVudD0idHJ1ZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0cmFuc2xhdGlvblVuaXRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL1RyYW5zbGF0aW9uVW5pdCIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29uZGl0aW9uYWxUcmFjZUV2ZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvRXZlbnRDaGFpblN0ZXAiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRyYWNlRXZlbnQiIGVUeXBlPSIjLy9tb2RlbC9UcmFjZUV2ZW50Ii8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icHJvY2VzcyIgZVR5cGU9IiMvL21vZGVsL1Byb2Nlc3MiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ2YWx1ZUNvbnN0cmFpbnQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbm5lY3Rpb24iIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImFjdGl2YXRpb25zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0FjdGl2YXRpb25BY3Rpb24iIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDcHUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9UcmFjZU9iamVjdCAjLy9tb2RlbC9Mb2FkUmVzb3VyY2UgIy8vbW9kZWwvQ2xvY2tVc2VyIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb3JlcyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQ3B1Q29yZSIgY29udGFpbm1lbnQ9InRydWUiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iY3B1TW9kZWwiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icmVsb2FkQ3B1TW9kZWwiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Imh5cGVydmlzb3IiIGVUeXBlPSIjLy9tb2RlbC9IeXBlclZpc29yQ29uZmlnIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImludGVyY29ubmVjdHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvbWVtb3J5L0ludGVyY29ubmVjdCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJtZW1vcmllcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9tZW1vcnkvTWVtb3J5IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1lbW9yeVJlZ2lvbnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvTWVtb3J5UmVnaW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InBhcnRpdGlvbnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvUGFydGl0aW9uIiBjb250YWlubWVudD0idHJ1ZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwZXJpcGhlcmFscyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9wZXJpcGhlcmFsL1BlcmlwaGVyYWwiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDcHVDb3JlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QgIy8vbW9kZWwvVHJhY2VPYmplY3QgIy8vbW9kZWwvTG9hZFJlc291cmNlIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwcmVzY2FsZXIiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEuMCIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImJpdFdpZHRoIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIzMiIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbm5lY3RlZFNsYXZlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvbWVtb3J5L0luaXRpYXRvclBvcnQiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEYXRhRmxvdyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0V2ZW50Q2hhaW4iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImVkZ2VzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0RhdGFGbG93RWRnZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZWZlcmVuY2VzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0RhdGFGbG93UmVmZXJlbmNlIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGF0YUZsb3dDb25uZWN0aW9uIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ29ubmVjdGlvbiI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iY29tbXVuaWNhdGlvblR5cGUiIGVUeXBlPSIjLy9tb2RlbC9EYXRhRmxvd0NvbW11bmljYXRpb25UeXBlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJFdmVudEJhc2VkIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZGVmYXVsdEVsZW1lbnRzIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByb3ZpZGVyIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVmFyaWFibGVXcml0ZUFjY2VzcyIgZU9wcG9zaXRlPSIjLy9tb2RlbC9WYXJpYWJsZVdyaXRlQWNjZXNzL2Nvbm5lY3Rpb24iPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVxdWVzdGVycyIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3MiIGVPcHBvc2l0ZT0iIy8vbW9kZWwvVmFyaWFibGVSZWFkQWNjZXNzL2Nvbm5lY3Rpb24iLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzaXplIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJEYXRhRmxvd0NvbW11bmljYXRpb25UeXBlIj4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRXZlbnRCYXNlZCIgbGl0ZXJhbD0iRXZlbnRCYXNlZCIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJTaGFyZWRWYXJpYWJsZSIgdmFsdWU9IjEiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUXVldWluZyIgdmFsdWU9IjIiIGxpdGVyYWw9IlF1ZXVpbmciLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRhdGFGbG93RWRnZSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RpbXVsdXMiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9WYXJpYWJsZUFjY2VzcyI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZXNwb25zZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1ZhcmlhYmxlQWNjZXNzIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGF0YUZsb3dSZWZlcmVuY2UiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRhdGFGbG93IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvRGF0YUZsb3ciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGltdWx1cyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1ZhcmlhYmxlQWNjZXNzIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlc3BvbnNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVmFyaWFibGVBY2Nlc3MiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEaXNjcmV0ZURpc3RyaWJ1dGlvbkVudHJ5Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJjb3VudCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXhlY1RpbWUiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkVuZm9yY2VkTWlncmF0aW9uIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ2FsbFNlcXVlbmNlSXRlbSIvPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXN0aW1hdG9yU2V0dGluZ3MiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1vZGVsIiBlVHlwZT0iIy8vbW9kZWwvQWJzdHJhY3RDcHVNb2RlbCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvcHRDb21waWxlciIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9wdFZlcnNpb24iIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvcHRMYWJlbHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ib3B0RmxhZ3MiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2VsZWN0ZWRPcHQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiLz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50Q2hhaW4iIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QgIy8vbW9kZWwvVHJhY2VPYmplY3QiLz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50Q2hhaW5TdGVwIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0ICMvL21vZGVsL1RyYWNlT2JqZWN0Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJsYWJlbCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJFdmVudENvbmp1bmN0aW9uT3BlcmF0b3JUeXBlIj4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQU5EIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik9SIiB2YWx1ZT0iMSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXZlbnRTZXF1ZW5jZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0V2ZW50Q2hhaW4iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im91dE9mT3JkZXJSZXNldCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2VxdWVuY2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQ29uZGl0aW9uYWxUcmFjZUV2ZW50IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRnJlcXVlbmN5Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ2YWx1ZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUZsb2F0IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxMDAwIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idW5pdCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL0ZyZXF1ZW5jeVVuaXQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9Ik1IeiIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJGcmVxdWVuY3lVbml0Ij4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iSHoiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0ia0h6IiB2YWx1ZT0iMSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJNSHoiIHZhbHVlPSIyIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkdIeiIgdmFsdWU9IjMiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkZ1bmN0aW9uIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QgIy8vbW9kZWwvVHJhY2VPYmplY3QiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNhbGxHcmFwaCIgZVR5cGU9IiMvL21vZGVsL0NhbGxHcmFwaCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkZ1bmN0aW9uQ2FsbCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0NhbGxTZXF1ZW5jZUl0ZW0iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImZ1bmN0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvRnVuY3Rpb24iPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZ3VhcmRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL1NldEd1YXJkIiBlT3Bwb3NpdGU9IiMvL21vZGVsL1NldEd1YXJkL2Z1bmN0aW9uQ2FsbCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvRXZlbnQiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZXZlbnRDb25qdW5jdGlvbk9wZXJhdG9yIiBlVHlwZT0iIy8vbW9kZWwvRXZlbnRDb25qdW5jdGlvbk9wZXJhdG9yVHlwZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iT1IiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkdyYXBoRW50cnlCYXNlIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0cmlnZ2VyVG9rZW5zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL1RyaWdnZXJUb2tlbiIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iR2VuZXJhbEluZm8iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImF1dGhvciIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImNyZWF0b3IiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkZXNjcmlwdGlvbiIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImVtYWlsIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibW9kaWZpZWREYXRlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRGF0ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByb2plY3RGaWxlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJvamVjdFBhdGgiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzYXZlRGlyIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idmVyc2lvbiIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iR2VuZXJpY1N5c3RlbSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL1N5c3RlbSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icnRvc0NvbmZpZyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1J0b3NDb25maWciIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJIeXBlclZpc29yQ29uZmlnIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Imh5cGVyVmlzb3JTeXN0ZW0iIGVUeXBlPSIjLy9tb2RlbC9TeXN0ZW0iLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ2bVNjaGVkdWxlcnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvU2NoZWR1bGVyIiBjb250YWlubWVudD0idHJ1ZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ2aXJ0dWFsQ29yZXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQ3B1Q29yZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ikh5cGVyVmlzb3JTeXN0ZW1TY2hlZHVsYWJsZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL1NjaGVkdWxhYmxlIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ2aXJ0dWFsU3lzdGVtIiBlVHlwZT0iIy8vbW9kZWwvU3lzdGVtIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJIeXBlclZpc29yVmlydHVhbENvcmVTY2hlZHVsYWJsZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL1NjaGVkdWxhYmxlIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ2aXJ0dWFsQ29yZSIgZVR5cGU9IiMvL21vZGVsL0NwdUNvcmUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkxvYWRSZXNvdXJjZSIgYWJzdHJhY3Q9InRydWUiPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNZW1vcnlSZWdpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYmFzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZmlsZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZmxhZ3MiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwYWdlcyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBhZ2VTaXplIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTG9uZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzZWN0aW9ucyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InNoYXJlZE5hbWUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iTWVtb3J5UmVnaW9uRmxhZ3MiPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJDb2RlIiB2YWx1ZT0iMSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJEYXRhIiB2YWx1ZT0iMiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJJTyIgdmFsdWU9IjQiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iU2hhcmVkIiB2YWx1ZT0iOCIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJFeGVjIiB2YWx1ZT0iMTYiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iV3JpdGUiIHZhbHVlPSIzMiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJJbml0IiB2YWx1ZT0iMjU2Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkxvYWQiIHZhbHVlPSI1MTIiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUGFnZWQiIHZhbHVlPSIxMDI0Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlRleHQiIHZhbHVlPSIyNzMiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUmFtIiB2YWx1ZT0iMzA3Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlJvbSIgdmFsdWU9IjI3NSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJQZXJpcGgiIHZhbHVlPSIzNiIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTWVzc2FnZURhdGEiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2l6ZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1vZGUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idmFsdWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1vZGVDb25kaXRpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29uanVuY3Rpb25zIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL01vZGVDb25qdW5jdGlvbiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1vZGVDb25kaXRpb25FdmFsdWF0aW9uIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ2FsbFNlcXVlbmNlSXRlbSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29uZGl0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvTW9kZUNvbmRpdGlvbiIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTW9kZUNvbmp1bmN0aW9uIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJtb2RlcyIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9Nb2RlIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTW9kZUdyb3VwIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1vZGVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL01vZGUiIGNvbnRhaW5tZW50PSJ0cnVlIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImluaXRpYWxNb2RlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvTW9kZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1vZGVsIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QgIy8vbW9kZWwvQ29udGFpbmVyRWxlbWVudCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYnVzUGVyaXBoZXJhbHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvcGVyaXBoZXJhbC9CdXMiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY2xvY2tzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0Nsb2NrIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNwdXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQ3B1IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbm5lY3Rpb25zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0Nvbm5lY3Rpb24iIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnRDaGFpbnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvRXZlbnRDaGFpbiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvRXZlbnQiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZm1pIiBlVHlwZT0iIy8vbW9kZWwvZm1pL01vZGVsRGVzY3JpcHRpb24iIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZ2VuZXJhbEluZm8iIGVUeXBlPSIjLy9tb2RlbC9HZW5lcmFsSW5mbyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJnbG9iYWxNb2RlQ29uZGl0aW9ucyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9Nb2RlQ29uZGl0aW9uIiBjb250YWlubWVudD0idHJ1ZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJnbG9iYWxNb2RlR3JvdXBzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL01vZGVHcm91cCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpbnRlcmNvbm5lY3RzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9JbnRlcmNvbm5lY3QiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWVtb3JpZXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvbWVtb3J5L01lbW9yeSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvbWl0Q2FsbE5lc3RpbmdEaWFncmFtIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9taXRJbXBsaWNpdEV2ZW50Q2hhaW5zIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9taXRTdGFja0RpYWdyYW0iIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icGVyaXBoZXJhbFBvcnRDb25uZWN0aW9ucyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9wZXJpcGhlcmFsL1BvcnRDb25uZWN0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlcXVpcmVtZW50cyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9yZXF1aXJlbWVudC9SZXF1aXJlbWVudCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGltdWxhdGlvblNjZW5hcmlvcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxhdGlvblNjZW5hcmlvIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlZmF1bHRTY2VuYXJpbyIgZVR5cGU9IiMvL21vZGVsL3N0aW11bGF0aW9uL1N0aW11bGF0aW9uU2NlbmFyaW8iLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzeXN0ZW1zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL1N5c3RlbSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0cmFjZUV2ZW50cyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9UcmFjZUV2ZW50IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTW9kZWxPYmplY3QiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vUmVmZXJyYWJsZSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibmFtZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTW9kZVN3aXRjaCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0dyYXBoRW50cnlCYXNlIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZWZhdWx0RW50cnkiIGVUeXBlPSIjLy9tb2RlbC9Nb2RlU3dpdGNoRGVmYXVsdCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJlbnRyaWVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL01vZGVTd2l0Y2hFbnRyeSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1vZGVTd2l0Y2hEZWZhdWx0Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJncmFwaEVudHJpZXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvR3JhcGhFbnRyeUJhc2UiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNb2RlU3dpdGNoRW50cnkiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbmRpdGlvbiIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL01vZGVDb25kaXRpb24iPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZ3JhcGhFbnRyaWVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0dyYXBoRW50cnlCYXNlIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im5lZ2F0ZWQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTW9kZVN3aXRjaFBvaW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ2FsbFNlcXVlbmNlSXRlbSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibW9kZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL01vZGUiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQYXJ0aXRpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCIvPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJvYmFiaWxpdHlTd2l0Y2giIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9HcmFwaEVudHJ5QmFzZSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZW50cmllcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9Qcm9iYWJpbGl0eVN3aXRjaEVudHJ5IiBjb250YWlubWVudD0idHJ1ZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlByb2JhYmlsaXR5U3dpdGNoRW50cnkiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByb2JhYmlsaXR5IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRG91YmxlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZ3JhcGhFbnRyaWVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0dyYXBoRW50cnlCYXNlIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUHJvY2VzcyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL1NjaGVkdWxhYmxlIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhY3RpdmF0aW9uTGltaXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYWN0aXZlQXRCb290IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjYWxsR3JhcGgiIGVUeXBlPSIjLy9tb2RlbC9DYWxsR3JhcGgiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGVhZGxpbmUiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImV4dGVuZGVkVGFzayIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idHJhY2VFdmVudHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvVHJhY2VFdmVudCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpZGxlVGFzayIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNyIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJlZW1wdGFibGUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3RhY2tMaW1pdCIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEwMjQiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0cmlnZ2VyaW5nUG9ydCIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvcGVyaXBoZXJhbC9JbnRlcnJ1cHRQb3J0IiBlT3Bwb3NpdGU9IiMvL21vZGVsL3BlcmlwaGVyYWwvSW50ZXJydXB0UG9ydC9pc3JzIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSZXNvdXJjZUNvbnN1bXB0aW9uIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ2FsbFNlcXVlbmNlSXRlbSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGF0YUFjY2VzcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9tZW1vcnkvRGF0YUFjY2VzcyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJlbnRyeUZ1bmN0aW9uIiBlVHlwZT0iIy8vbW9kZWwvU291cmNlRnVuY3Rpb24iLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzdGFja1VzYWdlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRpbWVEaXN0cmlidXRpb24iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InVzZUVudHJ5RnVuY3Rpb24iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVzdW1lQWxsSW50ZXJydXB0cyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0NhbGxTZXF1ZW5jZUl0ZW0iLz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJ0b3NDb25maWciIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2NoZWR1bGFibGVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9TY2hlZHVsYWJsZSIgY29udGFpbm1lbnQ9InRydWUiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2VtYXBob3JlcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvU2VtYXBob3JlIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNwaW5sb2NrcyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvU3BpbmxvY2siIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0V2ZW50IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUnRvc01vZGVsIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InJlbG9hZFJ0b3NNb2RlbCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idmVyc2lvbiIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InJ0b3NQcm9wZXJ0aWVzIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icmV0dXJuVHlwZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImxpYnJhcnkiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJoZWFkZXIiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuYW1lU3BhY2UiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ1c2VySGVhZGVyIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3RhdGVOYW1lcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhcGlQcmVmaXgiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJydG9zQXBpVHlwZSIgZVR5cGU9IiMvL21vZGVsL1J0b3NBcGlUeXBlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJOb25lIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlJ0b3NBcGlUeXBlIj4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iTm9uZSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJDbGliIiB2YWx1ZT0iMSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJPc2VrIiB2YWx1ZT0iMiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJBdXRvc2FyIiB2YWx1ZT0iMyIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJUaHJlYWR4IiB2YWx1ZT0iNCIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJSdG9zUHJvcGVydHkiPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJCYXJlIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkV4cGxpY2l0VGFza0RlZmluaXRpb24iIHZhbHVlPSIxIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlN1c3BlbmRXaGVuVGFza1JldHVybnMiIHZhbHVlPSIyIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlRhc2tSZXR1cm5Gb3JiaWRkZW4iIHZhbHVlPSI0Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlJlc291cmNlTmVlZHNJbml0IiB2YWx1ZT0iOCIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJBdXRvc2FyUlRFRXZlbnRzIiB2YWx1ZT0iMTYiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRXh0ZW5kZWRUYXNrIiB2YWx1ZT0iMzIiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iT3NlayIgdmFsdWU9IjE1Ii8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTY2hlZHVsYWJsZSIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9UcmFjZU9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY3B1Q29yZXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQ3B1Q29yZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByaW9yaXR5IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTY2hlZHVsZXIiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9TY2hlZHVsYWJsZSI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2NoZWR1bGFibGVzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9TY2hlZHVsYWJsZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ0eXBlIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1NjaGVkdWxlclR5cGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IlByZWVtcHRpdmUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzdHJhdGVneSIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9TY2hlZHVsZXJTdHJhdGVneSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iRml4ZWRQcmlvcml0eSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRpbWVTbGljZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idGRtYVNjaGVkdWxlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL1NjaGVkdWxpbmdFbnRyeSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwZXJpb2QiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN5bmNocm9uaXplZCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWF4UmV0YXJkIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJtYXhBZHZhbmNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzeW5jU291cmNlIiBlVHlwZT0iIy8vbW9kZWwvTW9kZWxPYmplY3QiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjeWNsZVN0YXJ0UHJvY2VzcyIgZVR5cGU9IiMvL21vZGVsL1Byb2Nlc3MiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwcmlvcml0aWVzUHJvcGFnYXRlZCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJpb3JpdHlJbnZlcnNlZCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY2FsbGJhY2tzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0NhbGxiYWNrRnVuY3Rpb24iIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY2FsbGJhY2tDb3JlQWZmaW5pdHkiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQ3B1Q29yZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJTY2hlZHVsZXJTdHJhdGVneSI+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkZDRlMiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRml4ZWRQcmlvcml0eSIgdmFsdWU9IjEiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUm91bmRSb2JpbiIgdmFsdWU9IjIiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iT1NFSyIgdmFsdWU9IjMiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVERNQSIgdmFsdWU9IjQiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRURGIiB2YWx1ZT0iNSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJGaXhlZElzclByaW9yaXR5IiB2YWx1ZT0iNiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJVc2VyRGVmaW5lZCIgdmFsdWU9IjciLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iU2NoZWR1bGVyVHlwZSI+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlByZWVtcHRpdmUiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQ29vcGVyYXRpdmUiIHZhbHVlPSIxIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlRpbWVTbGljZSIgdmFsdWU9IjIiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUnVuVG9Db21wbGV0aW9uIiB2YWx1ZT0iMyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2NoZWR1bGluZ0VudHJ5Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpdGVtIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvU2NoZWR1bGFibGUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzbG90TGVuZ3RoIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNjaGVkdWxlUG9pbnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9DYWxsU2VxdWVuY2VJdGVtIi8+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTZW1hcGhvcmUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaW5pdGlhbFZhbHVlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibWF4VmFsdWUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNlbWFwaG9yZUFjY2VzcyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0NhbGxTZXF1ZW5jZUl0ZW0iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNlbWFwaG9yZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1NlbWFwaG9yZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InR5cGUiIGVUeXBlPSIjLy9tb2RlbC9TZW1hcGhvcmVBY2Nlc3NUeXBlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJSZXF1ZXN0Ii8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlNlbWFwaG9yZUFjY2Vzc1R5cGUiPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJSZXF1ZXN0Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkV4Y2x1c2l2ZSIgdmFsdWU9IjEiPgotICAgICAgICA8L2VMaXRlcmFscz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUmVsZWFzZSIgdmFsdWU9IjIiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNlbmRNZXNzYWdlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQWN0aXZhdGlvbkFjdGlvbiI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWVzc2FnZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL0J1c01lc3NhZ2UiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNldEV2ZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQWN0aXZhdGlvbkFjdGlvbiI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnRzIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0V2ZW50Ij4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRhcmdldCIgZVR5cGU9IiMvL21vZGVsL1Byb2Nlc3MiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZm9yQWxsIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNSZXNldCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2V0R3VhcmQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9BY3RpdmF0aW9uQWN0aW9uIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJmdW5jdGlvbkNhbGwiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9GdW5jdGlvbkNhbGwiIGVPcHBvc2l0ZT0iIy8vbW9kZWwvRnVuY3Rpb25DYWxsL2d1YXJkcyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU291cmNlRnVuY3Rpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9UcmFjZU9iamVjdCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idHJhY2VFdmVudHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvVHJhY2VFdmVudCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNwZWNTZXR0aW5ncyI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaW5jbHVkZXMiIG9yZGVyZWQ9ImZhbHNlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIgIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibWFjcm9zIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iICIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByZXBlbmRTZXR0aW5ncyIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU3BpbmxvY2siIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9UcmFjZU9iamVjdCIvPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU3BpbmxvY2tPcGVyYXRpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9DYWxsU2VxdWVuY2VJdGVtIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvcGVyYXRpb24iIGVUeXBlPSIjLy9tb2RlbC9TcGlubG9ja09wZXJhdGlvblR5cGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IkFjcXVpcmUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzcGlubG9jayIgZVR5cGU9IiMvL21vZGVsL1NwaW5sb2NrIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlNwaW5sb2NrT3BlcmF0aW9uVHlwZSI+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkFjcXVpcmUiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUmVsZWFzZSIgdmFsdWU9IjEiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVHJ5QWNxdWlyZSIgdmFsdWU9IjIiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN1c3BlbmRBbGxJbnRlcnJ1cHRzIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ2FsbFNlcXVlbmNlSXRlbSIvPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU3lzdGVtIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb21waWxlclNldHRpbmdzIiBlVHlwZT0iIy8vbW9kZWwvQ29tcGlsZXJTZXR0aW5ncyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb21wb25lbnRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0NvbXBvbmVudCIgY29udGFpbm1lbnQ9InRydWUiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibW9kZUNvbmRpdGlvbnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvTW9kZUNvbmRpdGlvbiIgY29udGFpbm1lbnQ9InRydWUiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibW9kZUdyb3VwcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9Nb2RlR3JvdXAiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icnRvc01vZGVsIiBlVHlwZT0iIy8vbW9kZWwvUnRvc01vZGVsIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNwZWNTZXR0aW5ncyIgZVR5cGU9IiMvL21vZGVsL1NwZWNTZXR0aW5ncyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0cmFuc2xhdGlvblVuaXRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL1RyYW5zbGF0aW9uVW5pdCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRocmVhZFhTeXN0ZW0iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9TeXN0ZW0iLz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRpbWUiPgotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImRlbm9ybWFsaXplIj4KLSAgICAgICAgPC9lT3BlcmF0aW9ucz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ2YWx1ZSIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idW5pdCIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lVW5pdCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0icHMiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRpbWVEaXN0cmlidXRpb24iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1pbiIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWF4IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJtZWFuIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2lnbWEiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhbHBoYSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMS4wIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImJldGEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEuMCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkaXNjcmV0ZURpc3RyaWJ1dGlvbiIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvRGlzY3JldGVEaXN0cmlidXRpb25FbnRyeSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ0eXBlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvblR5cGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9Ik1heCIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJUaW1lRGlzdHJpYnV0aW9uVHlwZSI+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik1pbiIgbGl0ZXJhbD0iTWluIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik1heCIgdmFsdWU9IjEiIGxpdGVyYWw9Ik1heCIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJNZWFuIiB2YWx1ZT0iMiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJVbmlmb3JtIiB2YWx1ZT0iMyIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJOb3JtYWwiIHZhbHVlPSI0Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IldlaWJ1bGwiIHZhbHVlPSI1IiBsaXRlcmFsPSJXZWlidWxsIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkRpc2NyZXRlIiB2YWx1ZT0iNiIgbGl0ZXJhbD0iRGlzY3JldGUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iVGltZVVuaXQiPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJzIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9Im1zIiB2YWx1ZT0iMSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJ1cyIgdmFsdWU9IjIiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0ibnMiIHZhbHVlPSIzIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9InBzIiB2YWx1ZT0iNCIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJmcyIgdmFsdWU9IjUiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVCIgdmFsdWU9IjYiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iTmFOIiB2YWx1ZT0iNyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVHJhY2VFdmVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0ICMvL21vZGVsL1RyYWNlT2JqZWN0Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ0eXBlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVHJhY2VFdmVudFR5cGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IkVudHJ5Ii8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlRyYWNlRXZlbnRUeXBlIj4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQWN0aXZhdGUiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iU3RhcnQiIHZhbHVlPSIxIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlRlcm1pbmF0ZSIgdmFsdWU9IjIiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQmxvY2siIHZhbHVlPSIzIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlJlbGVhc2UiIHZhbHVlPSI0Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlJlc3RhcnQiIHZhbHVlPSI1Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkVudHJ5IiB2YWx1ZT0iNiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJFeGl0IiB2YWx1ZT0iNyIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJVc2VyQ29kZSIgdmFsdWU9IjgiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVXNlckNvZGVQYXJhbSIgdmFsdWU9IjkiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRXZlbnRDaGFpbiIgdmFsdWU9IjEwIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkRhdGFGbG93Q2hhaW4iIHZhbHVlPSIxMSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJBY3RpdmF0aW9uRmxvd0NoYWluIiB2YWx1ZT0iMTIiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRnJhbWVCZWdpbiIgdmFsdWU9IjEzIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkZyYW1lRW5kIiB2YWx1ZT0iMTQiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRnJhbWVBYm9ydCIgdmFsdWU9IjE1Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkN5Y2xlU3RhcnQiIHZhbHVlPSIxNiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJEeW5hbWljU2VnbWVudCIgdmFsdWU9IjE3Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik5ldHdvcmtJZGxlVGltZSIgdmFsdWU9IjE4Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlRyYW5zZmVyQ291bnRlciIgdmFsdWU9IjE5Ii8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkZyYW1lRHJvcCIgdmFsdWU9IjIwIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlRpbWVyQ3JlYXRlIiB2YWx1ZT0iMjEiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVGltZXJEZWxldGUiIHZhbHVlPSIyMiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJUaW1lclN0YXJ0IiB2YWx1ZT0iMjMiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVGltZXJTdG9wIiB2YWx1ZT0iMjQiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVGltZXJFeHBpcmUiIHZhbHVlPSIyNSIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJUaW1lckV4cFJlc3QiIHZhbHVlPSIyNiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJUaW1lckVuZE1hcmsiIHZhbHVlPSIyNyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVHJhY2VPYmplY3QiIGFic3RyYWN0PSJ0cnVlIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvYmplY3RJZCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIgdW5zZXR0YWJsZT0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVHJhbnNsYXRpb25Vbml0IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNvdXJjZUZ1bmN0aW9ucyIgb3JkZXJlZD0iZmFsc2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvU291cmNlRnVuY3Rpb24iIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3BlY1NldHRpbmdzIiBvcmRlcmVkPSJmYWxzZSIgZVR5cGU9IiMvL21vZGVsL1NwZWNTZXR0aW5ncyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRyaWdnZXJUb2tlbiIvPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVXNlckNvZGVFdmVudENoYWluIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvRXZlbnRDaGFpbiI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RlcHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvVXNlckNvZGVFdmVudENoYWluU3RlcCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlVzZXJDb2RlRXZlbnRDaGFpblN0ZXAiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9FdmVudENoYWluU3RlcCI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibnVtYmVyIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJWYXJpYWJsZUFjY2VzcyIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9FdmVudENoYWluU3RlcCAjLy9tb2RlbC9DYWxsU2VxdWVuY2VJdGVtIi8+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJWYXJpYWJsZVJlYWRBY2Nlc3MiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9WYXJpYWJsZUFjY2VzcyI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29ubmVjdGlvbiIgZVR5cGU9IiMvL21vZGVsL0RhdGFGbG93Q29ubmVjdGlvbiIgZU9wcG9zaXRlPSIjLy9tb2RlbC9EYXRhRmxvd0Nvbm5lY3Rpb24vcmVxdWVzdGVycyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRhdGFBY2Nlc3MiIGVUeXBlPSIjLy9tb2RlbC9tZW1vcnkvRXhwbGljaXREYXRhQWNjZXNzIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzQnVmZmVyZWQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InR5cGUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3NUeXBlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJHZW5lcmljIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibnVtYmVyIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImluZGV4IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBvbGljeSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzc1BvbGljeSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iRklGTyIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzVGFrZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9InRydWUiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibG93ZXJCb3VuZCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImRhdGFNdXN0QmVOZXciIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJyZWNlaXZlUGVyY2VudGFnZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMTAwIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJWYXJpYWJsZVJlYWRBY2Nlc3NQb2xpY3kiPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJGSUZPIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkxJRk8iIHZhbHVlPSIxIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlZhcmlhYmxlUmVhZEFjY2Vzc1R5cGUiPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJHZW5lcmljIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkxvY2FsUmVhZCIgdmFsdWU9IjEiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRGF0YVJlYWQiIHZhbHVlPSIyIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkRhdGFSZWNlaXZlIiB2YWx1ZT0iMyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVmFyaWFibGVXcml0ZUFjY2VzcyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL1ZhcmlhYmxlQWNjZXNzIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb25uZWN0aW9uIiBlVHlwZT0iIy8vbW9kZWwvRGF0YUZsb3dDb25uZWN0aW9uIiBlT3Bwb3NpdGU9IiMvL21vZGVsL0RhdGFGbG93Q29ubmVjdGlvbi9wcm92aWRlciIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRhdGFBY2Nlc3MiIGVUeXBlPSIjLy9tb2RlbC9tZW1vcnkvRXhwbGljaXREYXRhQWNjZXNzIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlbGF5IiBlVHlwZT0iIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvbiIgY29udGFpbm1lbnQ9InRydWUiPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNCdWZmZXJlZCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idHlwZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3NUeXBlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJHZW5lcmljIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibnVtYmVyIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBvbGljeSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3NQb2xpY3kiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9Ik92ZXJ3cml0ZU9sZGVzdCIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJWYXJpYWJsZVdyaXRlQWNjZXNzUG9saWN5Ij4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRXJyb3JEcm9wIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IlNpbGVudERyb3AiIHZhbHVlPSIxIi8+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik92ZXJ3cml0ZU9sZGVzdCIgdmFsdWU9IjIiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iT3ZlcndyaXRlTmV3ZXN0IiB2YWx1ZT0iMyIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJWYXJpYWJsZVdyaXRlQWNjZXNzVHlwZSI+Ci0gICAgICA8ZUxpdGVyYWxzIG5hbWU9IkdlbmVyaWMiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iTG9jYWxXcml0ZSIgdmFsdWU9IjEiLz4KLSAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRGF0YVdyaXRlIiB2YWx1ZT0iMiIvPgotICAgICAgPGVMaXRlcmFscyBuYW1lPSJEYXRhU2VuZCIgdmFsdWU9IjMiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IldhaXRFdmVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0NhbGxTZXF1ZW5jZUl0ZW0iPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV2ZW50cyIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9FdmVudCI+Ci0gICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0aW1lb3V0IiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJmb3JSZXNldCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIj4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlU3VicGFja2FnZXMgbmFtZT0iYXV0b3NhciIgbnNVUkk9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguMy9tb2RlbC9hdXRvc2FyIiBuc1ByZWZpeD0iYXV0b3NhciI+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFSU3lzdGVtIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvU3lzdGVtIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im9zQ29uZmlnIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9Pc0NvbmZpZyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzT3NlayIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2xlYXJFdmVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0NhbGxTZXF1ZW5jZUl0ZW0iPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnRzIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NFdmVudCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9wZXJhdGlvbiIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0Ii8+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9zQWxhcm0iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJhY3Rpb24iIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zQWxhcm1BY3Rpb24iIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhdXRvc3RhcnRBcHBNb2RlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhdXRvc3RhcnRDeWNsZVRpbWUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhdXRvc3RhcnRBbGFybVRpbWUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhdXRvc3RhcnQiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvdW50ZXIiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zQ291bnRlciIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9zQWxhcm1BY3Rpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ0eXBlIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NBbGFybUFjdGlvblR5cGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IkFjdGl2YXRlVGFzayIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idGFzayIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NUYXNrIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudCIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NFdmVudCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY2FsbGJhY2siIGVUeXBlPSIjLy9tb2RlbC9Tb3VyY2VGdW5jdGlvbiIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibWF4QWR2YW5jZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1heFJldGFyZCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9Ik9zQWxhcm1BY3Rpb25UeXBlIj4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJBY3RpdmF0ZVRhc2siIGxpdGVyYWw9IkFjdGl2YXRlVGFzayIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IlNldEV2ZW50IiB2YWx1ZT0iMSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkNhbGxiYWNrIiB2YWx1ZT0iMiIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkFkanVzdEV4cGlyeVBvaW50IiB2YWx1ZT0iMyIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9zQXBwbGljYXRpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJhbGFybXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9Pc0FsYXJtIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb3VudGVycyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zQ291bnRlciIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY3B1Q29yZSIgZVR5cGU9IiMvL21vZGVsL0NwdUNvcmUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InBhcnRpdGlvbiIgZVR5cGU9IiMvL21vZGVsL1BhcnRpdGlvbiIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iaXNycyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zSXNyIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzY2hlZHVsZVRhYmxlcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zU2NoZWR1bGVUYWJsZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idGFza3MiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9Pc1Rhc2siLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzVHJ1c3RlZCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpc1RydXN0ZWRXaXRoUHJvdGVjdGlvbiIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iT3NDb25maWciIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJhbGFybXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9Pc0FsYXJtIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYXBwbGljYXRpb25zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NBcHBsaWNhdGlvbiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvdW50ZXJzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NDb3VudGVyIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NFdmVudCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImlzcnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9Pc0lzciIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlc291cmNlcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zUmVzb3VyY2UiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzY2hlZHVsZVRhYmxlcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zU2NoZWR1bGVUYWJsZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNwaW5sb2NrcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zU3BpbmxvY2siIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0YXNrcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zVGFzayIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJPc0NvdW50ZXIiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9DbG9ja1VzZXIiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGVsYXkiIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdyYW51bGFyaXR5IiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImhhcmR3YXJlIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1pbmN5Y2xlIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InJhbmdlIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEwMDAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InJlZmVyZW5jZVRpY2tzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUxvbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJPc0V2ZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvRXZlbnQiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibWFzayIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibWFza0F1dG8iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJ0cnVlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iT3NFeHBpcnlQb2ludCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9mZnNldCIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VMb25nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJhY3Rpb25zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NBbGFybUFjdGlvbiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJPc0lzciIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL1Byb2Nlc3MiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVzb3VyY2VzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NSZXNvdXJjZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idHlwZSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NJc3JUeXBlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJDYXRlZ29yeTIiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9Ik9zSXNyVHlwZSI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQ2F0ZWdvcnkxIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQ2F0ZWdvcnkyIiB2YWx1ZT0iMSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9zUmVzb3VyY2UiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwcm9wZXJ0eSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NSZXNvdXJjZVR5cGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IlN0YW5kYXJkIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJPc1Jlc291cmNlVHlwZSI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iU3RhbmRhcmQiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJJbnRlcm5hbCIgdmFsdWU9IjEiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJMaW5rZWQiIHZhbHVlPSIyIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iT3NTY2hlZHVsZVRhYmxlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYXV0b3N0YXJ0IiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvdW50ZXIiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zQ291bnRlciIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZHVyYXRpb24iIG9yZGVyZWQ9ImZhbHNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTG9uZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXhwaXJ5UG9pbnRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3NFeHBpcnlQb2ludCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InJlcGVhdGluZyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN0YXJ0VHlwZSIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zU2NoZWR1bGVUYWJsZVN0YXJ0VHlwZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iQWJzb2x1dGUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9Ik9zU2NoZWR1bGVUYWJsZVN0YXJ0VHlwZSI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQWJzb2x1dGUiIGxpdGVyYWw9IkFic29sdXRlIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUmVsYXRpdmUiIHZhbHVlPSIxIiBsaXRlcmFsPSJSZWxhdGl2ZSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IlN5bmNocm9uaXplZCIgdmFsdWU9IjIiIGxpdGVyYWw9IlN5bmNocm9uaXplZCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9zU3BpbmxvY2siIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9TcGlubG9jayI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtZXRob2QiIGVUeXBlPSIjLy9tb2RlbC9hdXRvc2FyL09zU3BpbmxvY2tMb2NrTWV0aG9kIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJMb2NrQWxsSW50ZXJydXB0cyIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3VjY2Vzc29yIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9Pc1NwaW5sb2NrIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJPc1NwaW5sb2NrTG9ja01ldGhvZCI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iTG9ja05vdGhpbmciLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJMb2NrQWxsSW50ZXJydXB0cyIgdmFsdWU9IjEiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJMb2NrQ2F0MkludGVycnVwdHMiIHZhbHVlPSIyIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iTG9ja1dpdGhSZXNTY2hlZHVsZXIiIHZhbHVlPSIzIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iT3NUYXNrIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvUHJvY2VzcyI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9Pc0V2ZW50Ii8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZXNvdXJjZXMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9Pc1Jlc291cmNlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVzdW1lT1NJbnRlcnJ1cHRzIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ2FsbFNlcXVlbmNlSXRlbSIvPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSdW5uYWJsZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0Z1bmN0aW9uIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImNhbkJlSW52b2tlZENvbmN1cnJlbnRseSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkaXNhYmxlZEluTW9kZSIgZVR5cGU9IiMvL21vZGVsL01vZGUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTZXJ2ZXJDYWxsIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ2FsbFNlcXVlbmNlSXRlbSI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpbnZva2VkT3BlcmF0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvYXV0b3Nhci9PcGVyYXRpb24iLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTdXNwZW5kT1NJbnRlcnJ1cHRzIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvQ2FsbFNlcXVlbmNlSXRlbSIvPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTd0NvbXBvbmVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL0NvbXBvbmVudCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvcGVyYXRpb25zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2F1dG9zYXIvT3BlcmF0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPC9lU3VicGFja2FnZXM+Ci0gICAgPGVTdWJwYWNrYWdlcyBuYW1lPSJmbWkiIG5zVVJJPSJodHRwOi8vaW5jaHJvbi5jb20vcmVhbHRpbWUvcm9vdC8yLjk4LjMvbW9kZWwvZm1pIiBuc1ByZWZpeD0iZm1pIj4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRk1JVmFyaWFibGVzIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9QZXJpcGhlcmFsIi8+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkludGVnZXJBdHRyaWJ1dGVzIiBhYnN0cmFjdD0idHJ1ZSI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtYXgiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjIxNDc0ODM2NDciPgotICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1pbiIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iLTIxNDc0ODM2NDgiPgotICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InF1YW50aXR5IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIiPgotICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNb2RlbERlc2NyaXB0aW9uIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNlZWQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdmFyaWFibGUvSW50ZWdlciIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRpbWUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdmFyaWFibGUvUmVhbCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InR5cGVEZWZpbml0aW9ucyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdHlwZS9TaW1wbGVUeXBlIiB1bnNldHRhYmxlPSJ0cnVlIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idW5pdERlZmluaXRpb25zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL2ZtaS91bml0L1VuaXQiIHVuc2V0dGFibGU9InRydWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVhbEF0dHJpYnV0ZXMiIGFic3RyYWN0PSJ0cnVlIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRpc3BsYXlVbml0IiBlVHlwZT0iIy8vbW9kZWwvZm1pL3VuaXQvRGlzcGxheVVuaXQiPgotICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1heCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgiPgotICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1pbiIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iLTEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4Ij4KLSAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJxdWFudGl0eSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIj4KLSAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJyZWxhdGl2ZVF1YW50aXR5IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiPgotICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InVuaXQiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdW5pdC9Vbml0Ij4KLSAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlU3VicGFja2FnZXMgbmFtZT0idHlwZSIgbnNVUkk9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguMy9tb2RlbC9mbWkvdHlwZSIgbnNQcmVmaXg9InR5cGUiPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkJvb2xlYW4iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9mbWkvdHlwZS9TaW1wbGVUeXBlIi8+Ci0gICAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRW51bWVyYXRpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9mbWkvdHlwZS9TaW1wbGVUeXBlIj4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iaXRlbXMiIGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvZm1pL3R5cGUvSXRlbSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icXVhbnRpdHkiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IiI+Ci0gICAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkludGVnZXIiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9mbWkvdHlwZS9TaW1wbGVUeXBlICMvL21vZGVsL2ZtaS9JbnRlZ2VyQXR0cmlidXRlcyIvPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ikl0ZW0iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImRlc2NyaXB0aW9uIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIiPgotICAgICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ2YWx1ZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlYWwiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9mbWkvdHlwZS9TaW1wbGVUeXBlICMvL21vZGVsL2ZtaS9SZWFsQXR0cmlidXRlcyIvPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNpbXBsZVR5cGUiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkZXNjcmlwdGlvbiIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIj4KLSAgICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8L2VTdWJwYWNrYWdlcz4KLSAgICAgIDxlU3VicGFja2FnZXMgbmFtZT0idW5pdCIgbnNVUkk9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguMy9tb2RlbC9mbWkvdW5pdCIgbnNQcmVmaXg9InVuaXQiPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkJhc2VVbml0Ij4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImNkIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIj4KLSAgICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZmFjdG9yIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRG91YmxlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIj4KLSAgICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iayIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImtnIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIj4KLSAgICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1vbCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+Ci0gICAgICAgICAgICAgIDxjb250ZW50cyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibW9sIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIj4KLSAgICAgICAgICAgICAgICA8L2NvbnRlbnRzPgotICAgICAgICAgICAgPC9lQW5ub3RhdGlvbnM+Ci0gICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvZmZzZXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiPgotICAgICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJyYWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiPgotICAgICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIj4KLSAgICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGlzcGxheVVuaXQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImZhY3RvciIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMSI+Ci0gICAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9mZnNldCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlVuaXQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCI+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImJhc2VVbml0IiBlVHlwZT0iIy8vbW9kZWwvZm1pL3VuaXQvQmFzZVVuaXQiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRpc3BsYXlVbml0cyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdW5pdC9EaXNwbGF5VW5pdCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8L2VTdWJwYWNrYWdlcz4KLSAgICAgIDxlU3VicGFja2FnZXMgbmFtZT0idmFyaWFibGUiIG5zVVJJPSJodHRwOi8vaW5jaHJvbi5jb20vcmVhbHRpbWUvcm9vdC8yLjk4LjMvbW9kZWwvZm1pL3ZhcmlhYmxlIiBuc1ByZWZpeD0idmFyaWFibGUiPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkJvb2xlYW4iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9mbWkvdmFyaWFibGUvU2NhbGFyVmFyaWFibGUiPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZWNsYXJlZFR5cGUiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdHlwZS9Cb29sZWFuIi8+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN0YXJ0IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJDYXVzYWxpdHkiPgotICAgICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iY2FsY3VsYXRlZFBhcmFtZXRlciIgdmFsdWU9IjQiIGxpdGVyYWw9ImNhbGN1bGF0ZWRQYXJhbWV0ZXIiPgotICAgICAgICAgICAgPC9lTGl0ZXJhbHM+Ci0gICAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJpbmRlcGVuZGVudCIgdmFsdWU9IjUiIGxpdGVyYWw9ImluZGVwZW5kZW50Ij4KLSAgICAgICAgICAgIDwvZUxpdGVyYWxzPgotICAgICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iaW5wdXQiIHZhbHVlPSIxIiBsaXRlcmFsPSJpbnB1dCI+Ci0gICAgICAgICAgICA8L2VMaXRlcmFscz4KLSAgICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImxvY2FsIiBsaXRlcmFsPSJsb2NhbCI+Ci0gICAgICAgICAgICA8L2VMaXRlcmFscz4KLSAgICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Im91dHB1dCIgdmFsdWU9IjIiIGxpdGVyYWw9Im91dHB1dCI+Ci0gICAgICAgICAgICA8L2VMaXRlcmFscz4KLSAgICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9InBhcmFtZXRlciIgdmFsdWU9IjMiIGxpdGVyYWw9InBhcmFtZXRlciI+Ci0gICAgICAgICAgICA8L2VMaXRlcmFscz4KLSAgICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRW51bWVyYXRpb24iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9mbWkvdmFyaWFibGUvU2NhbGFyVmFyaWFibGUiPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZWNsYXJlZFR5cGUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdHlwZS9FbnVtZXJhdGlvbiIvPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtYXgiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiPgotICAgICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtaW4iIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiPgotICAgICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJxdWFudGl0eSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iIj4KLSAgICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3RhcnQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJJbml0aWFsIj4KLSAgICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImFwcHJveCIgdmFsdWU9IjEiIGxpdGVyYWw9ImFwcHJveCIvPgotICAgICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iY2FsY3VsYXRlZCIgdmFsdWU9IjIiIGxpdGVyYWw9ImNhbGN1bGF0ZWQiLz4KLSAgICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImV4YWN0IiBsaXRlcmFsPSJleGFjdCIvPgotICAgICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0idW5zZXQiIHZhbHVlPSItMSIgbGl0ZXJhbD0idW5zZXQiLz4KLSAgICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW50ZWdlciIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL2ZtaS92YXJpYWJsZS9TY2FsYXJWYXJpYWJsZSAjLy9tb2RlbC9mbWkvSW50ZWdlckF0dHJpYnV0ZXMiPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZWNsYXJlZFR5cGUiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdHlwZS9JbnRlZ2VyIi8+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN0YXJ0IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlYWwiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9mbWkvdmFyaWFibGUvU2NhbGFyVmFyaWFibGUgIy8vbW9kZWwvZm1pL1JlYWxBdHRyaWJ1dGVzIj4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGVjbGFyZWRUeXBlIiBlVHlwZT0iIy8vbW9kZWwvZm1pL3R5cGUvUmVhbCIvPgotICAgICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzdGFydCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTY2FsYXJWYXJpYWJsZSIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UG9ydCI+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNhbGxHcmFwaCIgZVR5cGU9IiMvL21vZGVsL0NhbGxHcmFwaCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iY2F1c2FsaXR5IiBlVHlwZT0iIy8vbW9kZWwvZm1pL3ZhcmlhYmxlL0NhdXNhbGl0eSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0ibG9jYWwiLz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29ubmVjdGlvbnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvQ29ubmVjdGlvbiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZGVzY3JpcHRpb24iIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IiI+Ci0gICAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImluaXRpYWwiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdmFyaWFibGUvSW5pdGlhbCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idW5zZXQiLz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idHJpZ2dlclR5cGUiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdmFyaWFibGUvVHJpZ2dlclR5cGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9Im9uQ2hhbmdlIi8+Ci0gICAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InZhbHVlUmVmZXJlbmNlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIj4KLSAgICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idmFyaWFiaWxpdHkiIGVUeXBlPSIjLy9tb2RlbC9mbWkvdmFyaWFibGUvVmFyaWFiaWxpdHkiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImNvbnRpbnVvdXMiLz4KLSAgICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJUcmlnZ2VyVHlwZSI+Ci0gICAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJhbHdheXMiIGxpdGVyYWw9ImFsd2F5cyI+Ci0gICAgICAgICAgICA8L2VMaXRlcmFscz4KLSAgICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Im9uQ2hhbmdlIiB2YWx1ZT0iMSIgbGl0ZXJhbD0ib25DaGFuZ2UiPgotICAgICAgICAgICAgPC9lTGl0ZXJhbHM+Ci0gICAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iVmFyaWFiaWxpdHkiPgotICAgICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iY29uc3RhbnQiIHZhbHVlPSIyIiBsaXRlcmFsPSJjb25zdGFudCI+Ci0gICAgICAgICAgICA8L2VMaXRlcmFscz4KLSAgICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImNvbnRpbnVvdXMiIGxpdGVyYWw9ImNvbnRpbnVvdXMiPgotICAgICAgICAgICAgPC9lTGl0ZXJhbHM+Ci0gICAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJkaXNjcmV0ZSIgdmFsdWU9IjEiIGxpdGVyYWw9ImRpc2NyZXRlIj4KLSAgICAgICAgICAgIDwvZUxpdGVyYWxzPgotICAgICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iZml4ZWQiIHZhbHVlPSIzIiBsaXRlcmFsPSJmaXhlZCI+Ci0gICAgICAgICAgICA8L2VMaXRlcmFscz4KLSAgICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9InR1bmFibGUiIHZhbHVlPSI0IiBsaXRlcmFsPSJ0dW5hYmxlIj4KLSAgICAgICAgICAgIDwvZUxpdGVyYWxzPgotICAgICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDwvZVN1YnBhY2thZ2VzPgotICAgIDwvZVN1YnBhY2thZ2VzPgotICAgIDxlU3VicGFja2FnZXMgbmFtZT0ibWVtb3J5IiBuc1VSST0iaHR0cDovL2luY2hyb24uY29tL3JlYWx0aW1lL3Jvb3QvMi45OC4zL21vZGVsL21lbW9yeSIgbnNQcmVmaXg9Im1lbW9yeSI+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlc3BvbmRlclBvcnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9UcmFjZU9iamVjdCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJyZWFkQWNjZXNzUGF0dGVybiIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMS0xLTEtMSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0id3JpdGVBY2Nlc3NQYXR0ZXJuIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxLTEtMS0xIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpbml0aWF0b3IiIGVUeXBlPSIjLy9tb2RlbC9tZW1vcnkvSW5pdGlhdG9yUG9ydCIgZU9wcG9zaXRlPSIjLy9tb2RlbC9tZW1vcnkvSW5pdGlhdG9yUG9ydC9yZXNwb25kZXIiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJJbml0aWF0b3JQb3J0IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJpb3JpdHkiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlc3BvbmRlciIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9SZXNwb25kZXJQb3J0IiBlT3Bwb3NpdGU9IiMvL21vZGVsL21lbW9yeS9SZXNwb25kZXJQb3J0L2luaXRpYXRvciIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlFvc0VudHJ5Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByaW9yaXR5IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtaW5pbXVtQmFuZHdpZHRoIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJpblBvcnQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9tZW1vcnkvUmVzcG9uZGVyUG9ydCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib3V0UG9ydCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9Jbml0aWF0b3JQb3J0Ii8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW50ZXJjb25uZWN0IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QgIy8vbW9kZWwvQ2xvY2tVc2VyIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImJpdFdpZHRoIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIzMiIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2NoZWR1bGluZ1BvbGljeSIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9JbnRlcmNvbm5lY3RTY2hlZHVsaW5nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJQcmlvcml0eSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29ubmVjdGVkU2xhdmVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9Jbml0aWF0b3JQb3J0IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY29ubmVjdGVkTWFzdGVycyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9tZW1vcnkvUmVzcG9uZGVyUG9ydCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByZXNjYWxlciIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMS4wIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJxb3NFbnRyaWVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9Rb3NFbnRyeSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNZW1vcnkiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9DbG9ja1VzZXIiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYml0V2lkdGgiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjMyIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzaXplIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIyNjIxNDQiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InR5cGUiIGVUeXBlPSIjLy9tb2RlbC9tZW1vcnkvTWVtb3J5VHlwZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iU1JBTSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJlc2NhbGVyIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FRG91YmxlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxLjAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbm5lY3RlZE1hc3RlciIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9SZXNwb25kZXJQb3J0IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iSW50ZXJjb25uZWN0U2NoZWR1bGluZyI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUHJpb3JpdHkiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJSb3VuZFJvYmluIiB2YWx1ZT0iMSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkZDRlMiIHZhbHVlPSIyIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJNZW1vcnlUeXBlIj4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJTUkFNIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRFJBTSIgdmFsdWU9IjEiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJGbGFzaCIgdmFsdWU9IjIiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJDYWNoZSIgdmFsdWU9IjMiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEYXRhT2JqZWN0IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic2l6ZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWVtb3J5IiBlVHlwZT0iIy8vbW9kZWwvbWVtb3J5L01lbW9yeSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRhdGFBY2Nlc3MiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvVHJhY2VPYmplY3QiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYWNjZXNzVHlwZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9EYXRhQWNjZXNzVHlwZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iUmVhZCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhcnRPZmZzZXQiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYmFuZHdpZHRoIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FTG9uZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMTAwMDAwMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iY2h1bmtTaXplIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSI2NCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iY2h1bmtQZXJpb2QiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaXNBc3luY2hyb25vdXMiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iRGF0YUFjY2Vzc1R5cGUiPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IlJlYWQiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJXcml0ZSIgdmFsdWU9IjEiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJSZWFkTW9kaWZ5V3JpdGUiIHZhbHVlPSIyIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXhwbGljaXREYXRhQWNjZXNzIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvbWVtb3J5L0RhdGFBY2Nlc3MiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGF0YU9iamVjdCIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9EYXRhT2JqZWN0Ii8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmF0ZUJhc2VkRGF0YUFjY2VzcyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL21lbW9yeS9EYXRhQWNjZXNzIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1lbW9yeSIgZVR5cGU9IiMvL21vZGVsL21lbW9yeS9NZW1vcnkiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDwvZVN1YnBhY2thZ2VzPgotICAgIDxlU3VicGFja2FnZXMgbmFtZT0icGVyaXBoZXJhbCIgbnNVUkk9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguMy9tb2RlbC9wZXJpcGhlcmFsIiBuc1ByZWZpeD0icGVyaXBoZXJhbCI+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFic3RyYWN0UG9ydCIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCAjLy9tb2RlbC9UcmFjZU9iamVjdCAjLy9tb2RlbC9Mb2FkUmVzb3VyY2UiPgotICAgICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaXNDb21wYXRpYmxlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiI+Ci0gICAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im90aGVyIiBlVHlwZT0iIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdFBvcnQiLz4KLSAgICAgICAgPC9lT3BlcmF0aW9ucz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbm5lY3Rpb24iIGVUeXBlPSIjLy9tb2RlbC9wZXJpcGhlcmFsL1BvcnRDb25uZWN0aW9uIiBlT3Bwb3NpdGU9IiMvL21vZGVsL3BlcmlwaGVyYWwvUG9ydENvbm5lY3Rpb24vcG9ydHMiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJCdXNNYXN0ZXJQb3J0IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdFBvcnQiLz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQnVzU2xhdmVQb3J0IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdFBvcnQiLz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW50ZXJydXB0UG9ydCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RQb3J0Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImlzcnMiIG9yZGVyZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL1Byb2Nlc3MiIGVPcHBvc2l0ZT0iIy8vbW9kZWwvUHJvY2Vzcy90cmlnZ2VyaW5nUG9ydCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IklucHV0UG9ydCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RQb3J0Ii8+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik91dHB1dFBvcnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UG9ydCIvPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJCaURpclBvcnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UG9ydCIvPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQb3J0Q29ubmVjdGlvbiIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InBvcnRzIiBvcmRlcmVkPSJmYWxzZSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UG9ydCIgZU9wcG9zaXRlPSIjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UG9ydC9jb25uZWN0aW9uIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQWJzdHJhY3RQZXJpcGhlcmFsIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL01vZGVsT2JqZWN0ICMvL21vZGVsL1RyYWNlT2JqZWN0Ij4KLSAgICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImlzQ29tcGF0aWJsZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iPgotICAgICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJvdGhlciIgZVR5cGU9IiMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RQZXJpcGhlcmFsIi8+Ci0gICAgICAgIDwvZU9wZXJhdGlvbnM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJleGFjdG5lc3MiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudHMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvVHJhY2VFdmVudCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InBvcnRzIiBvcmRlcmVkPSJmYWxzZSIgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UG9ydCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJQZXJpcGhlcmFsIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RQZXJpcGhlcmFsIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImFkZHJlc3NSYW5nZSIgb3JkZXJlZD0iZmFsc2UiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9BZGRyZXNzUmFuZ2UiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQnVzIiBhYnN0cmFjdD0idHJ1ZSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RQZXJpcGhlcmFsIi8+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFic3RyYWN0RXRoZXJuZXQiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9QZXJpcGhlcmFsIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImF1dG9OZWdvdGlhdGUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJmdWxsRHVwbGV4IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibnVtYmVyT2ZQb3J0cyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3BlZWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEwMDAwMDAwMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3VwcG9ydHNRb1MiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFGRFhQb3J0IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZGlyZWN0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYUG9ydERpcmVjdGlvbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iU2VuZGVyIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ0eXBlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYUG9ydFR5cGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IlF1ZXVpbmciLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InF1ZXVlTGVuZ3RoIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSI1Ii8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJBRkRYUG9ydERpcmVjdGlvbiI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iU2VuZGVyIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUmVjZWl2ZXIiIHZhbHVlPSIxIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJBRkRYUG9ydFR5cGUiPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IlNhbXBsaW5nIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iUXVldWluZyIgdmFsdWU9IjEiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJBRkRYRXRoZXJuZXQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0RXRoZXJuZXQiPgotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+Ci0gICAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iQUZEWCBFdGhlcm5ldCBDb250cm9sbGVyIi8+Ci0gICAgICAgICAgPC9lQW5ub3RhdGlvbnM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuZXR3b3JrSWQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImVxdWlwbWVudElkIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwYXJ0aXRpb25JZCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaW50ZXJmYWNlSWQxIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtYWMxIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwMDowMDowMDowMDowMDowMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaW50ZXJmYWNlSWQyIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIyIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJtYWMyIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwMDowMDowMDowMDowMDowMSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYWZkeFBvcnRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL3BlcmlwaGVyYWwvQUZEWFBvcnQiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQVM1NjQzIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9QZXJpcGhlcmFsIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9IkNDIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im5vZGVJZCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icmFuayIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idHJhbnNtaXNzaW9uT2Zmc2V0IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJyZWNlaXZlT2Zmc2V0IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJkYXRhcHVtcE9mZnNldCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibW9uaXRvck5vZGUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkFTNTY0M0J1cyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQnVzIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InNwZWVkIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxMDAwMDAwMDAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImZyYW1lTGVuZ3RoIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDQU4iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9wZXJpcGhlcmFsL1BlcmlwaGVyYWwiPgotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCI+Ci0gICAgICAgICAgPGRldGFpbHMga2V5PSJuYW1lIiB2YWx1ZT0iQ0FOIENvbW11bmljYXRpb24gQ29udHJvbGxlciIvPgotICAgICAgICAgIDwvZUFubm90YXRpb25zPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYnVmZmVyU3RyYXRlZ3kiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9CdWZmZXJTdHJhdGVneSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iU2xvdE9yZGVyIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJudW1iZXJPZkJ1ZmZlcnMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjI1NiIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNBTkJ1cyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQnVzIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImxvZ0VuYWJsZWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ic3BlZWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjI1MDAwMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZGF0YVNwZWVkIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIyNTAwMDAiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb25zb2xlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9QZXJpcGhlcmFsIi8+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV0aGVybmV0IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdEV0aGVybmV0Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1hY0FkZHJlc3MiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAwOjAwOjAwOjAwOjAwOjAwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJjcm9zc092ZXIiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icnhRdWV1ZVNpemUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFdGhlcm5ldFN3aXRjaCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RFdGhlcm5ldCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJmYXN0Rm9yd2FyZCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImxvZ0VuYWJsZWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkZsZXhSYXkiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9wZXJpcGhlcmFsL1BlcmlwaGVyYWwiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iY29sZFN0YXJ0ZXIiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icFNpbmdsZVNsb3RFbmFibGVkIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBLZXlTbG90SWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBLZXlTbG90VXNlZEZvclN0YXJ0dXAiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icEtleVNsb3RVc2VkRm9yU3luYyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwZE1pY3JvdGljayIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURvdWJsZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMC4wMjUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBMYXRlc3RUeCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMjQzIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwZExpc3RlblRpbWVPdXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjQwMTIwMiIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icGRNYXhEcmlmdCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iNjAxIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwQWxsb3dIYWx0RHVlVG9DbG9jayIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwQWxsb3dQYXNzaXZlVG9BY3RpdmUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBPZmZzZXRDb3JyZWN0aW9uT3V0IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIyNjEiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBSYXRlQ29ycmVjdGlvbk91dCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iNjAxIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRmxleFJheUJ1cyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQnVzIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InNwZWVkIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxMDAwMDAwMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZ2RNYWNyb1RpY2siIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEb3VibGUiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEuMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZ01hY3JvUGVyQ3ljbGUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjUwMDAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdOdW1iZXJPZlN0YXRpY1Nsb3RzIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSI4OSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZ2ROaXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEwMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZ1BheWxvYWRMZW5ndGhTdGF0aWMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjgiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdkU3RhdGljU2xvdCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMzQiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdkRHluYW1pY1Nsb3RJZGxlUGhhc2UiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjEiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdkTWluaVNsb3QiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjciLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdkQWN0aW9uUG9pbnRPZmZzZXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjMiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdkTWluaXNsb3RBY3Rpb25Qb2ludE9mZnNldCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMyIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZ2RUU1NUcmFuc21pdHRlciIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMTUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdTeW5jTm9kZU1heCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMTAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdDb2xkc3RhcnRBdHRlbXB0cyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMzEiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdNYXhXaXRob3V0Q2xvY2tDb3JyZWN0aW9uRmF0YWwiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjYiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImdNYXhXaXRob3V0Q2xvY2tDb3JyZWN0aW9uUGFzc2l2ZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMyIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkdlbmVyaWNJTyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvUGVyaXBoZXJhbCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ0eXBlIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvcGVyaXBoZXJhbC9HZW5lcmljSU9UeXBlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJQdFAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InNwZWVkIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxMDAwMDAwMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iYnVzV2lkdGgiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjgiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImJsb2NrU2l6ZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iNjQiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN0YXJ0SVJRT2Zmc2V0IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJlbXVsYXRlRE1BIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByZU92ZXJoZWFkIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InBvc3RPdmVyaGVhZCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzbGF2ZVNldHVwVGltZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVFbnVtIiBuYW1lPSJHZW5lcmljSU9UeXBlIj4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJNYXN0ZXIiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJTbGF2ZSIgdmFsdWU9IjEiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJQdFAiIHZhbHVlPSIyIiBsaXRlcmFsPSJQdFAiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJJUlEiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9wZXJpcGhlcmFsL1BlcmlwaGVyYWwiLz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTElOIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9QZXJpcGhlcmFsIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1hc3RlciIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwcm90b2NvbCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMi4wIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVzdEJ1cyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQnVzIi8+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlc3RCdXNDQU4iIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9wZXJpcGhlcmFsL0J1cyIvPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSZXN0QnVzRmxleFJheSIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3BlcmlwaGVyYWwvQnVzIi8+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRpbWVyIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcGVyaXBoZXJhbC9QZXJpcGhlcmFsIi8+Ci0gICAgPC9lU3VicGFja2FnZXM+Ci0gICAgPGVTdWJwYWNrYWdlcyBuYW1lPSJyZXF1aXJlbWVudCIgbnNVUkk9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguMy9tb2RlbC9yZXF1aXJlbWVudCIgbnNQcmVmaXg9InJlcXVpcmVtZW50Ij4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ2FsbE5lc3RpbmdSZXF1aXJlbWVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3JlcXVpcmVtZW50L1JlcXVpcmVtZW50Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImxpbWl0IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXZhbHVhdGlvbiI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwcm92aWRlZEJ5IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIj4KLSAgICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovLy9vcmcvZWNsaXBzZS9lbWYvZWNvcmUvdXRpbC9FeHRlbmRlZE1ldGFEYXRhIj4KLSAgICAgICAgICAgIDxkZXRhaWxzIGtleT0ia2luZCIgdmFsdWU9ImNvbnRlbnQiLz4KLSAgICAgICAgICA8L2VBbm5vdGF0aW9ucz4KLSAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idGltZUNyZWF0ZWQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VEYXRlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ2ZXJkaWN0IiBlVHlwZT0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvVmVyZGljdCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iVW5rbm93biIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50Q2hhaW5CcmVha09mZlJlcXVpcmVtZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVxdWlyZW1lbnQiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZXZhbHVhdGVCcmVha09mZkFzU3VjY2VzcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIj4KLSAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudENoYWluIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvRXZlbnRDaGFpbiIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaWdub3JlTGFzdEluc3RhbmNlcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaWdub3JlTm9uU2VxdWVudGlhbCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpZ25vcmVTa2lwcGVkIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiPgotICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InJlcXVpcmVkTGFzdFN0ZXAiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9FdmVudENoYWluU3RlcCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50Q2hhaW5Kb2luUmVxdWlyZW1lbnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9yZXF1aXJlbWVudC9SZXF1aXJlbWVudCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJhbGxvd1NhbWVJbnN0YW5jZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV2ZW50Q2hhaW4iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9FdmVudENoYWluIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRXZlbnRDaGFpbk11bHRpcGxlUHJvY2Vzc2luZ1JlcXVpcmVtZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVxdWlyZW1lbnQiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnRDaGFpbiIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL0V2ZW50Q2hhaW4iLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IkV2ZW50Q2hhaW5TdHJhdGVneSI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRmlyc3RGaXJzdCIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkZpcnN0TGFzdCIgdmFsdWU9IjEiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJMYXN0TGFzdCIgdmFsdWU9IjIiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJNdWx0aUZpcnN0IiB2YWx1ZT0iMyIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik11bHRpTGFzdCIgdmFsdWU9IjQiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJNdWx0aUJhY2t3YXJkUHJlY2VkaW5nIiB2YWx1ZT0iNSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik11bHRpQmFja3dhcmRFYXJsaWVzdCIgdmFsdWU9IjYiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFdmVudENoYWluVGltaW5nUmVxdWlyZW1lbnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9yZXF1aXJlbWVudC9UaW1pbmdSZXF1aXJlbWVudCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJldmVudENoYWluIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvRXZlbnRDaGFpbiIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZnJvbVN0ZXAiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9FdmVudENoYWluU3RlcCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iaW5zdGFuY2VPZmZzZXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN0cmF0ZWd5IiBlVHlwZT0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpblN0cmF0ZWd5IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJGaXJzdEZpcnN0Ii8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0b1N0ZXAiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9FdmVudENoYWluU3RlcCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50SUV2ZW50SlJlcXVpcmVtZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvVGltaW5nUmVxdWlyZW1lbnQiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZW5kRXZlbnQiIGVUeXBlPSIjLy9tb2RlbC9UcmFjZUV2ZW50Ii8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwYXJhbWV0ZXJBIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwYXJhbWV0ZXJCIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGFydEV2ZW50IiBlVHlwZT0iIy8vbW9kZWwvVHJhY2VFdmVudCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkV2ZW50TmV0RXhlY1RpbWVSZXF1aXJlbWVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3JlcXVpcmVtZW50L1RpbWluZ1JlcXVpcmVtZW50Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImVuZCIgZVR5cGU9IiMvL21vZGVsL1RyYWNlRXZlbnQiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByb2Nlc3MiIGVUeXBlPSIjLy9tb2RlbC9Qcm9jZXNzIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzdGFydCIgZVR5cGU9IiMvL21vZGVsL1RyYWNlRXZlbnQiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFdmVudFRpbWluZ1JlcXVpcmVtZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvVGltaW5nUmVxdWlyZW1lbnQiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idHJpZ2dlciIgZVR5cGU9IiMvL21vZGVsL1RyYWNlRXZlbnQiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InN0YXJ0IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVHJhY2VFdmVudCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RvcCIgZVR5cGU9IiMvL21vZGVsL1RyYWNlRXZlbnQiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJHcm91cE9mUmVxdWlyZW1lbnRzIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVxdWlyZW1lbnQiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icmVxdWlyZW1lbnRzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL3JlcXVpcmVtZW50L1JlcXVpcmVtZW50IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IklsbGVnYWxFdmVudFJlcXVpcmVtZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVxdWlyZW1lbnQiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZXZlbnQiIGVUeXBlPSIjLy9tb2RlbC9UcmFjZUV2ZW50Ii8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTG9hZFJlcXVpcmVtZW50IiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVxdWlyZW1lbnQiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZ3JhbnVsYXJpdHkiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibGltaXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VGbG9hdCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iODAiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImxvYWRSZXNvdXJjZSIgZVR5cGU9IiMvL21vZGVsL0xvYWRSZXNvdXJjZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icHJld2Fybk1hcmdpbiIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUZsb2F0IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icmVsYXRpb25hbE9wZXJhdG9yIiBlVHlwZT0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVsYXRpb25hbE9wZXJhdG9yTGVHZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0ibGUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InN0ZXBzIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIyMCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik5ldEV4ZWNUaW1lUmVxdWlyZW1lbnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9yZXF1aXJlbWVudC9UaW1pbmdSZXF1aXJlbWVudCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm9jZXNzIiBlVHlwZT0iIy8vbW9kZWwvUHJvY2VzcyIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iTmV0U2xhY2tUaW1lUmVxdWlyZW1lbnRUeXBlIj4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJVbmRlZmluZWQiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJEZWx0YSIgdmFsdWU9IjEiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJFdmVudCIgdmFsdWU9IjIiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJOZXRTbGFja1RpbWVSZXF1aXJlbWVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3JlcXVpcmVtZW50L1RpbWluZ1JlcXVpcmVtZW50Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlYWRsaW5lRGVsdGEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGVhZGxpbmVFdmVudCIgZVR5cGU9IiMvL21vZGVsL1RyYWNlRXZlbnQiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InByb2Nlc3MiIGVUeXBlPSIjLy9tb2RlbC9Qcm9jZXNzIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ0eXBlIiBlVHlwZT0iIy8vbW9kZWwvcmVxdWlyZW1lbnQvTmV0U2xhY2tUaW1lUmVxdWlyZW1lbnRUeXBlIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJEZWx0YSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlBlcmlvZGljRXZlbnRSZXF1aXJlbWVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3JlcXVpcmVtZW50L1RpbWluZ1JlcXVpcmVtZW50Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImV2ZW50IiBlVHlwZT0iIy8vbW9kZWwvVHJhY2VFdmVudCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icHJld2Fybk1hcmdpbkNyaXRpY2FsIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSZWN1cnNpb25SZXF1aXJlbWVudCIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3JlcXVpcmVtZW50L1JlcXVpcmVtZW50Ij4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImxpbWl0IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIwIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVxdWlyZW1lbnQiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZGVzY3JpcHRpb24iIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciPgotICAgICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vL29yZy9lY2xpcHNlL2VtZi9lY29yZS91dGlsL0V4dGVuZGVkTWV0YURhdGEiPgotICAgICAgICAgICAgPGRldGFpbHMga2V5PSJraW5kIiB2YWx1ZT0iY29udGVudCIvPgotICAgICAgICAgIDwvZUFubm90YXRpb25zPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJldGFnIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJldmFsdWF0ZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InByb3ZpZGVkQnkiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciPgotICAgICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vL29yZy9lY2xpcHNlL2VtZi9lY29yZS91dGlsL0V4dGVuZGVkTWV0YURhdGEiPgotICAgICAgICAgICAgPGRldGFpbHMga2V5PSJraW5kIiB2YWx1ZT0iY29udGVudCIvPgotICAgICAgICAgIDwvZUFubm90YXRpb25zPgotICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJzaG93IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idXJsIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUmVzcG9uc2VUaW1lUmVxdWlyZW1lbnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9yZXF1aXJlbWVudC9UaW1pbmdSZXF1aXJlbWVudCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcm9jZXNzIiBlVHlwZT0iIy8vbW9kZWwvUHJvY2VzcyIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJ0b3NGYWlsdXJlUmVxdWlyZW1lbnQiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9yZXF1aXJlbWVudC9SZXF1aXJlbWVudCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJlbmFibGVkUlRPU0ZhaWx1cmVzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL3JlcXVpcmVtZW50L1JUT1NGYWlsdXJlIj4KLSAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJibGFja2xpc3QiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvUHJvY2VzcyIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iUmVsYXRpb25hbE9wZXJhdG9yIj4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJsdCIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImxlIiB2YWx1ZT0iMSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Imd0IiB2YWx1ZT0iMiIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImdlIiB2YWx1ZT0iMyIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImVxIiB2YWx1ZT0iNCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iUmVsYXRpb25hbE9wZXJhdG9yTGVHZSI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0ibGUiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJnZSIgdmFsdWU9IjEiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUVudW0iIG5hbWU9IlJlbGF0aW9uYWxPcGVyYXRvckx0TGVHdEdlIj4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJsdCIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImxlIiB2YWx1ZT0iMSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Imd0IiB2YWx1ZT0iMiIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9ImdlIiB2YWx1ZT0iMyIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iUlRPU0ZhaWx1cmUiPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IlJldHVybkZyb21UYXNrRm9yYmlkZGVuIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQWN0aXZhdGlvbkxpbWl0VmlvbGF0aW9uIiB2YWx1ZT0iMSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik1lbW9yeUFjY2Vzc1Zpb2xhdGlvbiIgdmFsdWU9IjIiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJEaXZpc2lvbkJ5WmVybyIgdmFsdWU9IjMiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJJbnZhbGlkT2JqZWN0IiB2YWx1ZT0iNCIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik9zQXBpQ2FsbEVycm9yIiB2YWx1ZT0iNSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Iklzckxvc3QiIHZhbHVlPSI2Ii8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iRGVsZXRlZFVzZWRPYmplY3QiIHZhbHVlPSI3Ii8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVGltZXJMb3N0IiB2YWx1ZT0iOCIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkRlYWRsaW5lVmlvbGF0aW9uIiB2YWx1ZT0iOSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik9zZWtSZXNvdXJjZU9yZGVyV3JvbmciIHZhbHVlPSIxMCIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkFzc2VydEZhaWxlZCIgdmFsdWU9IjExIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQ3h4UHVyZVZpcnR1YWxDYWxsZWQiIHZhbHVlPSIxMiIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkhlYXBDb3JydXB0aW9uRGV0ZWN0ZWQiIHZhbHVlPSIxMyIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkltcG9ydEVycm9yIiB2YWx1ZT0iMTQiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJJbXBvcnRTb3VyY2VFcnJvciIgdmFsdWU9IjE1Ii8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iQ2Fub2VJRlNyZWR1Y2VkIiB2YWx1ZT0iMTYiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJDYW5vZUlGU3Zpb2xhdGVkIiB2YWx1ZT0iMTciLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJTcGlubG9ja09yZGVyV3JvbmciIHZhbHVlPSIxOCIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik1lbW9yeVdyaXRlQWNjZXNzVmlvbGF0aW9uIiB2YWx1ZT0iMTkiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJNZW1vcnlSZWFkTW9kaWZ5V3JpdGVBY2Nlc3NWaW9sYXRpb24iIHZhbHVlPSIyMCIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9Ik1lbW9yeUFkZHJlc3NNYXBWaW9sYXRpb24iIHZhbHVlPSIyMSIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkNhbk1lc3NhZ2VEcm9wcGVkIiB2YWx1ZT0iMjIiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJUaW1pbmdSZXF1aXJlbWVudCIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9yZXF1aXJlbWVudC9SZXF1aXJlbWVudCI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJyZWxhdGlvbmFsT3BlcmF0b3IiIGVUeXBlPSIjLy9tb2RlbC9yZXF1aXJlbWVudC9SZWxhdGlvbmFsT3BlcmF0b3IiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9Imx0Ii8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJsaW1pdCIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwcmV3YXJuTWFyZ2luIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InJlbGF0aXZlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFRW51bSIgbmFtZT0iVmVyZGljdCI+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iVW5rbm93biIgdmFsdWU9Ii0xIiBsaXRlcmFsPSJVbmtub3duIi8+Ci0gICAgICAgIDxlTGl0ZXJhbHMgbmFtZT0iU3VjY2VzcyIgbGl0ZXJhbD0iU3VjY2VzcyIvPgotICAgICAgICA8ZUxpdGVyYWxzIG5hbWU9IkNyaXRpY2FsIiB2YWx1ZT0iMSIgbGl0ZXJhbD0iQ3JpdGljYWwiLz4KLSAgICAgICAgPGVMaXRlcmFscyBuYW1lPSJGYWlsIiB2YWx1ZT0iMiIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPC9lU3VicGFja2FnZXM+Ci0gICAgPGVTdWJwYWNrYWdlcyBuYW1lPSJzdGltdWxhdGlvbiIgbnNVUkk9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguMy9tb2RlbC9zdGltdWxhdGlvbiIgbnNQcmVmaXg9InN0aW11bGF0aW9uIj4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQnVyc3RQYXR0ZXJuIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im1heGltdW1PY2N1cnJlbmNlcyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWluaW11bUludGVyQXJyaXZhbFRpbWUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0icGF0dGVybkxlbmd0aCIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQnVyc3RQYXR0ZXJuR2VuZXJhdG9yIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvc3RpbXVsYXRpb24vU3RpbXVsaUdlbmVyYXRvciI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJidXJzdFBhdHRlcm5TZXR0aW5ncyIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL3N0aW11bGF0aW9uL0J1cnN0UGF0dGVybiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Iml0ZXJhdGlvbnMiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9Ii0xIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwZXJpb2QiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icmVsYXRpdmUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhcnRPZmZzZXQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhcnRPZmZzZXRWYXJpYXRpb24iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idmFyaWF0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvbiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDU1ZCYXNlZEdlbmVyYXRvciIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3N0aW11bGF0aW9uL1N0aW11bGlHZW5lcmF0b3IiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZmlsZW5hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb21wb3NpdGVTY2VuYXJpbyIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3N0aW11bGF0aW9uL1N0aW11bGF0aW9uU2NlbmFyaW8iPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic2NlbmFyaW9zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL3N0aW11bGF0aW9uL1N0aW11bGF0aW9uU2NlbmFyaW8iLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJEaXN0dXJiYW5jZUZpbHRlciIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3N0aW11bGF0aW9uL1N0aW11bGF0aW9uRmlsdGVyIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImRpc3R1cmJhbmNlUHJvYmFiaWxpdHkiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VGbG9hdCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZGlzdHVyYmFuY2VTaWdtYSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJsb3NzUHJvYmFiaWxpdHkiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VGbG9hdCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRyaWZ0RmlsdGVyIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvc3RpbXVsYXRpb24vU3RpbXVsYXRpb25GaWx0ZXIiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWF4aW11bSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJwZXJpb2RpYyIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImZhbHNlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJyZXBlYXQiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhcnRUaW1lIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRpbWVGcmFtZSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRWxpbWluYXRpb25GaWx0ZXIiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxhdGlvbkZpbHRlciI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzb3VyY2VHZW5lcmF0b3IiIGVUeXBlPSIjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxpR2VuZXJhdG9yIj4KLSAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0aW1lRnJhbWUiIGVUeXBlPSIjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkluZHVjZWRHZW5lcmF0b3IiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxpR2VuZXJhdG9yIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImRlbGF5IiBlVHlwZT0iIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvbiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im9mZnNldCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMCI+Ci0gICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icGVyaW9kIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSIxIj4KLSAgICAgICAgICA8L2VTdHJ1Y3R1cmFsRmVhdHVyZXM+Ci0gICAgICA8L2VDbGFzc2lmaWVycz4KLSAgICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iSW5kdWNlZExpc3RCYXNlZEdlbmVyYXRvciIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3N0aW11bGF0aW9uL0xpc3RCYXNlZEdlbmVyYXRvciI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJvZmZzZXQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VJbnQiIGRlZmF1bHRWYWx1ZUxpdGVyYWw9IjAiPgotICAgICAgICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9InBlcmlvZCIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUludCIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iMSI+Ci0gICAgICAgICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ikxpc3RCYXNlZEdlbmVyYXRvciIgZVN1cGVyVHlwZXM9IiMvL21vZGVsL3N0aW11bGF0aW9uL1N0aW11bGlHZW5lcmF0b3IiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZW50cnkiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vbW9kZWwvVGltZSIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InNvdXJjZUdlbmVyYXRvciIgZVR5cGU9IiMvL21vZGVsL3N0aW11bGF0aW9uL1N0aW11bGlHZW5lcmF0b3IiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSYW5kb21TdGltdWxpR2VuZXJhdG9yIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvc3RpbXVsYXRpb24vU3RpbXVsaUdlbmVyYXRvciI+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJpdGVyYXRpb25zIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBkZWZhdWx0VmFsdWVMaXRlcmFsPSItMSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWluSW50ZXJBcnJpdmFsVGltZSIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwZXJpb2QiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0icmVsYXRpdmUiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhcnRPZmZzZXQiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ic3RhcnRPZmZzZXRWYXJpYXRpb24iIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSIjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idmFyaWF0aW9uIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvbiIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTdGltdWxhdGlvbkZpbHRlciIgYWJzdHJhY3Q9InRydWUiIGVTdXBlclR5cGVzPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCIvPgotICAgICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJTdGltdWxhdGlvblNjZW5hcmlvIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iYnVyc3RQYXR0ZXJuIiBlVHlwZT0iIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0iZ2VuZXJhdG9ycyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxpR2VuZXJhdG9yIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0aW11bGlHZW5lcmF0b3IiIGFic3RyYWN0PSJ0cnVlIiBlU3VwZXJUeXBlcz0iIy8vbW9kZWwvTW9kZWxPYmplY3QgIy8vbW9kZWwvQ2xvY2tVc2VyIj4KLSAgICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbm5lY3Rpb25zIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL0Nvbm5lY3Rpb24iIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJmaWx0ZXJzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL21vZGVsL3N0aW11bGF0aW9uL1N0aW11bGF0aW9uRmlsdGVyIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0idGFyZ2V0cyIgZVR5cGU9IiMvL21vZGVsL0NhbGxHcmFwaCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDwvZVN1YnBhY2thZ2VzPgotICA8L2VTdWJwYWNrYWdlcz4KLSAgPGVTdWJwYWNrYWdlcyBuYW1lPSJzZXR0aW5ncyIgbnNVUkk9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguMy9zZXR0aW5ncyIgbnNQcmVmaXg9InNldHRpbmdzIj4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbG9yIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ1cmkiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciIGRlZmF1bHRWYWx1ZUxpdGVyYWw9ImNvbG9yOi8vcmdiLzEyOC8xMjgvMTI4Ii8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb2xvckVudHJ5Ij4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvYmplY3QiIGVUeXBlPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbG9yIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vc2V0dGluZ3MvQ29sb3IiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPC9lQ2xhc3NpZmllcnM+Ci0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJDb2xvckVudHJ5Q29udGFpbmVyIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvYmplY3QiIGVUeXBlPSIjLy9tb2RlbC9Nb2RlbE9iamVjdCIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbG9yIiBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL3NldHRpbmdzL0NvbG9yIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ3Vyc29yIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJwb3NpdGlvbiIgZVR5cGU9IiMvL21vZGVsL1RpbWUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibWFzdGVyIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkRpYWdyYW1TZXR0aW5ncyIvPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRWRpdG9yU2V0dGluZ3MiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbGxhcHNhdGlvblN0YXRlcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9zZXR0aW5ncy9FT2JqZWN0RmxhZyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkVPYmplY3RGbGFnIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJvYmplY3QiIGxvd2VyQm91bmQ9IjEiIGVUeXBlPSJlY29yZTpFQ2xhc3MgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VPYmplY3QiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJmbGFnIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1vZGVsT2JqZWN0RmxhZyI+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ib2JqZWN0IiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vbW9kZWwvTW9kZWxPYmplY3QiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJmbGFnIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iZmFsc2UiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik1vZGVsU2V0dGluZ3MiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbG9ycyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9zZXR0aW5ncy9Db2xvckVudHJ5IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbG9yc0J5SW5zdGFuY2UiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vc2V0dGluZ3MvQ29sb3JFbnRyeUNvbnRhaW5lciIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2V0dGluZ3MiPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImVkaXRvciIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL3NldHRpbmdzL0VkaXRvclNldHRpbmdzIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9Im1vZGVsIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vc2V0dGluZ3MvTW9kZWxTZXR0aW5ncyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJ0b29sIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0iIy8vc2V0dGluZ3MvVG9vbFNldHRpbmdzIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InZpZXdzIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL3NldHRpbmdzL1ZpZXdTZXR0aW5ncyIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8L2VDbGFzc2lmaWVycz4KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlRvb2xTZXR0aW5ncyIvPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVHJhY2VFdmVudFR5cGVDb25maWd1cmF0aW9uIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJjb2xvciIgbG93ZXJCb3VuZD0iMSIgZVR5cGU9IiMvL3NldHRpbmdzL0NvbG9yIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0idHJhY2VFdmVudFR5cGUiIGVUeXBlPSIjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZSIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0iQWN0aXZhdGUiLz4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJ2aXNpYmxlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iVmlld1NldHRpbmdzIj4KLSAgICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkaWFncmFtcyIgdXBwZXJCb3VuZD0iLTEiIGVUeXBlPSIjLy9zZXR0aW5ncy9EaWFncmFtU2V0dGluZ3MiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZXZlbnRMYWJlbHNWaXNpYmxlIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9vbGVhbiIgZGVmYXVsdFZhbHVlTGl0ZXJhbD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Imhvcml6b250YWxMYWJlbHMiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VCb29sZWFuIiBkZWZhdWx0VmFsdWVMaXRlcmFsPSJmYWxzZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImN1cnNvcnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vc2V0dGluZ3MvQ3Vyc29yIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9InRyYWNlRXZlbnRUeXBlQ29uZmlndXJhdGlvbnMiIHVwcGVyQm91bmQ9Ii0xIiBlVHlwZT0iIy8vc2V0dGluZ3MvVHJhY2VFdmVudFR5cGVDb25maWd1cmF0aW9uIiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDwvZUNsYXNzaWZpZXJzPgotICA8L2VTdWJwYWNrYWdlcz4KLSAgPGVTdWJwYWNrYWdlcyBuYW1lPSJyZXN1bHRzIiBuc1VSST0iaHR0cDovL2luY2hyb24uY29tL3JlYWx0aW1lL3Jvb3QvMi45OC4zL3Jlc3VsdHMiIG5zUHJlZml4PSJyZXN1bHRzIi8+Ci08L2Vjb3JlOkVQYWNrYWdlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbW9kZWwvcm9vdC5nZW5tb2RlbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbW9kZWwvcm9vdC5nZW5tb2RlbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODgzZTJmMy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L21vZGVsL3Jvb3QuZ2VubW9kZWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Z2VubW9kZWw6R2VuTW9kZWwgeG1pOnZlcnNpb249IjIuMCIgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIKLSAgICB4bWxuczpnZW5tb2RlbD0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCIgbW9kZWxEaXJlY3Rvcnk9Ii9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L3NyYyIgbW9kZWxQbHVnaW5JRD0iY29tLmluY2hyb24ucmVhbHRpbWUucm9vdCIKLSAgICBtb2RlbE5hbWU9IlJvb3QiIHJvb3RFeHRlbmRzQ2xhc3M9Im9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLk1pbmltYWxFT2JqZWN0SW1wbCRDb250YWluZXIiCi0gICAgaW1wb3J0ZXJJRD0ib3JnLmVjbGlwc2UuZW1mLmltcG9ydGVyLmVjb3JlIiBjb21wbGlhbmNlTGV2ZWw9IjUuMCIgY29weXJpZ2h0RmllbGRzPSJmYWxzZSIKLSAgICBvcGVyYXRpb25SZWZsZWN0aW9uPSJ0cnVlIiBpbXBvcnRPcmdhbml6aW5nPSJ0cnVlIj4KLSAgPGZvcmVpZ25Nb2RlbD5maWxlOi9ob21lL3N0ZWZhbi9kZXZlbC9zeXN0ZW1Nb2RlbDMvcHVibGljLXByZXBhcmF0aW9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvbW9kZWwvcm9vdC5lY29yZTwvZm9yZWlnbk1vZGVsPgotICA8Z2VuUGFja2FnZXMgcHJlZml4PSJSb290IiBiYXNlUGFja2FnZT0iY29tLmluY2hyb24ucmVhbHRpbWUiIGRpc3Bvc2FibGVQcm92aWRlckZhY3Rvcnk9InRydWUiCi0gICAgICBlY29yZVBhY2thZ2U9InJvb3QuZWNvcmUjLyI+Ci0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL1JlZmVycmFibGUiPgotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9SZWZlcnJhYmxlL2ludHJpbnNpY0lkIi8+Ci0gICAgPC9nZW5DbGFzc2VzPgotICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9Sb290Ij4KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL1Jvb3QvbW9kZWwiLz4KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL1Jvb3Qvc2V0dGluZ3MiLz4KLSAgICA8L2dlbkNsYXNzZXM+Ci0gICAgPG5lc3RlZEdlblBhY2thZ2VzIHByZWZpeD0iTW9kZWwiIGRpc3Bvc2FibGVQcm92aWRlckZhY3Rvcnk9InRydWUiIGxvYWRJbml0aWFsaXphdGlvbj0idHJ1ZSIKLSAgICAgICAgbGl0ZXJhbHNJbnRlcmZhY2U9ImZhbHNlIiBlY29yZVBhY2thZ2U9InJvb3QuZWNvcmUjLy9tb2RlbCI+Ci0gICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL0J1ZmZlclN0cmF0ZWd5Ij4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvQnVmZmVyU3RyYXRlZ3kvU2xvdE9yZGVyIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL0J1ZmZlclN0cmF0ZWd5L1ByaW9yaXR5Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL0J1ZmZlclN0cmF0ZWd5L0ZJRk8iLz4KLSAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL0NBTkJ1c01lc3NhZ2VGb3JtYXQiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9DQU5CdXNNZXNzYWdlRm9ybWF0L1N0YW5kYXJkIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL0NBTkJ1c01lc3NhZ2VGb3JtYXQvRXh0ZW5kZWQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvQ0FOQnVzTWVzc2FnZUZvcm1hdC9KMTkzOV9UUF9CQU0iLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvQ0FOQnVzTWVzc2FnZUZvcm1hdC9KMTkzOV9UUF9QMlAiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvQ0FOQnVzTWVzc2FnZUZvcm1hdC9JZ25vcmUiLz4KLSAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL0RhdGFGbG93Q29tbXVuaWNhdGlvblR5cGUiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9EYXRhRmxvd0NvbW11bmljYXRpb25UeXBlL0V2ZW50QmFzZWQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvRGF0YUZsb3dDb21tdW5pY2F0aW9uVHlwZS9TaGFyZWRWYXJpYWJsZSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9EYXRhRmxvd0NvbW11bmljYXRpb25UeXBlL1F1ZXVpbmciLz4KLSAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q2hhaW5TdHJhdGVneSI+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q2hhaW5TdHJhdGVneS9GaXJzdEZpcnN0Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q2hhaW5TdHJhdGVneS9GaXJzdExhc3QiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvRXZlbnRDaGFpblN0cmF0ZWd5L0xhc3RMYXN0Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q2hhaW5TdHJhdGVneS9NdWx0aUZpcnN0Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q2hhaW5TdHJhdGVneS9NdWx0aUxhc3QiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvRXZlbnRDaGFpblN0cmF0ZWd5L011bHRpQmFja3dhcmRQcmVjZWRpbmciLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvRXZlbnRDaGFpblN0cmF0ZWd5L011bHRpQmFja3dhcmRFYXJsaWVzdCIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudENoYWluU3RyYXRlZ3kvQ291bnQiLz4KLSAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q29uanVuY3Rpb25PcGVyYXRvclR5cGUiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudENvbmp1bmN0aW9uT3BlcmF0b3JUeXBlL0FORCIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudENvbmp1bmN0aW9uT3BlcmF0b3JUeXBlL09SIi8+Ci0gICAgICA8L2dlbkVudW1zPgotICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9GcmVxdWVuY3lVbml0Ij4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvRnJlcXVlbmN5VW5pdC9IeiIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9GcmVxdWVuY3lVbml0L2tIeiIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9GcmVxdWVuY3lVbml0L01IeiIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9GcmVxdWVuY3lVbml0L0dIeiIvPgotICAgICAgPC9nZW5FbnVtcz4KLSAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uRmxhZ3MiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9NZW1vcnlSZWdpb25GbGFncy9Db2RlIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL01lbW9yeVJlZ2lvbkZsYWdzL0RhdGEiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uRmxhZ3MvSU8iLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uRmxhZ3MvU2hhcmVkIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL01lbW9yeVJlZ2lvbkZsYWdzL0V4ZWMiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uRmxhZ3MvV3JpdGUiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uRmxhZ3MvSW5pdCIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9NZW1vcnlSZWdpb25GbGFncy9Mb2FkIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL01lbW9yeVJlZ2lvbkZsYWdzL1BhZ2VkIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL01lbW9yeVJlZ2lvbkZsYWdzL1RleHQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uRmxhZ3MvUmFtIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL01lbW9yeVJlZ2lvbkZsYWdzL1JvbSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9NZW1vcnlSZWdpb25GbGFncy9QZXJpcGgiLz4KLSAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL1J0b3NBcGlUeXBlIj4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvUnRvc0FwaVR5cGUvTm9uZSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zQXBpVHlwZS9DbGliIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1J0b3NBcGlUeXBlL09zZWsiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvUnRvc0FwaVR5cGUvQXV0b3NhciIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zQXBpVHlwZS9UaHJlYWR4Ii8+Ci0gICAgICA8L2dlbkVudW1zPgotICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zUHJvcGVydHkiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zUHJvcGVydHkvQmFyZSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zUHJvcGVydHkvRXhwbGljaXRUYXNrRGVmaW5pdGlvbiIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zUHJvcGVydHkvU3VzcGVuZFdoZW5UYXNrUmV0dXJucyIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zUHJvcGVydHkvVGFza1JldHVybkZvcmJpZGRlbiIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zUHJvcGVydHkvUmVzb3VyY2VOZWVkc0luaXQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvUnRvc1Byb3BlcnR5L0F1dG9zYXJSVEVFdmVudHMiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvUnRvc1Byb3BlcnR5L0V4dGVuZGVkVGFzayIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zUHJvcGVydHkvT3NlayIvPgotICAgICAgPC9nZW5FbnVtcz4KLSAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXJTdHJhdGVneS9OT05FIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0ZDRlMiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvRml4ZWRQcmlvcml0eSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXJTdHJhdGVneS9Sb3VuZFJvYmluIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L1RETUEiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvQ0FOIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L09TRUsiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvQnVzRUNVIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0NBTkVDVSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXJTdHJhdGVneS9BdXRvc2FyVGFzayIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXJTdHJhdGVneS9UcmlnZ2VyZWQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvT2Zmc2V0Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0NBTk1zZyIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXJTdHJhdGVneS9MQ0ZTIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0ZsZXhSYXlFQ1UiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvRXRoZXJuZXRFQ1UiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvTElORUNVIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0ZsZXhSYXlNc2ciLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvRXRoZXJuZXRNc2ciLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvTElOTXNnIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0ZsZXhSYXkiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvRXRoZXJuZXQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvTElOIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0ZsZXhSYXlEeW5hbWljIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0V0aGVybmV0U3RlcE9mQnVzTXNnIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclN0cmF0ZWd5L0ZpeGVkSVNSUHJpb3JpdHkiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyU3RyYXRlZ3kvRURGIi8+Ci0gICAgICA8L2dlbkVudW1zPgotICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXJUeXBlIj4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyVHlwZS9QcmVlbXB0aXZlIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlclR5cGUvQ29vcGVyYXRpdmUiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyVHlwZS9UaW1lU2xpY2UiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyVHlwZS9SdW5Ub0NvbXBsZXRpb24iLz4KLSAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL1NlbWFwaG9yZUFjY2Vzc1R5cGUiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TZW1hcGhvcmVBY2Nlc3NUeXBlL1JlcXVlc3QiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2VtYXBob3JlQWNjZXNzVHlwZS9FeGNsdXNpdmUiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvU2VtYXBob3JlQWNjZXNzVHlwZS9SZWxlYXNlIi8+Ci0gICAgICA8L2dlbkVudW1zPgotICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9TcGlubG9ja09wZXJhdGlvblR5cGUiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TcGlubG9ja09wZXJhdGlvblR5cGUvQWNxdWlyZSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TcGlubG9ja09wZXJhdGlvblR5cGUvUmVsZWFzZSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9TcGlubG9ja09wZXJhdGlvblR5cGUvVHJ5QWNxdWlyZSIvPgotICAgICAgPC9nZW5FbnVtcz4KLSAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvblR5cGUiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uVHlwZS9XY2V0Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RpbWVEaXN0cmlidXRpb25UeXBlL0JjZXQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvblR5cGUvVW5pZm9ybSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uVHlwZS9Ob3JtYWwiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvblR5cGUvTWVhbiIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uVHlwZS9EaXNjcmV0ZSIvPgotICAgICAgPC9nZW5FbnVtcz4KLSAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvVGltZVVuaXQiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lVW5pdC9zIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RpbWVVbml0L21zIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RpbWVVbml0L3VzIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RpbWVVbml0L25zIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RpbWVVbml0L3BzIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RpbWVVbml0L2ZzIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RpbWVVbml0L1QiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVGltZVVuaXQvTmFOIi8+Ci0gICAgICA8L2dlbkVudW1zPgotICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZSI+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL0FjdGl2YXRlIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL1N0YXJ0Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL1Rlcm1pbmF0ZSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZS9CbG9jayIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZS9SZWxlYXNlIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL1Jlc3RhcnQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVHJhY2VFdmVudFR5cGUvRW50cnkiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVHJhY2VFdmVudFR5cGUvRXhpdCIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZS9Vc2VyQ29kZSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZS9Vc2VyQ29kZVBhcmFtIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL0V2ZW50Q2hhaW4iLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVHJhY2VFdmVudFR5cGUvRGF0YUZsb3dDaGFpbiIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZS9BY3RpdmF0aW9uRmxvd0NoYWluIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL0ZyYW1lQmVnaW4iLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVHJhY2VFdmVudFR5cGUvRnJhbWVFbmQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVHJhY2VFdmVudFR5cGUvRnJhbWVBYm9ydCIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZS9DeWNsZVN0YXJ0Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL0R5bmFtaWNTZWdtZW50Ii8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL05ldHdvcmtJZGxlVGltZSIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZS9UcmFuc2ZlckNvdW50ZXIiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVHJhY2VFdmVudFR5cGUvRnJhbWVEcm9wIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL1RpbWVyQ3JlYXRlIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL1RpbWVyRGVsZXRlIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL1RpbWVyU3RhcnQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVHJhY2VFdmVudFR5cGUvVGltZXJTdG9wIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL1RpbWVyRXhwaXJlIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRUeXBlL1RpbWVyRXhwUmVzdCIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50VHlwZS9UaW1lckVuZE1hcmsiLz4KLSAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzc1BvbGljeSI+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzc1BvbGljeS9GSUZPIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzc1BvbGljeS9MSUZPIi8+Ci0gICAgICA8L2dlbkVudW1zPgotICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3NUeXBlIj4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVSZWFkQWNjZXNzVHlwZS9HZW5lcmljIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzc1R5cGUvTG9jYWxSZWFkIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzc1R5cGUvRGF0YVJlYWQiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVSZWFkQWNjZXNzVHlwZS9EYXRhUmVjZWl2ZSIvPgotICAgICAgPC9nZW5FbnVtcz4KLSAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVXcml0ZUFjY2Vzc1BvbGljeSI+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3NQb2xpY3kvRXJyb3JEcm9wIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3NQb2xpY3kvU2lsZW50RHJvcCIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVdyaXRlQWNjZXNzUG9saWN5L092ZXJ3cml0ZU9sZGVzdCIvPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVdyaXRlQWNjZXNzUG9saWN5L092ZXJ3cml0ZU5ld2VzdCIvPgotICAgICAgPC9nZW5FbnVtcz4KLSAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVXcml0ZUFjY2Vzc1R5cGUiPgotICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVdyaXRlQWNjZXNzVHlwZS9HZW5lcmljIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3NUeXBlL0xvY2FsV3JpdGUiLz4KLSAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVXcml0ZUFjY2Vzc1R5cGUvRGF0YVdyaXRlIi8+Ci0gICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3NUeXBlL0RhdGFTZW5kIi8+Ci0gICAgICA8L2dlbkVudW1zPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0Fic3RyYWN0Q3B1TW9kZWwiLz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9BY3RpdmF0ZVByb2Nlc3MiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9BY3RpdmF0ZVByb2Nlc3MvdGFyZ2V0Ii8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvQWN0aXZhdGlvbkNvbm5lY3Rpb24iPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9BY3RpdmF0aW9uQ29ubmVjdGlvbi9hY3RpdmF0b3JzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvQWN0aXZhdGlvbkNvbm5lY3Rpb24vYW5kU2VtYW50aWMiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9BY3RpdmF0aW9uSXRlbSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0FjdGl2YXRpb25JdGVtL2Nvbm5lY3Rpb24iLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQWN0aXZhdGlvbkl0ZW0vYWN0aXZhdGlvbkl0ZW1EZWxheSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgaW1hZ2U9ImZhbHNlIiBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvQWN0aXZhdGlvbkFjdGlvbiI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvQWN0aXZhdGlvbkFjdGlvbi9vZmZzZXQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9BY3RpdmF0aW9uQWN0aW9uL3BlcmlvZCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9BY3RpdmF0aW9uQWN0aW9uL2FjdGl2YXRpb25BY3Rpb25EZWxheSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0FkZHJlc3NSYW5nZSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvQWRkcmVzc1JhbmdlL2Jhc2UiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9BZGRyZXNzUmFuZ2Uvc2l6ZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0FyaW5jU3lzdGVtIi8+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvQnVzTWVzc2FnZSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0J1c01lc3NhZ2UvZnVsbE1lc3NhZ2VzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0J1c01lc3NhZ2UvZXZlbnRzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0J1c01lc3NhZ2UvaW5DYWxsR3JhcGgiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQnVzTWVzc2FnZS9vdXRDYWxsR3JhcGgiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9DYWxsR3JhcGgiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9DYWxsR3JhcGgvZ3JhcGhFbnRyaWVzIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvQ2FsbFNlcXVlbmNlIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ2FsbFNlcXVlbmNlL2NhbGxzIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBpbWFnZT0iZmFsc2UiIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9DYWxsU2VxdWVuY2VJdGVtIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9DYWxsU2VxdWVuY2VJdGVtL3BlcmlvZCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0NhbGxTZXF1ZW5jZUl0ZW0vb2Zmc2V0Ii8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvQ0FOQnVzTWVzc2FnZSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvQ0FOQnVzTWVzc2FnZS9mb3JtYXQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9DQU5CdXNNZXNzYWdlL2NhbklkIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvQ0FOQnVzTWVzc2FnZS9zaXplIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvQ2xvY2siPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9DbG9jay9mcmVxdWVuY3kiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ2xvY2svcGVyaW9kIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvQ2xvY2svZHJpZnQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ2xvY2svcmFuZ2UiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ2xvY2svc3RhcnRUaW1lRml4ZWQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9DbG9jay9zdGFydFRpbWVJc1JhbmRvbSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9DbG9jay9zdGFydFRpbWVNaW4iLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ2xvY2svc3RhcnRUaW1lTWF4Ii8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0Nsb2NrL3N0YXJ0VmFsdWUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ2xvY2svdXNlcnMiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGltYWdlPSJmYWxzZSIgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0Nsb2NrVXNlciI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0Nsb2NrVXNlci9jbG9jayIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0NvbnRhaW5lciI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0NvbnRhaW5lci9jb250ZW50cyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0NvbnRhaW5lckVsZW1lbnQiLz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9Db21waWxlclNldHRpbmdzIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9Db21waWxlclNldHRpbmdzL2lzVGFyZ2V0Q29tcGlsZXIiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9Db21waWxlclNldHRpbmdzL2lzVGFyZ2V0Q29tcGlsZXJPdmVycmlkZVZhbHVlcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0NvbXBpbGVyU2V0dGluZ3MvdHlwZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0NvbXBpbGVyU2V0dGluZ3MvdmVyc2lvbiIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0NvbXBpbGVyU2V0dGluZ3MvcGF0aCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0NvbXBpbGVyU2V0dGluZ3MvYXJncyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0NvbXBvbmVudCI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0NvbXBvbmVudC92YXJpYWJsZXMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ29tcG9uZW50L2Z1bmN0aW9ucyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9Db21wb25lbnQvdHJhbnNsYXRpb25Vbml0cyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgaW1hZ2U9ImZhbHNlIiBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvQ29ubmVjdGlvbiI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0Nvbm5lY3Rpb24vYWN0aXZhdGlvbnMiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9DcHUiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9DcHUvY29yZXMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9DcHUvY3B1TW9kZWwiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9DcHUvcmVsb2FkQ3B1TW9kZWwiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ3B1L2h5cGVydmlzb3IiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ3B1L2ludGVyY29ubmVjdHMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvQ3B1L21lbW9yaWVzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0NwdS9tZW1vcnlSZWdpb25zIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0NwdS9wYXJ0aXRpb25zIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0NwdS9wZXJpcGhlcmFscyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0NwdUNvcmUiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0NwdUNvcmUvcHJlc2NhbGVyIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvQ3B1Q29yZS9iaXRXaWR0aCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9DcHVDb3JlL2Nvbm5lY3RlZFNsYXZlIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvRGF0YUZsb3dDb25uZWN0aW9uIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9EYXRhRmxvd0Nvbm5lY3Rpb24vY29tbXVuaWNhdGlvblR5cGUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9EYXRhRmxvd0Nvbm5lY3Rpb24vZGVmYXVsdEVsZW1lbnRzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0RhdGFGbG93Q29ubmVjdGlvbi9wcm92aWRlciIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9EYXRhRmxvd0Nvbm5lY3Rpb24vcmVxdWVzdGVycyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0RhdGFGbG93Q29ubmVjdGlvbi9zaXplIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0RhdGFGbG93Q29ubmVjdGlvbi92YXJpYWJsZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0Rpc2NyZXRlRGlzdHJpYnV0aW9uRW50cnkiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0Rpc2NyZXRlRGlzdHJpYnV0aW9uRW50cnkvY291bnQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvRGlzY3JldGVEaXN0cmlidXRpb25FbnRyeS9leGVjVGltZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0VuZm9yY2VkTWlncmF0aW9uIi8+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvRXN0aW1hdG9yU2V0dGluZ3MiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9Fc3RpbWF0b3JTZXR0aW5ncy9tb2RlbCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0VzdGltYXRvclNldHRpbmdzL29wdENvbXBpbGVyIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvRXN0aW1hdG9yU2V0dGluZ3Mvb3B0VmVyc2lvbiIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0VzdGltYXRvclNldHRpbmdzL29wdExhYmVscyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0VzdGltYXRvclNldHRpbmdzL29wdEZsYWdzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvRXN0aW1hdG9yU2V0dGluZ3Mvc2VsZWN0ZWRPcHQiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudCIvPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q2hhaW4iLz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudENoYWluQ29ubmVjdGlvbiI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q2hhaW5Db25uZWN0aW9uL2Nvbm5lY3Rpb24iLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvRXZlbnRDaGFpbkNvbm5lY3Rpb24vZnJvbSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudENoYWluQ29ubmVjdGlvbi90byIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0V2ZW50Q2hhaW5Gb3J3YXJkZXIiLz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudENoYWluU3RlcCI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvRXZlbnRDaGFpblN0ZXAvam9pbnMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudENoYWluU3RlcC9zdHJlYW1lZCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudENoYWluU3RlcC9mb3J3YXJkZXIiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9FdmVudFNlcXVlbmNlRGVmaW5pdGlvbiI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvRXZlbnRTZXF1ZW5jZURlZmluaXRpb24vb3V0T2ZPcmRlclJlc2V0Ii8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0V2ZW50U2VxdWVuY2VEZWZpbml0aW9uL3NlcXVlbmNlIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvRnJlcXVlbmN5Ij4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9GcmVxdWVuY3kvdmFsdWUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9GcmVxdWVuY3kvdW5pdCIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0Z1bmN0aW9uIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvRnVuY3Rpb24vY2FsbEdyYXBoIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvRnVuY3Rpb25DYWxsIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvRnVuY3Rpb25DYWxsL2Z1bmN0aW9uIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0Z1bmN0aW9uQ2FsbC9ndWFyZHMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvRnVuY3Rpb25DYWxsL2V2ZW50cyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0Z1bmN0aW9uQ2FsbC9ldmVudENvbmp1bmN0aW9uT3BlcmF0b3IiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGltYWdlPSJmYWxzZSIgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0dyYXBoRW50cnlCYXNlIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvR3JhcGhFbnRyeUJhc2UvdHJpZ2dlclRva2VucyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0dlbmVyYWxJbmZvIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9HZW5lcmFsSW5mby9hdXRob3IiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9HZW5lcmFsSW5mby9jcmVhdG9yIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvR2VuZXJhbEluZm8vZGVzY3JpcHRpb24iLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9HZW5lcmFsSW5mby9lbWFpbCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0dlbmVyYWxJbmZvL21vZGlmaWVkRGF0ZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL0dlbmVyYWxJbmZvL3Byb2plY3RGaWxlIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvR2VuZXJhbEluZm8vcHJvamVjdFBhdGgiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9HZW5lcmFsSW5mby9zYXZlRGlyIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvR2VuZXJhbEluZm8vdmVyc2lvbiIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL0dlbmVyaWNTeXN0ZW0iPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9HZW5lcmljU3lzdGVtL3J0b3NDb25maWciLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9IeXBlclZpc29yQ29uZmlnIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvSHlwZXJWaXNvckNvbmZpZy9oeXBlclZpc29yU3lzdGVtIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0h5cGVyVmlzb3JDb25maWcvdm1TY2hlZHVsZXJzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0h5cGVyVmlzb3JDb25maWcvdmlydHVhbENvcmVzIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvSHlwZXJWaXNvclN5c3RlbVNjaGVkdWxhYmxlIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvSHlwZXJWaXNvclN5c3RlbVNjaGVkdWxhYmxlL3ZpcnR1YWxTeXN0ZW0iLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9IeXBlclZpc29yVmlydHVhbENvcmVTY2hlZHVsYWJsZSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL0h5cGVyVmlzb3JWaXJ0dWFsQ29yZVNjaGVkdWxhYmxlL3ZpcnR1YWxDb3JlIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvTG9hZFJlc291cmNlIi8+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9NZW1vcnlSZWdpb24vYmFzZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL01lbW9yeVJlZ2lvbi9maWxlIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uL2ZsYWdzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uL3BhZ2VzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uL3BhZ2VTaXplIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uL3NlY3Rpb25zIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvTWVtb3J5UmVnaW9uL3NoYXJlZE5hbWUiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9NZXNzYWdlRGF0YSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvTWVzc2FnZURhdGEvc2l6ZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL01vZGUiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL01vZGUvdmFsdWUiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9Nb2RlR3JvdXAiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9Nb2RlR3JvdXAvbW9kZXMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZUdyb3VwL2luaXRpYWxNb2RlIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVHcm91cC9jdXJyZW50TW9kZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL01vZGVsIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWwvYnVzUGVyaXBoZXJhbHMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWwvY2xvY2tzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVsL2NwdXMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWwvY29ubmVjdGlvbnMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWwvZXZlbnRDaGFpbnMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWwvZXZlbnRzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVsL2dlbmVyYWxJbmZvIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVsL2ludGVyY29ubmVjdHMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWwvbWVtb3JpZXMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9Nb2RlbC9vbWl0Q2FsbE5lc3RpbmdEaWFncmFtIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWwvb21pdEltcGxpY2l0RXZlbnRDaGFpbnMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9Nb2RlbC9vbWl0U3RhY2tEaWFncmFtIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVsL3BlcmlwaGVyYWxQb3J0Q29ubmVjdGlvbnMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWwvcmVxdWlyZW1lbnRzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVsL3N0aW11bGF0aW9uU2NlbmFyaW9zIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVsL2RlZmF1bHRTY2VuYXJpbyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9Nb2RlbC9zeXN0ZW1zIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVsL3RyYWNlRXZlbnRzIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvTW9kZWxFdmVudENoYWluIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZWxFdmVudENoYWluL3N0ZXBzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVsRXZlbnRDaGFpbi9jb25uZWN0aW9ucyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgaW1hZ2U9ImZhbHNlIiBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvTW9kZWxPYmplY3QiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL01vZGVsT2JqZWN0L25hbWUiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9Nb2RlU3dpdGNoIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZVN3aXRjaC9lbnRyaWVzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL01vZGVTd2l0Y2gvbW9kZUdyb3VwIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvTW9kZVN3aXRjaEVudHJ5Ij4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZVN3aXRjaEVudHJ5L2dyYXBoRW50cmllcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL01vZGVTd2l0Y2hFbnRyeS9pc0RlZmF1bHQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvTW9kZVN3aXRjaEVudHJ5L21vZGUiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9Nb2RlU3dpdGNoUG9pbnQiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9Nb2RlU3dpdGNoUG9pbnQvbW9kZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1BhcnRpdGlvbiIvPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1Byb2JhYmlsaXR5U3dpdGNoIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvUHJvYmFiaWxpdHlTd2l0Y2gvZW50cmllcyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1Byb2JhYmlsaXR5U3dpdGNoRW50cnkiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1Byb2JhYmlsaXR5U3dpdGNoRW50cnkvcHJvYmFiaWxpdHkiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvUHJvYmFiaWxpdHlTd2l0Y2hFbnRyeS9ncmFwaEVudHJpZXMiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9Qcm9jZXNzIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9Qcm9jZXNzL2FjdGl2YXRpb25MaW1pdCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1Byb2Nlc3MvYWN0aXZlQXRCb290Ii8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1Byb2Nlc3MvY2FsbEdyYXBoIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1Byb2Nlc3MvZGVhZGxpbmUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9Qcm9jZXNzL2V4dGVuZGVkVGFzayIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9Qcm9jZXNzL3RyYWNlRXZlbnRzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvUHJvY2Vzcy9pZGxlVGFzayIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1Byb2Nlc3MvaXNyIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvUHJvY2Vzcy9wcmVlbXB0YWJsZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1Byb2Nlc3Mvc3RhY2tMaW1pdCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9Qcm9jZXNzL3RyaWdnZXJpbmdQb3J0Ii8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvUmVzb3VyY2VDb25zdW1wdGlvbiI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1Jlc291cmNlQ29uc3VtcHRpb24vZGF0YUFjY2VzcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9SZXNvdXJjZUNvbnN1bXB0aW9uL2VudHJ5RnVuY3Rpb24iLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9SZXNvdXJjZUNvbnN1bXB0aW9uL3N0YWNrVXNhZ2UiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvUmVzb3VyY2VDb25zdW1wdGlvbi90aW1lRGlzdHJpYnV0aW9uIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvUmVzb3VyY2VDb25zdW1wdGlvbi91c2VFbnRyeUZ1bmN0aW9uIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvUmVzdW1lQWxsSW50ZXJydXB0cyIvPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1J0b3NDb25maWciPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zQ29uZmlnL3NjaGVkdWxhYmxlcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zQ29uZmlnL3NlbWFwaG9yZXMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvUnRvc0NvbmZpZy9zcGlubG9ja3MiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvUnRvc0NvbmZpZy9ldmVudHMiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zTW9kZWwiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1J0b3NNb2RlbC9uYW1lIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvUnRvc01vZGVsL3JlbG9hZFJ0b3NNb2RlbCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1J0b3NNb2RlbC92ZXJzaW9uIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvUnRvc01vZGVsL3J0b3NQcm9wZXJ0aWVzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvUnRvc01vZGVsL3JldHVyblR5cGUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zTW9kZWwvbGlicmFyeSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1J0b3NNb2RlbC9oZWFkZXIiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zTW9kZWwvbmFtZVNwYWNlIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvUnRvc01vZGVsL3VzZXJIZWFkZXIiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zTW9kZWwvc3RhdGVOYW1lcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1J0b3NNb2RlbC9hcGlQcmVmaXgiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9SdG9zTW9kZWwvcnRvc0FwaVR5cGUiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGltYWdlPSJmYWxzZSIgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxhYmxlIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGFibGUvY3B1Q29yZXMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsYWJsZS9wcmlvcml0eSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlciI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlci9zY2hlZHVsYWJsZXMiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXIvdHlwZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlci9zdHJhdGVneSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXIvdGltZVNsaWNlIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlci90ZG1hU2NoZWR1bGUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyL3BlcmlvZCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxlci9zeW5jaHJvbml6ZWQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVyL21heFJldGFyZCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXIvbWF4QWR2YW5jZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXIvc3luY1NvdXJjZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXIvY3ljbGVTdGFydFByb2Nlc3MiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXIvcHJpb3JpdGllc1Byb3BhZ2F0ZWQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9TY2hlZHVsZXIvcHJpb3JpdHlJbnZlcnNlZCIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxpbmdFbnRyeSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxpbmdFbnRyeS9pdGVtIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1NjaGVkdWxpbmdFbnRyeS9zbG90TGVuZ3RoIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvU2NoZWR1bGVQb2ludCIvPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1NlbWFwaG9yZSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvU2VtYXBob3JlL2luaXRpYWxWYWx1ZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1NlbWFwaG9yZS9tYXhWYWx1ZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1NlbWFwaG9yZUFjY2VzcyI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1NlbWFwaG9yZUFjY2Vzcy9zZW1hcGhvcmUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9TZW1hcGhvcmVBY2Nlc3MvdHlwZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1NlbmRNZXNzYWdlIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvU2VuZE1lc3NhZ2UvbWVzc2FnZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1NldEV2ZW50Ij4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvU2V0RXZlbnQvZXZlbnRzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1NldEV2ZW50L3RhcmdldCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1NldEV2ZW50L2ZvckFsbCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1NldEV2ZW50L2lzUmVzZXQiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9TZXRHdWFyZCI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1NldEd1YXJkL2Z1bmN0aW9uQ2FsbCIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1NvdXJjZUZ1bmN0aW9uIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvU291cmNlRnVuY3Rpb24vdHJhY2VFdmVudHMiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9TcGVjU2V0dGluZ3MiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1NwZWNTZXR0aW5ncy9pbmNsdWRlcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1NwZWNTZXR0aW5ncy9tYWNyb3MiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9TcGVjU2V0dGluZ3MvcHJlcGVuZFNldHRpbmdzIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvU3BpbmxvY2siLz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9TcGlubG9ja09wZXJhdGlvbiI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvU3BpbmxvY2tPcGVyYXRpb24vb3BlcmF0aW9uIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1NwaW5sb2NrT3BlcmF0aW9uL3NwaW5sb2NrIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvU3VzcGVuZEFsbEludGVycnVwdHMiLz4KLSAgICAgIDxnZW5DbGFzc2VzIGltYWdlPSJmYWxzZSIgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1N5c3RlbSI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1N5c3RlbS90cmFuc2xhdGlvblVuaXRzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1N5c3RlbS9ydG9zTW9kZWwiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvU3lzdGVtL2NvbXBpbGVyU2V0dGluZ3MiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvU3lzdGVtL3NwZWNTZXR0aW5ncyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9TeXN0ZW0vbW9kZUdyb3VwcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9TeXN0ZW0vY29tcG9uZW50cyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1RocmVhZFhTeXN0ZW0iLz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lL3ZhbHVlIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvVGltZS91bml0Ii8+Ci0gICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJyb290LmVjb3JlIy8vbW9kZWwvVGltZS9kZW5vcm1hbGl6ZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL1RpbWVEaXN0cmlidXRpb24iPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uL2JjZXQiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvVGltZURpc3RyaWJ1dGlvbi93Y2V0Ii8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1RpbWVEaXN0cmlidXRpb24vbWVhbiIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uL3NpZ21hIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1RpbWVEaXN0cmlidXRpb24vZGlzY3JldGVEaXN0cmlidXRpb24iLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9UaW1lRGlzdHJpYnV0aW9uL3R5cGUiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50Ij4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50L3R5cGUiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZUV2ZW50Q29uZGl0aW9uIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvVHJhY2VFdmVudENvbmRpdGlvbi90cmFjZUV2ZW50Ii8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRDb25kaXRpb24vcHJvY2VzcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1RyYWNlRXZlbnRDb25kaXRpb24vdmFsdWVDb25zdHJhaW50Ii8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBpbWFnZT0iZmFsc2UiIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFjZU9iamVjdCI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvVHJhY2VPYmplY3Qvb2JqZWN0SWQiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmFuc2xhdGlvblVuaXQiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9UcmFuc2xhdGlvblVuaXQvc291cmNlRnVuY3Rpb25zIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1RyYW5zbGF0aW9uVW5pdC9zcGVjU2V0dGluZ3MiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9UcmlnZ2VyVG9rZW4iLz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9Vc2VyQ29kZUV2ZW50Q2hhaW4iPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1VzZXJDb2RlRXZlbnRDaGFpbi9zdGVwTmFtZXMiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3MiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3MvY29ubmVjdGlvbiIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3MvZGF0YUFjY2VzcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzcy9pc0J1ZmZlcmVkIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzcy9jb25uZWN0aW9uRGVsYXkiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3MvdHlwZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzcy9udW1iZXIiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3MvaW5kZXgiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3MvcG9saWN5Ii8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVSZWFkQWNjZXNzL2lzVGFrZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlUmVhZEFjY2Vzcy9sb3dlckJvdW5kIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVSZWFkQWNjZXNzL2RhdGFNdXN0QmVOZXciLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVJlYWRBY2Nlc3MvcmVjZWl2ZVBlcmNlbnRhZ2UiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9WYXJpYWJsZVdyaXRlQWNjZXNzIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVXcml0ZUFjY2Vzcy9jb25uZWN0aW9uIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3MvZGF0YUFjY2VzcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3MvaXNCdWZmZXJlZCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3MvdHlwZSIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL1ZhcmlhYmxlV3JpdGVBY2Nlc3MvbnVtYmVyIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvVmFyaWFibGVXcml0ZUFjY2Vzcy9wb2xpY3kiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9XYWl0RXZlbnQiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9XYWl0RXZlbnQvZXZlbnRzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL1dhaXRFdmVudC90aW1lb3V0Ii8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvV2FpdEV2ZW50L2ZvclJlc2V0Ii8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8bmVzdGVkR2VuUGFja2FnZXMgcHJlZml4PSJBdXRvc2FyIiBkaXNwb3NhYmxlUHJvdmlkZXJGYWN0b3J5PSJ0cnVlIiBlY29yZVBhY2thZ2U9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyIj4KLSAgICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQWxhcm1BY3Rpb25UeXBlIj4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQWxhcm1BY3Rpb25UeXBlL0FjdGl2YXRlVGFzayIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBbGFybUFjdGlvblR5cGUvU2V0RXZlbnQiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQWxhcm1BY3Rpb25UeXBlL0NhbGxiYWNrIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FsYXJtQWN0aW9uVHlwZS9BZGp1c3RFeHBpcnlQb2ludCIvPgotICAgICAgICA8L2dlbkVudW1zPgotICAgICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NJc3JUeXBlIj4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zSXNyVHlwZS9DYXRlZ29yeTEiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zSXNyVHlwZS9DYXRlZ29yeTIiLz4KLSAgICAgICAgPC9nZW5FbnVtcz4KLSAgICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zUmVzb3VyY2VUeXBlIj4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zUmVzb3VyY2VUeXBlL1N0YW5kYXJkIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1Jlc291cmNlVHlwZS9JbnRlcm5hbCIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NSZXNvdXJjZVR5cGUvTGlua2VkIi8+Ci0gICAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1NjaGVkdWxlVGFibGVTdGFydFR5cGUiPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NTY2hlZHVsZVRhYmxlU3RhcnRUeXBlL0Fic29sdXRlIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1NjaGVkdWxlVGFibGVTdGFydFR5cGUvUmVsYXRpdmUiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zU2NoZWR1bGVUYWJsZVN0YXJ0VHlwZS9TeW5jaHJvbml6ZWQiLz4KLSAgICAgICAgPC9nZW5FbnVtcz4KLSAgICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zU3BpbmxvY2tMb2NrTWV0aG9kIj4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zU3BpbmxvY2tMb2NrTWV0aG9kL0xvY2tOb3RoaW5nIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1NwaW5sb2NrTG9ja01ldGhvZC9Mb2NrQWxsSW50ZXJydXB0cyIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NTcGlubG9ja0xvY2tNZXRob2QvTG9ja0NhdDJJbnRlcnJ1cHRzIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1NwaW5sb2NrTG9ja01ldGhvZC9Mb2NrV2l0aFJlc1NjaGVkdWxlciIvPgotICAgICAgICA8L2dlbkVudW1zPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9BUlN5c3RlbSI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9BUlN5c3RlbS9vc0NvbmZpZyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9BUlN5c3RlbS9pc09zZWsiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9DbGVhckV2ZW50Ij4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvQ2xlYXJFdmVudC9ldmVudHMiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9PcGVyYXRpb24iLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBbGFybSI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FsYXJtL2FjdGlvbiIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FsYXJtL2F1dG9zdGFydEFwcE1vZGUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBbGFybS9hdXRvc3RhcnRDeWNsZVRpbWUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBbGFybS9hdXRvc3RhcnRBbGFybVRpbWUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBbGFybS9hdXRvc3RhcnQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBbGFybS9jb3VudGVyIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBbGFybUFjdGlvbiI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQWxhcm1BY3Rpb24vdHlwZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FsYXJtQWN0aW9uL3Rhc2siLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBbGFybUFjdGlvbi9ldmVudCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FsYXJtQWN0aW9uL2NhbGxiYWNrIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQWxhcm1BY3Rpb24vbWF4QWR2YW5jZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FsYXJtQWN0aW9uL21heFJldGFyZCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQXBwbGljYXRpb24iPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FwcGxpY2F0aW9uL2FsYXJtcyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FwcGxpY2F0aW9uL2NvdW50ZXJzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQXBwbGljYXRpb24vY3B1Q29yZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FwcGxpY2F0aW9uL3BhcnRpdGlvbiIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FwcGxpY2F0aW9uL2lzcnMiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NBcHBsaWNhdGlvbi9zY2hlZHVsZVRhYmxlcyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0FwcGxpY2F0aW9uL3Rhc2tzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQXBwbGljYXRpb24vaXNUcnVzdGVkIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQXBwbGljYXRpb24vaXNUcnVzdGVkV2l0aFByb3RlY3Rpb24iLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0NvbmZpZyI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0NvbmZpZy9hbGFybXMiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQ29uZmlnL2FwcGxpY2F0aW9ucyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NDb25maWcvY291bnRlcnMiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQ29uZmlnL2V2ZW50cyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NDb25maWcvaXNycyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NDb25maWcvcmVzb3VyY2VzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0NvbmZpZy9zY2hlZHVsZVRhYmxlcyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NDb25maWcvc3BpbmxvY2tzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0NvbmZpZy90YXNrcyIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQ291bnRlciI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0NvdW50ZXIvZGVsYXkiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NDb3VudGVyL2dyYW51bGFyaXR5Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQ291bnRlci9oYXJkd2FyZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0NvdW50ZXIvbWluY3ljbGUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NDb3VudGVyL3JhbmdlIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zQ291bnRlci9yZWZlcmVuY2VUaWNrcyIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zRXZlbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0V2ZW50L21hc2siLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NFdmVudC9tYXNrQXV0byIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zRXhwaXJ5UG9pbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0V4cGlyeVBvaW50L29mZnNldCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NFeHBpcnlQb2ludC9hY3Rpb25zIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NJc3IiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc0lzci9yZXNvdXJjZXMiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NJc3IvdHlwZSIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zUmVzb3VyY2UiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1Jlc291cmNlL3Byb3BlcnR5Ii8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NTY2hlZHVsZVRhYmxlIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NTY2hlZHVsZVRhYmxlL2F1dG9zdGFydCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1NjaGVkdWxlVGFibGUvY291bnRlciIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1NjaGVkdWxlVGFibGUvZHVyYXRpb24iLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zU2NoZWR1bGVUYWJsZS9leHBpcnlQb2ludHMiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NTY2hlZHVsZVRhYmxlL3JlcGVhdGluZyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1NjaGVkdWxlVGFibGUvc3RhcnRUeXBlIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NTcGlubG9jayI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zU3BpbmxvY2svbWV0aG9kIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL09zU3BpbmxvY2svc3VjY2Vzc29yIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NUYXNrIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvT3NUYXNrL2V2ZW50cyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvYXV0b3Nhci9Pc1Rhc2svcmVzb3VyY2VzIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvUmVzdW1lT1NJbnRlcnJ1cHRzIi8+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL1J1bm5hYmxlIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvUnVubmFibGUvY2FuQmVJbnZva2VkQ29uY3VycmVudGx5Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL1J1bm5hYmxlL2Rpc2FibGVkSW5Nb2RlIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvU2VydmVyQ2FsbCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL1NlcnZlckNhbGwvaW52b2tlZE9wZXJhdGlvbiIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9hdXRvc2FyL1N1c3BlbmRPU0ludGVycnVwdHMiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvU3dDb21wb25lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL2F1dG9zYXIvU3dDb21wb25lbnQvb3BlcmF0aW9ucyIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8L25lc3RlZEdlblBhY2thZ2VzPgotICAgICAgPG5lc3RlZEdlblBhY2thZ2VzIHByZWZpeD0iTWVtb3J5IiBkaXNwb3NhYmxlUHJvdmlkZXJGYWN0b3J5PSJ0cnVlIiBlY29yZVBhY2thZ2U9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkiPgotICAgICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9JbnRlcmNvbm5lY3RTY2hlZHVsaW5nIj4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvSW50ZXJjb25uZWN0U2NoZWR1bGluZy9Qcmlvcml0eSIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9JbnRlcmNvbm5lY3RTY2hlZHVsaW5nL1JvdW5kUm9iaW4iLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvSW50ZXJjb25uZWN0U2NoZWR1bGluZy9GQ0ZTIi8+Ci0gICAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L01lbW9yeVR5cGUiPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9NZW1vcnlUeXBlL1NSQU0iLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvTWVtb3J5VHlwZS9EUkFNIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L01lbW9yeVR5cGUvRmxhc2giLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvTWVtb3J5VHlwZS9DYWNoZSIvPgotICAgICAgICA8L2dlbkVudW1zPgotICAgICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9EYXRhQWNjZXNzVHlwZSI+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L0RhdGFBY2Nlc3NUeXBlL1JlYWQiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvRGF0YUFjY2Vzc1R5cGUvV3JpdGUiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvRGF0YUFjY2Vzc1R5cGUvUmVhZE1vZGlmeVdyaXRlIi8+Ci0gICAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvUmVzcG9uZGVyUG9ydCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvUmVzcG9uZGVyUG9ydC9yZWFkQWNjZXNzUGF0dGVybiIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L1Jlc3BvbmRlclBvcnQvd3JpdGVBY2Nlc3NQYXR0ZXJuIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvUmVzcG9uZGVyUG9ydC9pbml0aWF0b3IiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L0luaXRpYXRvclBvcnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L0luaXRpYXRvclBvcnQvcHJpb3JpdHkiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9Jbml0aWF0b3JQb3J0L3Jlc3BvbmRlciIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvUW9zRW50cnkiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L1Fvc0VudHJ5L3ByaW9yaXR5Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvUW9zRW50cnkvbWluaW11bUJhbmR3aWR0aCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L1Fvc0VudHJ5L2luUG9ydCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L1Fvc0VudHJ5L291dFBvcnQiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L0ludGVyY29ubmVjdCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvSW50ZXJjb25uZWN0L2JpdFdpZHRoIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvSW50ZXJjb25uZWN0L3NjaGVkdWxpbmdQb2xpY3kiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvSW50ZXJjb25uZWN0L2Nvbm5lY3RlZFNsYXZlcyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9JbnRlcmNvbm5lY3QvY29ubmVjdGVkTWFzdGVycyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L0ludGVyY29ubmVjdC9wcmVzY2FsZXIiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvSW50ZXJjb25uZWN0L3Fvc0VudHJpZXMiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L01lbW9yeSI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvTWVtb3J5L2JpdFdpZHRoIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvTWVtb3J5L3NpemUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9NZW1vcnkvdHlwZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L01lbW9yeS9wcmVzY2FsZXIiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvTWVtb3J5L2Nvbm5lY3RlZE1hc3RlciIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvRGF0YU9iamVjdCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvRGF0YU9iamVjdC9zaXplIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvRGF0YU9iamVjdC9tZW1vcnkiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBpbWFnZT0iZmFsc2UiIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvRGF0YUFjY2VzcyI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvRGF0YUFjY2Vzcy9hY2Nlc3NUeXBlIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L0RhdGFBY2Nlc3Mvc3RhcnRPZmZzZXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9EYXRhQWNjZXNzL2JhbmR3aWR0aCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L0RhdGFBY2Nlc3MvY2h1bmtTaXplIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvbWVtb3J5L0RhdGFBY2Nlc3MvY2h1bmtQZXJpb2QiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9EYXRhQWNjZXNzL2lzQXN5bmNocm9uZW91cyIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvRXhwbGljaXREYXRhQWNjZXNzIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL21lbW9yeS9FeHBsaWNpdERhdGFBY2Nlc3MvZGF0YU9iamVjdCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvUmF0ZUJhc2VkRGF0YUFjY2VzcyI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9tZW1vcnkvUmF0ZUJhc2VkRGF0YUFjY2Vzcy9tZW1vcnkiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPC9uZXN0ZWRHZW5QYWNrYWdlcz4KLSAgICAgIDxuZXN0ZWRHZW5QYWNrYWdlcyBwcmVmaXg9IlBlcmlwaGVyYWwiIGRpc3Bvc2FibGVQcm92aWRlckZhY3Rvcnk9InRydWUiIGVjb3JlUGFja2FnZT0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwiPgotICAgICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQUZEWFBvcnREaXJlY3Rpb24iPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQUZEWFBvcnREaXJlY3Rpb24vU2VuZGVyIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYUG9ydERpcmVjdGlvbi9SZWNlaXZlciIvPgotICAgICAgICA8L2dlbkVudW1zPgotICAgICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQUZEWFBvcnRUeXBlIj4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0FGRFhQb3J0VHlwZS9TYW1wbGluZyIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQUZEWFBvcnRUeXBlL1F1ZXVpbmciLz4KLSAgICAgICAgPC9nZW5FbnVtcz4KLSAgICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0dlbmVyaWNJT1R5cGUiPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvR2VuZXJpY0lPVHlwZS9NYXN0ZXIiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0dlbmVyaWNJT1R5cGUvU2xhdmUiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0dlbmVyaWNJT1R5cGUvUHRQIi8+Ci0gICAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UG9ydCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UG9ydC9pbmRleCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdFBvcnQvY29ubmVjdGlvbiIvPgotICAgICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdFBvcnQvaXNDb21wYXRpYmxlIj4KLSAgICAgICAgICAgIDxnZW5QYXJhbWV0ZXJzIGVjb3JlUGFyYW1ldGVyPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdFBvcnQvaXNDb21wYXRpYmxlL290aGVyIi8+Ci0gICAgICAgICAgPC9nZW5PcGVyYXRpb25zPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0J1c01hc3RlclBvcnQiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQnVzU2xhdmVQb3J0Ii8+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ludGVycnVwdFBvcnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9JbnRlcnJ1cHRQb3J0L2lzcnMiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9JbnB1dFBvcnQiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvT3V0cHV0UG9ydCIvPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9CaURpclBvcnQiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvUG9ydENvbm5lY3Rpb24iPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9Qb3J0Q29ubmVjdGlvbi9wb3J0cyIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UGVyaXBoZXJhbCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UGVyaXBoZXJhbC9leGFjdG5lc3MiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UGVyaXBoZXJhbC9ldmVudHMiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0UGVyaXBoZXJhbC9wb3J0cyIvPgotICAgICAgICAgIDxnZW5PcGVyYXRpb25zIGVjb3JlT3BlcmF0aW9uPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdFBlcmlwaGVyYWwvaXNDb21wYXRpYmxlIj4KLSAgICAgICAgICAgIDxnZW5QYXJhbWV0ZXJzIGVjb3JlUGFyYW1ldGVyPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdFBlcmlwaGVyYWwvaXNDb21wYXRpYmxlL290aGVyIi8+Ci0gICAgICAgICAgPC9nZW5PcGVyYXRpb25zPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL1BlcmlwaGVyYWwiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvUGVyaXBoZXJhbC9hZGRyZXNzUmFuZ2UiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9CdXMiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RFdGhlcm5ldCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0RXRoZXJuZXQvYXV0b05lZ290aWF0ZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BYnN0cmFjdEV0aGVybmV0L2Z1bGxEdXBsZXgiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RFdGhlcm5ldC9udW1iZXJPZlBvcnRzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Fic3RyYWN0RXRoZXJuZXQvc3BlZWQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQWJzdHJhY3RFdGhlcm5ldC9zdXBwb3J0c1FvUyIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0FGRFhQb3J0Ij4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQUZEWFBvcnQvZGlyZWN0aW9uIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0FGRFhQb3J0L3R5cGUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQUZEWFBvcnQvcXVldWVMZW5ndGgiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYRXRoZXJuZXQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYRXRoZXJuZXQvbmV0d29ya0lkIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0FGRFhFdGhlcm5ldC9lcXVpcG1lbnRJZCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYRXRoZXJuZXQvcGFydGl0aW9uSWQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQUZEWEV0aGVybmV0L2ludGVyZmFjZUlkMSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYRXRoZXJuZXQvbWFjMSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYRXRoZXJuZXQvaW50ZXJmYWNlSWQyIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0FGRFhFdGhlcm5ldC9tYWMyIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BRkRYRXRoZXJuZXQvYWZkeFBvcnRzIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQVM1NjQzIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQVM1NjQzL0NDIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0FTNTY0My9ub2RlSWQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQVM1NjQzL3JhbmsiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQVM1NjQzL3RyYW5zbWlzc2lvbk9mZnNldCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BUzU2NDMvcmVjZWl2ZU9mZnNldCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9BUzU2NDMvZGF0YXB1bXBPZmZzZXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQVM1NjQzL21vbml0b3JOb2RlIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQVM1NjQzQnVzIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQVM1NjQzQnVzL3NwZWVkIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0FTNTY0M0J1cy9mcmFtZUxlbmd0aCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0Jvc2NoRVJheSIvPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9DQU4iPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9DQU4vYnVmZmVyU3RyYXRlZ3kiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9DQU5CdXMiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9DQU5CdXMvbG9nRW5hYmxlZCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9DQU5CdXMvc3BlZWQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvQ0FOQnVzL2RhdGFTcGVlZCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0NBTkluZGV4ZWQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9DQU5JbmRleGVkL251bWJlck9mQnVmZmVycyIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0NvbnNvbGUiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRXRoZXJuZXQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9FdGhlcm5ldC9tYWNBZGRyZXNzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0V0aGVybmV0L2Nyb3NzT3ZlciIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9FdGhlcm5ldC9yeFF1ZXVlU2l6ZSIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0V0aGVybmV0U3dpdGNoIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRXRoZXJuZXRTd2l0Y2gvZmFzdEZvcndhcmQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRXRoZXJuZXRTd2l0Y2gvbG9nRW5hYmxlZCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXkiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5L2NvbGRTdGFydGVyIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXkvcFNpbmdsZVNsb3RFbmFibGVkIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXkvcEtleVNsb3RJZCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5L3BLZXlTbG90VXNlZEZvclN0YXJ0dXAiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheS9wS2V5U2xvdFVzZWRGb3JTeW5jIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXkvcGRNaWNyb3RpY2siLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheS9wTGF0ZXN0VHgiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheS9wZExpc3RlblRpbWVPdXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheS9wZE1heERyaWZ0Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXkvcEFsbG93SGFsdER1ZVRvQ2xvY2siLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheS9wQWxsb3dQYXNzaXZlVG9BY3RpdmUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheS9wT2Zmc2V0Q29ycmVjdGlvbk91dCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5L3BSYXRlQ29ycmVjdGlvbk91dCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXlCdXMiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5QnVzL3NwZWVkIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXlCdXMvZ2RNYWNyb1RpY2siLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheUJ1cy9nTWFjcm9QZXJDeWNsZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5QnVzL2dOdW1iZXJPZlN0YXRpY1Nsb3RzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXlCdXMvZ2ROaXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheUJ1cy9nUGF5bG9hZExlbmd0aFN0YXRpYyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5QnVzL2dkU3RhdGljU2xvdCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5QnVzL2dkRHluYW1pY1Nsb3RJZGxlUGhhc2UiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheUJ1cy9nZE1pbmlTbG90Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXlCdXMvZ2RBY3Rpb25Qb2ludE9mZnNldCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5QnVzL2dkTWluaXNsb3RBY3Rpb25Qb2ludE9mZnNldCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9GbGV4UmF5QnVzL2dkVFNTVHJhbnNtaXR0ZXIiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheUJ1cy9nU3luY05vZGVNYXgiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheUJ1cy9nQ29sZHN0YXJ0QXR0ZW1wdHMiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvRmxleFJheUJ1cy9nTWF4V2l0aG91dENsb2NrQ29ycmVjdGlvbkZhdGFsIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0ZsZXhSYXlCdXMvZ01heFdpdGhvdXRDbG9ja0NvcnJlY3Rpb25QYXNzaXZlIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvR2VuZXJpY0lPIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvR2VuZXJpY0lPL3R5cGUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvR2VuZXJpY0lPL3NwZWVkIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0dlbmVyaWNJTy9idXNXaWR0aCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9HZW5lcmljSU8vYmxvY2tTaXplIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL0dlbmVyaWNJTy9zdGFydElSUU9mZnNldCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9HZW5lcmljSU8vZW11bGF0ZURNQSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9HZW5lcmljSU8vcHJlT3ZlcmhlYWQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvR2VuZXJpY0lPL3Bvc3RPdmVyaGVhZCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9HZW5lcmljSU8vc2xhdmVTZXR1cFRpbWUiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9JbnB1dCIvPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9JUlEiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvTElOIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvTElOL21hc3RlciIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9MSU4vcHJvdG9jb2wiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9NYXN0ZXJTUEkiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9NYXN0ZXJTUEkvc3BlZWQiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9NZnI0MjAwIi8+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL00xNkM2MlAiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvTkVDVjg1MEVQSE8zIi8+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL05FQ1Y4NTBFUEhPM0NhbiIvPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9ORUNWODUwRVBITzNFUmF5Ii8+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL091dHB1dCIvPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcGVyaXBoZXJhbC9SZXN0QnVzIi8+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9wZXJpcGhlcmFsL1Jlc3RCdXNDQU4iLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvUmVzdEJ1c0ZsZXhSYXkiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvU2xhdmVTUEkiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvVGltZXIiLz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3BlcmlwaGVyYWwvVUFSVCIvPgotICAgICAgPC9uZXN0ZWRHZW5QYWNrYWdlcz4KLSAgICAgIDxuZXN0ZWRHZW5QYWNrYWdlcyBwcmVmaXg9IlJlcXVpcmVtZW50IiByZXNvdXJjZT0iWE1MIiBkaXNwb3NhYmxlUHJvdmlkZXJGYWN0b3J5PSJ0cnVlIgotICAgICAgICAgIGVjb3JlUGFja2FnZT0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50Ij4KLSAgICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9OZXRTbGFja1RpbWVSZXF1aXJlbWVudFR5cGUiPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L05ldFNsYWNrVGltZVJlcXVpcmVtZW50VHlwZS9VbmRlZmluZWQiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9OZXRTbGFja1RpbWVSZXF1aXJlbWVudFR5cGUvRGVsdGEiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9OZXRTbGFja1RpbWVSZXF1aXJlbWVudFR5cGUvRXZlbnQiLz4KLSAgICAgICAgPC9nZW5FbnVtcz4KLSAgICAgICAgPGdlbkVudW1zIHR5cGVTYWZlRW51bUNvbXBhdGlibGU9ImZhbHNlIiBlY29yZUVudW09InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SZWxhdGlvbmFsT3BlcmF0b3IiPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvci9sdCIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvci9sZSIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvci9ndCIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvci9nZSIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvci9lcSIvPgotICAgICAgICA8L2dlbkVudW1zPgotICAgICAgICA8Z2VuRW51bXMgdHlwZVNhZmVFbnVtQ29tcGF0aWJsZT0iZmFsc2UiIGVjb3JlRW51bT0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvckxlR2UiPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvckxlR2UvbGUiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SZWxhdGlvbmFsT3BlcmF0b3JMZUdlL2dlIi8+Ci0gICAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVsYXRpb25hbE9wZXJhdG9yTHRMZUd0R2UiPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvckx0TGVHdEdlL2x0Ii8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVsYXRpb25hbE9wZXJhdG9yTHRMZUd0R2UvbGUiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SZWxhdGlvbmFsT3BlcmF0b3JMdExlR3RHZS9ndCIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlbGF0aW9uYWxPcGVyYXRvckx0TGVHdEdlL2dlIi8+Ci0gICAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUiPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JUT1NGYWlsdXJlL1JldHVybkZyb21UYXNrRm9yYmlkZGVuIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvQWN0aXZhdGlvbkxpbWl0VmlvbGF0aW9uIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvTWVtb3J5QWNjZXNzVmlvbGF0aW9uIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvRGl2aXNpb25CeVplcm8iLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SVE9TRmFpbHVyZS9JbnZhbGlkT2JqZWN0Ii8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvT3NBcGlDYWxsRXJyb3IiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SVE9TRmFpbHVyZS9Jc3JMb3N0Ii8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvRGVsZXRlZFVzZWRPYmplY3QiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SVE9TRmFpbHVyZS9UaW1lckxvc3QiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SVE9TRmFpbHVyZS9EZWFkbGluZVZpb2xhdGlvbiIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JUT1NGYWlsdXJlL09zZWtSZXNvdXJjZU9yZGVyV3JvbmciLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SVE9TRmFpbHVyZS9Bc3NlcnRGYWlsZWQiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SVE9TRmFpbHVyZS9DeHhQdXJlVmlydHVhbENhbGxlZCIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JUT1NGYWlsdXJlL0hlYXBDb3JydXB0aW9uRGV0ZWN0ZWQiLz4KLSAgICAgICAgICA8Z2VuRW51bUxpdGVyYWxzIGVjb3JlRW51bUxpdGVyYWw9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SVE9TRmFpbHVyZS9JbXBvcnRFcnJvciIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JUT1NGYWlsdXJlL0ltcG9ydFNvdXJjZUVycm9yIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvQ2Fub2VJRlNyZWR1Y2VkIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvQ2Fub2VJRlN2aW9sYXRlZCIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JUT1NGYWlsdXJlL1NwaW5sb2NrT3JkZXJXcm9uZyIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JUT1NGYWlsdXJlL01lbW9yeVdyaXRlQWNjZXNzVmlvbGF0aW9uIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvTWVtb3J5UmVhZE1vZGlmeVdyaXRlQWNjZXNzVmlvbGF0aW9uIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUlRPU0ZhaWx1cmUvTWVtb3J5QWRkcmVzc01hcFZpb2xhdGlvbiIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JUT1NGYWlsdXJlL0Nhbk1lc3NhZ2VEcm9wcGVkIi8+Ci0gICAgICAgIDwvZ2VuRW51bXM+Ci0gICAgICAgIDxnZW5FbnVtcyB0eXBlU2FmZUVudW1Db21wYXRpYmxlPSJmYWxzZSIgZWNvcmVFbnVtPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvVmVyZGljdCI+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvVmVyZGljdC9Vbmtub3duIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvVmVyZGljdC9TdWNjZXNzIi8+Ci0gICAgICAgICAgPGdlbkVudW1MaXRlcmFscyBlY29yZUVudW1MaXRlcmFsPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvVmVyZGljdC9Dcml0aWNhbCIvPgotICAgICAgICAgIDxnZW5FbnVtTGl0ZXJhbHMgZWNvcmVFbnVtTGl0ZXJhbD0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1ZlcmRpY3QvRmFpbCIvPgotICAgICAgICA8L2dlbkVudW1zPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvQ2FsbE5lc3RpbmdSZXF1aXJlbWVudCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9DYWxsTmVzdGluZ1JlcXVpcmVtZW50L2xpbWl0Ii8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2YWx1YXRpb24iPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZhbHVhdGlvbi9wcm92aWRlZEJ5Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmFsdWF0aW9uL3RpbWVDcmVhdGVkIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmFsdWF0aW9uL3ZlcmRpY3QiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpbkJyZWFrT2ZmUmVxdWlyZW1lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpbkJyZWFrT2ZmUmVxdWlyZW1lbnQvZXZhbHVhdGVCcmVha09mZkFzU3VjY2VzcyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpbkJyZWFrT2ZmUmVxdWlyZW1lbnQvZXZlbnRDaGFpbiIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpbkJyZWFrT2ZmUmVxdWlyZW1lbnQvaWdub3JlTGFzdCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpbkJyZWFrT2ZmUmVxdWlyZW1lbnQvaWdub3JlTm9uU2VxdWVudGlhbCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpbkJyZWFrT2ZmUmVxdWlyZW1lbnQvaWdub3JlU2tpcHBlZCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpbkJyZWFrT2ZmUmVxdWlyZW1lbnQvcmVxdWlyZWRMYXN0U3RlcCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmVudENoYWluSm9pblJlcXVpcmVtZW50Ij4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2ZW50Q2hhaW5Kb2luUmVxdWlyZW1lbnQvYWxsb3dTYW1lSW5zdGFuY2UiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2ZW50Q2hhaW5Kb2luUmVxdWlyZW1lbnQvZXZlbnRDaGFpbiIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmVudENoYWluTXVsdGlwbGVQcm9jZXNzaW5nUmVxdWlyZW1lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpbk11bHRpcGxlUHJvY2Vzc2luZ1JlcXVpcmVtZW50L2V2ZW50Q2hhaW4iLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpblRpbWluZ1JlcXVpcmVtZW50Ij4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2ZW50Q2hhaW5UaW1pbmdSZXF1aXJlbWVudC9ldmVudENoYWluIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmVudENoYWluVGltaW5nUmVxdWlyZW1lbnQvZnJvbVN0ZXAiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2ZW50Q2hhaW5UaW1pbmdSZXF1aXJlbWVudC9pbnN0YW5jZUEiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2ZW50Q2hhaW5UaW1pbmdSZXF1aXJlbWVudC9pbnN0YW5jZUIiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2ZW50Q2hhaW5UaW1pbmdSZXF1aXJlbWVudC9zdHJhdGVneSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRDaGFpblRpbWluZ1JlcXVpcmVtZW50L3RvU3RlcCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmVudElFdmVudEpSZXF1aXJlbWVudCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmVudElFdmVudEpSZXF1aXJlbWVudC9lbmRFdmVudCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRJRXZlbnRKUmVxdWlyZW1lbnQvcGFyYW1ldGVyQSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRJRXZlbnRKUmVxdWlyZW1lbnQvcGFyYW1ldGVyQiIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRJRXZlbnRKUmVxdWlyZW1lbnQvc3RhcnRFdmVudCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmVudE5ldEV4ZWNUaW1lUmVxdWlyZW1lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnROZXRFeGVjVGltZVJlcXVpcmVtZW50L2VuZCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnROZXRFeGVjVGltZVJlcXVpcmVtZW50L3Byb2Nlc3MiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2ZW50TmV0RXhlY1RpbWVSZXF1aXJlbWVudC9zdGFydCIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9FdmVudFRpbWluZ1JlcXVpcmVtZW50Ij4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0V2ZW50VGltaW5nUmVxdWlyZW1lbnQvdHJpZ2dlciIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRUaW1pbmdSZXF1aXJlbWVudC9zdGFydCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvRXZlbnRUaW1pbmdSZXF1aXJlbWVudC9zdG9wIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0dyb3VwT2ZSZXF1aXJlbWVudHMiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0dyb3VwT2ZSZXF1aXJlbWVudHMvcmVxdWlyZW1lbnRzIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0lsbGVnYWxFdmVudFJlcXVpcmVtZW50Ij4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0lsbGVnYWxFdmVudFJlcXVpcmVtZW50L2V2ZW50Ii8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0xvYWRSZXF1aXJlbWVudCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvTG9hZFJlcXVpcmVtZW50L2dyYW51bGFyaXR5Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9Mb2FkUmVxdWlyZW1lbnQvbGltaXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0xvYWRSZXF1aXJlbWVudC9sb2FkUmVzb3VyY2UiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L0xvYWRSZXF1aXJlbWVudC9wcmV3YXJuTWFyZ2luIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9Mb2FkUmVxdWlyZW1lbnQvcmVsYXRpb25hbE9wZXJhdG9yIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9Mb2FkUmVxdWlyZW1lbnQvc3RlcHMiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvTmV0RXhlY1RpbWVSZXF1aXJlbWVudCI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9OZXRFeGVjVGltZVJlcXVpcmVtZW50L3Byb2Nlc3MiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvTmV0U2xhY2tUaW1lUmVxdWlyZW1lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L05ldFNsYWNrVGltZVJlcXVpcmVtZW50L2RlYWRsaW5lRGVsdGEiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L05ldFNsYWNrVGltZVJlcXVpcmVtZW50L2RlYWRsaW5lRXZlbnQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L05ldFNsYWNrVGltZVJlcXVpcmVtZW50L3Byb2Nlc3MiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L05ldFNsYWNrVGltZVJlcXVpcmVtZW50L3R5cGUiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUGVyaW9kaWNFdmVudFJlcXVpcmVtZW50Ij4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1BlcmlvZGljRXZlbnRSZXF1aXJlbWVudC9ldmVudCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1BlcmlvZGljRXZlbnRSZXF1aXJlbWVudC9wcmV3YXJuTWFyZ2luQ3JpdGljYWwiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVjdXJzaW9uUmVxdWlyZW1lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVjdXJzaW9uUmVxdWlyZW1lbnQvbGltaXQiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVxdWlyZW1lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVxdWlyZW1lbnQvZGVzY3JpcHRpb24iLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlcXVpcmVtZW50L2V0YWciLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1JlcXVpcmVtZW50L2V2YWx1YXRlIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SZXF1aXJlbWVudC9wcm92aWRlZEJ5Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SZXF1aXJlbWVudC9zaG93Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SZXF1aXJlbWVudC91cmwiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVzcG9uc2VUaW1lUmVxdWlyZW1lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUmVzcG9uc2VUaW1lUmVxdWlyZW1lbnQvcHJvY2VzcyIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9SdG9zRmFpbHVyZVJlcXVpcmVtZW50Ij4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3JlcXVpcmVtZW50L1J0b3NGYWlsdXJlUmVxdWlyZW1lbnQvZW5hYmxlZFJUT1NGYWlsdXJlcyIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvUnRvc0ZhaWx1cmVSZXF1aXJlbWVudC9ibGFja2xpc3QiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvVGltaW5nUmVxdWlyZW1lbnQiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvVGltaW5nUmVxdWlyZW1lbnQvcmVsYXRpb25hbE9wZXJhdG9yIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvcmVxdWlyZW1lbnQvVGltaW5nUmVxdWlyZW1lbnQvbGltaXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9UaW1pbmdSZXF1aXJlbWVudC9wcmV3YXJuTWFyZ2luIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9yZXF1aXJlbWVudC9UaW1pbmdSZXF1aXJlbWVudC9yZWxhdGl2ZSIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8L25lc3RlZEdlblBhY2thZ2VzPgotICAgICAgPG5lc3RlZEdlblBhY2thZ2VzIHByZWZpeD0iU3RpbXVsYXRpb24iIGRpc3Bvc2FibGVQcm92aWRlckZhY3Rvcnk9InRydWUiIGVjb3JlUGFja2FnZT0icm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uIj4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0J1cnN0UGF0dGVybiI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9CdXJzdFBhdHRlcm4vbWF4aW11bU9jY3VycmVuY2VzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuL21pbmltdW1JbnRlckFycml2YWxUaW1lIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuL3BhdHRlcm5MZW5ndGgiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuR2VuZXJhdG9yIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9CdXJzdFBhdHRlcm5HZW5lcmF0b3IvYnVyc3RQYXR0ZXJuU2V0dGluZ3MiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0J1cnN0UGF0dGVybkdlbmVyYXRvci9pdGVyYXRpb25zIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuR2VuZXJhdG9yL3BlcmlvZCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuR2VuZXJhdG9yL3JlbGF0aXZlIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuR2VuZXJhdG9yL3N0YXJ0T2Zmc2V0Ii8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuR2VuZXJhdG9yL3N0YXJ0T2Zmc2V0VmFyaWF0aW9uIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vQnVyc3RQYXR0ZXJuR2VuZXJhdG9yL3ZhcmlhdGlvbiIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9DU1ZCYXNlZEdlbmVyYXRvciI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9DU1ZCYXNlZEdlbmVyYXRvci9maWxlbmFtZSIvPgotICAgICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9Db21wb3NpdGVTY2VuYXJpbyI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9Db21wb3NpdGVTY2VuYXJpby9zY2VuYXJpb3MiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vRGlzdHVyYmFuY2VGaWx0ZXIiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vRGlzdHVyYmFuY2VGaWx0ZXIvZGlzdHVyYmFuY2VQcm9iYWJpbGl0eSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vRGlzdHVyYmFuY2VGaWx0ZXIvZGlzdHVyYmFuY2VTaWdtYSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vRGlzdHVyYmFuY2VGaWx0ZXIvbG9zc1Byb2JhYmlsaXR5Ii8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0RyaWZ0RmlsdGVyIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0RyaWZ0RmlsdGVyL21heGltdW0iLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0RyaWZ0RmlsdGVyL3BlcmlvZGljIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9EcmlmdEZpbHRlci9yZXBlYXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0RyaWZ0RmlsdGVyL3N0YXJ0VGltZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vRHJpZnRGaWx0ZXIvdGltZUZyYW1lIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0VsaW1pbmF0aW9uRmlsdGVyIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0VsaW1pbmF0aW9uRmlsdGVyL3NvdXJjZUdlbmVyYXRvciIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vRWxpbWluYXRpb25GaWx0ZXIvdGltZUZyYW1lIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0luZHVjZWRHZW5lcmF0b3IiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vSW5kdWNlZEdlbmVyYXRvci9kZWxheSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vSW5kdWNlZEdlbmVyYXRvci9vZmZzZXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0luZHVjZWRHZW5lcmF0b3IvcGVyaW9kIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0luZHVjZWRMaXN0QmFzZWRHZW5lcmF0b3IiPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vSW5kdWNlZExpc3RCYXNlZEdlbmVyYXRvci9vZmZzZXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0luZHVjZWRMaXN0QmFzZWRHZW5lcmF0b3IvcGVyaW9kIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0xpc3RCYXNlZEdlbmVyYXRvciI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9MaXN0QmFzZWRHZW5lcmF0b3IvZW50cnkiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL0xpc3RCYXNlZEdlbmVyYXRvci9zb3VyY2VHZW5lcmF0b3IiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vUmFuZG9tU3RpbXVsaUdlbmVyYXRvciI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9SYW5kb21TdGltdWxpR2VuZXJhdG9yL2l0ZXJhdGlvbnMiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9SYW5kb21TdGltdWxpR2VuZXJhdG9yL21pbkludGVyQXJyaXZhbFRpbWUiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9SYW5kb21TdGltdWxpR2VuZXJhdG9yL3BlcmlvZCIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vUmFuZG9tU3RpbXVsaUdlbmVyYXRvci9yZWxhdGl2ZSIvPgotICAgICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL21vZGVsL3N0aW11bGF0aW9uL1JhbmRvbVN0aW11bGlHZW5lcmF0b3Ivc3RhcnRPZmZzZXQiLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9SYW5kb21TdGltdWxpR2VuZXJhdG9yL3N0YXJ0T2Zmc2V0VmFyaWF0aW9uIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vUmFuZG9tU3RpbXVsaUdlbmVyYXRvci92YXJpYXRpb24iLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBpbWFnZT0iZmFsc2UiIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxhdGlvbkZpbHRlciIvPgotICAgICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vU3RpbXVsYXRpb25TY2VuYXJpbyI+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vU3RpbXVsYXRpb25TY2VuYXJpby9idXJzdFBhdHRlcm4iLz4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxhdGlvblNjZW5hcmlvL2dlbmVyYXRvcnMiLz4KLSAgICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgICA8Z2VuQ2xhc3NlcyBpbWFnZT0iZmFsc2UiIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxpR2VuZXJhdG9yIj4KLSAgICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9tb2RlbC9zdGltdWxhdGlvbi9TdGltdWxpR2VuZXJhdG9yL2Nvbm5lY3Rpb25zIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vU3RpbXVsaUdlbmVyYXRvci9maWx0ZXJzIi8+Ci0gICAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vbW9kZWwvc3RpbXVsYXRpb24vU3RpbXVsaUdlbmVyYXRvci90YXJnZXRzIi8+Ci0gICAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDwvbmVzdGVkR2VuUGFja2FnZXM+Ci0gICAgPC9uZXN0ZWRHZW5QYWNrYWdlcz4KLSAgICA8bmVzdGVkR2VuUGFja2FnZXMgcHJlZml4PSJTZXR0aW5ncyIgZGlzcG9zYWJsZVByb3ZpZGVyRmFjdG9yeT0idHJ1ZSIgZWNvcmVQYWNrYWdlPSJyb290LmVjb3JlIy8vc2V0dGluZ3MiPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL3NldHRpbmdzL0NvbG9yIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9Db2xvci91cmkiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9zZXR0aW5ncy9Db2xvckVudHJ5Ij4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vc2V0dGluZ3MvQ29sb3JFbnRyeS9vYmplY3QiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vc2V0dGluZ3MvQ29sb3JFbnRyeS9jb2xvciIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL3NldHRpbmdzL0NvbG9yRW50cnlDb250YWluZXIiPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9Db2xvckVudHJ5Q29udGFpbmVyL29iamVjdCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9Db2xvckVudHJ5Q29udGFpbmVyL2NvbG9yIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vc2V0dGluZ3MvQ3Vyc29yIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vc2V0dGluZ3MvQ3Vyc29yL3Bvc2l0aW9uIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSByb290LmVjb3JlIy8vc2V0dGluZ3MvQ3Vyc29yL21hc3RlciIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL3NldHRpbmdzL0RpYWdyYW1TZXR0aW5ncyIvPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL3NldHRpbmdzL0VkaXRvclNldHRpbmdzIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vc2V0dGluZ3MvRWRpdG9yU2V0dGluZ3MvY29sbGFwc2F0aW9uU3RhdGVzIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vc2V0dGluZ3MvRU9iamVjdEZsYWciPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9FT2JqZWN0RmxhZy9vYmplY3QiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9FT2JqZWN0RmxhZy9mbGFnIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vc2V0dGluZ3MvTW9kZWxPYmplY3RGbGFnIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIKLSAgICAgICAgICAgIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vc2V0dGluZ3MvTW9kZWxPYmplY3RGbGFnL29iamVjdCIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL3NldHRpbmdzL01vZGVsT2JqZWN0RmxhZy9mbGFnIi8+Ci0gICAgICA8L2dlbkNsYXNzZXM+Ci0gICAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJyb290LmVjb3JlIy8vc2V0dGluZ3MvTW9kZWxTZXR0aW5ncyI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL3NldHRpbmdzL01vZGVsU2V0dGluZ3MvY29sb3JzIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBub3RpZnk9ImZhbHNlIiBjcmVhdGVDaGlsZD0iZmFsc2UiIHByb3BlcnR5U29ydENob2ljZXM9InRydWUiCi0gICAgICAgICAgICBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL3NldHRpbmdzL01vZGVsU2V0dGluZ3MvY29sb3JzQnlJbnN0YW5jZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL3NldHRpbmdzL1NldHRpbmdzIj4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vc2V0dGluZ3MvU2V0dGluZ3MvZWRpdG9yIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL3NldHRpbmdzL1NldHRpbmdzL21vZGVsIi8+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL3NldHRpbmdzL1NldHRpbmdzL3Rvb2wiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSByb290LmVjb3JlIy8vc2V0dGluZ3MvU2V0dGluZ3Mvdmlld3MiLz4KLSAgICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9zZXR0aW5ncy9Ub29sU2V0dGluZ3MiLz4KLSAgICAgIDxnZW5DbGFzc2VzIGVjb3JlQ2xhc3M9InJvb3QuZWNvcmUjLy9zZXR0aW5ncy9UcmFjZUV2ZW50VHlwZUNvbmZpZ3VyYXRpb24iPgotICAgICAgICA8Z2VuRmVhdHVyZXMgbm90aWZ5PSJmYWxzZSIgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBwcm9wZXJ0eVNvcnRDaG9pY2VzPSJ0cnVlIgotICAgICAgICAgICAgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9UcmFjZUV2ZW50VHlwZUNvbmZpZ3VyYXRpb24vY29sb3IiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9UcmFjZUV2ZW50VHlwZUNvbmZpZ3VyYXRpb24vdHJhY2VFdmVudFR5cGUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9UcmFjZUV2ZW50VHlwZUNvbmZpZ3VyYXRpb24vdmlzaWJsZSIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0icm9vdC5lY29yZSMvL3NldHRpbmdzL1ZpZXdTZXR0aW5ncyI+Ci0gICAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2Ugcm9vdC5lY29yZSMvL3NldHRpbmdzL1ZpZXdTZXR0aW5ncy9kaWFncmFtcyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgY3JlYXRlQ2hpbGQ9ImZhbHNlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVBdHRyaWJ1dGUgcm9vdC5lY29yZSMvL3NldHRpbmdzL1ZpZXdTZXR0aW5ncy9ldmVudExhYmVsc1Zpc2libGUiLz4KLSAgICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9WaWV3U2V0dGluZ3MvaG9yaXpvbnRhbExhYmVscyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9WaWV3U2V0dGluZ3MvY3Vyc29ycyIvPgotICAgICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIHJvb3QuZWNvcmUjLy9zZXR0aW5ncy9WaWV3U2V0dGluZ3MvdHJhY2VFdmVudFR5cGVDb25maWd1cmF0aW9ucyIvPgotICAgICAgPC9nZW5DbGFzc2VzPgotICAgIDwvbmVzdGVkR2VuUGFja2FnZXM+Ci0gICAgPG5lc3RlZEdlblBhY2thZ2VzIHByZWZpeD0iUmVzdWx0cyIgZGlzcG9zYWJsZVByb3ZpZGVyRmFjdG9yeT0idHJ1ZSIgZWNvcmVQYWNrYWdlPSJyb290LmVjb3JlIy8vcmVzdWx0cyIvPgotICA8L2dlblBhY2thZ2VzPgotPC9nZW5tb2RlbDpHZW5Nb2RlbD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvcG9tLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL2NvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QvcG9tLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJkNjQyMy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L3BvbS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCTxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KLQotCQotCTxwYXJlbnQ+Ci0JCTxyZWxhdGl2ZVBhdGg+Li4vLi4vLi4vYnVpbGQvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmJ1aWxkL3BvbS54bWw8L3JlbGF0aXZlUGF0aD4KLQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uPC9ncm91cElkPgotCQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYnVpbGQ8L2FydGlmYWN0SWQ+Ci0JCTx2ZXJzaW9uPjAuMy4wLVNOQVBTSE9UPC92ZXJzaW9uPgotCTwvcGFyZW50PgotCi0JPGFydGlmYWN0SWQ+Y29tLmluY2hyb24ucmVhbHRpbWUucm9vdDwvYXJ0aWZhY3RJZD4KLQk8cGFja2FnaW5nPmVjbGlwc2UtcGx1Z2luPC9wYWNrYWdpbmc+Ci0JPHZlcnNpb24+Mi45OC41LVNOQVBTSE9UPC92ZXJzaW9uPgotCSAKLTwvcHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L3NyYy8uZ2l0aWdub3JlIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC9zcmMvLmdpdGlnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY5ZGUyOS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9jb20uaW5jaHJvbi5yZWFsdGltZS5yb290L3NyYy8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvLmNsYXNzcGF0aCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWNhN2JkYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwLy5naXRpZ25vcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0NGExYzcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0vYmluLwotL3RhcmdldC8KLS94dGVuZC1nZW4vCi0vb3V0cHV0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1YjQ2MDQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHA8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS54dGV4dC51aS5zaGFyZWQueHRleHRCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQotCQotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0TmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzY4YTYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzMDdhZTYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wCi1CdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogQVBQNE1DIFRyYW5zZm9ybWF0aW9uIHRvIEluY2hyb24gQXBwbGljYXRpb24KLUJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHA7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4zLjAucXVhbGlmaWVyCi1CdW5kbGUtVmVuZG9yOiBFY2xpcHNlIEFQUDRNQwotUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbgotQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEphdmFTRS0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KLTx0aXRsZT5BYm91dDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keSBsYW5nPSJFTi1VUyI+Ci0JPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+Ci0KLQk8cD5Ob3ZlbWJlciAzMCwgMjAxNzwvcD4KLQk8aDM+TGljZW5zZTwvaDM+Ci0KLQk8cD4KLQkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluCi0JCSgmcXVvdDtDb250ZW50JnF1b3Q7KS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50Ci0JCWlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UKLQkJUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUgRVBMIGlzCi0JCWF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCi0JCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC4KLQk8L3A+Ci0KLQk8cD4KLQkJSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZQotCQlGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyBiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkKLQkJKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5Ci0JCWFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlCi0JCVJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuIElmIG5vIHN1Y2gKLQkJbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkCi0JCWJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlCi0JCWNvZGUgaW4gdGhlIENvbnRlbnQgYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhCi0JCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnLyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uCi0JPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMGVjOTJiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIyAgQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0jICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotIyAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0jIAotIyAgIENvbnRyaWJ1dG9yczoKLSMgIAkgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSMgCi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLXNvdXJjZS4uID0gc3JjLwotb3V0cHV0Li4gPSBiaW4vCi1iaW4uaW5jbHVkZXMgPSBwbHVnaW4ueG1sLFwKLSAgICAgICAgICAgICAgIE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sCi1zcmMuaW5jbHVkZXMgPSBhYm91dC5odG1sLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwL2VwbC0yLjAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM3YTE4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwL2VwbC0yLjAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+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+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9wbHVnaW4ueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9wbHVnaW4ueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGEyNWU5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvcGx1Z2luLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08P2VjbGlwc2UgdmVyc2lvbj0iMy40Ij8+Ci08IS0tCi0gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAgICAgICogQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotIC0tPgotCi08cGx1Z2luPgotCi0gICA8ZXh0ZW5zaW9uCi0gICAgICAgICBpZD0iYXBwbGljYXRpb24iCi0gICAgICAgICBwb2ludD0ib3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmFwcGxpY2F0aW9ucyI+Ci0gICAgICA8YXBwbGljYXRpb24KLSAgICAgICAgICAgIHZpc2libGU9InRydWUiPgotICAgICAgICAgPHJ1bgotICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAuSW5jaHJvbkFwcGxpY2F0aW9uIj4KLSAgICAgICAgIDwvcnVuPgotICAgICAgPC9hcHBsaWNhdGlvbj4KLSAgIDwvZXh0ZW5zaW9uPgotICAgPGV4dGVuc2lvbgotICAgICAgICAgaWQ9InByb2R1Y3QiCi0gICAgICAgICBwb2ludD0ib3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLnByb2R1Y3RzIj4KLSAgICAgIDxwcm9kdWN0Ci0gICAgICAgICAgICBhcHBsaWNhdGlvbj0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC5hcHBsaWNhdGlvbiIKLSAgICAgICAgICAgIG5hbWU9IkFQUDRNQ1RyYW5zZm9ybWF0aW9uIj4KLSAgICAgICAgIDxwcm9wZXJ0eQotICAgICAgICAgICAgICAgbmFtZT0iYXBwTmFtZSIKLSAgICAgICAgICAgICAgIHZhbHVlPSJBUFA0TUNUcmFuc2Zvcm1hdGlvbiI+Ci0gICAgICAgICA8L3Byb3BlcnR5PgotICAgICAgPC9wcm9kdWN0PgotICAgPC9leHRlbnNpb24+Ci0gCi0KLTwvcGx1Z2luPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9wb20ueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9wb20ueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjY1YjhkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvcG9tLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLTwhLS0KLSAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gLS0+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCTxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KLQotCQotCTxwYXJlbnQ+Ci0JCTxyZWxhdGl2ZVBhdGg+Li4vLi4vLi4vYnVpbGQvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmJ1aWxkL3BvbS54bWw8L3JlbGF0aXZlUGF0aD4KLQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uPC9ncm91cElkPgotCQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYnVpbGQ8L2FydGlmYWN0SWQ+Ci0JCTx2ZXJzaW9uPjAuMy4wLVNOQVBTSE9UPC92ZXJzaW9uPgotCTwvcGFyZW50PgotCi0JPGFydGlmYWN0SWQ+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcDwvYXJ0aWZhY3RJZD4KLQk8cGFja2FnaW5nPmVjbGlwc2UtcGx1Z2luPC9wYWNrYWdpbmc+Ci0KLQk8YnVpbGQ+Ci0JCTxzb3VyY2VEaXJlY3Rvcnk+c3JjPC9zb3VyY2VEaXJlY3Rvcnk+Ci0JCTxyZXNvdXJjZXM+Ci0JCQk8cmVzb3VyY2U+Ci0JCQkJPGRpcmVjdG9yeT54dGVuZC1nZW48L2RpcmVjdG9yeT4KLQkJCQk8ZXhjbHVkZXM+Ci0JCQkJCTxleGNsdWRlPioqLyouamF2YTwvZXhjbHVkZT4KLQkJCQk8L2V4Y2x1ZGVzPgotCQkJPC9yZXNvdXJjZT4KLQkJCTxyZXNvdXJjZT4KLQkJCQk8ZGlyZWN0b3J5PnNyYzwvZGlyZWN0b3J5PgotCQkJCTxleGNsdWRlcz4KLQkJCQkJPGV4Y2x1ZGU+KiovKi5qYXZhPC9leGNsdWRlPgotCQkJCTwvZXhjbHVkZXM+Ci0JCQk8L3Jlc291cmNlPgotCQk8L3Jlc291cmNlcz4KLQkJPHBsdWdpbnM+Ci0JCQk8cGx1Z2luPgotCQkJCTxhcnRpZmFjdElkPm1hdmVuLWNsZWFuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLQkJCQk8dmVyc2lvbj4yLjQuMTwvdmVyc2lvbj4KLQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJPGZpbGVzZXRzPgotCQkJCQkJPGZpbGVzZXQ+Ci0JCQkJCQkJPGRpcmVjdG9yeT54dGVuZC1nZW48L2RpcmVjdG9yeT4KLQkJCQkJCQk8aW5jbHVkZXM+Ci0JCQkJCQkJCTxpbmNsdWRlPioqPC9pbmNsdWRlPgotCQkJCQkJCTwvaW5jbHVkZXM+Ci0JCQkJCQk8L2ZpbGVzZXQ+Ci0JCQkJCTwvZmlsZXNldHM+Ci0JCQkJPC9jb25maWd1cmF0aW9uPgotCQkJPC9wbHVnaW4+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPgotCQkJCTxhcnRpZmFjdElkPmJ1aWxkLWhlbHBlci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+Ci0JCQkJPHZlcnNpb24+MS43PC92ZXJzaW9uPgotCQkJCTxleGVjdXRpb25zPgotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPmFkZC1zb3VyY2U8L2lkPgotCQkJCQkJPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgotCQkJCQkJPGdvYWxzPgotCQkJCQkJCTxnb2FsPmFkZC1zb3VyY2U8L2dvYWw+Ci0JCQkJCQk8L2dvYWxzPgotCQkJCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCQkJPHNvdXJjZXM+Ci0JCQkJCQkJCTxzb3VyY2U+eHRlbmQtZ2VuPC9zb3VyY2U+Ci0JCQkJCQkJPC9zb3VyY2VzPgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCQkJCQk8L2V4ZWN1dGlvbj4KLQkJCQk8L2V4ZWN1dGlvbnM+Ci0JCQk8L3BsdWdpbj4KLQkJCTxwbHVnaW4+Ci0JCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UueHRlbmQ8L2dyb3VwSWQ+Ci0JCQkJPGFydGlmYWN0SWQ+eHRlbmQtbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjIuMTQuMDwvdmVyc2lvbj4KLQkJCQk8ZXhlY3V0aW9ucz4KLQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxnb2Fscz4KLQkJCQkJCQk8Z29hbD5jb21waWxlPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTxvdXRwdXREaXJlY3Rvcnk+eHRlbmQtZ2VuPC9vdXRwdXREaXJlY3Rvcnk+Ci0JCQkJCQk8L2NvbmZpZ3VyYXRpb24+Ci0JCQkJCTwvZXhlY3V0aW9uPgotCQkJCTwvZXhlY3V0aW9ucz4KLQkJCTwvcGx1Z2luPgotCQk8L3BsdWdpbnM+Ci0JPC9idWlsZD4KLQk8Z3JvdXBJZD5tMm08L2dyb3VwSWQ+Ci08L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybS90by9pbmNocm9uL2FwcC9JbmNocm9uQXBwbGljYXRpb24uamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm0vdG8vaW5jaHJvbi9hcHAvSW5jaHJvbkFwcGxpY2F0aW9uLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0ZTZlODYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcC9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybS90by9pbmNocm9uL2FwcC9JbmNocm9uQXBwbGljYXRpb24uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLSAvKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwOwotCi1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOwotaW1wb3J0IGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS51dGlsLlByb3BlcnRpZXM7Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ2dlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYmFzZS5BcHBsaWNhdGlvbjsKLWltcG9ydCBvcmcuZWNsaXBzZS5lcXVpbm94LmFwcC5JQXBwbGljYXRpb25Db250ZXh0OwotLyoqCi0gKiBUaGlzIGNsYXNzIGNvbnRyb2xzIGFsbCBhc3BlY3RzIG9mIHRoZSBhcHBsaWNhdGlvbidzIGV4ZWN1dGlvbgotICovCi1wdWJsaWMgY2xhc3MgSW5jaHJvbkFwcGxpY2F0aW9uIGV4dGVuZHMgQXBwbGljYXRpb24gewotCi0JQE92ZXJyaWRlCi0JcHVibGljIE9iamVjdCBzdGFydChJQXBwbGljYXRpb25Db250ZXh0IGNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gewotCQlyZXR1cm4gc3VwZXIuc3RhcnQoY29udGV4dCk7Ci0JfQotIAotCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIExvZ2dlciBnZXRMb2dnZXIoUHJvcGVydGllcyBpbnB1dFBhcmFtZXRlcnMpIHsKLQkJcmV0dXJuIHN1cGVyLmdldExvZ2dlcihpbnB1dFBhcmFtZXRlcnMpOwotCX0KLQkKLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgUHJvcGVydGllcyBnZXRJbnB1dFBhcmFtZXRlcnMoSUFwcGxpY2F0aW9uQ29udGV4dCBjb250ZXh0KSB0aHJvd3MgSU9FeGNlcHRpb24sIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0KLQkJIAotCQlTdHJpbmdbXSBhcmdzID0gKFN0cmluZ1tdKSBjb250ZXh0LmdldEFyZ3VtZW50cygpLmdldCgiYXBwbGljYXRpb24uYXJncyIpOwotCi0JCWlmIChhcmdzICE9IG51bGwgJiYgYXJncy5sZW5ndGggPiAwKSB7Ci0KLQkJCVN0cmluZyBpbnB1dFByb3BzRmlsZSA9IGFyZ3NbMV07Ci0KLQkJCUZpbGUgcHJvcGVydGllc0ZpbGUgPSBuZXcgRmlsZShpbnB1dFByb3BzRmlsZSk7Ci0KLQkJCVByb3BlcnRpZXMgcHJvcGVydGllcyA9IG5ldyBQcm9wZXJ0aWVzKCk7Ci0KLQkJCXByb3BlcnRpZXMubG9hZChuZXcgRmlsZUlucHV0U3RyZWFtKHByb3BlcnRpZXNGaWxlKSk7Ci0JCQkKLQkJCS8vTm93IGNoZWNraW5nIGlmIHRoZSB1c2VyIGhhcyBzcGVjaWZpZWQgYWJzb2x1dGUgcGF0aHMgaW4gdGhlIHByb3BlcnRpZXMgZmlsZSA/Ci0JCQkKLQkJCU9iamVjdCBpbnB1dE1vZGVsc0ZvbGRlciA9IHByb3BlcnRpZXMuZ2V0KCJpbnB1dF9tb2RlbHNfZm9sZGVyIik7Ci0JCQlPYmplY3Qgb3V0cHV0TW9kZWxzRm9sZGVyID0gcHJvcGVydGllcy5nZXQoIm0ybV9vdXRwdXRfZm9sZGVyIik7Ci0JCQlPYmplY3QgbG9nRmlsZSA9IHByb3BlcnRpZXMuZ2V0KCJsb2dfZmlsZSIpOwotCi0JCQlpZihpbnB1dE1vZGVsc0ZvbGRlciAhPW51bGwpIHsKLQkJCQlTdHJpbmcgcGF0aD1pbnB1dE1vZGVsc0ZvbGRlci50b1N0cmluZygpOwotCi0JCQkJU3RyaW5nIG5ld1BhdGg9bmV3IEZpbGUocGF0aCkuZXhpc3RzKCk/cGF0aDpuZXcgRmlsZShwcm9wZXJ0aWVzRmlsZS5nZXRQYXJlbnQoKStGaWxlLnNlcGFyYXRvcisgcGF0aCkuZ2V0Q2Fub25pY2FsUGF0aCgpICA7Ci0JCQkKLQkJCQlwcm9wZXJ0aWVzLnB1dCgiaW5wdXRfbW9kZWxzX2ZvbGRlciIsIG5ld1BhdGgpOwotCQkJCQotCQkJfQotCQkJaWYob3V0cHV0TW9kZWxzRm9sZGVyICE9bnVsbCkgewotCQkJCVN0cmluZyBwYXRoPW91dHB1dE1vZGVsc0ZvbGRlci50b1N0cmluZygpOwotCQkJCQotCQkJCVN0cmluZyBuZXdQYXRoPW5ldyBGaWxlKHBhdGgpLmV4aXN0cygpP3BhdGg6bmV3IEZpbGUocHJvcGVydGllc0ZpbGUuZ2V0UGFyZW50KCkrRmlsZS5zZXBhcmF0b3IrIHBhdGgpLmdldENhbm9uaWNhbFBhdGgoKTsKLQkJCQkKLQkJCQlwcm9wZXJ0aWVzLnB1dCgibTJtX291dHB1dF9mb2xkZXIiLCBuZXdQYXRoKTsKLQkJCQkKLQkJCX0KLQkJCWlmKGxvZ0ZpbGUgIT1udWxsKSB7Ci0JCQkJU3RyaW5nIHBhdGg9bG9nRmlsZS50b1N0cmluZygpOwotCQkJCQotCQkJCVN0cmluZyBuZXdQYXRoPW5ldyBGaWxlKHBhdGgpLmV4aXN0cygpP3BhdGg6bmV3IEZpbGUocHJvcGVydGllc0ZpbGUuZ2V0UGFyZW50KCkrRmlsZS5zZXBhcmF0b3IrIHBhdGgpLmdldENhbm9uaWNhbFBhdGgoKSA7Ci0JCQkJCi0JCQkJcHJvcGVydGllcy5wdXQoImxvZ19maWxlIiwgbmV3UGF0aCk7Ci0JCQkJCi0JCQl9Ci0JCQkKLQotCQkJcmV0dXJuIHByb3BlcnRpZXM7Ci0JCX0KLQotCQlyZXR1cm4gbnVsbDsKLQl9Ci0JCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtLy5jbGFzc3BhdGggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyODMzN2UuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJ4dGVuZC1nZW4iLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS8uZ2l0aWdub3JlIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2ZiOTRjLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vLmdpdGlnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotL2Jpbi8KLS90YXJnZXQvCi0veHRlbmQtZ2VuLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjZkNjdiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkgCi0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS54dGV4dC51aS5zaGFyZWQueHRleHROYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNjhhNjEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLmlubGluZUpzckJ5dGVjb2RlPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udGFyZ2V0UGxhdGZvcm09MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hc3NlcnRJZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS44CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgwZjczMi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL01FVEEtSU5GL01BTklGRVNULk1GCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wCi1CdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogQVBQNE1DIFRyYW5zZm9ybWF0aW9uIHRvIEluY2hyb24gTTJNCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMy4wLnF1YWxpZmllcgotQnVuZGxlLVZlbmRvcjogRWNsaXBzZSBBUFA0TUMKLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44Ci1SZXF1aXJlLUJ1bmRsZTogY29tLmdvb2dsZS5pbmplY3Q7YnVuZGxlLXZlcnNpb249IjMuMC4wIiwKLSBvcmcuYXBhY2hlLmxvZzRqO2J1bmRsZS12ZXJzaW9uPSIxLjIuMTUiLAotIG9yZy5lY2xpcHNlLmVtZjtidW5kbGUtdmVyc2lvbj0iMi42LjAiLAotIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLAotIG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbDt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKLSBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290O2J1bmRsZS12ZXJzaW9uPSIyLjk4LjIiCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmFjN2RjOS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1zb3VyY2UuLiA9IHNyYy8sXAotICAgICAgICAgICB4dGVuZC1nZW4vCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwKLXNyYy5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+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+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3BsdWdpbi54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExZTA1ZWMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9wbHVnaW4ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/ZWNsaXBzZSB2ZXJzaW9uPSIzLjQiPz4KLTwhLS0KLSAgICAgICogQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIC0tPgotCi08cGx1Z2luPgotICAgPGV4dGVuc2lvbgotICAgICAgICAgcG9pbnQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb25maWd1cmF0aW9uIj4KLSAgICA8Y29uZmlnCi0gICAgICAgICAgZW5hYmxlZD0idHJ1ZSIKLSAgICAgICAgICBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS5jb25maWciCi0gICAgICAgICAgbTJtX2NsYXNzPSJjb25maWd1cmF0aW9uLk0yTVRyYW5zZm9ybWF0aW9uIgotICAgICAgICAgIG1vZHVsZV9jbGFzcz0ibW9kdWxlLkRlZmF1bHRNMk1JbmplY3Rvck1vZHVsZSI+Ci0gICAgPC9jb25maWc+Ci0gICA8L2V4dGVuc2lvbj4KLQotPC9wbHVnaW4+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliZmZhN2EuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPCEtLQotICAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gLS0+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCTxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KLQotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9idWlsZC9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYnVpbGQvcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgotCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb248L2dyb3VwSWQ+Ci0JCTxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5idWlsZDwvYXJ0aWZhY3RJZD4KLQkJPHZlcnNpb24+MC4zLjAtU05BUFNIT1Q8L3ZlcnNpb24+Ci0JPC9wYXJlbnQ+Ci0KLQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtPC9hcnRpZmFjdElkPgotCTxwYWNrYWdpbmc+ZWNsaXBzZS1wbHVnaW48L3BhY2thZ2luZz4KLQotCQotCTxwcm9wZXJ0aWVzPgotCQk8cGx1Z2luLWlkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm08L3BsdWdpbi1pZD4KLQkJCi0JPC9wcm9wZXJ0aWVzPgotCQotCSAJPGJ1aWxkPgotCQk8cGx1Z2lucz4KLQkJCSAKLQotCi0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLnh0ZW5kPC9ncm91cElkPgotCQkJCTxhcnRpZmFjdElkPnh0ZW5kLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLQkJCQk8dmVyc2lvbj4yLjE0LjA8L3ZlcnNpb24+Ci0JCQkJPGV4ZWN1dGlvbnM+Ci0JCQkJCTxleGVjdXRpb24+Ci0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+Y29tcGlsZTwvZ29hbD4KLQkJCQkJCQk8Z29hbD54dGVuZC1pbnN0YWxsLWRlYnVnLWluZm88L2dvYWw+Ci0JCQkJCQkJPGdvYWw+dGVzdENvbXBpbGU8L2dvYWw+Ci0JCQkJCQkJPGdvYWw+eHRlbmQtdGVzdC1pbnN0YWxsLWRlYnVnLWluZm88L2dvYWw+Ci0JCQkJCQk8L2dvYWxzPgotCQkJCQk8L2V4ZWN1dGlvbj4KLQkJCQk8L2V4ZWN1dGlvbnM+Ci0JCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxvdXRwdXREaXJlY3Rvcnk+eHRlbmQtZ2VuPC9vdXRwdXREaXJlY3Rvcnk+Ci0JCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQk8L3BsdWdpbj4KLQotCi0KLQkJPC9wbHVnaW5zPgotCTwvYnVpbGQ+Ci0JCi0JPGdyb3VwSWQ+bTJtPC9ncm91cElkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL2NvbmZpZ3VyYXRpb24vTTJNVHJhbnNmb3JtYXRpb24uamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL2NvbmZpZ3VyYXRpb24vTTJNVHJhbnNmb3JtYXRpb24uamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzcxYjFkNC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy9jb25maWd1cmF0aW9uL00yTVRyYW5zZm9ybWF0aW9uLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBjb25maWd1cmF0aW9uOwotCi1pbXBvcnQgamF2YS51dGlsLlByb3BlcnRpZXM7Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ2dlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLklNb2RlbFRvTW9kZWxDb25maWc7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuaW1wbC5SZXNvdXJjZVNldEltcGw7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaS5pbXBsLlhNSVJlc291cmNlRmFjdG9yeUltcGw7Ci0KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290LlJvb3RQYWNrYWdlOwotCi1pbXBvcnQgbW9kZWwubG9hZGVyLkFtYWx0aGVhTXVsdGlGaWxlTG9hZGVyOwotCi1wdWJsaWMgY2xhc3MgTTJNVHJhbnNmb3JtYXRpb24gaW1wbGVtZW50cyBJTW9kZWxUb01vZGVsQ29uZmlnIHsKLQotCXByaXZhdGUgUHJvcGVydGllcyBwYXJhbWV0ZXJzOwotCi0JcHJpdmF0ZSBMb2dnZXIgbG9nZ2VyOwotCi0JcHVibGljIE0yTVRyYW5zZm9ybWF0aW9uKCkgewotCX0KLQotCUBPdmVycmlkZQotCXB1YmxpYyBSZXNvdXJjZVNldCBnZXRJbnB1dFJlc291cmNlU2V0KCkgewotCi0JCWlmIChwYXJhbWV0ZXJzICE9IG51bGwpIHsKLQotCQkJU3RyaW5nIGZvbGRlclBhdGggPSBwYXJhbWV0ZXJzLmdldFByb3BlcnR5KCJpbnB1dF9tb2RlbHNfZm9sZGVyIik7Ci0KLQkJCWlmIChmb2xkZXJQYXRoICE9IG51bGwpIHsKLQotCQkJCWxvZ2dlci5pbmZvKCJMb2FkaW5nIEFNQUxUSEVBIG1vZGVsIGZpbGVzIGZyb20gZm9sZGVyIDogIiArIGZvbGRlclBhdGgpOwotCi0JCQkJUmVzb3VyY2VTZXQgcmVzb3VyY2VTZXQgPSBuZXcgQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIoKS5sb2FkTXVsdGlwbGVGaWxlcyhsb2dnZXIsIGZvbGRlclBhdGgpOwotCi0JCQkJcmV0dXJuIHJlc291cmNlU2V0OwotCQkJfSBlbHNlIHsKLQkJCQlsb2dnZXIuZXJyb3IoImFtYWx0aGVhX21vZGVsc19mb2xkZXIgcGFyYW1ldGVyIG5vdCBzZXQiLAotCQkJCQkJbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCJhbWFsdGhlYV9tb2RlbHNfZm9sZGVyIHByb3BlcnR5IG5vdCBzZXQiKSk7Ci0JCQl9Ci0KLQkJfSBlbHNlIHsKLQkJCWxvZ2dlci5lcnJvcigiUGFyYW1ldGVycyBvYmplY3Qgbm90IHNldCAiLCBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oIlBhcmFtZXRlciBvYmplY3QgaXMgbnVsbCIpKTsKLQkJfQotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgUmVzb3VyY2VTZXQgZ2V0T3VwdXRSZXNvdXJjZVNldCgpIHsKLQotCQlSZXNvdXJjZVNldCBvdXRwdXRSdXJjZVNldCA9IG5ldyBSZXNvdXJjZVNldEltcGwoKTsKLQotCQlvdXRwdXRSdXJjZVNldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpCi0JCQkJLnB1dChSZXNvdXJjZS5GYWN0b3J5LlJlZ2lzdHJ5LkRFRkFVTFRfRVhURU5TSU9OLCBuZXcgWE1JUmVzb3VyY2VGYWN0b3J5SW1wbCgpKTsKLQotCQlvdXRwdXRSdXJjZVNldC5nZXRQYWNrYWdlUmVnaXN0cnkoKS5wdXQoUm9vdFBhY2thZ2UuZU5TX1VSSSwgUm9vdFBhY2thZ2UuZUlOU1RBTkNFKTsKLQotCQlyZXR1cm4gb3V0cHV0UnVyY2VTZXQ7Ci0JfQotCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgc2V0UHJvcGVydGllcyhQcm9wZXJ0aWVzIHBhcmFtZXRlcnMpIHsKLQotCQl0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwotCX0KLQotCUBPdmVycmlkZQotCXB1YmxpYyB2b2lkIHNldExvZ2dlcihMb2dnZXIgbG9nZ2VyKSB7Ci0JCXRoaXMubG9nZ2VyID0gbG9nZ2VyOwotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvbW9kZWwvbG9hZGVyL0FtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy9tb2RlbC9sb2FkZXIvQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODMxZjQ4Zi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy9tb2RlbC9sb2FkZXIvQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBtb2RlbC5sb2FkZXI7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGU7Ci1pbXBvcnQgamF2YS5pby5GaWxlbmFtZUZpbHRlcjsKLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ2dlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWE7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhRmFjdG9yeTsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWFQYWNrYWdlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5zcGhpbnguQW1hbHRoZWFSZXNvdXJjZUZhY3Rvcnk7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLkVMaXN0OwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkk7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuaW1wbC5SZXNvdXJjZVNldEltcGw7Ci1pbXBvcnQgb3JnLmVjbGlwc2Uuc3BoaW54LmVtZi5yZXNvdXJjZS5FeHRlbmRlZFJlc291cmNlU2V0OwotaW1wb3J0IG9yZy5lY2xpcHNlLnNwaGlueC5lbWYucmVzb3VyY2UuRXh0ZW5kZWRSZXNvdXJjZVNldEltcGw7Ci0KLXB1YmxpYyBjbGFzcyBBbWFsdGhlYU11bHRpRmlsZUxvYWRlciB7Ci0KLQlwdWJsaWMgUmVzb3VyY2VTZXQgbG9hZE11bHRpcGxlRmlsZXMoTG9nZ2VyIGxvZ2dlciwgU3RyaW5nIGRpcmVjdG9yeVBhdGgpIHsKLQotCQlGaWxlIGZvbGRlciA9IG5ldyBGaWxlKGRpcmVjdG9yeVBhdGgpOwotCi0JCWlmIChmb2xkZXIuaXNEaXJlY3RvcnkoKSkgewotCQkJRmlsZVtdIGxpc3RGaWxlcyA9IGZvbGRlci5saXN0RmlsZXMobmV3IEZpbGVuYW1lRmlsdGVyKCkgewotCQkJCUBPdmVycmlkZQotCQkJCXB1YmxpYyBib29sZWFuIGFjY2VwdChGaWxlIGZpbGUsIFN0cmluZyBuYW1lKSB7Ci0KLQkJCQkJaWYgKG5hbWUuZW5kc1dpdGgoIi5hbXhtaSIpKSB7Ci0JCQkJCQlyZXR1cm4gdHJ1ZTsKLQkJCQkJfQotCQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQkJfQotCQkJfSk7Ci0KLQkJCVJlc291cmNlU2V0IHJlc291cmNlU2V0ID0gaW5pdGlhbGl6ZVJlc291cmNlU2V0KCk7Ci0KLQkJCWxvYWRNdWx0aXBsZUZpbGVzKGxvZ2dlciwgcmVzb3VyY2VTZXQsIGxpc3RGaWxlcyk7Ci0KLQkJCXJldHVybiByZXNvdXJjZVNldDsKLQkJfQotCi0JCXJldHVybiBuZXcgUmVzb3VyY2VTZXRJbXBsKCk7Ci0KLQl9Ci0KLQlwcml2YXRlIExpc3Q8QW1hbHRoZWE+IGxvYWRNdWx0aXBsZUZpbGVzKExvZ2dlciBsb2dnZXIsIFJlc291cmNlU2V0IHJlc291cmNlU2V0LCBGaWxlW10gbGlzdEZpbGVzKSB7Ci0KLQkJU3RyaW5nIGFtbHRMb2FkZXJWZXJzaW9uID0gQW1hbHRoZWFGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVBbWFsdGhlYSgpLmdldFZlcnNpb24oKTsKLQotCQlMaXN0PEFtYWx0aGVhPiBtb2RlbHMgPSBuZXcgQXJyYXlMaXN0PEFtYWx0aGVhPigpOwotCi0JCWZvciAoRmlsZSBhbXhtaUZpbGUgOiBsaXN0RmlsZXMpIHsKLQotCQkJbG9nZ2VyLmluZm8oImxvYWRpbmcgZmlsZSA6IithbXhtaUZpbGUuZ2V0TmFtZSgpKTsKLQkJCVN0cmluZyBhYnNvbHV0ZVBhdGggPSBhbXhtaUZpbGUuZ2V0QWJzb2x1dGVQYXRoKCk7Ci0JCQlmaW5hbCBSZXNvdXJjZSByZXMgPSByZXNvdXJjZVNldC5jcmVhdGVSZXNvdXJjZShVUkkuY3JlYXRlVVJJKCJmaWxlOi8vLy8iICsgYWJzb2x1dGVQYXRoKSk7Ci0JCQl0cnkgewotCQkJCXJlcy5sb2FkKG51bGwpOwotCQkJCUVMaXN0PEVPYmplY3Q+IGNvbnRlbnRzID0gcmVzLmdldENvbnRlbnRzKCk7Ci0KLQkJCQlpZiAoY29udGVudHMgIT0gbnVsbCAmJiBjb250ZW50cy5zaXplKCkgPiAwKSB7Ci0KLQkJCQkJZm9yIChmaW5hbCBFT2JqZWN0IGNvbnRlbnQgOiBjb250ZW50cykgewotCQkJCQkJaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBBbWFsdGhlYSkgewotCQkJCQkJCW1vZGVscy5hZGQoKEFtYWx0aGVhKSBjb250ZW50KTsKLQkJCQkJCX0KLQkJCQkJfQotCQkJCX0gZWxzZSB7Ci0JCQkJCWxvZ2dlci5lcnJvcigiVW5hYmxlIHRvIGxvYWQgQW1hbHRoZWEgbW9kZWwgZmlsZSA6ICIgKyBhYnNvbHV0ZVBhdGgKLQkJCQkJCQkrICIuIFZlcmlmeSBpZiB0aGUgbW9kZWwgdmVyc2lvbiBpcyA6ICIgKyBhbWx0TG9hZGVyVmVyc2lvbik7Ci0KLQkJCQl9Ci0JCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Ci0JCQkJbG9nZ2VyLmVycm9yKCJFeGNlcHRpb24gb2NjdXJlZCBsb2FkaW5nIGZpbGUgOiAiICsgYWJzb2x1dGVQYXRoICsgIiA6IiArIGUuZ2V0TWVzc2FnZSgpKTsKLQkJCX0KLQkJfQotCQlyZXR1cm4gbW9kZWxzOwotCX0KLQotCXByaXZhdGUgc3RhdGljIFJlc291cmNlU2V0IGluaXRpYWxpemVSZXNvdXJjZVNldCgpIHsKLQkJZmluYWwgRXh0ZW5kZWRSZXNvdXJjZVNldCByZXNTZXQgPSBuZXcgRXh0ZW5kZWRSZXNvdXJjZVNldEltcGwoKTsKLQkJcmVzU2V0LmdldFJlc291cmNlRmFjdG9yeVJlZ2lzdHJ5KCkuZ2V0RXh0ZW5zaW9uVG9GYWN0b3J5TWFwKCkucHV0KCJhbXhtaSIsIG5ldyBBbWFsdGhlYVJlc291cmNlRmFjdG9yeSgpKTsKLQkJQW1hbHRoZWFQYWNrYWdlLmVJTlNUQU5DRS5lQ2xhc3MoKTsgLy8gcmVnaXN0ZXIgdGhlIHBhY2thZ2UKLQotCQlyZXR1cm4gcmVzU2V0OwotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvbW9kdWxlL0RlZmF1bHRNMk1JbmplY3Rvck1vZHVsZS5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvbW9kdWxlL0RlZmF1bHRNMk1JbmplY3Rvck1vZHVsZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDFkZGU2Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL21vZHVsZS9EZWZhdWx0TTJNSW5qZWN0b3JNb2R1bGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBtb2R1bGU7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5BYnN0cmFjdFRyYW5zZm9ybWF0aW9uSW5qZWN0b3JNb2R1bGU7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuTW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXI7Ci0KLWltcG9ydCB0ZW1wbGF0ZXMubTJtLkFtbHQySW5jaHJvblRyYW5zZm9ybWVyOwotCi1wdWJsaWMgY2xhc3MgRGVmYXVsdE0yTUluamVjdG9yTW9kdWxlIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlIHsKLQotCUBPdmVycmlkZQotCXByb3RlY3RlZCB2b2lkIGluaXRpYWxpemVCYXNlQ29uZmlndXJhdGlvbigpIHsKLQkJYmluZChNb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lci5jbGFzcykudG8oQW1sdDJJbmNocm9uVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkKLQkJLy8gYmFzZSB0cmFuc2Zvcm1lcnMKLQkJLy9iaW5kKE1vZGVsVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX01vZGVsVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoU2V0dGluZ3NUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfU2V0dGluZ3NUcmFuc2Zvcm1lci5jbGFzcyk7Ci0KLQkJLy8gY29uc3RyYWludHMKLQkJLy9iaW5kKENvbnN0cmFpbnRzVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX0NvbnN0cmFpbnRzVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoRXZlbnRDaGFpblJlZmVyZW5jZVRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9FdmVudENoYWluUmVmZXJlbmNlVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoRXZlbnRDaGFpblRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9FdmVudENoYWluVHJhbnNmb3JtZXIuY2xhc3MpOwotCi0JCS8vIGh3Ci0JCS8vYmluZChDYWNoZVRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9DYWNoZVRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKEZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9GcmVxdWVuY3lEb21haW5UcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChIV1N0cnVjdHVyZV9FQ1VUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfSFdTdHJ1Y3R1cmVfRUNVVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoSFdTdHJ1Y3R1cmVfTWljcm9Db250cm9sbGVyVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX0hXU3RydWN0dXJlX01pY3JvQ29udHJvbGxlclRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKEhXU3RydWN0dXJlX1N5c3RlbVRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9IV1N0cnVjdHVyZV9TeXN0ZW1UcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChIV1RyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9IV1RyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKE1lbW9yeVRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9NZW1vcnlUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChQcm9jZXNzaW5nVW5pdFRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9Qcm9jZXNzaW5nVW5pdFRyYW5zZm9ybWVyLmNsYXNzKTsKLQotCQkvLyBtYXBwaW5nCi0JCS8vYmluZChNYXBwaW5nVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX01hcHBpbmdUcmFuc2Zvcm1lci5jbGFzcyk7Ci0KLQkJLy8gb3MKLQkJLy9iaW5kKE9TVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX09TVHJhbnNmb3JtZXIuY2xhc3MpOwotCi0JCS8vIHN0aW11bGkKLQkJLy9iaW5kKFN0aW11bGlUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfU3RpbXVsaVRyYW5zZm9ybWVyLmNsYXNzKTsKLQotCQkvLyBzdwotCQkvL2JpbmQoQ2FsbEdyYXBoVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX0NhbGxHcmFwaFRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKENoYW5uZWxUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfQ2hhbm5lbFRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKEN1c3RvbUV2ZW50VHJpZ2dlclRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9DdXN0b21FdmVudFRyaWdnZXJUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChHcmFwaEVudHJ5QmFzZVRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9HcmFwaEVudHJ5QmFzZVRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKElTUlRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9JU1JUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChNb2RlTGFiZWxUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfTW9kZUxhYmVsVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoTW9kZVN3aXRjaFRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9Nb2RlU3dpdGNoVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoTW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfTW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChSdW5uYWJsZUl0ZW1UcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfUnVubmFibGVJdGVtVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoUnVubmFibGVUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfUnVubmFibGVUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChTV1RyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9TV1RyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKFRhc2tUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfVGFza1RyYW5zZm9ybWVyLmNsYXNzKTsKLQotCQkvLyBzdy9ydW5uYWJsZUl0ZW0vCi0JCS8vYmluZChBc3luY2hyb25vdXNTZXJ2ZXJDYWxsVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX0FzeW5jaHJvbm91c1NlcnZlckNhbGxUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChDaGFubmVsQWNjZXNzVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX0NoYW5uZWxBY2Nlc3NUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChDb21wdXRhdGlvbkl0ZW1UcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfQ29tcHV0YXRpb25JdGVtVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoQ3VzdG9tRXZlbnRUcmlnZ2VyVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX0N1c3RvbUV2ZW50VHJpZ2dlclRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKEV4ZWN1dGlvbk5lZWRUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfRXhlY3V0aW9uTmVlZFRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKEdldFJlc3VsdFNlcnZlckNhbGxUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfR2V0UmVzdWx0U2VydmVyQ2FsbFRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKEdyb3VwVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX0dyb3VwVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoTGFiZWxBY2Nlc3NUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfTGFiZWxBY2Nlc3NUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChNb2RlTGFiZWxBY2Nlc3NUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfTW9kZUxhYmVsQWNjZXNzVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoUnVubmFibGVDYWxsVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX1J1bm5hYmxlQ2FsbFRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKFJ1bm5hYmxlTW9kZVN3aXRjaFRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9SdW5uYWJsZU1vZGVTd2l0Y2hUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChSdW5uYWJsZVByb2JhYmxpbGl0eVN3aXRjaFRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9SdW5uYWJsZVByb2JhYmxpbGl0eVN3aXRjaFRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKFNlbWFwaG9yZUFjY2Vzc1RyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9TZW1hcGhvcmVBY2Nlc3NUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChTZW5kZXJSZWNlaXZlckNvbW11bmljYXRpb25UcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfU2VuZGVyUmVjZWl2ZXJDb21tdW5pY2F0aW9uVHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoU2VuZGVyUmVjZWl2ZXJSZWFkVHJhbnNmb3JtZXIuY2xhc3MpLnRvKFVzZXJEZWZpbmVkX1NlbmRlclJlY2VpdmVyUmVhZFRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKFNlbmRlclJlY2VpdmVyV3JpdGVUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfU2VuZGVyUmVjZWl2ZXJXcml0ZVRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKFNlcnZlckNhbGxUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfU2VydmVyQ2FsbFRyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKFN5bmNocm9ub3VzU2VydmVyQ2FsbFRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9TeW5jaHJvbm91c1NlcnZlckNhbGxUcmFuc2Zvcm1lci5jbGFzcyk7Ci0JCS8vYmluZChUaWNrc1RyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9UaWNrc1RyYW5zZm9ybWVyLmNsYXNzKTsKLQkJLy9iaW5kKFRyYW5zbWlzc2lvblBvbGljeVRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9UcmFuc21pc3Npb25Qb2xpY3lUcmFuc2Zvcm1lci5jbGFzcyk7Ci0KLQkJLy8gdXRpbHMgCi0JCS8vYmluZChGcmVxdWVuY3lUcmFuc2Zvcm1lci5jbGFzcykudG8oVXNlckRlZmluZWRfRnJlcXVlbmN5VHJhbnNmb3JtZXIuY2xhc3MpOwotCQkvL2JpbmQoVGltZVRyYW5zZm9ybWVyLmNsYXNzKS50byhVc2VyRGVmaW5lZF9UaW1lVHJhbnNmb3JtZXIuY2xhc3MpOwotCi0KLQotCi0JfQotCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIHZvaWQgaW5pdGlhbGl6ZVRyYW5zZm9ybWVyT2JqZWN0cygpIHsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL0Fic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1MThmMGIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL0Fic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzCi0KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290LlJvb3RGYWN0b3J5Ci1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Nb2RlbAotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuTW9kZWxGYWN0b3J5Ci1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5tZW1vcnkuTWVtb3J5RmFjdG9yeQotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuc3RpbXVsYXRpb24uU3RpbXVsYXRpb25GYWN0b3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhRmFjdG9yeQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLkFic3RyYWN0VHJhbnNmb3JtZXIKLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290LnNldHRpbmdzLlNldHRpbmdzRmFjdG9yeQotCi1hYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2Zvcm1lciB7Ci0KLQlwdWJsaWMgZGVmIEFtYWx0aGVhIGdldEFtYWx0aGVhUm9vdCgpewotCQlyZXR1cm4gKGN1c3RvbU9ianNTdG9yZS5nZXRJbnN0YW5jZShBbWFsdGhlYSkgYXMgQW1hbHRoZWEpCi0JfQotCi0JcHVibGljIGRlZiBNb2RlbCBnZXRJbmNocm9uUm9vdCgpewotCQlyZXR1cm4gKGN1c3RvbU9ianNTdG9yZS5nZXRJbnN0YW5jZShNb2RlbCkgYXMgTW9kZWwpCi0JfQotCQotCS8qLSBGYWN0b3J5IGluaXRpYWxpemF0aW9uICovCi0JcHVibGljIGRlZiBnZXRJbmNocm9uUm9vdEZhY3RvcnkoKXsKLQkJcmV0dXJuIFJvb3RGYWN0b3J5LmVJTlNUQU5DRX0KLQkKLQlwdWJsaWMgZGVmIGdldEluY2hyb25TZXR0aW5nc0ZhY3RvcnkoKXsKLQkJcmV0dXJuIFNldHRpbmdzRmFjdG9yeS5lSU5TVEFOQ0V9Ci0KLQlwdWJsaWMgZGVmIGdldEluY2hyb25Nb2RlbEZhY3RvcnkoKXsKLQkJTW9kZWxGYWN0b3J5LmVJTlNUQU5DRX0KLQotCXB1YmxpYyBkZWYgZ2V0SW5jaHJvbk1lbW9yeUZhY3RvcnkoKXsKLQkJTWVtb3J5RmFjdG9yeS5lSU5TVEFOQ0V9Ci0KLQlwdWJsaWMgZGVmIGdldEluY2hyb25TdGltdWxhdGlvbkZhY3RvcnkoKXsKLQkJU3RpbXVsYXRpb25GYWN0b3J5LmVJTlNUQU5DRX0KLQotCXB1YmxpYyBkZWYgZ2V0QW1hbHRoZWFGYWN0b3J5KCl7Ci0JCUFtYWx0aGVhRmFjdG9yeS5lSU5TVEFOQ0V9Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL0FtbHQySW5jaHJvblRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9BbWx0MkluY2hyb25UcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNjNGUwMy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL0FtbHQySW5jaHJvblRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtOwotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5Sb290RmFjdG9yeQotaW1wb3J0IGphdmEuaW8uRmlsZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLk1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldAotaW1wb3J0IHRlbXBsYXRlcy51dGlscy5BbWx0Q2FjaGVNb2RlbAotCi1jbGFzcyBBbWx0MkluY2hyb25UcmFuc2Zvcm1lciBleHRlbmRzIE1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyIHsKLQkKLQlASW5qZWN0IE1vZGVsVHJhbnNmb3JtZXIgbW9kZWxUcmFuc2Zvcm1lcgkKLQlASW5qZWN0IFNldHRpbmdzVHJhbnNmb3JtZXIgc2V0dGluZ3NUcmFuc2Zvcm1lcgotCi0Jb3ZlcnJpZGUgbTJtVHJhbnNmb3JtYXRpb24oUmVzb3VyY2VTZXQgaW5wdXRSZXNvdXJjZVNldCwgUmVzb3VyY2VTZXQgb3V0cHV0UmVzb3VyY2VTZXQpIHsKLQkJLyotIEFzc29jaWF0aW5nIENhY2hlTW9kZWwgdG8gdGhlIHRyYW5zZm9ybWF0aW9uLiAKLQkJICogTm90ZTogVGhpcyBpcyBhIGN1bW11bGF0aXZlIGNhY2hlIG9mIGFsbCB0aGUgZWxlbWVudHMgZnJvbSB2YXJpb3VzIGlucHV0IEFNQUxUSEVBIG1vZGVsIGZpbGVzLgotCQkgKi8KLQkJdmFyIEFtbHRDYWNoZU1vZGVsIGNhY2hlTW9kZWwgPSBuZXcgQW1sdENhY2hlTW9kZWwKLQotCQljdXN0b21PYmpzU3RvcmUuaW5qZWN0TWVtYmVycyhBbWx0Q2FjaGVNb2RlbCwgY2FjaGVNb2RlbCkKLQotCQl2YXIgaW50IGZpbGVJbmRleCA9IDEKLQotCQlmb3IgKHJlc291cmNlIDogaW5wdXRSZXNvdXJjZVNldC5yZXNvdXJjZXMpIHsKLQkJCWZvciAoY29udGVudCA6IHJlc291cmNlLmNvbnRlbnRzKSB7Ci0KLQkJCQlsb2dnZXIuaW5mbygiUHJvY2Vzc2luZyBmaWxlIDogIiArIHJlc291cmNlLlVSSSkKLQotCQkJCS8qLSBCdWlsZGluZyBJTkNIUk9OIG1vZGVsIGZyb20gQU1BTFRIRUEgaW5wdXQgbW9kZWwgKi8KLQkJCQl2YWwgaW5jaHJvblJvb3QgPSB0cmFuc2Zvcm0oY29udGVudCBhcyBBbWFsdGhlYSkKLQkJCQkKLQkJCQlmaWxlSW5kZXgrKwotCQkJCQotCQkJCXZhbCBvdXRfdXJpID0gVVJJLmNyZWF0ZUZpbGVVUkkoCi0JCQkJCWdldFByb3BlcnR5KCJtMm1fb3V0cHV0X2ZvbGRlciIpICsgRmlsZS5zZXBhcmF0b3IgKyBmaWxlSW5kZXggKyAiLmlwcngiKQotCi0JCQkJdmFsIG91dF9yZXNvdXJjZSA9IG91dHB1dFJlc291cmNlU2V0LmNyZWF0ZVJlc291cmNlKG91dF91cmkpCi0KLQkJCQkvKi1BdHRhY2hpbmcgYSByZXNvdXJjZSB0byB0aGUgSU5DSFJPTiBtb2RlbCBlbGVtZW50ICovCi0JCQkJb3V0X3Jlc291cmNlLmNvbnRlbnRzLmFkZChpbmNocm9uUm9vdCkKLQotCQkJfQotCQl9Ci0KLQkJLyotIFNhdmluZyBhbGwgdGhlIHJvb3QgSU5DSFJPTiBtb2RlbCBmaWxlcyovCi0JCWZvciAocmVzb3VyY2UgOiBvdXRwdXRSZXNvdXJjZVNldC5yZXNvdXJjZXMpIHsKLQotCQkJcmVzb3VyY2Uuc2F2ZShudWxsKQotCi0JCQlsb2dnZXIuaW5mbygiVHJhbnNmb3JtZWQgbW9kZWwgZmlsZSBnZW5lcmF0ZWQgYXQgOiAiICsgcmVzb3VyY2UuVVJJKQotCQl9Ci0KLQkJbG9nZ2VyLmluZm8oIioqKioqKioqKioqKioqKioqKioqKioqIENvbXBsZXRlZCA6IE1vZGVsIHRvIE1vZGVsIHRyYW5zZm9ybWF0aW9uICoqKioqKioqKioqKioqKioqKioqKioqKioqIikKLQotCX0KLQotCS8qKgotCSAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gdHJhbnNmb3JtIEFNQUxUSEVBIG1vZGVsIHRvIElOQ0hST04gbW9kZWwKLQkgKi8KLQlkZWYgY3JlYXRlIFJvb3RGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVSb290IHRyYW5zZm9ybShBbWFsdGhlYSBhbWFsdGhlYSkgewotCi0JCS8qLVN0ZXAgMTogSW5qZWN0aW5nIGFsbCB0aGUgcmVxdWlyZWQgdHJhbnNmb3JtYXRpb24gb2JqZWN0cyBpbnRvIHRoZSBDdXN0b21PYmpzU3RvcmUuIEFkdmFudGFnZSB3aXRoIHRoaXMgYXBwcm9hY2ggaXMsIGl0IHByb3ZpZGVzIGZsZXhpYmlsaXR5IHRvIGFjY2VzcyB0aGVzZSBlbGVtZW50cyBhY3Jvc3MgdmFyaW91cyB0cmFuc2Zvcm1lcnMgKi8KLS8vCSAJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoU1dUcmFuc2Zvcm1lciAsIHN3VHJhbnNmb3JtZXIpCi0vLwkgCWN1c3RvbU9ianNTdG9yZS5pbmplY3RNZW1iZXJzKEhXVHJhbnNmb3JtZXIgLCBod1RyYW5zZm9ybWVyKQotLy8JIAljdXN0b21PYmpzU3RvcmUuaW5qZWN0TWVtYmVycyhPU1RyYW5zZm9ybWVyICwgb3NUcmFuc2Zvcm1lcikKLS8vCi0vLwkgCWN1c3RvbU9ianNTdG9yZS5pbmplY3RNZW1iZXJzKFN0aW11bGlUcmFuc2Zvcm1lciAsIHN0aW11bGlUcmFuc2Zvcm1lcikKLQkJLyogU3RlcCAyOiBCdWlsZGluZyBJTkNIUk9OIG1vZGVsIGJ5IGludm9raW5nIHZhcmlvdXMgdHJhbnNmb3JtZXJzICovCi0JCWl0Lm1vZGVsID0gbW9kZWxUcmFuc2Zvcm1lci5jcmVhdGVJbmNocm9uTW9kZWwoYW1hbHRoZWEpCi0JCWl0LnNldHRpbmdzID0gc2V0dGluZ3NUcmFuc2Zvcm1lci5jcmVhdGVJbmNocm9uU2V0dGluZ3MoYW1hbHRoZWEpCi0JfQotCi0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vTW9kZWxUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vTW9kZWxUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBjZDg4ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL01vZGVsVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0KLQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LkluamVjdAotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuTW9kZWwKLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLk1vZGVsRmFjdG9yeQotaW1wb3J0IGphdmEudGV4dC5EYXRlRm9ybWF0Ci1pbXBvcnQgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQKLWltcG9ydCBqYXZhLnV0aWwuRGF0ZQotaW1wb3J0IGphdmEudXRpbC5Mb2NhbGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWEKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuU3RyaW5nT2JqZWN0Ci1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLmNvbnN0cmFpbnRzLkNvbnN0cmFpbnRzVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLmh3LkhXVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLm1hcHBpbmcuTWFwcGluZ1RyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS5vcy5PU1RyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS5zdy5TV1RyYW5zZm9ybWVyCi0KLUBTaW5nbGV0b24KLWNsYXNzIE1vZGVsVHJhbnNmb3JtZXIgIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcnsKLQkKLQlASW5qZWN0IGV4dGVuc2lvbiBIV1RyYW5zZm9ybWVyIGh3VHJhbnNmb3JtZXIKLQotCUBJbmplY3QgZXh0ZW5zaW9uIE9TVHJhbnNmb3JtZXIgb3NUcmFuc2Zvcm1lcgotCi0JQEluamVjdCBleHRlbnNpb24gTWFwcGluZ1RyYW5zZm9ybWVyIG1hcHBpbmdUcmFuc2Zvcm1lcgotCi0JQEluamVjdCBleHRlbnNpb24gU1dUcmFuc2Zvcm1lciBzd1RyYW5zZm9ybWVyCi0JCi0JQEluamVjdCBleHRlbnNpb24gQ29uc3RyYWludHNUcmFuc2Zvcm1lciBjb25zdHJhaW50c1RyYW5zZm9ybWVyCi0JCi0JCi0JCi0JCS8qKgotCSAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgdGhlIG9iamVjdCBvZiBJTkNIUk9OIE1vZGVsIGVsZW1lbnQsIGFuZCBmaWxscyBpdCBieSBpbnZva2luZyB2YXJpb3VzIHRyYW5zZm9ybWF0aW9ucwotCSAqLwotCWRlZiBjcmVhdGUgTW9kZWxGYWN0b3J5LmVJTlNUQU5DRS5jcmVhdGVNb2RlbCBjcmVhdGVJbmNocm9uTW9kZWwoQW1hbHRoZWEgYW1hbHRoZWEpIHsKLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoQW1hbHRoZWEgLCBhbWFsdGhlYSkKLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoTW9kZWwgLCBpdCkKLQotCQl0cmFuc2Zvcm1NZXRhSW5mbyhhbWFsdGhlYSwgaXQpCi0KLQkJaXQubmFtZSA9ICJNb2RlbCIKLQotCQlod1RyYW5zZm9ybWVyLnRyYW5zZnJvbUhXTW9kZWwoYW1hbHRoZWEuaHdNb2RlbCwgaXQpCi0KLQkJb3NUcmFuc2Zvcm1lci50cmFuc2Zyb21PU01vZGVsKGFtYWx0aGVhLm9zTW9kZWwsIGl0KQotCi0JCW1hcHBpbmdUcmFuc2Zvcm1lci50cmFuc2Zyb21NYXBwaW5nTW9kZWwoYW1hbHRoZWEubWFwcGluZ01vZGVsLCBpdCkKLQotCQlzd1RyYW5zZm9ybWVyLnRyYW5zZm9ybVNXTW9kZWwoYW1hbHRoZWEuc3dNb2RlbCwgaXQpCi0JCQotCQljb25zdHJhaW50c1RyYW5zZm9ybWVyLnRyYW5zZm9ybUNvbnN0cmFpbnRzTW9kZWwKLQkJCi0JCS8vbm90ZTogc3RpbXVsaSBhcmUgdHJhbnNmb3JtZWQgd2hlbiB0cmF2ZXJzaW5nIHRoZSBzdyBtb2RlbAotCX0KLQotCS8qKgotCSAqIENyZWF0ZSBhbmQgZmlsbCB0aGUgSU5DSFJPTiBtb2RlbCdzIEdlbmVyYWxJbmZvIHdpdGggbWV0YSBpbmZvcm1hdGlvbiwKLQkgKiBtYWlubHkgZnJvbSB0aGUgQW1hbHRoZWEgY3VzdG9tUHJvcGVydGllcyBtYXAuCi0JICogQE5vdGU6IGN1c3RvbVByb3BlcnRpZXMga2V5cyB1c2VkIGhlcmUgYXJlIGN1cnJlbnRseSBpbmZvcm1hbC9ub3Qgc3BlY2lmaWVkLiAKLQkgKi8KLQlkZWYgdHJhbnNmb3JtTWV0YUluZm8oQW1hbHRoZWEgYW1hbHRoZWEsIE1vZGVsIGluY2hyb25Nb2RlbCkgewotCi0JCXZhciBEYXRlRm9ybWF0IGRhdGVGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGQuTU1NTS55eXl5IiwgTG9jYWxlLkVOR0xJU0gpCi0KLQkJdmFyIGluZm8gPSBNb2RlbEZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZUdlbmVyYWxJbmZvKCkKLQkJaW5mby5zZXRDcmVhdG9yKCgiQW1sdDJJbmNocm9uICIgKyBhbWFsdGhlYS5nZXRWZXJzaW9uKCkgKyAiICIgKyBuZXcgRGF0ZSgpKS50b1N0cmluZygpKQotCQlpbmZvLnNldFZlcnNpb24oIjEiKQotCi0JCXZhbCB2YWx1ZSA9IGFtYWx0aGVhLmdldEN1c3RvbVByb3BlcnRpZXMoKS5nZXQoIkRhdGVfTGFzdF9Nb2RpZmllZCIpCi0JCWlmICh2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZ09iamVjdCkgewotCQkJdmFsIGRhdGUgPSAodmFsdWUgYXMgU3RyaW5nT2JqZWN0KS5nZXRWYWx1ZSgpCi0JCQlpZiAoZGF0ZSAhPT0gbnVsbCkKLQkJCQlpbmZvLnNldE1vZGlmaWVkRGF0ZShkYXRlRm9ybWF0LnBhcnNlKGRhdGUpKQotCQl9Ci0KLQkJdmFsIGF1dGhvciA9IGFtYWx0aGVhLmdldEN1c3RvbVByb3BlcnRpZXMoKS5nZXQoIkF1dGhvciIpCi0JCWlmIChhdXRob3IgaW5zdGFuY2VvZiBTdHJpbmdPYmplY3QpCi0JCQlpbmZvLnNldEF1dGhvcigoYXV0aG9yIGFzIFN0cmluZ09iamVjdCkuZ2V0VmFsdWUoKSkKLQotCQl2YWwgZGVzY3IgPSBhbWFsdGhlYS5nZXRDdXN0b21Qcm9wZXJ0aWVzKCkuZ2V0KCJEZXNjcmlwdGlvbiIpCi0JCWlmIChkZXNjciBpbnN0YW5jZW9mIFN0cmluZ09iamVjdCkKLQkJCWluZm8uc2V0RGVzY3JpcHRpb24oKGRlc2NyIGFzIFN0cmluZ09iamVjdCkuZ2V0VmFsdWUoKSkKLQotCQlpbmNocm9uTW9kZWwuc2V0R2VuZXJhbEluZm8oaW5mbykKLQl9Ci0JCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL1NldHRpbmdzVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL1NldHRpbmdzVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5MTBjNTMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9TZXR0aW5nc1RyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotcGFja2FnZSB0ZW1wbGF0ZXMubTJtCi0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290LnNldHRpbmdzLlNldHRpbmdzRmFjdG9yeQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi0KLUBTaW5nbGV0b24KLWNsYXNzIFNldHRpbmdzVHJhbnNmb3JtZXIgIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcnsKLQkKLQkvKioKLQkgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIHRoZSBvYmplY3Qgb2YgSU5DSFJPTiBTZXR0aW5ncyBlbGVtZW50Ci0JICovCi0JZGVmIGNyZWF0ZSBTZXR0aW5nc0ZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZVNldHRpbmdzIGNyZWF0ZUluY2hyb25TZXR0aW5ncyhBbWFsdGhlYSBhbWFsdGhlYSkgewotCQlpdC5lZGl0b3IgPSBnZXRJbmNocm9uU2V0dGluZ3NGYWN0b3J5LmNyZWF0ZUVkaXRvclNldHRpbmdzCi0JCWl0Lm1vZGVsID0gZ2V0SW5jaHJvblNldHRpbmdzRmFjdG9yeS5jcmVhdGVNb2RlbFNldHRpbmdzCQotCQlpdC50b29sID0gZ2V0SW5jaHJvblNldHRpbmdzRmFjdG9yeS5jcmVhdGVUb29sU2V0dGluZ3MKLQl9Ci0JCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2NvbnN0cmFpbnRzL0NvbnN0cmFpbnRzVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2NvbnN0cmFpbnRzL0NvbnN0cmFpbnRzVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3ZTE2YjguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9jb25zdHJhaW50cy9Db25zdHJhaW50c1RyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uY29uc3RyYWludHMKLQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LkluamVjdAotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS5jb25zdHJhaW50cy5FdmVudENoYWluVHJhbnNmb3JtZXIKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuRXZlbnRDaGFpbgotCi1AU2luZ2xldG9uCi1jbGFzcyBDb25zdHJhaW50c1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0JCi0JQEluamVjdCBFdmVudENoYWluVHJhbnNmb3JtZXIgZXZlbnRDaGFpblRyYW5zZm9ybWVyCi0KLQlkZWYgdHJhbnNmb3JtQ29uc3RyYWludHNNb2RlbCgpIHsKLQkJZ2V0QW1hbHRoZWFSb290KCk/LmNvbnN0cmFpbnRzTW9kZWw/LmV2ZW50Q2hhaW5zPy5mb3JFYWNoKEV2ZW50Q2hhaW4gZXZlbnRDaGFpbiB8IHsKLQkJCWV2ZW50Q2hhaW5UcmFuc2Zvcm1lci50cmFuc2Zvcm1FdmVudENoYWluKGV2ZW50Q2hhaW4pOwotCQl9KQkJCi0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2NvbnN0cmFpbnRzL0V2ZW50Q2hhaW5SZWZlcmVuY2VUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vY29uc3RyYWludHMvRXZlbnRDaGFpblJlZmVyZW5jZVRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmNjZWYzLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vY29uc3RyYWludHMvRXZlbnRDaGFpblJlZmVyZW5jZVRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uY29uc3RyYWludHMKLQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5FdmVudENoYWluUmVmZXJlbmNlCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLQotQFNpbmdsZXRvbgotY2xhc3MgRXZlbnRDaGFpblJlZmVyZW5jZVRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0JCi0JZGVmIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZURhdGFGbG93UmVmZXJlbmNlIGNyZWF0ZURhdGFGbG93UmVmZXJlbmNlKEV2ZW50Q2hhaW5SZWZlcmVuY2UgYW1sdEV2ZW50RXZlbnRDaGFpblJlZmVyZW5jZSl7Ci0JfQotCi0KLX0KLQkKLQkKLQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9jb25zdHJhaW50cy9FdmVudENoYWluVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2NvbnN0cmFpbnRzL0V2ZW50Q2hhaW5UcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjIwMDg2YS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2NvbnN0cmFpbnRzL0V2ZW50Q2hhaW5UcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5jb25zdHJhaW50cwotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkV2ZW50Q2hhaW4KLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BYnN0cmFjdEV2ZW50Q2hhaW4KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUHJvY2VzcwotaW1wb3J0IHRlbXBsYXRlcy5tMm0uZXZlbnQuQWJzdHJhY3RFdmVudFRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5EYXRhRmxvd0VkZ2UKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbS5DaGFubmVsQWNjZXNzVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLnV0aWxzLkRhdGFGbG93VXRpbHMKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQ2hhbm5lbEV2ZW50Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkNoYW5uZWxBY2Nlc3MKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLnV0aWxzLkV2ZW50Q2hhaW5DcmF3bGVyCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS51dGlscy5FdmVudFNlcXVlbmNlVXRpbHMKLQotQFNpbmdsZXRvbgotY2xhc3MgRXZlbnRDaGFpblRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7CQotCQkKLQlASW5qZWN0IEFic3RyYWN0RXZlbnRUcmFuc2Zvcm1lciBhYnN0cmFjdEV2ZW50VHJhbnNmb3JtZXIKLQlASW5qZWN0IENoYW5uZWxBY2Nlc3NUcmFuc2Zvcm1lciBjaGFubmVsQWNjZXNzVHJhbnNmb3JtZXIKLQkJCi0JZGVmICB0cmFuc2Zvcm1FdmVudENoYWluKEV2ZW50Q2hhaW4gYW1sdEV2ZW50Q2hhaW4pIHsKLQkJLy9jaGVjayBpZiBhbWFsdGhlYSBzdHJ1Y3R1cmUgaXMgZmVhc2libGUgdG8gYmUgdHJhbnNmb3JtZWQgdG8gZGF0YSBmbG93Ci0JCS8vbGlzdCBvZiBjaGVja3M6Ci0JCS8vCS0gbm8gY2lyY3VsYXIgZGVwZW5kZW5jaWVzIHdpdGhpbiBuZXN0ZWQgZXZlbnQgY2hhaW4gcmVmZXJlbmNlcwotCQkvLwktIGNoYW5uZWwgZXZlbnQgc3BlY2lmaWVzOiBydW5uYWJsZSwgY2hhbm5lbCwgYWNjZXNzIHR5cGUgKHNlbmQgb3IgcmVjZWl2ZSkgCi0JCS8vCS0gc3RpbXVsdXMgYW5kIHJlc3BvbnNlIGFyZSBvZiB0eXBlIGNoYW5uZWwgZXZlbnQKLQkJLy8JLSBzdGltdWx1cyBhbmQgcmVzcG9uc2VjYW4gYmUgdHJhY2VkIHRvIE9ORSBzcGVjaWZpYyBjaGFubmVsIGFjY2VzcyBydW5uYWJsZSBpdGVtCi0JCS8vCS0gcnVsZXMgYWJvdmUgYWxzbyBhcHBseSB0byBuZXN0ZWQgYW5kIHJlZmVyZW5jZWQgZXZlbnQgY2hhaW5zCi0JCS8vIE5vdGU6IHN0cmFuZHMgYXJlIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgYmUgbmVnbGVjdGVkCi0JCXZhbCBkYXRhRmxvd0NyYXdsZXIgPSBuZXcgRXZlbnRDaGFpbkNyYXdsZXJbRGF0YUZsb3dVdGlscy50ZXN0Q29uZGl0aW9uRXZlbnRDaGFpbjJEYXRhRmxvdyhpdCldCi0JCWlmIChkYXRhRmxvd0NyYXdsZXIuZXZhbHVhdGUoYW1sdEV2ZW50Q2hhaW4pKXsKLQkgCQlkYXRhRmxvd0NyYXdsZXIuYXBwbHlPcmRlcgotCSAJCWRhdGFGbG93Q3Jhd2xlci5hcHBseUJvdW5kYXJpZXMoYW1sdEV2ZW50Q2hhaW4uc3RpbXVsdXMsIGFtbHRFdmVudENoYWluLnJlc3BvbnNlKQotCQkJdmFsIGRhdGFGbG93ID0gY3JlYXRlRGF0YUZsb3coYW1sdEV2ZW50Q2hhaW4pCi0JIAkJdmFsIHRyYXZlcnNlZEV2ZW50Q2hhaW5zID0gZGF0YUZsb3dDcmF3bGVyLnRyYXZlcnNlZEV2ZW50Q2hhaW5zCi0gCQkJaWYgKCF0cmF2ZXJzZWRFdmVudENoYWlucy5pc0VtcHR5KXsKLQkJCQlmb3IgKEFic3RyYWN0RXZlbnRDaGFpbiBldmVudENoYWluIDogdHJhdmVyc2VkRXZlbnRDaGFpbnMpewotCQkJCQkvL2NyZWF0ZSBuZXcgZWRnZQotCQkJIAkJdmFsIERhdGFGbG93RWRnZSBkYXRhRmxvd0VkZ2UgPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZURhdGFGbG93RWRnZQotCQkJIAkJLy8gc2V0IHN0aW11bHVzICYgcmVzcG9uc2UJCSAJCQotCQkJIAkJdmFsIFByb2Nlc3Mgc3RpbXVsdXNUYXNrID0gKGV2ZW50Q2hhaW4uc3RpbXVsdXMgYXMgQ2hhbm5lbEV2ZW50KS5wcm9jZXNzCi0JCQkgCQl2YWwgQ2hhbm5lbEFjY2VzcyBzdGltdWx1c0NoYW5uZWxBY2Nlc3MgPSBEYXRhRmxvd1V0aWxzLmZpbmRDaGFubmVsQWNjZXNzKGV2ZW50Q2hhaW4uc3RpbXVsdXMgYXMgQ2hhbm5lbEV2ZW50KQkJIAkKLQkJCQkJaWYgKHN0aW11bHVzQ2hhbm5lbEFjY2VzcyAhPT0gbnVsbCl7CQkKLQkJCQkgCQlkYXRhRmxvd0VkZ2Uuc3RpbXVsdXMgPSBjaGFubmVsQWNjZXNzVHJhbnNmb3JtZXIuY3JlYXRlVmFyaWFibGVBY2Nlc3Moc3RpbXVsdXNUYXNrLCBzdGltdWx1c0NoYW5uZWxBY2Nlc3MpCi0JCQkgCQl9IGVsc2UgewotCQkJIAkJCWRhdGFGbG93RWRnZS5zdGltdWx1cyA9IG51bGw7Ci0JCQkgCQl9Ci0JCQkgCQl2YWwgUHJvY2VzcyByZXNwb25zZVRhc2sgPSAoZXZlbnRDaGFpbi5yZXNwb25zZSBhcyBDaGFubmVsRXZlbnQpLnByb2Nlc3MKLQkJCSAJCXZhbCBDaGFubmVsQWNjZXNzIHJlc3BvbnNlQ2hhbm5lbEFjY2VzcyA9IERhdGFGbG93VXRpbHMuZmluZENoYW5uZWxBY2Nlc3MoZXZlbnRDaGFpbi5yZXNwb25zZSBhcyBDaGFubmVsRXZlbnQpCQkKLQkJCSAJCWlmIChldmVudENoYWluLnJlc3BvbnNlICE9PSBudWxsKXsKLQkJCQkgCQlkYXRhRmxvd0VkZ2UucmVzcG9uc2UgPSBjaGFubmVsQWNjZXNzVHJhbnNmb3JtZXIuY3JlYXRlVmFyaWFibGVBY2Nlc3MocmVzcG9uc2VUYXNrLCByZXNwb25zZUNoYW5uZWxBY2Nlc3MpCi0JCQkgCQl9IGVsc2UgewotCQkJIAkJCWRhdGFGbG93RWRnZS5yZXNwb25zZSA9IG51bGw7Ci0JCQkgCQl9CQkJIAkJCi0JCSAJCQkvL2FkZCBuZXcgZWRnZSBkYXRhZmxvdwotCQkJIAkJZGF0YUZsb3cuZWRnZXMuYWRkKGRhdGFGbG93RWRnZSkKLQkJCSAJfQkJCi0gCQkJCWdldEluY2hyb25Sb290LmV2ZW50Q2hhaW5zLmFkZChkYXRhRmxvdykKLSAJCQl9ZWxzZXsKLQkgCQkJZ2V0TG9nZ2VyLmVycm9yKCJFdmVudCBjaGFpbiAiICsgYW1sdEV2ZW50Q2hhaW4ubmFtZSArICIncyBlbGVtZW50cyBhcmUgdmFsaWQsIGJ1dCBpc3N1ZXMgZXhpc3QgaW4gc2VxdWVuY2UgYW5kL29yIGJvdW5kYXJpZXMiKQotCSAJCX0KLQkJCXJldHVybgotCQl9IAotCQkJCQkJCi0JCS8vY2hlY2sgaWYgYW1hbHRoZWEgc3RydWN0dXJlIGlzIGZlYXNpYmxlIHRvIGJlIHRyYW5zZm9ybWVkIHRvIGV2ZW50IHNlcXVlbmNlCi0JCS8vbGlzdCBvZiBjaGVja3M6Ci0JCS8vCS0gbm8gY2lyY3VsYXIgZGVwZW5kZW5jaWVzIHdpdGhpbiBuZXN0ZWQgZXZlbnQgY2hhaW4gcmVmZXJlbmNlcwotCQkvLwktIHByb2Nlc3MgZXZlbnQgc3BlY2lmaWVzOiBwcm9jZXNzICYgcHJvY2VzcyBiZSB0cmFjZWQgdG8gaW5jaHJvbiBjb21wb25lbnQKLQkJLy8gIC0gcnVubmFibGUgZXZlbnQgc3BlY2lmaWVzOiBydW5uYWJsZSwgcHJvY2VzcyAmIHByb2Nlc3MgYmUgdHJhY2VkIHRvIGluY2hyb24gY29tcG9uZW50Ci0JCS8vCS0gc3RpbXVsdXMgYW5kIHJlc3BvbnNlIGFyZSBib3RoIGVpdGhlciBvZiB0eXBlIHJ1bm5hYmxlIGV2ZW50IG9yIHByb2Nlc3MgZXZlbnQKLQkJLy8JLSBydWxlcyBhYm92ZSBhbHNvIGFwcGx5IHRvIG5lc3RlZCBhbmQgcmVmZXJlbmNlZCBldmVudCBjaGFpbnMKLQkJLy8gTm90ZTogc3RyYW5kcyBhcmUgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSBuZWdsZWN0ZWQgCQotCQl2YWwgZXZlbnRTZXF1ZW5jZUNyYXdsZXIgPSBuZXcgIEV2ZW50Q2hhaW5DcmF3bGVyW0V2ZW50U2VxdWVuY2VVdGlscy50ZXN0Q29uZGl0aW9uRXZlbnRDaGFpbjJFdmVudFNlcXVlbmNlKGl0KV0KLQkgCWlmIChldmVudFNlcXVlbmNlQ3Jhd2xlci5ldmFsdWF0ZShhbWx0RXZlbnRDaGFpbikpewotCSAJCXZhciBldmVudFNlcXVlbmNlID0gY3JlYXRlRXZlbnRTZXF1ZW5jZShhbWx0RXZlbnRDaGFpbikKLQkgCQkKLQkgCQkvL2NyZWF0ZSB0cmFjZSBldmVudHMgZnJvbSAoc29ydGVkKSBzdGltdWxpIGV2ZW50cyBvZiBldmVudCBjaGFpbgotCSAJCS8vICAgZXZlbnRzIGFyZSBzb3J0ZWQgYnkgc3RpbXVsdXMvcmVwb25zZTogZWcuIEVDMShzdGltPUEsIHJlc3A9QiksIEVDMihzdGltPUMsIHJlc3A9RCksIEVDMyhzdGltPUIsIHJlc3A9QykgCi0JIAkJLy8gICBzb3J0aW5nIGxlYWRzIHRvOiBFQzEsIEVDMywgRUMyCi0JIAkJLy8gICBpcyB0cmFuc2Zvcm1lZCB0byBldmVudCBzZXF1ZW5jZTogQS0tW2xvb3BdLS0+Qi0tW2xvb3BdLS0+Qy0tW2FkZCBsYXN0XS0tPkQKLQkgCQkKLQkgCQkvLyBbc29ydF0KLQkgCQlldmVudFNlcXVlbmNlQ3Jhd2xlci5hcHBseU9yZGVyCi0JIAkJZXZlbnRTZXF1ZW5jZUNyYXdsZXIuYXBwbHlCb3VuZGFyaWVzKGFtbHRFdmVudENoYWluLnN0aW11bHVzLCBhbWx0RXZlbnRDaGFpbi5yZXNwb25zZSkKLQkgCQl2YWwgdHJhdmVyc2VkRXZlbnRDaGFpbnMgPSBldmVudFNlcXVlbmNlQ3Jhd2xlci50cmF2ZXJzZWRFdmVudENoYWlucwotCSAJCWlmICghdHJhdmVyc2VkRXZlbnRDaGFpbnMuaXNFbXB0eSl7Ci0JCSAJCS8vIFtsb29wXQotCQkgCQlmb3IgKEFic3RyYWN0RXZlbnRDaGFpbiBldmVudENoYWluIDogdHJhdmVyc2VkRXZlbnRDaGFpbnMpewotCQkgCQkJdmFyIGNvbmRpdGlvbmFsVHJhY2VFdmVudCA9ICBnZXRJbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUNvbmRpdGlvbmFsVHJhY2VFdmVudCAKLQkJIAkJCWNvbmRpdGlvbmFsVHJhY2VFdmVudC50cmFjZUV2ZW50ID0gYWJzdHJhY3RFdmVudFRyYW5zZm9ybWVyLmNyZWF0ZVRyYWNlRXZlbnQoZXZlbnRDaGFpbi5zdGltdWx1cykKLQkJIAkJCWV2ZW50U2VxdWVuY2Uuc2VxdWVuY2UuYWRkKGNvbmRpdGlvbmFsVHJhY2VFdmVudCkKLQkJIAkJfQotCQkgCQkvLyBbYWRkIGxhc3RdCi0JCSAJCXZhciBjb25kaXRpb25hbFRyYWNlRXZlbnQgPSAgZ2V0SW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVDb25kaXRpb25hbFRyYWNlRXZlbnQKLQkJIAkJY29uZGl0aW9uYWxUcmFjZUV2ZW50LnRyYWNlRXZlbnQgPSBhYnN0cmFjdEV2ZW50VHJhbnNmb3JtZXIuY3JlYXRlVHJhY2VFdmVudCh0cmF2ZXJzZWRFdmVudENoYWlucy5sYXN0LnJlc3BvbnNlKQotCSAJCQlldmVudFNlcXVlbmNlLnNlcXVlbmNlLmFkZChjb25kaXRpb25hbFRyYWNlRXZlbnQpCi0JIAkJCS8vYWRkIGV2ZW50IHNlcXVlbmNlIHRvIGluY2hyb24gcm9vdCBtb2RlbAkgCQkKLQkJIAkJZ2V0SW5jaHJvblJvb3QuZXZlbnRDaGFpbnMuYWRkKGV2ZW50U2VxdWVuY2UpCi0JIAkJfWVsc2V7Ci0JIAkJCWdldExvZ2dlci5lcnJvcigiRXZlbnQgY2hhaW4gIiArIGFtbHRFdmVudENoYWluLm5hbWUgKyAiJ3MgZWxlbWVudHMgYXJlIHZhbGlkLCBidXQgaXNzdWVzIGV4aXN0IGluIHNlcXVlbmNlIGFuZC9vciBib3VuZGFyaWVzIikKLQkgCQkKLQkgCQl9Ci0JCQlyZXR1cm4KLQkJfQotCQotCQkvL2RlZmF1bHQgc3RhdGVtZW50Ci0JCWdldExvZ2dlci5lcnJvcigiRXZlbnQgY2hhaW4gIiArIGFtbHRFdmVudENoYWluLm5hbWUgKyAiIGNhbm5vdCBiZSBjb252ZXJ0ZWQsIGFzIGl0IGlzIG5vdCBhIGZlYXNpYmxlIGRhdGEgZmxvdyBvciBldmVudCBzZXF1ZW5jZSIpCi0JCi0JfQotCQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVEYXRhRmxvdyBjcmVhdGVEYXRhRmxvdyhFdmVudENoYWluIGFtbHRFdmVudENoYWluKSB7Ci0JCWl0Lm5hbWUgPSBhbWx0RXZlbnRDaGFpbi5uYW1lCQkKLQl9Ci0JCi0JZGVmIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUV2ZW50U2VxdWVuY2UgY3JlYXRlRXZlbnRTZXF1ZW5jZShFdmVudENoYWluIGFtbHRFdmVudENoYWluKSB7Ci0JCWl0Lm5hbWUgPSBhbWx0RXZlbnRDaGFpbi5uYW1lCi0JfQotLy8KLS8vCQotLy8JZGVmIHZvaWQgZXh0ZW5kRGF0YUZsb3coRGF0YUZsb3cgZGF0YUZsb3csIEFic3RyYWN0RXZlbnRDaGFpbiBhbWx0QWJzdHJhY3RFdmVudENoYWluKSB7CQkKLS8vCQlpZiAoIWFtbHRBYnN0cmFjdEV2ZW50Q2hhaW4uc2VnbWVudHMuaXNFbXB0eSkgewotLy8JCQkvL2V2ZW50IGNoYWluIGlzIGhpZXJhcmNoaWNhbCAtLT4gc3RlcCBkb3duCi0vLwkJCWFtbHRBYnN0cmFjdEV2ZW50Q2hhaW4uc2VnbWVudHMuZm9yRWFjaFtFdmVudENoYWluSXRlbSBhbWx0RXZlbnRDaGFpbkl0ZW0gfCB7IC8vaXRlbSBtYXkgYmUgYSBjb250YWluZXIgb3IgYSByZWZlcmVuY2UKLS8vCQkJCWlmIChhbWx0RXZlbnRDaGFpbkl0ZW0gaW5zdGFuY2VvZiBFdmVudENoYWluQ29udGFpbmVyKXsKLS8vCQkJCQkvL3JlY3Vyc2l2ZWx5IHByb2Nlc3MgY29udGFpbmVkIChzdWIpZXZlbnQgY2hhaW4gCi0vLwkJCQkJZXh0ZW5kRGF0YUZsb3coZGF0YUZsb3csIChhbWx0RXZlbnRDaGFpbkl0ZW0gYXMgRXZlbnRDaGFpbkNvbnRhaW5lcikuZXZlbnRDaGFpbikKLS8vCQkJCX0gZWxzZSBpZiAoYW1sdEV2ZW50Q2hhaW5JdGVtIGluc3RhbmNlb2YgRXZlbnRDaGFpblJlZmVyZW5jZSkgewotLy8JCQkJCS8vY3JlYXRlIFtjc11EYXRhRmxvd1JlZmVyZW5jZSBmcm9tIFthbWx0XUV2ZW50Q2hhaW5SZWZlcmVuY2UKLS8vCQkJCQkKLS8vCQkJCQlkYXRhRmxvdy5yZWZlcmVuY2VzLmFkZChldmVudENoYWluUmVmZXJlbmNlVHJhbnNmb3JtZXIuY3JlYXRlRGF0YUZsb3dSZWZlcmVuY2UoCi0vLwkJCQkJCShhbWx0RXZlbnRDaGFpbkl0ZW0gYXMgRXZlbnRDaGFpblJlZmVyZW5jZSksICBhbWx0QWJzdHJhY3RFdmVudENoYWluKSkKLS8vCQkJCX0KLS8vCQkJfV0KLS8vCQkgfSAKLS8vCQkgZWxzZSB7Ci0vLwkJIAkvL2NyZWF0ZSBuZXcgZWRnZQotLy8JCSAJdmFsIERhdGFGbG93RWRnZSBkYXRhRmxvd0VkZ2UgPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZURhdGFGbG93RWRnZQkJIAkKLS8vCQkgCQotLy8JCSAJLy9zZXQgc3RpbXVsdXMgYW5kIHJlY2VpdmVyIGFjY29yZGluZyB0byBjaGFubmVsIGV2ZW50cwotLy8JCSAJdmFsIFByb2Nlc3Mgc3RpbXVsdXNUYXNrID0gKGFtbHRBYnN0cmFjdEV2ZW50Q2hhaW4uc3RpbXVsdXMgYXMgQ2hhbm5lbEV2ZW50KS5wcm9jZXNzCi0vLwkJIAl2YWwgQ2hhbm5lbEFjY2VzcyBzdGltdWx1cyA9IERhdGFGbG93VXRpbHMuZmluZENoYW5uZWxBY2Nlc3MoYW1sdEFic3RyYWN0RXZlbnRDaGFpbi5zdGltdWx1cyBhcyBDaGFubmVsRXZlbnQpCi0vLwkgCSAgICBpZiAoc3RpbXVsdXMgIT09IG51bGwpewkJCi0vLwkJIAkJZGF0YUZsb3dFZGdlLnN0aW11bHVzID0gY2hhbm5lbEFjY2Vzc1RyYW5zZm9ybWVyLmNyZWF0ZVZhcmlhYmxlQWNjZXNzKHN0aW11bHVzVGFzaywgc3RpbXVsdXMpCi0vLwkgCQl9IGVsc2UgewotLy8JIAkJCWRhdGFGbG93RWRnZS5zdGltdWx1cyA9IG51bGw7Ci0vLwkgCQl9Ci0vLwkgCQkKLS8vCQkgCXZhbCBQcm9jZXNzIHJlc3BvbnNlVGFzayA9IChhbWx0QWJzdHJhY3RFdmVudENoYWluLnJlc3BvbnNlIGFzIENoYW5uZWxFdmVudCkucHJvY2VzcwotLy8JCQl2YWwgQ2hhbm5lbEFjY2VzcyByZXNwb25zZSA9IERhdGFGbG93VXRpbHMuZmluZENoYW5uZWxBY2Nlc3MoYW1sdEFic3RyYWN0RXZlbnRDaGFpbi5yZXNwb25zZSBhcyBDaGFubmVsRXZlbnQpCi0vLwkgCQlpZiAocmVzcG9uc2UgIT09IG51bGwpewotLy8JCSAJCWRhdGFGbG93RWRnZS5yZXNwb25zZSA9IGNoYW5uZWxBY2Nlc3NUcmFuc2Zvcm1lci5jcmVhdGVWYXJpYWJsZUFjY2VzcyhyZXNwb25zZVRhc2ssIHJlc3BvbnNlKQotLy8JIAkJfSBlbHNlIHsKLS8vCSAJCQlkYXRhRmxvd0VkZ2UucmVzcG9uc2UgPSBudWxsOwotLy8JIAkJfQotLy8JIAkJCi0vLwkgCQkvL2FkZCBuZXcgZWRnZSBkYXRhZmxvdwotLy8JCSAJZGF0YUZsb3cuZWRnZXMuYWRkKGRhdGFGbG93RWRnZSkJCi0vLwkJfQkJCi0vLwl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vZXZlbnQvQWJzdHJhY3RFdmVudFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ldmVudC9BYnN0cmFjdEV2ZW50VHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwN2YxN2IuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ldmVudC9BYnN0cmFjdEV2ZW50VHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5ldmVudAotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5UcmFjZUV2ZW50VHlwZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5FdmVudAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Qcm9jZXNzRXZlbnQKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUHJvY2Vzc0V2ZW50VHlwZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5SdW5uYWJsZUV2ZW50Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlJ1bm5hYmxlRXZlbnRUeXBlCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLnN3LlJ1bm5hYmxlVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMudXRpbHMuQW1sdENhY2hlTW9kZWwKLQotQFNpbmdsZXRvbgotY2xhc3MgQWJzdHJhY3RFdmVudFRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0JCi0JQEluamVjdCBSdW5uYWJsZVRyYW5zZm9ybWVyIHJ1bm5hYmxlVHJhbnNmb3JtZXIKLQkKLQlkZWYgZGlzcGF0Y2ggY3JlYXRlVHJhY2VFdmVudChFdmVudCBldmVudCl7Ci0JCWxvZ2dlci53YXJuKCJBYnN0cmFjdEV2ZW50VHJhbnNmb3JtZXI6IGV2ZW50ICIgKyBldmVudC5kZXNjcmlwdGlvbiArICIgbm90IHN1cHBvcnRlZCBpbiBjaHJvblNJTSB0cmFuc2Zvcm1hdGlvbiIpCi0JfQotCQkKLQlkZWYgZGlzcGF0Y2ggY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVHJhY2VFdmVudCBjcmVhdGVUcmFjZUV2ZW50KFByb2Nlc3NFdmVudCBldmVudCl7CQkKLQkJaXQubmFtZSA9IGV2ZW50Lm5hbWU7Ci0JCXN3aXRjaCAoZXZlbnQuZXZlbnRUeXBlKXsKLQkJCWNhc2UgUHJvY2Vzc0V2ZW50VHlwZS5BQ1RJVkFURTogaXQudHlwZSA9IFRyYWNlRXZlbnRUeXBlLkFDVElWQVRFCi0JCQljYXNlIFByb2Nlc3NFdmVudFR5cGUuVEVSTUlOQVRFOiBpdC50eXBlID0gVHJhY2VFdmVudFR5cGUuVEVSTUlOQVRFCi0JCQlkZWZhdWx0Ont9CQotCQl9Ci0JCQotCQl2YWwgQW1sdENhY2hlTW9kZWwgY2FjaGVNb2RlbCA9IGN1c3RvbU9ianNTdG9yZS5nZXRJbnN0YW5jZShBbWx0Q2FjaGVNb2RlbCkKLQkJdmFsIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuUHJvY2VzcyBjc1Byb2Nlc3MgPSBjYWNoZU1vZGVsLmFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwLmdldChldmVudC5lbnRpdHkgYXMgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MpCi0JCWNzUHJvY2Vzcy50cmFjZUV2ZW50cy5hZGQoaXQpIAotCX0KLQkKLQkKLQlkZWYgZGlzcGF0Y2ggY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVHJhY2VFdmVudCBjcmVhdGVUcmFjZUV2ZW50KFJ1bm5hYmxlRXZlbnQgZXZlbnQpewotCQlpdC5uYW1lID0gZXZlbnQubmFtZTsKLQkJc3dpdGNoIChldmVudC5ldmVudFR5cGUpewotCQkJY2FzZSBSdW5uYWJsZUV2ZW50VHlwZS5TVEFSVDogaXQudHlwZSA9IFRyYWNlRXZlbnRUeXBlLlNUQVJUCi0JCQljYXNlIFJ1bm5hYmxlRXZlbnRUeXBlLlRFUk1JTkFURTogaXQudHlwZSA9IFRyYWNlRXZlbnRUeXBlLlRFUk1JTkFURQotCQkJZGVmYXVsdDoge30KLQkJfQotCQl2YWwgQW1sdENhY2hlTW9kZWwgY2FjaGVNb2RlbCA9IGN1c3RvbU9ianNTdG9yZS5nZXRJbnN0YW5jZShBbWx0Q2FjaGVNb2RlbCkKLQkJdmFsIGNzRnVuY3Rpb24gPSBydW5uYWJsZVRyYW5zZm9ybWVyLmNyZWF0ZUZ1bmN0aW9uKGNhY2hlTW9kZWwuZ2V0SW5jaHJvbkNvbXBvbmVudChldmVudC5wcm9jZXNzKSwgZXZlbnQucHJvY2VzcywgZXZlbnQuZW50aXR5KQotCQljc0Z1bmN0aW9uLnRyYWNlRXZlbnRzLmFkZChpdCkJCi0JfQotCi0JCi0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvQ2FjaGVUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvQ2FjaGVUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQzNTRjYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2h3L0NhY2hlVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5odwotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5tZW1vcnkuTWVtb3J5VHlwZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5DYWNoZQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIENhY2hlVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQkKLQlASW5qZWN0IEZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyIGZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyCi0KLQlkZWYgY3JlYXRlIGluY2hyb25NZW1vcnlGYWN0b3J5LmNyZWF0ZU1lbW9yeSBjcmVhdGVDYWNoZShDYWNoZSBhbWx0Q2FjaGUpIHsKLQotCQlpdC5uYW1lID0gYW1sdENhY2hlLm5hbWUKLQotCQlpdC5jbG9jayA9IGZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyLmNyZWF0ZUNsb2NrKGFtbHRDYWNoZS5mcmVxdWVuY3lEb21haW4pCi0KLQkJaXQudHlwZSA9IE1lbW9yeVR5cGUuQ0FDSEUKLQl9Ci0JCi0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvRnJlcXVlbmN5RG9tYWluVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2h3L0ZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Y2MyZjBkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvRnJlcXVlbmN5RG9tYWluVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5odwotCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5UaW1lVW5pdAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5GcmVxdWVuY3lEb21haW4KLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy5tMm0udXRpbHMuRnJlcXVlbmN5VHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgRnJlcXVlbmN5RG9tYWluVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCUBJbmplY3QgRnJlcXVlbmN5VHJhbnNmb3JtZXIgZnJlcXVlbmN5VHJhbnNmb3JtZXIJCi0KLQlkZWYgY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQ2xvY2sgY3JlYXRlQ2xvY2soRnJlcXVlbmN5RG9tYWluIGFtbHRGcmVxdWVuY3lEb21haW4pIHsKLQkJCi0JCWl0Lm5hbWUgPSBhbWx0RnJlcXVlbmN5RG9tYWluLm5hbWUKLQotCQl2YXIgYW1sdEZyZXF1ZW5jeSA9IGFtbHRGcmVxdWVuY3lEb21haW4uZGVmYXVsdFZhbHVlCi0KLQkJaWYgKGFtbHRGcmVxdWVuY3kgIT09IG51bGwpIHsKLQkJCWl0LmZyZXF1ZW5jeSA9IGZyZXF1ZW5jeVRyYW5zZm9ybWVyLmNyZWF0ZUZyZXF1ZW5jeShhbWx0RnJlcXVlbmN5KQotCi0vLwkJIAl2YXIgIGFtbHRGcmVxdWVueV9Iej1BbWFsdGhlYVNlcnZpY2VzLmNvbnZlcnRUb0hlcnR6KGFtbHRGcmVxdWVuY3kpCi0vLwkJIAl2YXIgYW1sdFRpbWU9YW1hbHRoZWFGYWN0b3J5LmNyZWF0ZVRpbWUKLS8vCQkgCXZhciBCaWdEZWNpbWFsIHJlc3VsdD1CaWdEZWNpbWFsLlRFTi5wb3coMTIpLmRpdmlkZShhbWx0RnJlcXVlbnlfSHopCi0vLwkJIAkKLS8vCQkgIAlhbWx0VGltZS52YWx1ZSA9IHJlc3VsdC50b0JpZ0ludGVnZXIKLS8vCQkgIAlhbWx0VGltZS51bml0PVRpbWVVbml0LlBTCi0JCX0KLQotCQkvLyBUT0RPOiBUaGlzIGlzIG9ubHkgdGVtcG9yYXJ5LiBJbiBmdXR1cmUgdGhpcyB3aWxsIGJlIGEgZGVmYXVsdCB2YWx1ZSBpbiBJbmNocm9uIG1vZGVsCi0JCXZhciByYW5nZSA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCQlyYW5nZS51bml0ID0gVGltZVVuaXQuUwotCQlyYW5nZS52YWx1ZSA9IDEKLQkJaXQucmFuZ2UgPSByYW5nZQotCi0JCWl0LnN0YXJ0VGltZUZpeGVkID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVUaW1lCi0JCWl0LnN0YXJ0VGltZU1pbiA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCQlpdC5zdGFydFRpbWVNYXggPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVRpbWUKLQkJaXQuc3RhcnRWYWx1ZSA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCi0JfQotCQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ody9IV1N0cnVjdHVyZV9FQ1VUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvSFdTdHJ1Y3R1cmVfRUNVVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5Y2YwZjAuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ody9IV1N0cnVjdHVyZV9FQ1VUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLmh3Ci0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLQotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQ2FjaGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuSHdTdHJ1Y3R1cmUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTWVtb3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlN0cnVjdHVyZVR5cGUKLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBIV1N0cnVjdHVyZV9FQ1VUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIgewotCi0JQEluamVjdCBIV1N0cnVjdHVyZV9NaWNyb0NvbnRyb2xsZXJUcmFuc2Zvcm1lciBtaWNyb0NvbnRyb2xsZXJUcmFuc2Zvcm1lcgotCi0JQEluamVjdCBNZW1vcnlUcmFuc2Zvcm1lciBtZW1vcnlUcmFuc2Zvcm1lcgotCi0JQEluamVjdCBDYWNoZVRyYW5zZm9ybWVyIGNhY2hlVHJhbnNmb3JtZXIKLQotCWRlZiB0cmFuc2Zvcm1IV0VDVShId1N0cnVjdHVyZSBhbWx0SFdFQ1UsIE1vZGVsIGluY2hyb25Nb2RlbCkgewotCi0JCWFtbHRIV0VDVS5tb2R1bGVzLmZvckVhY2ggWyBhbWx0SHdNb2R1bGUgfAotCQkJaWYgKGFtbHRId01vZHVsZSBpbnN0YW5jZW9mIE1lbW9yeSkgewotCQkJCWluY2hyb25Nb2RlbC5tZW1vcmllcy5hZGQobWVtb3J5VHJhbnNmb3JtZXIuY3JlYXRlTWVtb3J5KGFtbHRId01vZHVsZSkpCi0JCQl9IGVsc2UgaWYgKGFtbHRId01vZHVsZSBpbnN0YW5jZW9mIENhY2hlKSB7Ci0JCQkJaW5jaHJvbk1vZGVsLm1lbW9yaWVzLmFkZChjYWNoZVRyYW5zZm9ybWVyLmNyZWF0ZUNhY2hlKGFtbHRId01vZHVsZSkpCi0JCQl9Ci0JCV0KLQotCQlhbWx0SFdFQ1Uuc3RydWN0dXJlcy5mb3JFYWNoIFsgYW1sdEh3TWljcm9Db250cm9sbGVyIHwKLQkJCWlmIChhbWx0SHdNaWNyb0NvbnRyb2xsZXIuc3RydWN0dXJlVHlwZSA9PSBTdHJ1Y3R1cmVUeXBlLk1JQ1JPQ09OVFJPTExFUikgewotCQkJCWluY2hyb25Nb2RlbC5jcHVzLmFkZChtaWNyb0NvbnRyb2xsZXJUcmFuc2Zvcm1lci5jcmVhdGVDcHUoYW1sdEh3TWljcm9Db250cm9sbGVyKSkKLQkJCX0KLQkJXQotCi0JfQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ody9IV1N0cnVjdHVyZV9NaWNyb0NvbnRyb2xsZXJUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvSFdTdHJ1Y3R1cmVfTWljcm9Db250cm9sbGVyVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMjRhMzUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ody9IV1N0cnVjdHVyZV9NaWNyb0NvbnRyb2xsZXJUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLmh3Ci0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQ2FjaGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuSHdTdHJ1Y3R1cmUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTWVtb3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3NpbmdVbml0Ci1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgSFdTdHJ1Y3R1cmVfTWljcm9Db250cm9sbGVyVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCUBJbmplY3QgTWVtb3J5VHJhbnNmb3JtZXIgbWVtb3J5VHJhbnNmb3JtZXIKLQotCUBJbmplY3QgQ2FjaGVUcmFuc2Zvcm1lciBjYWNoZVRyYW5zZm9ybWVyCi0KLQlASW5qZWN0IFByb2Nlc3NpbmdVbml0VHJhbnNmb3JtZXIgcHJvY2Vzc2luZ1VuaXRUcmFuc2Zvcm1lcgotCQotCUBJbmplY3QgRnJlcXVlbmN5RG9tYWluVHJhbnNmb3JtZXIgZnJlcXVlbmN5RG9tYWluVHJhbnNmb3JtZXIKLQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVDcHUgY3JlYXRlQ3B1KEh3U3RydWN0dXJlIGFtbHRIV01pY3JvQ29udHJvbGxlcikgewotCi0JCWl0Lm5hbWUgPSBhbWx0SFdNaWNyb0NvbnRyb2xsZXIubmFtZQotCQlpdC5jcHVNb2RlbCA9ICJnZW5lcmljIgotCi0JCWFtbHRIV01pY3JvQ29udHJvbGxlci5tb2R1bGVzLmZvckVhY2ggWyBhbWx0SHdNb2R1bGUgfAotCQkJaWYgKGFtbHRId01vZHVsZSBpbnN0YW5jZW9mIE1lbW9yeSkgewotCQkJCWl0Lm1lbW9yaWVzLmFkZChtZW1vcnlUcmFuc2Zvcm1lci5jcmVhdGVNZW1vcnkoYW1sdEh3TW9kdWxlKSkKLQotCQkJfSBlbHNlIGlmIChhbWx0SHdNb2R1bGUgaW5zdGFuY2VvZiBDYWNoZSkgewotCQkJCWl0Lm1lbW9yaWVzLmFkZChjYWNoZVRyYW5zZm9ybWVyLmNyZWF0ZUNhY2hlKGFtbHRId01vZHVsZSkpCi0JCQl9Ci0JCV0KLQotCQkvLyBjcmVhdGluZyBkZWZhdWx0IG1lbW9yeSByZWdpb25zCi0JCXZhciBpbmNocm9uUmFtUmVnaW9uID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVNZW1vcnlSZWdpb24KLQkJaW5jaHJvblJhbVJlZ2lvbi5uYW1lID0gInJhbSIKLQkJaW5jaHJvblJhbVJlZ2lvbi5iYXNlID0gMTY3NzcyMTYKLQkJaW5jaHJvblJhbVJlZ2lvbi5zZWN0aW9ucyA9ICJkYXRhOmJzczpzdGFjazpoZWFwIgotCQlpbmNocm9uUmFtUmVnaW9uLnBhZ2VzID0gMQotCQlpbmNocm9uUmFtUmVnaW9uLmZsYWdzID0gMjkwCi0KLQkJdmFyIGluY2hyb25Sb21SZWdpb24gPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZU1lbW9yeVJlZ2lvbgotCQlpbmNocm9uUm9tUmVnaW9uLm5hbWUgPSAicm9tIgotCQlpbmNocm9uUm9tUmVnaW9uLmJhc2UgPSAzMzU1NDQzMgotCQlpbmNocm9uUm9tUmVnaW9uLnNlY3Rpb25zID0gInRleHQiCi0JCWluY2hyb25Sb21SZWdpb24ucGFnZXMgPSAxCi0JCWluY2hyb25Sb21SZWdpb24uZmxhZ3MgPSAyNzUKLQotCQlpdC5tZW1vcnlSZWdpb25zLmFkZChpbmNocm9uUmFtUmVnaW9uKQotCQlpdC5tZW1vcnlSZWdpb25zLmFkZChpbmNocm9uUm9tUmVnaW9uKQotCi0JCS8vIENyZWF0aW9uIG9mIENvcmVzCi0JCXZhbCBhbWx0TW9kdWxlcyA9IGFtbHRIV01pY3JvQ29udHJvbGxlci5tb2R1bGVzCi0KLQkJYW1sdE1vZHVsZXMuZm9yRWFjaCBbIGFtbHRId01vZHVsZSB8Ci0JCQlpZiAoYW1sdEh3TW9kdWxlIGluc3RhbmNlb2YgUHJvY2Vzc2luZ1VuaXQpIHsKLQkJCQlpdC5jb3Jlcy5hZGQocHJvY2Vzc2luZ1VuaXRUcmFuc2Zvcm1lci5jcmVhdGVDcHVDb3JlKGFtbHRId01vZHVsZSkpCi0JCQkJaXQuY2xvY2sgPSBmcmVxdWVuY3lEb21haW5UcmFuc2Zvcm1lci5jcmVhdGVDbG9jayhhbWx0SHdNb2R1bGU/LmZyZXF1ZW5jeURvbWFpbikKLQkJCX0KLQkJXQotCi0JfQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ody9IV1N0cnVjdHVyZV9TeXN0ZW1UcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvSFdTdHJ1Y3R1cmVfU3lzdGVtVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlZjFjYmMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ody9IV1N0cnVjdHVyZV9TeXN0ZW1UcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLmh3Ci0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLk1vZGVsCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkNhY2hlCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkhXTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTWVtb3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlN0cnVjdHVyZVR5cGUKLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBIV1N0cnVjdHVyZV9TeXN0ZW1UcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIgewotCi0JQEluamVjdCBIV1N0cnVjdHVyZV9FQ1VUcmFuc2Zvcm1lciBlY3VUcmFuc2Zvcm1lcgotCi0JQEluamVjdCBIV1N0cnVjdHVyZV9NaWNyb0NvbnRyb2xsZXJUcmFuc2Zvcm1lciBtaWNyb0NvbnRyb2xsZXJUcmFuc2Zvcm1lcgotCi0JQEluamVjdCBNZW1vcnlUcmFuc2Zvcm1lciBtZW1vcnlUcmFuc2Zvcm1lcgotCi0JQEluamVjdCBDYWNoZVRyYW5zZm9ybWVyIGNhY2hlVHJhbnNmb3JtZXIKLQotCWRlZiB0cmFuc2Zvcm1IV1N5c3RlbShIV01vZGVsIGFtbHRIV01vZGVsLCBNb2RlbCBpbmNocm9uTW9kZWwpIHsKLQkJdmFsIGFtbHRIV1N0cnVjdHVyZXMgPSBhbWx0SFdNb2RlbC5zdHJ1Y3R1cmVzCi0KLQkJYW1sdEhXU3RydWN0dXJlcy5mb3JFYWNoIFsgYW1sdEhXU3RydWN0dXJlIHwKLQkJCWlmIChhbWx0SFdTdHJ1Y3R1cmUuc3RydWN0dXJlVHlwZSA9PSBTdHJ1Y3R1cmVUeXBlLlNZU1RFTSkgewotCi0JCQkJYW1sdEhXU3RydWN0dXJlLm1vZHVsZXMuZm9yRWFjaCBbIGFtbHRId01vZHVsZSB8Ci0JCQkJCWlmIChhbWx0SHdNb2R1bGUgaW5zdGFuY2VvZiBNZW1vcnkpIHsKLQkJCQkJCWluY2hyb25Nb2RlbC5tZW1vcmllcy5hZGQobWVtb3J5VHJhbnNmb3JtZXIuY3JlYXRlTWVtb3J5KGFtbHRId01vZHVsZSkpCi0JCQkJCX0gZWxzZSBpZiAoYW1sdEh3TW9kdWxlIGluc3RhbmNlb2YgQ2FjaGUpIHsKLQkJCQkJCWluY2hyb25Nb2RlbC5tZW1vcmllcy5hZGQoY2FjaGVUcmFuc2Zvcm1lci5jcmVhdGVDYWNoZShhbWx0SHdNb2R1bGUpKQotCQkJCQl9Ci0JCQkJXQotCi0JCQkJYW1sdEhXU3RydWN0dXJlLnN0cnVjdHVyZXMuZm9yRWFjaCBbIHN1YlN0cnVjdHVyZSB8Ci0JCQkJCWlmIChzdWJTdHJ1Y3R1cmUuc3RydWN0dXJlVHlwZSA9PSBTdHJ1Y3R1cmVUeXBlLkVDVSkgewotCi0JCQkJCQllY3VUcmFuc2Zvcm1lci50cmFuc2Zvcm1IV0VDVShzdWJTdHJ1Y3R1cmUsIGluY2hyb25Nb2RlbCkKLQkJCQkJfSBlbHNlIGlmIChzdWJTdHJ1Y3R1cmUuc3RydWN0dXJlVHlwZSA9PSBTdHJ1Y3R1cmVUeXBlLk1JQ1JPQ09OVFJPTExFUikgewotCi0JCQkJCQlpbmNocm9uTW9kZWwuY3B1cy5hZGQobWljcm9Db250cm9sbGVyVHJhbnNmb3JtZXIuY3JlYXRlQ3B1KHN1YlN0cnVjdHVyZSkpCi0JCQkJCX0KLQkJCQldCi0JCQl9IGVsc2UgaWYgKGFtbHRIV1N0cnVjdHVyZS5zdHJ1Y3R1cmVUeXBlID09IFN0cnVjdHVyZVR5cGUuRUNVKSB7Ci0JCQkJZWN1VHJhbnNmb3JtZXIudHJhbnNmb3JtSFdFQ1UoYW1sdEhXU3RydWN0dXJlLCBpbmNocm9uTW9kZWwpCi0JCQl9IGVsc2UgaWYgKGFtbHRIV1N0cnVjdHVyZS5zdHJ1Y3R1cmVUeXBlID09IFN0cnVjdHVyZVR5cGUuTUlDUk9DT05UUk9MTEVSKSB7Ci0KLQkJCQlpbmNocm9uTW9kZWwuY3B1cy5hZGQobWljcm9Db250cm9sbGVyVHJhbnNmb3JtZXIuY3JlYXRlQ3B1KGFtbHRIV1N0cnVjdHVyZSkpCi0JCQl9Ci0JCV0KLQotCX0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvSFdUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvSFdUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjUzOWM3Ny4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2h3L0hXVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5odwotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Nb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5GcmVxdWVuY3lEb21haW4KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuSFdNb2RlbAotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIEhXVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCUBJbmplY3QgSFdTdHJ1Y3R1cmVfU3lzdGVtVHJhbnNmb3JtZXIgaHdTdHJ1Y3R1cmVfU3lzdGVtVHJhbnNmb3JtZXIKLQotCUBJbmplY3QgRnJlcXVlbmN5RG9tYWluVHJhbnNmb3JtZXIgZnJlcXVlbmN5RG9tYWluVHJhbnNmb3JtZXIKLQotCWRlZiB0cmFuc2Zyb21IV01vZGVsKEhXTW9kZWwgYW1sdEhXTW9kZWwsIE1vZGVsIGluY2hyb25Nb2RlbCkgewotCi0JCWFtbHRIV01vZGVsLmRvbWFpbnMuZm9yRWFjaCBbIGRvbWFpbiB8Ci0JCQlpZiAoZG9tYWluIGluc3RhbmNlb2YgRnJlcXVlbmN5RG9tYWluKSB7Ci0JCQkJdmFyIGluY2hyb25DbG9jayA9IGZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyLmNyZWF0ZUNsb2NrKGRvbWFpbiBhcyBGcmVxdWVuY3lEb21haW4pCi0KLQkJCQlpbmNocm9uTW9kZWwuY2xvY2tzLmFkZChpbmNocm9uQ2xvY2spCi0JCQl9Ci0JCV0KLQotCQlod1N0cnVjdHVyZV9TeXN0ZW1UcmFuc2Zvcm1lci50cmFuc2Zvcm1IV1N5c3RlbShhbWx0SFdNb2RlbCwgaW5jaHJvbk1vZGVsKQotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ody9NZW1vcnlUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvTWVtb3J5VHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzMTU1YWIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9ody9NZW1vcnlUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLmh3Ci0KLWltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYVNlcnZpY2VzCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLk1lbW9yeQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIE1lbW9yeVRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0KLQlASW5qZWN0IEZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyIGZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyCi0JCi0JZGVmIGNyZWF0ZSBpbmNocm9uTWVtb3J5RmFjdG9yeS5jcmVhdGVNZW1vcnkgY3JlYXRlTWVtb3J5KE1lbW9yeSBhbWx0TWVtb3J5KSB7Ci0KLQkJaXQubmFtZSA9IGFtbHRNZW1vcnkubmFtZQotCi0JCWl0LmNsb2NrID0gZnJlcXVlbmN5RG9tYWluVHJhbnNmb3JtZXIuY3JlYXRlQ2xvY2soYW1sdE1lbW9yeT8uZnJlcXVlbmN5RG9tYWluKQotCi0JCXZhciBhbWx0RGF0YVNpemUgPSBhbWx0TWVtb3J5Py5kZWZpbml0aW9uLnNpemUKLQotCQlpZiAoYW1sdERhdGFTaXplICE9PSBudWxsKSB7Ci0JCQl2YXIgYnl0ZXMgPSBBbWFsdGhlYVNlcnZpY2VzLmNvbnZlcnRUb0JpdChhbWx0RGF0YVNpemUpLmRpdmlkZShuZXcgQmlnSW50ZWdlcigiOCIpKQotCi0JCQlpdC5zaXplID0gYnl0ZXMuaW50VmFsdWUKLQotCQl9Ci0KLQkJaXQucHJlc2NhbGVyID0gMWQKLQotCX0KLQkKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvUHJvY2Vzc2luZ1VuaXRUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vaHcvUHJvY2Vzc2luZ1VuaXRUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWZiMGEyYy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL2h3L1Byb2Nlc3NpbmdVbml0VHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5odwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3NpbmdVbml0Ci1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgUHJvY2Vzc2luZ1VuaXRUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIgewotCi0JZGVmIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUNwdUNvcmUgY3JlYXRlQ3B1Q29yZShQcm9jZXNzaW5nVW5pdCBhbWx0UHJvY2Vzc2luZ1VuaXQpIHsKLQotCQlpdC5uYW1lID0gYW1sdFByb2Nlc3NpbmdVbml0Lm5hbWUKLQotCQlpdC5wcmVzY2FsZXIgPSAxCi0JCQotCQlpdC5jb25uZWN0ZWRTbGF2ZSA9IGluY2hyb25NZW1vcnlGYWN0b3J5LmNyZWF0ZUluaXRpYXRvclBvcnQKLQotCX0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vbWFwcGluZy9NYXBwaW5nVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL21hcHBpbmcvTWFwcGluZ1RyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDY5ODk0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vbWFwcGluZy9NYXBwaW5nVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0ubWFwcGluZwotCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Nb2RlbAotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuU2NoZWR1bGVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLk1hcHBpbmdNb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5UYXNrU2NoZWR1bGVyCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMudXRpbHMuQW1sdENhY2hlTW9kZWwKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLmh3LlByb2Nlc3NpbmdVbml0VHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLm9zLk9TVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgTWFwcGluZ1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0KLQl2YXIgQW1sdENhY2hlTW9kZWwgY2FjaGVNb2RlbAotCUBJbmplY3QgUHJvY2Vzc2luZ1VuaXRUcmFuc2Zvcm1lciBwcm9jZXNzaW5nVW5pdFRyYW5zZm9ybWVyCi0JQEluamVjdCBPU1RyYW5zZm9ybWVyIG9zVHJhbnNmb3JtZXIKLQotCWRlZiB0cmFuc2Zyb21NYXBwaW5nTW9kZWwoTWFwcGluZ01vZGVsIGFtbHRNYXBwaW5nTW9kZWwsIE1vZGVsIGluY2hyb25Nb2RlbCkgewotCi0JCWNhY2hlTW9kZWwgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoQW1sdENhY2hlTW9kZWwpCi0KLQkJLy8gYnVpbGRpbmcgY2FjaGUKLQkJY2FjaGVNb2RlbC5idWlsZFByb2Nlc3Nlc19TY2hlZHVsZXJBbGxvY2F0aW9uTWFwKGFtbHRNYXBwaW5nTW9kZWwpCi0KLQkJdmFsIHJvb3RUYXNrU2NoZWR1bGVycyA9IGFtbHRNYXBwaW5nTW9kZWw/LnNjaGVkdWxlckFsbG9jYXRpb24/Lm1hcCBbIGFtbHRTY2hlZHVsZXJBbGxvY2F0aW9uIHwKLQotCQkJaWYgKGFtbHRTY2hlZHVsZXJBbGxvY2F0aW9uLnNjaGVkdWxlciBpbnN0YW5jZW9mIFRhc2tTY2hlZHVsZXIpIHsKLQkJCQlyZXR1cm4gKGFtbHRTY2hlZHVsZXJBbGxvY2F0aW9uLnNjaGVkdWxlciBhcyBUYXNrU2NoZWR1bGVyKS5yb290U2NoZWR1bGVyCi0JCQl9Ci0KLQkJXS50b1NldC5maWx0ZXJbaXQgIT09IG51bGxdCi0KLQkJLy8gZ3JvdXAgZWxlbWVudHMgYmFzZWQgb24gdGhlIE9TCi0JCXZhciBhbWx0T3NUYXNrU2NoZWR1bGVyc01hcCA9IGNhY2hlTW9kZWwuZ3JvdXBUYXNrU2NoZHVsZXJzKHJvb3RUYXNrU2NoZWR1bGVycyk7Ci0KLQkJZm9yIChhbWx0T1MgOiBhbWx0T3NUYXNrU2NoZWR1bGVyc01hcC5rZXlTZXQpIHsKLQotCQkJdmFyIGFtbFJvb3RUYXNrU2NoZWR1bGVycyA9IGFtbHRPc1Rhc2tTY2hlZHVsZXJzTWFwLmdldChhbWx0T1MpCi0KLQkJCXZhbCBTY2hlZHVsZXIgaW5jaHJvblJvb3RJc3JTY2hlZHVsZXIgPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVNjaGVkdWxlcgotCi0JCQlpbmNocm9uUm9vdElzclNjaGVkdWxlci50aW1lU2xpY2UgPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVRpbWUKLQkJCWluY2hyb25Sb290SXNyU2NoZWR1bGVyLnBlcmlvZCA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCQkJaW5jaHJvblJvb3RJc3JTY2hlZHVsZXIubWF4UmV0YXJkID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVUaW1lCi0JCQlpbmNocm9uUm9vdElzclNjaGVkdWxlci5tYXhBZHZhbmNlID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVUaW1lCi0KLQkJCS8vIEFkZGluZyBSb290IElTUiBzY2hlZHVsZXIgdG8gUlRPU0NvbmZpZwotCQkJb3NUcmFuc2Zvcm1lci5jcmVhdGVSdG9zQ29uZmlnKGFtbHRPUykuc2NoZWR1bGFibGVzLmFkZChpbmNocm9uUm9vdElzclNjaGVkdWxlcikKLQkJCS8vY2FjaGVNb2RlbC5nZXRJbmNocm9uUnRvc0NvbmZpZyhhbWx0T1MubmFtZSk/LnNjaGVkdWxhYmxlcy5hZGQoaW5jaHJvblJvb3RJc3JTY2hlZHVsZXIpCi0KLQkJCWlmIChhbWx0T1MuaW50ZXJydXB0Q29udHJvbGxlcnMuc2l6ZSA9PSAwKSB7Ci0KLQkJCQlpbmNocm9uUm9vdElzclNjaGVkdWxlci5uYW1lID0gYW1sdE9TLm5hbWUgKyAiX0lTUkR1bW15IgotCi0JCQkJLy8gVE9ETzogTWlncmF0aW9uIHJ1bGUgLT4gY29uc2lkZXJpbmcgcmVzcG9uc2liaWxpdHkgZnJvbSB0aGUgZmlyc3QgVGFza1NjaGVkdWxlciBvZiB0aGlzIE9TCi0JCQkJdmFyIGFtbHRTY2hlZHVsZXJBbGxvY2F0aW9uID0gY2FjaGVNb2RlbC5zY2hlZHVsZXJfU2NoZWR1bGVyQWxsb2NhdGlvbk1hcC5nZXQoCi0JCQkJCWFtbFJvb3RUYXNrU2NoZWR1bGVycy5nZXQoMCkpCi0KLQkJCQlhbWx0U2NoZWR1bGVyQWxsb2NhdGlvbi5yZXNwb25zaWJpbGl0eS5mb3JFYWNoIFsgYW1sdFByb2Nlc3NpbmdVbml0IHwKLQkJCQkJaW5jaHJvblJvb3RJc3JTY2hlZHVsZXIuY3B1Q29yZXMuYWRkKHByb2Nlc3NpbmdVbml0VHJhbnNmb3JtZXIuY3JlYXRlQ3B1Q29yZShhbWx0UHJvY2Vzc2luZ1VuaXQpKQotCQkJCV0KLQotCQkJfSBlbHNlIGlmIChhbWx0T1MuaW50ZXJydXB0Q29udHJvbGxlcnMuc2l6ZSA9PSAxKSB7Ci0KLQkJCQlpbmNocm9uUm9vdElzclNjaGVkdWxlci5uYW1lID0gYW1sdE9TLmludGVycnVwdENvbnRyb2xsZXJzLmdldCgwKS5uYW1lCi0KLQkJCQl2YXIgYW1sdFNjaGVkdWxlckFsbG9jYXRpb24gPSBjYWNoZU1vZGVsLnNjaGVkdWxlcl9TY2hlZHVsZXJBbGxvY2F0aW9uTWFwLmdldCgKLQkJCQkJYW1sdE9TLmludGVycnVwdENvbnRyb2xsZXJzLmdldCgwKSkKLQotCQkJCWFtbHRTY2hlZHVsZXJBbGxvY2F0aW9uLnJlc3BvbnNpYmlsaXR5LmZvckVhY2ggWyBhbWx0UHJvY2Vzc2luZ1VuaXQgfAotCQkJCQl7Ci0JCQkJCQlpbmNocm9uUm9vdElzclNjaGVkdWxlci5jcHVDb3Jlcy5hZGQocHJvY2Vzc2luZ1VuaXRUcmFuc2Zvcm1lci5jcmVhdGVDcHVDb3JlKGFtbHRQcm9jZXNzaW5nVW5pdCkpCi0JCQkJCX0KLQkJCQldCi0KLQkJCQljYWNoZU1vZGVsLmFkZEluY2hyb25TY2hlZHVsZXJfYW1sdFNjaGVkdWxlck1hcChpbmNocm9uUm9vdElzclNjaGVkdWxlciwKLQkJCQkJYW1sdE9TLmludGVycnVwdENvbnRyb2xsZXJzLmdldCgwKSkKLQotCQkJfSBlbHNlIHsKLQkJCQkvLyB0b2RvOiB2YWxpZGF0aW9uIHJ1bGUKLQkJCX0KLQotCQkJLy8gYXNzb2NpYXRpbmcgYWxsIHRoZSBSb290IHRhc2sgc2NoZWR1bGVycyB0byB0aGUgSVNSIHJvb3Qgc2NoZWR1bGVyCi0JCQlmb3IgKGFtbHRSb290VGFza1NjaGVkdWxlciA6IGFtbFJvb3RUYXNrU2NoZWR1bGVycykgewotCi0JCQkJY3JlYXRlSW5jaHJvblNjaGVkdWxlcihhbWx0Um9vdFRhc2tTY2hlZHVsZXIsIGluY2hyb25Sb290SXNyU2NoZWR1bGVyLCBjYWNoZU1vZGVsKQotCQkJfQotCi0JCX0KLQl9Ci0KLQlwcm90ZWN0ZWQgZGVmIHZvaWQgY3JlYXRlSW5jaHJvblNjaGVkdWxlcihUYXNrU2NoZWR1bGVyIGFtbHRUYXNrU2NoZWR1bGVyLCBTY2hlZHVsZXIgcGFyZW50SVNSU2NoZWR1bGVyLAotCQlBbWx0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsKSB7Ci0KLQkJdmFsIFNjaGVkdWxlciBpbmNocm9uU2NoZWR1bGVyID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVTY2hlZHVsZXIKLQotCQlpbmNocm9uU2NoZWR1bGVyLnRpbWVTbGljZSA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCQlpbmNocm9uU2NoZWR1bGVyLnBlcmlvZCA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCQlpbmNocm9uU2NoZWR1bGVyLm1heFJldGFyZCA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCQlpbmNocm9uU2NoZWR1bGVyLm1heEFkdmFuY2UgPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVRpbWUKLQotCQlpbmNocm9uU2NoZWR1bGVyLm5hbWUgPSBhbWx0VGFza1NjaGVkdWxlci5uYW1lCi0KLQkJcGFyZW50SVNSU2NoZWR1bGVyLnNjaGVkdWxhYmxlcy5hZGQoaW5jaHJvblNjaGVkdWxlcikKLQotCQl2YXIgYW1sdFNjaGVkdWxlckFsbG9jYXRpb24gPSBjYWNoZU1vZGVsLnNjaGVkdWxlcl9TY2hlZHVsZXJBbGxvY2F0aW9uTWFwLmdldChhbWx0VGFza1NjaGVkdWxlcikKLQotCQlhbWx0U2NoZWR1bGVyQWxsb2NhdGlvbi5yZXNwb25zaWJpbGl0eS5mb3JFYWNoIFsgYW1sdFByb2Nlc3NpbmdVbml0IHwKLQkJCWluY2hyb25TY2hlZHVsZXIuY3B1Q29yZXMuYWRkKHByb2Nlc3NpbmdVbml0VHJhbnNmb3JtZXIuY3JlYXRlQ3B1Q29yZShhbWx0UHJvY2Vzc2luZ1VuaXQpKQotCQldCi0KLQkJdmFyIGFtbHRDaGlsZFRhc2tTY2hlZHVsZXJzID0gYW1sdFRhc2tTY2hlZHVsZXIuY2hpbGRTY2hlZHVsZXJzCi0KLQkJZm9yIChhbWx0Q2hpbGRUYXNrU2NoZWR1bGVyIDogYW1sdENoaWxkVGFza1NjaGVkdWxlcnMpIHsKLQkJCWNyZWF0ZUluY2hyb25TY2hlZHVsZXIoYW1sdENoaWxkVGFza1NjaGVkdWxlciwgaW5jaHJvblNjaGVkdWxlciwgY2FjaGVNb2RlbCkKLQkJfQotCi0JCWNhY2hlTW9kZWwuYWRkSW5jaHJvblNjaGVkdWxlcl9hbWx0U2NoZWR1bGVyTWFwKGluY2hyb25TY2hlZHVsZXIsIGFtbHRUYXNrU2NoZWR1bGVyKQotCX0KLQotCS8qKgotCSAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcmV0dXJuIHRoZSByb290IFRhc2tTY2hlZHVsZXIgb2JqZWN0IAotCSAqLwotCWRlZiBUYXNrU2NoZWR1bGVyIGdldFJvb3RTY2hlZHVsZXIoVGFza1NjaGVkdWxlciBzY2gpIHsKLQotCQlpZiAoc2NoLnBhcmVudFNjaGVkdWxlciA9PT0gbnVsbCkgewotCQkJcmV0dXJuIHNjaAotCQl9Ci0JCXJldHVybiBnZXRSb290U2NoZWR1bGVyKHNjaC5wYXJlbnRTY2hlZHVsZXIpCi0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL29zL09TVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL29zL09TVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwNjljM2QuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9vcy9PU1RyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0ub3MKLQotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuT1NNb2RlbAotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLk9wZXJhdGluZ1N5c3RlbQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBPU1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0JCQotCi0JZGVmIHRyYW5zZnJvbU9TTW9kZWwoT1NNb2RlbCBhbWx0SFdNb2RlbCwgTW9kZWwgaW5jaHJvbk1vZGVsKSB7Ci0KLQkJYW1sdEhXTW9kZWwub3BlcmF0aW5nU3lzdGVtcy5mb3JFYWNoIFsgYW1sdE9TIHwKLQkJCXZhciBpbmNocm9uU3lzdGVtID0gY3JlYXRlR2VuZXJpY1N5c3RlbShhbWx0T1MpCi0KLQkJCS8vIEFkZGluZyBJbmNocm9uIFN5c3RlbSBvYmplY3QgdG8gTW9kZWwKLQkJCWluY2hyb25Nb2RlbC5zeXN0ZW1zLmFkZChpbmNocm9uU3lzdGVtKQotCQldCi0JfQotCQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVHZW5lcmljU3lzdGVtIGNyZWF0ZUdlbmVyaWNTeXN0ZW0oT3BlcmF0aW5nU3lzdGVtIGFtbHRPUyl7Ci0KLQkJCWl0Lm5hbWUgPSBhbWx0T1MubmFtZSArICJfU1lTVEVNIgotCi0JCQlpdC5jb21wb25lbnRzLmFkZChjcmVhdGVDb21wb25lbnQoYW1sdE9TKSkKLQotCQkJaXQucnRvc0NvbmZpZyA9IGNyZWF0ZVJ0b3NDb25maWcoYW1sdE9TKQotCi0JCQkvLyBSdG9zTW9kZWwgd2l0aCBkZWZhdWx0IGF0dHJpYnV0ZXMKLQkJCWl0LnJ0b3NNb2RlbCA9IGNyZWF0ZVJ0b3NNb2RlbChhbWx0T1MpCi0JfQotCQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVDb21wb25lbnQgY3JlYXRlQ29tcG9uZW50KE9wZXJhdGluZ1N5c3RlbSBhbWx0T1MpewotCQlpdC5uYW1lID0gYW1sdE9TLm5hbWUgKyAiX1NXQyIKLQl9Ci0JCi0JZGVmIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVJ0b3NDb25maWcgY3JlYXRlUnRvc0NvbmZpZyhPcGVyYXRpbmdTeXN0ZW0gYW1sdE9TKXsKLQkJaXQubmFtZSA9IGFtbHRPUy5uYW1lCi0JfQotCQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVSdG9zTW9kZWwgY3JlYXRlUnRvc01vZGVsKE9wZXJhdGluZ1N5c3RlbSBhbWx0T1MpewotCQlpdC5uYW1lID0gImdlbmVyaWMiCi0JCWl0LnJldHVyblR5cGUgPSAidm9pZCIJCQotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdGltdWxpL1N0aW11bGlUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3RpbXVsaS9TdGltdWxpVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiZjNlNmEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdGltdWxpL1N0aW11bGlUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdGltdWxpOwotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Nb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5GcmVxdWVuY3lEb21haW4KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUGVyaW9kaWNTdGltdWx1cwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5TdGltdWxpTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuU3RpbXVsdXMKLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy5tMm0udXRpbHMuVGltZVRyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLnV0aWxzLkFtbHRDYWNoZU1vZGVsCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS5ody5GcmVxdWVuY3lEb21haW5UcmFuc2Zvcm1lcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Qcm9jZXNzCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkludGVyUHJvY2Vzc1N0aW11bHVzCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS51dGlscy5Db3VudGVyVXRpbHMKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuRXZlbnRTdGltdWx1cwotaW1wb3J0IHRlbXBsYXRlcy5tMm0uc3cuTW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy5tMm0uc3cuQ2FsbEdyYXBoVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkFjdGl2YXRpb25JdGVtCi0KLUBTaW5nbGV0b24KLWNsYXNzIFN0aW11bGlUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIgewotCi0JdmFyIEFtbHRDYWNoZU1vZGVsIGNhY2hlTW9kZWwKLQotCUBJbmplY3QgVGltZVRyYW5zZm9ybWVyIHRpbWVVdGlsc1RyYW5zZm9ybWVyCi0JQEluamVjdCBGcmVxdWVuY3lEb21haW5UcmFuc2Zvcm1lciBmcmVxdWVuY3lEb21haW5UcmFuc2Zvcm1lcgotCUBJbmplY3QgTW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lciBtb2RlVmFsdWVEaXNqdW5jdGlvblRyYW5zZm9ybWVyCi0JQEluamVjdCBDYWxsR3JhcGhUcmFuc2Zvcm1lciBjYWxsR3JhcGhUcmFuc2Zvcm1lcgotCi0JCi0JZGVmIGNyZWF0ZSBpbmNocm9uU3RpbXVsYXRpb25GYWN0b3J5LmNyZWF0ZVN0aW11bGF0aW9uU2NlbmFyaW8gY3JlYXRlU3RpbXVsYXRpb25TY2VuYXJpbyhTdGltdWxpTW9kZWwgYW1sdFN0aW11bGlNb2RlbCwgTW9kZWwgaW5jaHJvbk1vZGVsKXsKLQkJaXQubmFtZSA9ICJEZWZhdWx0U2NlbmFyaW8iCi0JCWluY2hyb25Nb2RlbC5zdGltdWxhdGlvblNjZW5hcmlvcy5hZGQoaXQpCi0JCWluY2hyb25Nb2RlbC5kZWZhdWx0U2NlbmFyaW89aXQKLQl9Ci0KLQotCWRlZiBkaXNwYXRjaCBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVBY3RpdmF0aW9uQ29ubmVjdGlvbiBjcmVhdGVBY3RpdmF0aW9uQ29ubmVjdGlvbihTdGltdWx1cyBhbWx0U3RpbXVsdXMpIHsKLQkJaXQubmFtZSA9IGFtbHRTdGltdWx1cy5uYW1lCi0JCS8vaG9vayBpbnRvIDxyb290Pi0+Y29ubmVjdGlvbnMKLQkJaW5jaHJvblJvb3QuY29ubmVjdGlvbnMuYWRkKGl0KQotCX0KLQkKLQkKLQlkZWYgZGlzcGF0Y2ggY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQWN0aXZhdGlvbkNvbm5lY3Rpb24gY3JlYXRlQWN0aXZhdGlvbkNvbm5lY3Rpb24oUGVyaW9kaWNTdGltdWx1cyBhbWx0U3RpbXVsdXMpIHsKLQkJaXQubmFtZSA9IGFtbHRTdGltdWx1cy5uYW1lCi0JCS8vaG9vayBpbnRvIHN0aW11bGkgZ2VuZXJhdG9yCi0JCXZhciBpbmNocm9uUmFuZG9tU3RpbXVsaUdlbmVyYXRvciA9IGNyZWF0ZVJhbmRvbVN0aW11bGlHZW5lcmF0b3IoYW1sdFN0aW11bHVzKQotCQlpbmNocm9uUmFuZG9tU3RpbXVsaUdlbmVyYXRvci5jb25uZWN0aW9ucy5hZGQoaXQpCi0JCS8vaG9vayBzdGltdWxpIGdlbmVyYXRvciBpbnRvIGRlZmF1bHQgc2NlbmFyaW8KLQkJdmFyIGluY2hyb25TdGltdWxhdGlvblNjZW5hcmlvID0gY3JlYXRlU3RpbXVsYXRpb25TY2VuYXJpbyhhbWFsdGhlYVJvb3Quc3RpbXVsaU1vZGVsLCBpbmNocm9uUm9vdCkKLQkJaW5jaHJvblN0aW11bGF0aW9uU2NlbmFyaW8uZ2VuZXJhdG9ycy5hZGQoaW5jaHJvblJhbmRvbVN0aW11bGlHZW5lcmF0b3IpCi0JfQotCQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVBY3RpdmF0aW9uSXRlbSBjcmVhdGVBY3RpdmF0aW9uSXRlbShTdGltdWx1cyBzdGltdWx1cyl7Ci0JCQotCX0KLQkKLQkKLQlkZWYgY3JlYXRlIGluY2hyb25TdGltdWxhdGlvbkZhY3RvcnkuY3JlYXRlUmFuZG9tU3RpbXVsaUdlbmVyYXRvciBjcmVhdGVSYW5kb21TdGltdWxpR2VuZXJhdG9yKAotCQlQZXJpb2RpY1N0aW11bHVzIGFtbHRTdGltdWx1cykgewotCi0JCWl0Lm5hbWUgPSBhbWx0U3RpbXVsdXMubmFtZQotCQlpdC5zdGFydE9mZnNldCA9IHRpbWVVdGlsc1RyYW5zZm9ybWVyLmNyZWF0ZVRpbWUoYW1sdFN0aW11bHVzLm9mZnNldCkKLQkJaXQucGVyaW9kID0gdGltZVV0aWxzVHJhbnNmb3JtZXIuY3JlYXRlVGltZShhbWx0U3RpbXVsdXMucmVjdXJyZW5jZSkKLQotCQl2YXIgaW5jaHJvbkFjdGl2YXRpb25Db25uZWN0aW9uID0gY3JlYXRlQWN0aXZhdGlvbkNvbm5lY3Rpb24oYW1sdFN0aW11bHVzKQotCQlpdC5jb25uZWN0aW9ucy5hZGQoaW5jaHJvbkFjdGl2YXRpb25Db25uZWN0aW9uKQotCi0JCXZhciBpbmNocm9uQ2FsbEdyYXBoID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVDYWxsR3JhcGgKLQkJdmFyIGluY2hyb25DYWxsU2VxdWVuY2UgPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUNhbGxTZXF1ZW5jZQotCQlpbmNocm9uQ2FsbFNlcXVlbmNlLm5hbWUgPSAiQ1MiCi0JCWluY2hyb25DYWxsR3JhcGguZ3JhcGhFbnRyaWVzLmFkZChpbmNocm9uQ2FsbFNlcXVlbmNlKQotCQkKLQkJdmFyIGluY2hyb25BY3RpdmF0aW9uSXRlbSA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQWN0aXZhdGlvbkl0ZW0KLQkJaW5jaHJvbkFjdGl2YXRpb25JdGVtLm5hbWUgPSAiQWN0aXZhdGlvbkl0ZW1fIisgYW1sdFN0aW11bHVzLm5hbWUKLQkJaW5jaHJvbkFjdGl2YXRpb25JdGVtLmNvbm5lY3Rpb24gPSBpbmNocm9uQWN0aXZhdGlvbkNvbm5lY3Rpb24KLQkJaW5jaHJvbkNhbGxTZXF1ZW5jZS5jYWxscy5hZGQoaW5jaHJvbkFjdGl2YXRpb25JdGVtKQotCQlpdC50YXJnZXRzID0gaW5jaHJvbkNhbGxHcmFwaAotCi0JCS8vIFRPRE86IGNoZWNrIGlmIHRoZSByaWdodCBmcmVxdWVuY3kgY2FuIGJlIGZldGNoZWQgKGJlbG93IHNvbHV0aW9uIGlzIGdvb2QgYXQgcHJlc2VudC4gSW4gbG9uZyBydW4gY2xhcmlmeSB0aGlzIHRvcGljIGluIGRldGFpbCkKLQkJdmFyIGZpcnN0RnJlcXVlbmN5RG9tYWluID0gZ2V0QW1hbHRoZWFSb290KCkuaHdNb2RlbC5kb21haW5zLmZpbmRGaXJzdCBbIGRvbWFpbiB8IGRvbWFpbiBpbnN0YW5jZW9mIEZyZXF1ZW5jeURvbWFpbl0KLQkJaWYgKGZpcnN0RnJlcXVlbmN5RG9tYWluICE9PSBudWxsKXsKLQkJCWl0LmNsb2NrID0gIGZyZXF1ZW5jeURvbWFpblRyYW5zZm9ybWVyLmNyZWF0ZUNsb2NrKGZpcnN0RnJlcXVlbmN5RG9tYWluIGFzIEZyZXF1ZW5jeURvbWFpbikKLQkJCWl0LnZhcmlhdGlvbiA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZURpc3RyaWJ1dGlvbgotCQkJaXQubWluSW50ZXJBcnJpdmFsVGltZSA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCQkJaXQuc3RhcnRPZmZzZXRWYXJpYXRpb24gPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVRpbWVEaXN0cmlidXRpb24KLQkJfQkKLQl9Ci0JCi0JCi0JZGVmIGRpc3BhdGNoIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUFjdGl2YXRlUHJvY2VzcyBjcmVhdGVBY3RpdmF0ZVByb2Nlc3MoU3RpbXVsdXMgYW1sdFN0aW11bGksIFByb2Nlc3MgYW1sdFByb2Nlc3MpIHsKLQkJdmFsIGluY2hyb25BY3RpdmF0aW9uQ29ubmVjdGlvbiA9IGNyZWF0ZUFjdGl2YXRpb25Db25uZWN0aW9uKGFtbHRTdGltdWxpKQkJCQkJCi0JCWNhY2hlTW9kZWwgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoQW1sdENhY2hlTW9kZWwpCi0JCXZhciBhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcCA9IGNhY2hlTW9kZWwuYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXAKLQkJaXQudGFyZ2V0ID0gYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXAuZ2V0KGFtbHRQcm9jZXNzKQotCQlpbmNocm9uQWN0aXZhdGlvbkNvbm5lY3Rpb24uYWN0aXZhdGlvbnMuYWRkKGl0KQotCX0KLQkKLQkKLQlkZWYgZGlzcGF0Y2ggY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQWN0aXZhdGVQcm9jZXNzIGNyZWF0ZUFjdGl2YXRlUHJvY2VzcyhJbnRlclByb2Nlc3NTdGltdWx1cyBhbWx0U3RpbXVsaSxQcm9jZXNzIGFtbHRQcm9jZXNzKSB7Ci0JCXZhbCBpbmNocm9uQWN0aXZhdGlvbkNvbm5lY3Rpb24gPSBjcmVhdGVBY3RpdmF0aW9uQ29ubmVjdGlvbihhbWx0U3RpbXVsaSkJCQkJCQotCQljYWNoZU1vZGVsID0gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKEFtbHRDYWNoZU1vZGVsKQotCQl2YXIgYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXAgPSBjYWNoZU1vZGVsLmFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwCi0JCWl0LnRhcmdldCA9IGFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwLmdldChhbWx0UHJvY2VzcykKLQkJaWYgKGFtbHRTdGltdWxpLmNvdW50ZXIgIT09IG51bGwpewkJCQkKLQkJCWl0LnBlcmlvZCA9IENvdW50ZXJVdGlscy5nZXRQcmVzY2FsZXJBc0ludGVnZXIoYW1sdFN0aW11bGkuY291bnRlcikKLQkJCWl0Lm9mZnNldCA9IENvdW50ZXJVdGlscy5nZXRPZmZzZXRBc0ludGVnZXIoYW1sdFN0aW11bGkuY291bnRlcikKLQkJfQkJCQkJCi0JCWluY2hyb25BY3RpdmF0aW9uQ29ubmVjdGlvbi5hY3RpdmF0aW9ucy5hZGQoaXQpCi0JfQotCQotCQotCWRlZiBkaXNwYXRjaCBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVBY3RpdmF0ZVByb2Nlc3MgY3JlYXRlQWN0aXZhdGVQcm9jZXNzKEV2ZW50U3RpbXVsdXMgYW1sdFN0aW11bGksIFByb2Nlc3MgYW1sdFByb2Nlc3MgKSB7Ci0JCXZhbCBpbmNocm9uQWN0aXZhdGlvbkNvbm5lY3Rpb24gPSBjcmVhdGVBY3RpdmF0aW9uQ29ubmVjdGlvbihhbWx0U3RpbXVsaSkJCQkJCQotCQljYWNoZU1vZGVsID0gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKEFtbHRDYWNoZU1vZGVsKQotCQl2YXIgYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXAgPSBjYWNoZU1vZGVsLmFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwCi0JCWl0LnRhcmdldCA9IGFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwLmdldChhbWx0UHJvY2VzcykKLQkJaWYgKGFtbHRTdGltdWxpLmNvdW50ZXIgIT09IG51bGwpewkJCQkKLQkJCWl0LnBlcmlvZCA9IENvdW50ZXJVdGlscy5nZXRQcmVzY2FsZXJBc0ludGVnZXIoYW1sdFN0aW11bGkuY291bnRlcikKLQkJCWl0Lm9mZnNldCA9IENvdW50ZXJVdGlscy5nZXRPZmZzZXRBc0ludGVnZXIoYW1sdFN0aW11bGkuY291bnRlcikKLQkJfQkJCQkJCi0JCWluY2hyb25BY3RpdmF0aW9uQ29ubmVjdGlvbi5hY3RpdmF0aW9ucy5hZGQoaXQpCi0JfQotCQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVGdW5jdGlvbiBjcmVhdGVEdW1teUZ1bmN0aW9uKFN0aW11bHVzIGFtbHRTdGltdWx1cywgQWN0aXZhdGlvbkl0ZW0gaW5jaHJvbkFjdGl2YXRpb25JdGVtKXsKLQkJaXQubmFtZT0iRHVtbXlfIisgZ2V0U3RpbXVsdXNOYW1lKGFtbHRTdGltdWx1cykKLSAJCXZhbCBpbmNocm9uQ2FsbEdyYXBoPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQ2FsbEdyYXBoCSAKLSAJCWl0LmNhbGxHcmFwaD1pbmNocm9uQ2FsbEdyYXBoCi0gCQkKLSAJCXZhciBhbWx0Q29uZGl0aW9uPSBnZXRFbmFibGVWYWx1ZUxpc3QoYW1sdFN0aW11bHVzKQotCQlpZihhbWx0Q29uZGl0aW9uIT09bnVsbCl7Ci0JCQl2YWwgaW5jaHJvbk1vZGVTd2l0Y2ggPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZU1vZGVTd2l0Y2gKLQkJCWluY2hyb25Nb2RlU3dpdGNoLm5hbWUgPSJFdmVudFN0aW11bHVzQ29uZGl0aW9uIgotCQkJdmFsIGluY2hyb25Nb2RlU3dpdGNoRW50cnk9aW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVNb2RlU3dpdGNoRW50cnkKLQotCQkJLy8JQWRkaW5nIGVudHJ5IHdpdGggY29uZGl0aW9uCi0gCQkJaW5jaHJvbk1vZGVTd2l0Y2guZW50cmllcy5hZGQoaW5jaHJvbk1vZGVTd2l0Y2hFbnRyeSkKLQkJCXZhciBpbmNocm9uQ29uZGl0b249bW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lci5jcmVhdGVNb2RlQ29uZGl0aW9uKGFtbHRDb25kaXRpb24pCi0JCQlpbmNocm9uTW9kZVN3aXRjaEVudHJ5LmNvbmRpdGlvbiA9IGluY2hyb25Db25kaXRvbgotCQkJCi0JCQkvL2FkZCBhY3RpdmF0aW9uIGl0ZW0gdG8gY2FsbCBzZXF1ZW5jZSB3aXRoaW4gbW9kZSBzd2l0Y2gncyBjYWxsIHNlcXVlbmNlCi0JCQl2YWwgaW5jaHJvbkNhbGxTZXF1ZW5jZV9BY3RpdmF0aW9uSXRlbT1pbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUNhbGxTZXF1ZW5jZQotCQkJaW5jaHJvbkNhbGxTZXF1ZW5jZV9BY3RpdmF0aW9uSXRlbS5jYWxscy5hZGQoaW5jaHJvbkFjdGl2YXRpb25JdGVtKQotCQkJaXQuY2FsbEdyYXBoLmdyYXBoRW50cmllcy5hZGQoaW5jaHJvbkNhbGxTZXF1ZW5jZV9BY3RpdmF0aW9uSXRlbSkKLQkJCWluY2hyb25Nb2RlU3dpdGNoRW50cnkuZ3JhcGhFbnRyaWVzLmFkZChpbmNocm9uQ2FsbFNlcXVlbmNlX0FjdGl2YXRpb25JdGVtKQotCQkJCQkJCQotCQkJLy9hZGQgTW9kZUNvbmRpdGlvbiB0byB0aGUgSW5jaHJvbiBNb2RlbDogYXQgcm9vdCAtLT4gZ2xvYmFsIGNvbmRpdGlvbgotCQkJaWYoaW5jaHJvbkNvbmRpdG9uLmVDb250YWluZXI9PT1udWxsKXsKLQkJCQlnZXRJbmNocm9uUm9vdCgpLmdsb2JhbE1vZGVDb25kaXRpb25zLmFkZChpbmNocm9uQ29uZGl0b24pCi0JCQl9Ci0JCQkvL2FkZCBtb2RlIGV2YWx1YXRpb24gaXRlbSBiZWZvcmUgbW9kZSBzd2l0Y2gKLQkJCWNhbGxHcmFwaFRyYW5zZm9ybWVyLmNyZWF0ZUR1bW15Q2FsbFNlcXVlbmNlV2l0aE1vZGVTd2l0Y2hFdmFsdWF0aW9uKGluY2hyb25Nb2RlU3dpdGNoLCBpdC5jYWxsR3JhcGgpOwotCQkJCi0JCQkvL2FkZCBtb2RlIHN3aXRjaCB0byBkdW1teSBmdW5jdGlvbiBjYWxsIGdyYXBoCi0JCSAJaXQuY2FsbEdyYXBoLmdyYXBoRW50cmllcy5hZGQoaW5jaHJvbk1vZGVTd2l0Y2gpCi0JCQkKLQkJfSBlbHNlIHsKLQkJCXZhbCBpbmNocm9uQ2FsbFNlcXVlbmNlX0FjdGl2YXRpb25JdGVtPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQ2FsbFNlcXVlbmNlCi0JCQlpdC5jYWxsR3JhcGguZ3JhcGhFbnRyaWVzLmFkZChpbmNocm9uQ2FsbFNlcXVlbmNlX0FjdGl2YXRpb25JdGVtKQkKLQkJfQotIAl9Ci0JIAotCSBwcml2YXRlIGRlZiBkaXNwYXRjaCBnZXRTdGltdWx1c05hbWUoU3RpbXVsdXMgc3RpbXVsdXMpe3JldHVybiAiU3RpbXVsdXMifQotCSBwcml2YXRlIGRlZiBkaXNwYXRjaCBnZXRTdGltdWx1c05hbWUoRXZlbnRTdGltdWx1cyBzdGltdWx1cyl7cmV0dXJuIHN0aW11bHVzLm5hbWV9Ci0JIHByaXZhdGUgZGVmIGRpc3BhdGNoIGdldFN0aW11bHVzTmFtZShJbnRlclByb2Nlc3NTdGltdWx1cyBzdGltdWx1cyl7cmV0dXJuIHN0aW11bHVzLm5hbWV9Ci0JIAotCSAKLQkgcHJpdmF0ZSBkZWYgZGlzcGF0Y2ggZ2V0RW5hYmxlVmFsdWVMaXN0KFN0aW11bHVzIHN0aW11bHVzKXtyZXR1cm4gbnVsbH0KLQkgcHJpdmF0ZSBkZWYgZGlzcGF0Y2ggZ2V0RW5hYmxlVmFsdWVMaXN0KEV2ZW50U3RpbXVsdXMgc3RpbXVsdXMpe3JldHVybiBzdGltdWx1cy5lbmFibGluZ01vZGVWYWx1ZUxpc3R9Ci0JIHByaXZhdGUgZGVmIGRpc3BhdGNoIGdldEVuYWJsZVZhbHVlTGlzdChJbnRlclByb2Nlc3NTdGltdWx1cyBzdGltdWx1cyl7cmV0dXJuIHN0aW11bHVzLmVuYWJsaW5nTW9kZVZhbHVlTGlzdH0KLQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvQ2FsbEdyYXBoVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L0NhbGxHcmFwaFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjIzYzhhLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvQ2FsbEdyYXBoVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3Ci0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLk1vZGVTd2l0Y2gKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0Ci1pbXBvcnQgamF2YS51dGlsLk1hcAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5DYWxsR3JhcGgKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUHJvY2VzcwotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi0KLUBTaW5nbGV0b24KLWNsYXNzIENhbGxHcmFwaFRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcnsKLQkKLQlASW5qZWN0IEdyYXBoRW50cnlCYXNlVHJhbnNmb3JtZXIgZ3JhcGhFbnRyeUJhc2VUcmFuc2Zvcm1lcgotCQotCWRlZiB2b2lkIHRyYW5zZm9ybUNhbGxHcmFwaChDYWxsR3JhcGggYW1sdEdyYXBoLCBQcm9jZXNzIGFtbHRUYXNrLAotCQlNYXA8UHJvY2VzcywgIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuUHJvY2Vzcz4gYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXApIHsKLQkJCi0JCXZhbCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLlByb2Nlc3MgaW5jaHJvblByb2Nlc3MgPSBhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcC5nZXQoYW1sdFRhc2spCi0KLQkJdmFsIGluY2hyb25DYWxsR3JhcGggPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUNhbGxHcmFwaAotCQlpbmNocm9uUHJvY2Vzcy5jYWxsR3JhcGggPSBpbmNocm9uQ2FsbEdyYXBoCi0JCQotCQlhbWx0R3JhcGg/LmdyYXBoRW50cmllcz8uZm9yRWFjaFthbWx0R3JhcGhFbnRyeXx7Ci0JCQl2YXIgaW5jaHJvbkdyYXBoRW50cnlCYXNlPQlncmFwaEVudHJ5QmFzZVRyYW5zZm9ybWVyLnRyYW5zZm9ybUdyYXBoRW50cnlCYXNlKGFtbHRHcmFwaEVudHJ5LCBhbWx0VGFzaywKLQkJCQlhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcCkKLQkJCQkvKgotCQkJCSAqIEJhc2VkIG9uIHRoZSByZXF1aXJlbWVudCBmcm9tIEluY2hyb24gdG8gdXNlIHRoZSBsYXRlc3QgTW9kZSB2YWx1ZXM6Ci0JCQkJICogLS0gaXQgaXMgcmVxdWlyZWQgdG8gY3JlYXRlIGEgIkR1bW15IENhbGxTZXF1ZW5jZSIgYW5kIGFzc29jaWF0ZSBNb2RlQ29uZGl0aW9uRXZhbHVhdGlvbiBvZiBlYWNoIE1vZGVTd2l0Y2hFbnRyeSBvYmplY3QgCi0JCQkJICovIAotCQkJCSBpZihpbmNocm9uR3JhcGhFbnRyeUJhc2UgaW5zdGFuY2VvZiBNb2RlU3dpdGNoKXsKLQkJCQkJY3JlYXRlRHVtbXlDYWxsU2VxdWVuY2VXaXRoTW9kZVN3aXRjaEV2YWx1YXRpb24oaW5jaHJvbkdyYXBoRW50cnlCYXNlLCBpbmNocm9uQ2FsbEdyYXBoKQotCQkJCSB9Ci0JCQkJLy9BZGRpbmcgTW9kZVN3aXRjaAotCQkJCWluY2hyb25DYWxsR3JhcGguZ3JhcGhFbnRyaWVzLmFkZChpbmNocm9uR3JhcGhFbnRyeUJhc2UpCi0JCX1dCQkKLQl9Ci0JCQotCXB1YmxpYyBkZWYgdm9pZCBjcmVhdGVEdW1teUNhbGxTZXF1ZW5jZVdpdGhNb2RlU3dpdGNoRXZhbHVhdGlvbihNb2RlU3dpdGNoIGluY2hyb25Nb2RlU3dpdGNoLCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkNhbGxHcmFwaCBpbmNocm9uQ2FsbEdyYXBoKSB7Ci0KLQkJCXZhciBkdW1teUNhbGxTZXF1ZW5jZT1pbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUNhbGxTZXF1ZW5jZQotCQkJZHVtbXlDYWxsU2VxdWVuY2UubmFtZSA9ICJDYWxsU2VxdWVuY2VfRm9yX01vZGVDb25kaXRpb25FdmFsdWF0aW9uIgotCQkJCi0JCQl2YWwgZHVtbXlDYWxsU2VxdWVuY2VJdGVtcz1uZXcgQXJyYXlMaXN0Ci0JCQkKLQkJCWluY2hyb25Nb2RlU3dpdGNoLmVudHJpZXMuZm9yRWFjaFtpbmNocm9uTW9kZVN3aXRjaEVudHJ5fAotCQkJCXZhbCBpbmNocm9uTW9kZUNvbmRpdGlvbj1pbmNocm9uTW9kZVN3aXRjaEVudHJ5LmNvbmRpdGlvbgotCQkJCQotCQkJCXZhciBpbmNocm9uTW9kZUNvbmRpdGlvbkV2YWx1YXRpb249aW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVNb2RlQ29uZGl0aW9uRXZhbHVhdGlvbgotCQkJCWluY2hyb25Nb2RlQ29uZGl0aW9uRXZhbHVhdGlvbi5jb25kaXRpb249aW5jaHJvbk1vZGVDb25kaXRpb24KLQkJCQlkdW1teUNhbGxTZXF1ZW5jZUl0ZW1zLmFkZChpbmNocm9uTW9kZUNvbmRpdGlvbkV2YWx1YXRpb24pCi0JCQldCi0JCQkKLQkJCWlmKGR1bW15Q2FsbFNlcXVlbmNlSXRlbXMuc2l6ZT4wKXsKLQkJCQlkdW1teUNhbGxTZXF1ZW5jZS5jYWxscy5hZGRBbGwoZHVtbXlDYWxsU2VxdWVuY2VJdGVtcykKLQkJCQkvL0FkZGluZyBEdW1teUNhbGxTZXF1ZW5jZSBjb250YWluaW5nIE1vZGVDb25kaXRpb25FdmFsdWF0aW9uCi0JCQkJaW5jaHJvbkNhbGxHcmFwaC5ncmFwaEVudHJpZXMuYWRkKGR1bW15Q2FsbFNlcXVlbmNlKTsKLQkJCX0KLQkJCQkJCi0JfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvQ2hhbm5lbFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9DaGFubmVsVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0ZDRjOWIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9DaGFubmVsVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3Ci0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkRhdGFGbG93Q29tbXVuaWNhdGlvblR5cGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQ2hhbm5lbAotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi0KLUBTaW5nbGV0b24KLWNsYXNzIENoYW5uZWxUcmFuc2Zvcm1lciAgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCXB1YmxpYyBkZWYgY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlRGF0YUZsb3dDb25uZWN0aW9uIGNyZWF0ZURhdGFGbG93Q29ubmVjdGlvbihDaGFubmVsIGFtbHRDaGFubmVsKXsKLQkJaXQuY29tbXVuaWNhdGlvblR5cGUgPSBEYXRhRmxvd0NvbW11bmljYXRpb25UeXBlLlFVRVVJTkcKLQkJaXQuaW5pdGlhbEVsZW1lbnRzID0gYW1sdENoYW5uZWwuZGVmYXVsdEVsZW1lbnRzCi0JCWl0Lm5hbWUgPSBhbWx0Q2hhbm5lbC5uYW1lCi0JCWl0Lm1heEVsZW1lbnRzID0gYW1sdENoYW5uZWwubWF4RWxlbWVudHMKLQkJLy9ob29rIHRoaXMgRGF0YUZsb3dDb25uZWN0aW9uIGludG8gSW5jaHJvbiByb290IG1vZGVsCi0JCWdldEluY2hyb25Sb290LmNvbm5lY3Rpb25zLmFkZChpdCk7CQotCX0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L0dyYXBoRW50cnlCYXNlVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L0dyYXBoRW50cnlCYXNlVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlODljZWQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9HcmFwaEVudHJ5QmFzZVRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3OwotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Qcm9jZXNzCi1pbXBvcnQgamF2YS51dGlsLk1hcAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5DYWxsU2VxdWVuY2UKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuR3JhcGhFbnRyeUJhc2UKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuSW50ZXJQcm9jZXNzVHJpZ2dlcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Nb2RlU3dpdGNoCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2JhYmlsaXR5U3dpdGNoCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlNjaGVkdWxlUG9pbnQKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuVGFza1J1bm5hYmxlQ2FsbAotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS5zdGltdWxpLlN0aW11bGlUcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy5tMm0udXRpbHMuQ291bnRlclV0aWxzCi1pbXBvcnQgdGVtcGxhdGVzLnV0aWxzLkFtbHRDYWNoZU1vZGVsCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlN0aW11bHVzCi0KLUBTaW5nbGV0b24KLWNsYXNzIEdyYXBoRW50cnlCYXNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCXZhciBBbWx0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsCi0KLQlASW5qZWN0IFJ1bm5hYmxlVHJhbnNmb3JtZXIgcnVubmFibGVUcmFuc2Zvcm1lcgotCQotCUBJbmplY3QgTW9kZVN3aXRjaFRyYW5zZm9ybWVyIG1vZGVTd2l0Y2hUcmFuc2Zvcm1lcgotCQotCUBJbmplY3QgU3RpbXVsaVRyYW5zZm9ybWVyIHN0aW11bGlUcmFuc2Zvcm1lcgotCQotCUBJbmplY3QgTW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lciBtb2RlVmFsdWVEaXNqdW5jdGlvblRyYW5zZm9ybWVyCi0KLQlkZWYgY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlRnVuY3Rpb24gY3JlYXRlRnVuY3Rpb24oamF2YS5sYW5nLlByb2Nlc3MgYW1sdFByb2Nlc3MsIFJ1bm5hYmxlIGFtbHRSdW5uYWJsZSkgewotCi0JCWNhY2hlTW9kZWwgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoQW1sdENhY2hlTW9kZWwpCi0KLQl9Ci0KLQlkZWYgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5HcmFwaEVudHJ5QmFzZSB0cmFuc2Zvcm1HcmFwaEVudHJ5QmFzZShHcmFwaEVudHJ5QmFzZSBhbWx0R3JhcGhFbnRyeSwgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MgYW1sdFRhc2ssCi0JCU1hcDxvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUHJvY2VzcywgUHJvY2Vzcz4gYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXApIHsKLQotCQl2YWwgUHJvY2VzcyBpbmNocm9uUHJvY2VzcyA9IGFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwLmdldChhbWx0VGFzaykKLQkJY2FjaGVNb2RlbCA9IGN1c3RvbU9ianNTdG9yZS5nZXRJbnN0YW5jZShBbWx0Q2FjaGVNb2RlbCkJIAotCi0JCWlmIChhbWx0R3JhcGhFbnRyeSBpbnN0YW5jZW9mIENhbGxTZXF1ZW5jZSkgewotCi0JCQl2YXIgaW5jaHJvbkNhbGxTZXF1ZW5jZT1jcmVhdGVDYWxsU2VxdWVuY2UoIGFtbHRHcmFwaEVudHJ5LCBhbWx0VGFzaywgaW5jaHJvblByb2Nlc3MsIGFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwKQotCQkJCi0JCQlyZXR1cm4gKGluY2hyb25DYWxsU2VxdWVuY2UpCi0JCQkKLQkJfSBlbHNlIGlmIChhbWx0R3JhcGhFbnRyeSBpbnN0YW5jZW9mIE1vZGVTd2l0Y2gpIHsgCi0JCQkKLQkJCXZhciBpbmNocm9uTW9kZVN3aXRjaD1tb2RlU3dpdGNoVHJhbnNmb3JtZXIuY3JlYXRlTW9kZVN3aXRjaChhbWx0R3JhcGhFbnRyeSxhbWx0VGFzaywgYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXApCi0JCQkKLQkJCXJldHVybiAoaW5jaHJvbk1vZGVTd2l0Y2gpCi0JCQkKLQkJfSBlbHNlIGlmIChhbWx0R3JhcGhFbnRyeSBpbnN0YW5jZW9mIFByb2JhYmlsaXR5U3dpdGNoKSB7Ci0JCQlyZXR1cm4gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVQcm9iYWJpbGl0eVN3aXRjaAotCQl9Ci0JCXJldHVybiBudWxsCi0JfQotCQotCXByb3RlY3RlZCBkZWYgY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQ2FsbFNlcXVlbmNlIGNyZWF0ZUNhbGxTZXF1ZW5jZShDYWxsU2VxdWVuY2UgYW1sdEdyYXBoRW50cnksIG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Qcm9jZXNzIGFtbHRUYXNrLCBQcm9jZXNzIGluY2hyb25Qcm9jZXNzLCBNYXA8b3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MsIFByb2Nlc3M+IGFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwKSB7Ci0KLQkJaXQubmFtZSA9ICJDUyIKLQkJYW1sdEdyYXBoRW50cnkuY2FsbHMuZm9yRWFjaCBbIGFtbHRDYWxsU2VxdWVuY2VJdGVtIHwKLQkJCWlmIChhbWx0Q2FsbFNlcXVlbmNlSXRlbSBpbnN0YW5jZW9mIFRhc2tSdW5uYWJsZUNhbGwpIHsKLQkJCQl2YXIgYW1sdFJ1bm5hYmxlID0gYW1sdENhbGxTZXF1ZW5jZUl0ZW0ucnVubmFibGUKLQkJCQl2YXIgaW5jaHJvbkNvbXBvbmVudCA9IGNhY2hlTW9kZWwuZ2V0SW5jaHJvbkNvbXBvbmVudChhbWx0VGFzaykKLQkJCQl2YXIgaW5jaHJvbkZ1bmN0aW9uID0gcnVubmFibGVUcmFuc2Zvcm1lci5jcmVhdGVGdW5jdGlvbihpbmNocm9uQ29tcG9uZW50LCBhbWx0VGFzaywgYW1sdFJ1bm5hYmxlKQotCQkJCXZhciBpbmNocm9uRnVuY3Rpb25DYWxsID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVGdW5jdGlvbkNhbGwKLQkJCQlpbmNocm9uRnVuY3Rpb25DYWxsLmZ1bmN0aW9uID0gaW5jaHJvbkZ1bmN0aW9uCi0JCQkJaW5jaHJvbkZ1bmN0aW9uQ2FsbC5uYW1lID0gImNhbGxfIiArIGluY2hyb25GdW5jdGlvbi5uYW1lCi0JCQkJCi0JCQkJLy8gb2Zmc2V0ICYgcHJlc2NhbGVyCi0JCQkJaWYgKGFtbHRDYWxsU2VxdWVuY2VJdGVtLmNvdW50ZXIgIT09IG51bGwpewotCQkJCQlpbmNocm9uRnVuY3Rpb25DYWxsLnBlcmlvZCA9IENvdW50ZXJVdGlscy5nZXRQcmVzY2FsZXJBc0ludGVnZXIoYW1sdENhbGxTZXF1ZW5jZUl0ZW0uY291bnRlcikKLQkJCQkJaW5jaHJvbkZ1bmN0aW9uQ2FsbC5vZmZzZXQgPSBDb3VudGVyVXRpbHMuZ2V0T2Zmc2V0QXNJbnRlZ2VyKGFtbHRDYWxsU2VxdWVuY2VJdGVtLmNvdW50ZXIpCi0JCQkJfQotCQkJCQotCQkJCWl0LmNhbGxzLmFkZChpbmNocm9uRnVuY3Rpb25DYWxsKSAKLQkJCX0gZWxzZSBpZiAoYW1sdENhbGxTZXF1ZW5jZUl0ZW0gaW5zdGFuY2VvZiBJbnRlclByb2Nlc3NUcmlnZ2VyKSB7Ci0JCQkJLy8gaW4gdGhlIGNhbGwgc2VxdWVuY2Ugb2YgdGhlIHByb2Nlc3MsIGNyZWF0ZSBBY3RpdmF0ZVByb2Nlc3MKLQkJCQkvLyBjcmVhdGUgQWN0aXZhdGlvbkl0ZW0gLT4gQWN0aXZhdGlvbkNvbm5lY3Rpb24gLT4gQWN0aXZhdGlvbkFjdGlvbiAoQWN0aXZhdGVQcm9jZXNzKQotCQkJCS8vIEluIEFtYWx0aGVhIC0+IEl0IGlzIGhhbmRsZWQgd2l0aCBJbnRlclByb2Nlc3NTdGltdWx1cyBiZWluZyByZWZlcmVkIGJ5IEludGVyUHJvY2Vzc1RyaWdnZXIgLT4gU3RpbXVsdXMgaXMgcmVmZXJyZWQgaW5zaWRlIGEgVGFzawotCQkJCSAKLQkJCQl2YWwgYW1sdEludGVyUHJvY2Vzc1RyaWdnZXIgPSAoYW1sdENhbGxTZXF1ZW5jZUl0ZW0gYXMgSW50ZXJQcm9jZXNzVHJpZ2dlcikKLQkJCQl2YWwgYW1sdE1vZGVWYWx1ZURpc2p1bmN0aW9uID0gYW1sdEludGVyUHJvY2Vzc1RyaWdnZXIuc3RpbXVsdXM/LmVuYWJsaW5nTW9kZVZhbHVlTGlzdAotCQkJCXZhciBpbmNocm9uQWN0aXZhdGlvbkl0ZW0gPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUFjdGl2YXRpb25JdGVtCi0JCQkJaW5jaHJvbkFjdGl2YXRpb25JdGVtLm5hbWUgPSAiQWN0aXZhdGlvbkl0ZW1fIiArIGFtbHRJbnRlclByb2Nlc3NUcmlnZ2VyLnN0aW11bHVzLm5hbWUKLQkJCQlpZiAoYW1sdE1vZGVWYWx1ZURpc2p1bmN0aW9uICE9PSBudWxsKXsKLQkJCQkJbW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lci5jcmVhdGVNb2RlQ29uZGl0aW9uKGFtbHRNb2RlVmFsdWVEaXNqdW5jdGlvbikKLQkJCQkJdmFsIGluY2hyb25EdW1teUZ1bmN0aW9uPXN0aW11bGlUcmFuc2Zvcm1lci5jcmVhdGVEdW1teUZ1bmN0aW9uKGFtbHRJbnRlclByb2Nlc3NUcmlnZ2VyLnN0aW11bHVzIGFzIFN0aW11bHVzLCBpbmNocm9uQWN0aXZhdGlvbkl0ZW0pCi0JCQkJCXZhciBpbmNocm9uQ29tcG9uZW50ID0gY2FjaGVNb2RlbC5nZXRJbmNocm9uQ29tcG9uZW50KGFtbHRUYXNrKQotCQkJCQlpbmNocm9uQ29tcG9uZW50LmZ1bmN0aW9ucy5hZGQoaW5jaHJvbkR1bW15RnVuY3Rpb24pCi0JCQkJCWlmIChhbWx0Q2FsbFNlcXVlbmNlSXRlbS5jb3VudGVyICE9PSBudWxsKXsKLQkJCQkJCWluY2hyb25BY3RpdmF0aW9uSXRlbS5wZXJpb2QgPSBDb3VudGVyVXRpbHMuZ2V0UHJlc2NhbGVyQXNJbnRlZ2VyKGFtbHRDYWxsU2VxdWVuY2VJdGVtLmNvdW50ZXIpCi0JCQkJCQlpbmNocm9uQWN0aXZhdGlvbkl0ZW0ub2Zmc2V0ID0gQ291bnRlclV0aWxzLmdldE9mZnNldEFzSW50ZWdlcihhbWx0Q2FsbFNlcXVlbmNlSXRlbS5jb3VudGVyKQotCQkJCQl9Ci0JCQkJCXZhciBkdW1teUZ1bmN0aW9uQ2FsbCA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlRnVuY3Rpb25DYWxsCi0JCQkJCWR1bW15RnVuY3Rpb25DYWxsLmZ1bmN0aW9uID0gaW5jaHJvbkR1bW15RnVuY3Rpb24KLQkJCQkJaXQuY2FsbHMuYWRkKGR1bW15RnVuY3Rpb25DYWxsKQotCQkJCX0gZWxzZSB7Ci0JCQkJCWlmIChhbWx0Q2FsbFNlcXVlbmNlSXRlbS5jb3VudGVyICE9PSBudWxsKXsKLQkJCQkJCWluY2hyb25BY3RpdmF0aW9uSXRlbS5wZXJpb2QgPSBDb3VudGVyVXRpbHMuZ2V0UHJlc2NhbGVyQXNJbnRlZ2VyKGFtbHRDYWxsU2VxdWVuY2VJdGVtLmNvdW50ZXIpCi0JCQkJCQlpbmNocm9uQWN0aXZhdGlvbkl0ZW0ub2Zmc2V0ID0gQ291bnRlclV0aWxzLmdldE9mZnNldEFzSW50ZWdlcihhbWx0Q2FsbFNlcXVlbmNlSXRlbS5jb3VudGVyKQotCQkJCQl9Ci0JCQkJCWl0LmNhbGxzLmFkZChpbmNocm9uQWN0aXZhdGlvbkl0ZW0pCi0JCQkJfQotCQkKLQkJCQl2YWwgaW5jaHJvbkFjdGl2YXRpb25Db25uZWN0aW9uID0gc3RpbXVsaVRyYW5zZm9ybWVyLmNyZWF0ZUFjdGl2YXRpb25Db25uZWN0aW9uKGFtbHRJbnRlclByb2Nlc3NUcmlnZ2VyLnN0aW11bHVzIGFzIFN0aW11bHVzKQotCQkJCWluY2hyb25BY3RpdmF0aW9uSXRlbS5jb25uZWN0aW9uID0gaW5jaHJvbkFjdGl2YXRpb25Db25uZWN0aW9uCi0JCQotCQkJfSBlbHNlIGlmIChhbWx0Q2FsbFNlcXVlbmNlSXRlbSBpbnN0YW5jZW9mIFNjaGVkdWxlUG9pbnQpIHsKLQkJCX0KLQkJCi0JCV0KLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvSVNSVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L0lTUlRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjY1ZGE0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvSVNSVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdwotCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Db21wb25lbnQKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuSVNSCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMudXRpbHMuQW1sdENhY2hlTW9kZWwKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgSVNSVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCXZhciBBbWx0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsCi0KLQlkZWYgY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlUHJvY2VzcyBjcmVhdGVQcm9jZXNzKElTUiBhbWx0SVNSLCBDb21wb25lbnQgaW5jaHJvbkNvbXBvbmVudCkgewotCi0JCWNhY2hlTW9kZWwgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoQW1sdENhY2hlTW9kZWwpCi0KLQkJaXQubmFtZSA9IGFtbHRJU1IubmFtZQotCi0JCWNhY2hlTW9kZWwuYWRkQW1sdFByb2Nlc3NfSW5jaHJvbkNvbXBvbmVudChhbWx0SVNSLCBpbmNocm9uQ29tcG9uZW50KQotCi0JCWl0LmlzciA9IHRydWUKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvTW9kZUxhYmVsVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L01vZGVMYWJlbFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWFlMjBkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvTW9kZUxhYmVsVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3Ci0KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLk1vZGVHcm91cAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Nb2RlTGFiZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTW9kZUxpdGVyYWwKLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy51dGlscy5BbWx0Q2FjaGVNb2RlbAotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuTW9kZQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBNb2RlTGFiZWxUcmFuc2Zvcm1lciAgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQkKLQl2YXIgQW1sdENhY2hlTW9kZWwgY2FjaGVNb2RlbAotCQotCQotCXB1YmxpYyBkZWYgY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlTW9kZUdyb3VwIGNyZWF0ZU1vZGVHcm91cChNb2RlTGFiZWwgYW1sdE1vZGVMYWJlbCl7Ci0JCQkKLQkJCWNhY2hlTW9kZWwgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoQW1sdENhY2hlTW9kZWwpCi0JCQkKLQkJCWl0Lm5hbWU9YW1sdE1vZGVMYWJlbC5uYW1lCi0JCQkKLQkJCXZhciBhbWx0TW9kZUxpdGVyYWxJbml0aWFsVmFsdWU9IGFtbHRNb2RlTGFiZWwuaW5pdGlhbFZhbHVlCi0JCQkKLQkJCQotCQkJYW1sdE1vZGVMaXRlcmFsSW5pdGlhbFZhbHVlPy5jb250YWluaW5nTW9kZT8ubGl0ZXJhbHM/LmZvckVhY2hbbGl0ZXJhbCwgaW5kZXh8ewotCQkJCXZhciBpbmNocm9uTW9kZT0gY3JlYXRlTW9kZShsaXRlcmFsLCBpdCkKLQkJCQlpbmNocm9uTW9kZS52YWx1ZT1pbmRleAotCQkJCQotCQkJfV0KLQkJCQotCQkJaWYgKGFtbHRNb2RlTGFiZWwuaW5pdGlhbFZhbHVlICE9PSBudWxsKXsKLQkJCQlpdC5pbml0aWFsTW9kZSA9IGNyZWF0ZU1vZGUoYW1sdE1vZGVMYWJlbC5pbml0aWFsVmFsdWUsIGl0KQotCQkJfSBlbHNlIGlmIChhbWx0TW9kZUxhYmVsPy5tb2RlPy5saXRlcmFscy5nZXQoMCkgIT09bnVsbCkgewotCQkJCWl0LmluaXRpYWxNb2RlID0gY3JlYXRlTW9kZShhbWx0TW9kZUxhYmVsLm1vZGUubGl0ZXJhbHMuZ2V0KDApLCBpdCkKLQkJCX0KLQkJCQotCQkgY2FjaGVNb2RlbC5hZGRJbmNocm9uTW9kZUdyb3VwKGl0KQotCQl9Ci0JCQotCQkgCi0JCQotCQlwdWJsaWMgZGVmIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZU1vZGUgY3JlYXRlTW9kZShNb2RlTGl0ZXJhbCBhbWx0TW9kZUxpdGVyYWwgLCBNb2RlR3JvdXAgaW5jaHJvbk1vZGVHcm91cCl7Ci0JCQkKLQkJCWl0Lm5hbWU9YW1sdE1vZGVMaXRlcmFsLm5hbWUKLQkJCQotCQkJaW5jaHJvbk1vZGVHcm91cC5tb2Rlcy5hZGQoaXQpCi0JCQkKLQkJfQotCQkKLQkJcHVibGljIGRlZiBNb2RlIGdldEluY2hyb25Nb2RlKE1vZGVMYWJlbCBhbWx0TW9kZUxhYmVsLCBNb2RlTGl0ZXJhbCBhbWx0TW9kZUxpdGVyYWwpewotCQkJCi0JCQkJCXZhciBpbmNocm9uTW9kZUdyb3VwPWNyZWF0ZU1vZGVHcm91cChhbWx0TW9kZUxhYmVsKQotCQkJCQkKLQkJCQkJdmFyIGluY2hyb25Nb2RlPWNyZWF0ZU1vZGUoYW1sdE1vZGVMaXRlcmFsLGluY2hyb25Nb2RlR3JvdXApCi0JCQkJCQotCQkJCQlyZXR1cm4gaW5jaHJvbk1vZGUKLQkJfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvTW9kZVN3aXRjaFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9Nb2RlU3dpdGNoVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkYzk3ZmEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9Nb2RlU3dpdGNoVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3Ci0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkNvbXBvbmVudAotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuRnVuY3Rpb25DYWxsCi1pbXBvcnQgamF2YS51dGlsLk1hcAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5HcmFwaEVudHJ5QmFzZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Nb2RlU3dpdGNoCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUnVubmFibGVNb2RlU3dpdGNoCi1pbXBvcnQgdGVtcGxhdGVzLnV0aWxzLkFtbHRDYWNoZU1vZGVsCi0KLUBTaW5nbGV0b24KLWNsYXNzIE1vZGVTd2l0Y2hUcmFuc2Zvcm1lciBleHRlbmRzIEdyYXBoRW50cnlCYXNlVHJhbnNmb3JtZXIgeyAKLQkKLQlASW5qZWN0IFJ1bm5hYmxlSXRlbVRyYW5zZm9ybWVyIHJ1bm5hYmxlSXRlbVRyYW5zZm9ybWVyCi0JQEluamVjdCBNb2RlVmFsdWVEaXNqdW5jdGlvblRyYW5zZm9ybWVyIG1vZGVWYWx1ZURpc2p1bmN0aW9uVHJhbnNmb3JtZXIKLQlASW5qZWN0IENhbGxHcmFwaFRyYW5zZm9ybWVyIGNhbGxHcmFwaFRyYW5zZm9ybWVyCi0JCQotCXZhciBBbWx0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsCi0JCi0JcHVibGljIGRlZiBGdW5jdGlvbkNhbGwgdHJhbnNmb3JtUnVubmFibGVNb2RlU3dpdGNoKENvbXBvbmVudCBpbmNocm9uQ29tcG9uZW50LCBQcm9jZXNzIGFtbHRUYXNrLAotCQkgUnVubmFibGVNb2RlU3dpdGNoIGFtbHRSdW5uYWJsZU1vZGVTd2l0Y2gpewotCQkKLQkJY2FjaGVNb2RlbCA9IGN1c3RvbU9ianNTdG9yZS5nZXRJbnN0YW5jZShBbWx0Q2FjaGVNb2RlbCkKLQkJCi0JdmFsIGluY2hyb25EdW1teUZ1bmN0aW9uPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlRnVuY3Rpb24KLQkJCi0JaW5jaHJvbkR1bW15RnVuY3Rpb24ubmFtZT0iRHVtbXlfUnVubmFibGVNb2RlU3dpdGNoRnVuY3Rpb25fIithbWx0UnVubmFibGVNb2RlU3dpdGNoLmhhc2hDb2RlCi0JLy9BZGRpbmcgRnVuY3Rpb24gdG8gSW5jaHJvbiBDb21wb25lbnQKLQlpbmNocm9uQ29tcG9uZW50LmZ1bmN0aW9ucy5hZGQoaW5jaHJvbkR1bW15RnVuY3Rpb24pCi0JCi0JIHZhbCBpbmNocm9uQ2FsbEdyYXBoPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQ2FsbEdyYXBoCi0JIAotCSBpbmNocm9uRHVtbXlGdW5jdGlvbi5jYWxsR3JhcGg9aW5jaHJvbkNhbGxHcmFwaAotCSAKLQkgdmFsIGluY2hyb25Nb2RlU3dpdGNoPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlTW9kZVN3aXRjaAotCSAKLQkgaWYoYW1sdFJ1bm5hYmxlTW9kZVN3aXRjaC5kZWZhdWx0RW50cnkgIT09bnVsbCl7Ci0JIAotCSAJdmFsIGluY2hyb25Nb2RlU3dpdGNoRGVmYXVsdD1pbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZU1vZGVTd2l0Y2hEZWZhdWx0Ci0JIAkvL0FkZGluZyBkZWZhdWx0IGVudHJ5Ci0JIAlpbmNocm9uTW9kZVN3aXRjaC5kZWZhdWx0RW50cnkgPSBpbmNocm9uTW9kZVN3aXRjaERlZmF1bHQKLQkgCQotCSAJIHZhbCBpbmNocm9uQ2FsbFNlcXVlbmNlPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQ2FsbFNlcXVlbmNlCi0JIAkgCi0JIAkgLy9BZGRpbmcgY2FsbFNlcXVlbmNlIHRvIGRlZmF1bHQgZW50cnkKLQkgCSBpbmNocm9uTW9kZVN3aXRjaERlZmF1bHQuZ3JhcGhFbnRyaWVzLmFkZChpbmNocm9uQ2FsbFNlcXVlbmNlKQotCSAJIAotCSAJYW1sdFJ1bm5hYmxlTW9kZVN3aXRjaD8uZGVmYXVsdEVudHJ5Py5pdGVtcz8uZm9yRWFjaFthbWx0UnVubmFibGVNb2RlU3dpdGNoUnVubmFibGVJdGVtfAotCQkJCi0JCQlpbmNocm9uQ2FsbFNlcXVlbmNlLmNhbGxzLmFkZEFsbChydW5uYWJsZUl0ZW1UcmFuc2Zvcm1lci50cmFuc2Zvcm1SdW5uYWJsZUl0ZW0oaW5jaHJvbkNvbXBvbmVudCxhbWx0VGFzayxhbWx0UnVubmFibGVNb2RlU3dpdGNoUnVubmFibGVJdGVtKSkKLQkJXQotCQkKLQkgfQotCQkvL1RyYW5zZm9ybWluZyBtb2RlIGVudHJpZXMgd2l0aCBjb25kaXRpb24KLQkJYW1sdFJ1bm5hYmxlTW9kZVN3aXRjaD8uZW50cmllcz8uZm9yRWFjaFthbWx0TW9kZVN3aXRjaEVudHJ5fHsKLQkJCQotCQkJdmFsIGluY2hyb25Nb2RlU3dpdGNoRW50cnk9aW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVNb2RlU3dpdGNoRW50cnkKLQkJCQotCQkJLy9BZGRpbmcgZW50cnkgd2l0aCBjb25kaXRpb24KLQkgCQlpbmNocm9uTW9kZVN3aXRjaC5lbnRyaWVzLmFkZChpbmNocm9uTW9kZVN3aXRjaEVudHJ5KQotCQkJCi0JCQkJdmFyIGFtbHRDb25kaXRpb249YW1sdE1vZGVTd2l0Y2hFbnRyeS5jb25kaXRpb24KLQkJCQkJaWYoYW1sdENvbmRpdGlvbiE9PW51bGwpewotCQkJCQkJdmFyIGluY2hyb25Db25kaXRvbj1tb2RlVmFsdWVEaXNqdW5jdGlvblRyYW5zZm9ybWVyLmNyZWF0ZU1vZGVDb25kaXRpb24oYW1sdENvbmRpdGlvbikKLQkJCQkJCQotCQkJCQkJaW5jaHJvbk1vZGVTd2l0Y2hFbnRyeS5jb25kaXRpb24gPSBpbmNocm9uQ29uZGl0b24KLQkJCQkJCQotCQkJCQkJaWYoaW5jaHJvbkNvbmRpdG9uLmVDb250YWluZXI9PT1udWxsKXsKLQkJCQkJCQkvL0FkZGluZyBNb2RlQ29uZGl0aW9uIHRvIHRoZSBJbmNocm9uIE1vZGVsCi0JCQkJCQkJZ2V0SW5jaHJvblJvb3QoKS5nbG9iYWxNb2RlQ29uZGl0aW9ucy5hZGQoaW5jaHJvbkNvbmRpdG9uKQotCQkJCQkJfQotCQkJCQl9Ci0JCQkJCQotCQkJCQkKLQkJCSAJIHZhbCBpbmNocm9uQ2FsbFNlcXVlbmNlPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlQ2FsbFNlcXVlbmNlCi0JCQkgCSAKLQkJCSAJIC8vQWRkaW5nIGNhbGxTZXF1ZW5jZSB0byBkZWZhdWx0IGVudHJ5Ci0JCQkgCSBpbmNocm9uTW9kZVN3aXRjaEVudHJ5LmdyYXBoRW50cmllcy5hZGQoaW5jaHJvbkNhbGxTZXF1ZW5jZSkKLQkgCSAKLQkgCSAJCSBhbWx0TW9kZVN3aXRjaEVudHJ5Py5pdGVtcz8uZm9yRWFjaFthbWx0UnVubmFibGVNb2RlU3dpdGNoUnVubmFibGVJdGVtfAotCQkJCi0JCQkJIGluY2hyb25DYWxsU2VxdWVuY2UuY2FsbHMuYWRkQWxsKHJ1bm5hYmxlSXRlbVRyYW5zZm9ybWVyLnRyYW5zZm9ybVJ1bm5hYmxlSXRlbShpbmNocm9uQ29tcG9uZW50LGFtbHRUYXNrLGFtbHRSdW5uYWJsZU1vZGVTd2l0Y2hSdW5uYWJsZUl0ZW0pKQotCQkgICAgICAgICBdCi0JCX1dCi0JCQotCQkKLQkvKgotCSAqIEJhc2VkIG9uIHRoZSByZXF1aXJlbWVudCBmcm9tIEluY2hyb24gdG8gdXNlIHRoZSBsYXRlc3QgTW9kZSB2YWx1ZXM6Ci0JICogLS0gaXQgaXMgcmVxdWlyZWQgdG8gY3JlYXRlIGEgIkR1bW15IENhbGxTZXF1ZW5jZSIgYW5kIGFzc29jaWF0ZSBNb2RlQ29uZGl0aW9uRXZhbHVhdGlvbiBvZiBlYWNoIE1vZGVTd2l0Y2hFbnRyeSBvYmplY3QgCi0JICovIAotCSBjYWxsR3JhcGhUcmFuc2Zvcm1lci5jcmVhdGVEdW1teUNhbGxTZXF1ZW5jZVdpdGhNb2RlU3dpdGNoRXZhbHVhdGlvbihpbmNocm9uTW9kZVN3aXRjaCwgaW5jaHJvbkNhbGxHcmFwaCk7Ci0JCQkJCSAKLQkJIC8vQWRkaW5nIE1vZGVTd2l0Y2gKLQkgaW5jaHJvbkNhbGxHcmFwaC5ncmFwaEVudHJpZXMuYWRkKGluY2hyb25Nb2RlU3dpdGNoKQotCSAKLQkgCi0JIHZhciBGdW5jdGlvbkNhbGwgaW5jaHJvbkZ1bmN0aW9uQ2FsbD1pbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUZ1bmN0aW9uQ2FsbAotCSAKLQkgaW5jaHJvbkZ1bmN0aW9uQ2FsbC5mdW5jdGlvbj1pbmNocm9uRHVtbXlGdW5jdGlvbgotCSAKLQkgaW5jaHJvbkZ1bmN0aW9uQ2FsbC5uYW1lPSJjYWxsXyIraW5jaHJvbkR1bW15RnVuY3Rpb24ubmFtZQotCSAKLQkgcmV0dXJuIGluY2hyb25GdW5jdGlvbkNhbGwKLQl9Ci0JCi0JcHVibGljIGRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVNb2RlU3dpdGNoIGNyZWF0ZU1vZGVTd2l0Y2goTW9kZVN3aXRjaCBhbWx0R3JhcGhFbnRyeSxQcm9jZXNzIGFtbHRUYXNrLAotCQlNYXA8UHJvY2VzcywgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Qcm9jZXNzPiBhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcCl7Ci0JCQotCQljYWNoZU1vZGVsID0gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKEFtbHRDYWNoZU1vZGVsKQotCQkKLQkJCXZhciBhbWx0RGVmYXVsdEVudHJ5ID0gYW1sdEdyYXBoRW50cnkuZGVmYXVsdEVudHJ5Ci0JCQkKLQkJCWlmIChhbWx0RGVmYXVsdEVudHJ5ICE9PSBudWxsKSB7Ci0JCQkJCWl0LmRlZmF1bHRFbnRyeT1pbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZU1vZGVTd2l0Y2hEZWZhdWx0Ci0JCQkJCQotCQkJCWFtbHREZWZhdWx0RW50cnk/Lml0ZW1zLmZvckVhY2ggWyBhbWx0RW50cnlJdGVtIHwKLQkJCQkJdmFyIGluY2hyb25HcmFwaEVudHJ5QmFzZT10cmFuc2Zvcm1HcmFwaEVudHJ5QmFzZShhbWx0RW50cnlJdGVtIGFzIEdyYXBoRW50cnlCYXNlLCBhbWx0VGFzaywgYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXApCi0JCQkJCWl0LmRlZmF1bHRFbnRyeS5ncmFwaEVudHJpZXMuYWRkKGluY2hyb25HcmFwaEVudHJ5QmFzZSkKLQkJCQldCi0JCQl9Ci0KLQkJCWFtbHRHcmFwaEVudHJ5Py5lbnRyaWVzPy5mb3JFYWNoIFsgYW1sdEVudHJ5IHwKLQkJCQl7Ci0JCQkJCXZhbCBpbmNocm9uTW9kZVN3aXRjaEVudHJ5PWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlTW9kZVN3aXRjaEVudHJ5Ci0JCQkJCQotCQkJCQlpdC5lbnRyaWVzLmFkZChpbmNocm9uTW9kZVN3aXRjaEVudHJ5KQotCi0JCQkJCWFtbHRFbnRyeT8uaXRlbXM/LmZvckVhY2ggWyBhbWx0RW50cnlJdGVtIHwKLQkJCQkJCXsKLQkJCQkJCQl2YXIgaW5jaHJvbkdyYXBoRW50cnlCYXNlPXRyYW5zZm9ybUdyYXBoRW50cnlCYXNlKGFtbHRFbnRyeUl0ZW0gYXMgR3JhcGhFbnRyeUJhc2UsIGFtbHRUYXNrLAotCQkJCQkJCQlhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcCkKLQkJCQkJCQkJCi0JCQkJCQkJCWluY2hyb25Nb2RlU3dpdGNoRW50cnkuZ3JhcGhFbnRyaWVzLmFkZChpbmNocm9uR3JhcGhFbnRyeUJhc2UpCi0KLQkJCQkJCX0KLQkJCQkJCQotCQkJCQldCi0JCQkJCQotCQkJCQl2YXIgYW1sdENvbmRpdGlvbj1hbWx0RW50cnkuY29uZGl0aW9uCi0JCQkJCWlmKGFtbHRDb25kaXRpb24hPT1udWxsKXsKLQkJCQkJCXZhciBpbmNocm9uQ29uZGl0b249bW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lci5jcmVhdGVNb2RlQ29uZGl0aW9uKGFtbHRDb25kaXRpb24pCi0JCQkJCQkKLQkJCQkJCWluY2hyb25Nb2RlU3dpdGNoRW50cnkuY29uZGl0aW9uID0gaW5jaHJvbkNvbmRpdG9uCi0JCQkJCQkKLQkJCQkJCWlmKGluY2hyb25Db25kaXRvbi5lQ29udGFpbmVyPT09bnVsbCl7Ci0JCQkJCQkJLy9BZGRpbmcgTW9kZUNvbmRpdGlvbiB0byB0aGUgSW5jaHJvbiBNb2RlbAotCQkJCQkJCWdldEluY2hyb25Sb290KCkuZ2xvYmFsTW9kZUNvbmRpdGlvbnMuYWRkKGluY2hyb25Db25kaXRvbikKLQkJCQkJCX0KLQkJCQkJfQotCi0JCQkJfQotCQkJXQotCi0JCQotCX0KLQkKLSAKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L01vZGVWYWx1ZURpc2p1bmN0aW9uVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L01vZGVWYWx1ZURpc2p1bmN0aW9uVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkYzI5MzkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9Nb2RlVmFsdWVEaXNqdW5jdGlvblRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdzsKLQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LkluamVjdAotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuTW9kZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Nb2RlTGl0ZXJhbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Nb2RlVmFsdWUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTW9kZVZhbHVlQ29uanVuY3Rpb24KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTW9kZVZhbHVlRGlzanVuY3Rpb24KLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy51dGlscy5BbWx0Q2FjaGVNb2RlbAotCi1AU2luZ2xldG9uCi1wdWJsaWMgY2xhc3MgTW9kZVZhbHVlRGlzanVuY3Rpb25UcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIgewotCi0JQEluamVjdCBNb2RlTGFiZWxUcmFuc2Zvcm1lciBtb2RlTGFiZWxUcmFuc2Zvcm1lciAKLQl2YXIgQW1sdENhY2hlTW9kZWwgY2FjaGVNb2RlbAotCi0JcHVibGljIGRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVNb2RlQ29uZGl0aW9uIGNyZWF0ZU1vZGVDb25kaXRpb24oTW9kZVZhbHVlRGlzanVuY3Rpb24gYW1sdE1vZGVWYWx1ZURpc2p1bmN0aW9uKXsJCQotCQljYWNoZU1vZGVsID0gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKEFtbHRDYWNoZU1vZGVsKQotCQlpdC5uYW1lPSJNb2RlQ29uZGl0aW9uXyIrIl8iK2l0Lmhhc2hDb2RlCi0JCWFtbHRNb2RlVmFsdWVEaXNqdW5jdGlvbj8uZW50cmllcz8uZm9yRWFjaFthbWx0TW9kZVZhbHVlRGlzanVuY3Rpb25FbnRyeXx7Ci0JCQkKLQkJCXZhbCBpbmNocm9uTW9kZUNvbmp1bmN0aW9uPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlTW9kZUNvbmp1bmN0aW9uCi0JCQkvL0FkZGluZyBNb2RlQ29uanVuY3Rpb24KLQkJCWl0LmNvbmp1bmN0aW9ucy5hZGQoaW5jaHJvbk1vZGVDb25qdW5jdGlvbikKLQkJCQotCQkJaWYoYW1sdE1vZGVWYWx1ZURpc2p1bmN0aW9uRW50cnkgaW5zdGFuY2VvZiBNb2RlVmFsdWUpewotCQkJCXZhbCBhbWx0TW9kZUxpdGVyYWw9YW1sdE1vZGVWYWx1ZURpc2p1bmN0aW9uRW50cnkudmFsdWUKLQkJCQl2YXIgYW1sdE1vZGVMYWJlbD1hbWx0TW9kZVZhbHVlRGlzanVuY3Rpb25FbnRyeS52YWx1ZVByb3ZpZGVyCi0JCQkJLy9BZGRpbmcgTW9kZQotCQkJCWluY2hyb25Nb2RlQ29uanVuY3Rpb24ubW9kZXMuYWRkKG1vZGVMYWJlbFRyYW5zZm9ybWVyLmdldEluY2hyb25Nb2RlKGFtbHRNb2RlTGFiZWwsIGFtbHRNb2RlTGl0ZXJhbCkpCi0JCQl9IGVsc2UgaWYoYW1sdE1vZGVWYWx1ZURpc2p1bmN0aW9uRW50cnkgaW5zdGFuY2VvZiBNb2RlVmFsdWVDb25qdW5jdGlvbil7Ci0JCQkJYW1sdE1vZGVWYWx1ZURpc2p1bmN0aW9uRW50cnk/LmVudHJpZXM/LmZvckVhY2hbYW1sdE1vZGVWYWx1ZUVudHJ5fHsKLQkJCQkJdmFyIGFtbHRNb2RlTGl0ZXJhbD1hbWx0TW9kZVZhbHVlRW50cnkudmFsdWUKLQkJCQkJdmFyIGFtbHRNb2RlTGFiZWw9YW1sdE1vZGVWYWx1ZUVudHJ5LnZhbHVlUHJvdmlkZXIKLQkJCQkJLy9BZGRpbmcgTW9kZQotCQkJCQlpbmNocm9uTW9kZUNvbmp1bmN0aW9uLm1vZGVzLmFkZChtb2RlTGFiZWxUcmFuc2Zvcm1lci5nZXRJbmNocm9uTW9kZShhbWx0TW9kZUxhYmVsLCBhbWx0TW9kZUxpdGVyYWwpKQotCQkJCX1dCi0JCQl9Ci0JCX1dCi0JCWluY2hyb25Sb290Lmdsb2JhbE1vZGVDb25kaXRpb25zLmFkZChpdCkKLQl9Ci0JCQotCQkKLQlwdWJsaWMgZGVmIE1vZGUgIGdldEluY2hyb25Nb2RlKE1vZGVMaXRlcmFsIGFtbHRNb2RlTGl0ZXJhbCApewotCQkKLQkJdmFsIGFtbHRNb2RlTmFtZT1hbWx0TW9kZUxpdGVyYWw/LmNvbnRhaW5pbmdNb2RlPy5uYW1lCi0JCQotCQl2YWwgaW5jaHJvbk1vZGVHcm91cD1jYWNoZU1vZGVsLmdldEluY2hyb25Nb2RlR3JvdXAoYW1sdE1vZGVOYW1lKQotCQotCQkJaWYoaW5jaHJvbk1vZGVHcm91cCAhPT1udWxsKXsKLQkJCQl2YWwgaW5jaHJvbk1vZGU9IGluY2hyb25Nb2RlR3JvdXAubW9kZXMuZmluZEZpcnN0W2luY2hyb25Nb2RlfHsKLQkJCQkJKGFtbHRNb2RlTGl0ZXJhbC5uYW1lLmVxdWFscyhpbmNocm9uTW9kZS5uYW1lKSkgCi0JCQkJfV0KLQkJCQlyZXR1cm4gaW5jaHJvbk1vZGUKLQkJCX0KLQkJCi0JCXJldHVybiBudWxsCi0JIAotCQkKLQl9Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L1J1bm5hYmxlSXRlbVRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9SdW5uYWJsZUl0ZW1UcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2I3NzlmYS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L1J1bm5hYmxlSXRlbVRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdwotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5DYWxsU2VxdWVuY2VJdGVtCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Db21wb25lbnQKLWltcG9ydCBqYXZhLnV0aWwuTGlzdAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5DaGFubmVsUmVjZWl2ZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5DaGFubmVsU2VuZAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5DdXN0b21FdmVudFRyaWdnZXIKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTGFiZWxBY2Nlc3NFbnVtCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLk1vZGVMYWJlbEFjY2VzcwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Qcm9jZXNzCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlJ1bm5hYmxlQ2FsbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5SdW5uYWJsZUl0ZW0KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUnVubmFibGVNb2RlU3dpdGNoCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlRpY2tzCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbS5DaGFubmVsQWNjZXNzVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbS5SdW5uYWJsZUNhbGxUcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy5tMm0uc3cucnVubmFibGVJdGVtLlRpY2tzVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbS5DdXN0b21FdmVudFRyaWdnZXJUcmFuc2Zvcm1lcgotCi1AU2luZ2xldG9uCi1jbGFzcyBSdW5uYWJsZUl0ZW1UcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXJ7Ci0JCi0JQEluamVjdCBSdW5uYWJsZUNhbGxUcmFuc2Zvcm1lciBydW5uYWJsZUNhbGxUcmFuc2Zvcm1lcgotCUBJbmplY3QgVGlja3NUcmFuc2Zvcm1lciB0aWNrc1RyYW5zZm9ybWVyCQotCUBJbmplY3QgTW9kZVN3aXRjaFRyYW5zZm9ybWVyIG1vZGVTd2l0Y2hUcmFuc2Zvcm1lcgotCUBJbmplY3QgQ3VzdG9tRXZlbnRUcmlnZ2VyVHJhbnNmb3JtZXIgY3VzdG9tRXZlbnRUcmlnZ2VyVHJhbnNmb3JtZXIJCi0JQEluamVjdCBNb2RlTGFiZWxUcmFuc2Zvcm1lciBtb2RlTGFiZWxUcmFuc2Zvcm1lcgotCUBJbmplY3QgQ2hhbm5lbEFjY2Vzc1RyYW5zZm9ybWVyIGNoYW5uZWxBY2Nlc3NUcmFuc2Zvcm1lciAJCi0JCi0JZGVmIExpc3Q8Q2FsbFNlcXVlbmNlSXRlbT4gIHRyYW5zZm9ybVJ1bm5hYmxlSXRlbShDb21wb25lbnQgaW5jaHJvbkNvbXBvbmVudCwgUHJvY2VzcyBhbWx0VGFzaywKLQkJUnVubmFibGVJdGVtIGFtbHRSdW5uYWJsZUl0ZW0pIHsJCQotCQkJdmFsIExpc3Q8Q2FsbFNlcXVlbmNlSXRlbT4gbGlzdD1uZXdBcnJheUxpc3QKLQkJCQkJCi0JCQlpZiAoYW1sdFJ1bm5hYmxlSXRlbSBpbnN0YW5jZW9mIFJ1bm5hYmxlQ2FsbCkgewotCQkJCXZhciBpbmNocm9uRnVuY3Rpb25DYWxsID0gcnVubmFibGVDYWxsVHJhbnNmb3JtZXIuY3JlYXRlRnVuY3Rpb25DYWxsKGluY2hyb25Db21wb25lbnQsIGFtbHRUYXNrLAotCQkJCQlhbWx0UnVubmFibGVJdGVtKQotCQkJCSAgbGlzdC5hZGQoaW5jaHJvbkZ1bmN0aW9uQ2FsbCkJCQkgCQotCQkJfSBlbHNlIGlmIChhbWx0UnVubmFibGVJdGVtIGluc3RhbmNlb2YgVGlja3MpIHsKLQkJCQl2YXIgaW5jaHJvblJlc291cmNlQ29uc3VtcHRpb24gPSB0aWNrc1RyYW5zZm9ybWVyLmNyZWF0ZVJlc291cmNlQ29uc3VtcHRpb24oYW1sdFRhc2ssIGFtbHRSdW5uYWJsZUl0ZW0pCi0JCQkJIGxpc3QuYWRkKGluY2hyb25SZXNvdXJjZUNvbnN1bXB0aW9uKQotCQkJfWVsc2UgaWYoYW1sdFJ1bm5hYmxlSXRlbSBpbnN0YW5jZW9mIFJ1bm5hYmxlTW9kZVN3aXRjaCl7CQkJCQotCQkJCXZhciBpbmNocm9uRnVuY3Rpb25DYWxsID0gIG1vZGVTd2l0Y2hUcmFuc2Zvcm1lci50cmFuc2Zvcm1SdW5uYWJsZU1vZGVTd2l0Y2goaW5jaHJvbkNvbXBvbmVudCwgYW1sdFRhc2ssYW1sdFJ1bm5hYmxlSXRlbSkJCQkJIAotCQkJCSBsaXN0LmFkZChpbmNocm9uRnVuY3Rpb25DYWxsKQotCQkJfSBlbHNlIGlmKGFtbHRSdW5uYWJsZUl0ZW0gaW5zdGFuY2VvZiBDdXN0b21FdmVudFRyaWdnZXIpewotCQkJCXZhbCBpbmNocm9uQ2FsbFNlcXVlbmNlSXRlbXMgPSAgY3VzdG9tRXZlbnRUcmlnZ2VyVHJhbnNmb3JtZXIudHJhbnNmb3JtQ3VzdG9tRXZlbnRUcmlnZ2VyKGluY2hyb25Db21wb25lbnQsIGFtbHRSdW5uYWJsZUl0ZW0pCi0JCQkJaW5jaHJvbkNhbGxTZXF1ZW5jZUl0ZW1zLmZvckVhY2hbaW5jaHJvbkNhbGxTZXF1ZW5jZUl0ZW0gfCBsaXN0LmFkZChpbmNocm9uQ2FsbFNlcXVlbmNlSXRlbSldCi0JCQl9IGVsc2UgaWYoYW1sdFJ1bm5hYmxlSXRlbSBpbnN0YW5jZW9mIE1vZGVMYWJlbEFjY2Vzcyl7Ci0JCQkJaWYoYW1sdFJ1bm5hYmxlSXRlbS5hY2Nlc3MuZXF1YWxzKExhYmVsQWNjZXNzRW51bS5XUklURSkpewotCQkJCQl2YXIgaW5jaHJvbk1vZGVTd2l0Y2hQb2ludD1pbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZU1vZGVTd2l0Y2hQb2ludAkJCQkJCi0JCQkJCXZhbCBhbWx0TW9kZUxhYmVsPWFtbHRSdW5uYWJsZUl0ZW0uZGF0YQkJCQkJCi0JCQkJCXZhbCBhbWx0TW9kZUxpdGVyYWw9YW1sdFJ1bm5hYmxlSXRlbS5tb2RlVmFsdWUJCQkJCQotCQkJCQl2YWwgaW5jaHJvbk1vZGU9bW9kZUxhYmVsVHJhbnNmb3JtZXIuZ2V0SW5jaHJvbk1vZGUoYW1sdE1vZGVMYWJlbCwgYW1sdE1vZGVMaXRlcmFsKQkJCQkJCi0JCQkJCWluY2hyb25Nb2RlU3dpdGNoUG9pbnQubW9kZSA9IGluY2hyb25Nb2RlCQkJCQkKLQkJCQkJbGlzdC5hZGQoaW5jaHJvbk1vZGVTd2l0Y2hQb2ludCkKLQkJCQl9Ci0JCQl9IGVsc2UgaWYgKGFtbHRSdW5uYWJsZUl0ZW0gaW5zdGFuY2VvZiBDaGFubmVsUmVjZWl2ZSkgewotCQkJCWxpc3QuYWRkKGNoYW5uZWxBY2Nlc3NUcmFuc2Zvcm1lci5jcmVhdGVWYXJpYWJsZUFjY2VzcyhhbWx0VGFzaywgYW1sdFJ1bm5hYmxlSXRlbSBhcyBDaGFubmVsUmVjZWl2ZSkpCi0JCQl9IGVsc2UgaWYgKGFtbHRSdW5uYWJsZUl0ZW0gaW5zdGFuY2VvZiBDaGFubmVsU2VuZCkgewotCQkJCWxpc3QuYWRkKGNoYW5uZWxBY2Nlc3NUcmFuc2Zvcm1lci5jcmVhdGVWYXJpYWJsZUFjY2VzcyhhbWx0VGFzaywgYW1sdFJ1bm5hYmxlSXRlbSBhcyBDaGFubmVsU2VuZCkpCQotCQkJfQotCQkJCi0JCQlyZXR1cm4gbGlzdAotCX0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L1J1bm5hYmxlVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L1J1bm5hYmxlVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4ZDYzMjIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9SdW5uYWJsZVRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uc3cKLQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LkluamVjdAotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuQ29tcG9uZW50Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUnVubmFibGUKLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBSdW5uYWJsZVRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0KLQkvL3ZhciBBbWx0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsCi0KLQlASW5qZWN0IFJ1bm5hYmxlSXRlbVRyYW5zZm9ybWVyIHJ1bm5hYmxlSXRlbVRyYW5zZm9ybWVyCi0KLQlkZWYgY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlRnVuY3Rpb24gY3JlYXRlRnVuY3Rpb24oQ29tcG9uZW50IGluY2hyb25Db21wb25lbnQsIFByb2Nlc3MgYW1sdFRhc2ssCi0JCVJ1bm5hYmxlIGFtbHRSdW5uYWJsZSkgewotCi0JCS8vY2FjaGVNb2RlbCA9IGN1c3RvbU9ianNTdG9yZS5nZXRJbnN0YW5jZShBbWx0Q2FjaGVNb2RlbCkKLQotCQlpbmNocm9uQ29tcG9uZW50LmZ1bmN0aW9ucy5hZGQoaXQpCi0KLQkJaXQubmFtZSA9IGFtbHRSdW5uYWJsZS5uYW1lICsgIi0iICsgYW1sdFRhc2submFtZQotCi0JCXZhbCBpbmNocm9uQ2FsbEdyYXBoID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVDYWxsR3JhcGgKLQotCQlpdC5jYWxsR3JhcGggPSBpbmNocm9uQ2FsbEdyYXBoCi0KLQkJdmFsIGluY2hyb25DYWxsU2VxdWVuY2UgPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUNhbGxTZXF1ZW5jZQotCi0JCWluY2hyb25DYWxsU2VxdWVuY2UubmFtZSA9ICJDUyIKLQotCQlpbmNocm9uQ2FsbEdyYXBoLmdyYXBoRW50cmllcy5hZGQoaW5jaHJvbkNhbGxTZXF1ZW5jZSkKLQotCQlhbWx0UnVubmFibGU/LnJ1bm5hYmxlSXRlbXM/LmZvckVhY2ggWyBhbWx0UnVubmFibGVJdGVtIHwKLQkJCQotCQkJaW5jaHJvbkNhbGxTZXF1ZW5jZS5jYWxscy5hZGRBbGwocnVubmFibGVJdGVtVHJhbnNmb3JtZXIudHJhbnNmb3JtUnVubmFibGVJdGVtKGluY2hyb25Db21wb25lbnQsIGFtbHRUYXNrLAlhbWx0UnVubmFibGVJdGVtKSkKLQkgCi0JCV0KLQl9Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L1NXVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L1NXVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzYjZjYzUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9TV1RyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3Ci0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLk1vZGVsCi1pbXBvcnQgamF2YS51dGlsLkhhc2hNYXAKLWltcG9ydCBqYXZhLnV0aWwuTWFwCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkludGVycnVwdENvbnRyb2xsZXIKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuT3BlcmF0aW5nU3lzdGVtCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuU1dNb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5UYXNrU2NoZWR1bGVyCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLmh3LlByb2Nlc3NpbmdVbml0VHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLm9zLk9TVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMubTJtLnN0aW11bGkuU3RpbXVsaVRyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLnV0aWxzLkFtbHRDYWNoZU1vZGVsCi0KLUBTaW5nbGV0b24KLWNsYXNzIFNXVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCXZhciBBbWx0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsCi0KLQlASW5qZWN0IFRhc2tUcmFuc2Zvcm1lciB0YXNrVHJhbnNmb3JtZXIKLQlASW5qZWN0IElTUlRyYW5zZm9ybWVyIGlzclRyYW5zZm9ybWVyCi0JQEluamVjdCBDYWxsR3JhcGhUcmFuc2Zvcm1lciBjYWxsR3JhcGhUcmFuc2Zvcm1lcgotCUBJbmplY3QgTW9kZUxhYmVsVHJhbnNmb3JtZXIgbW9kZUxhYmVsVHJhbnNmb3JtZXIKLQlASW5qZWN0IFByb2Nlc3NpbmdVbml0VHJhbnNmb3JtZXIgcHJvY2Vzc2luZ1VuaXRUcmFuc2Zvcm1lcgotCUBJbmplY3QgT1NUcmFuc2Zvcm1lciBvc1RyYW5zZm9ybWVyCi0JQEluamVjdCBTdGltdWxpVHJhbnNmb3JtZXIgc3RpbXVsaVRyYW5zZm9ybWVyCi0KLQkKLQotCWRlZiB0cmFuc2Zvcm1TV01vZGVsKFNXTW9kZWwgYW1sdFN3TW9kZWwsIE1vZGVsIGluY2hyb25Nb2RlbCkgewotCi0JCWNhY2hlTW9kZWwgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoQW1sdENhY2hlTW9kZWwpCi0JCi0JCXZhbCBNYXA8UHJvY2VzcywgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Qcm9jZXNzPiBhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcCA9IG5ldyBIYXNoTWFwCi0JCQotCQljYWNoZU1vZGVsLmFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwPWFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwCi0JCQotCQlhbWx0U3dNb2RlbD8ubW9kZUxhYmVscz8uZm9yRWFjaFthbWx0TW9kZUxhYmVsfHsKLQkJCWluY2hyb25Nb2RlbC5nbG9iYWxNb2RlR3JvdXBzLmFkZChtb2RlTGFiZWxUcmFuc2Zvcm1lci5jcmVhdGVNb2RlR3JvdXAoYW1sdE1vZGVMYWJlbCkpCi0JCX1dCi0JCQotLy8JCWFtbHRTd01vZGVsPy5tb2Rlcz8uZm9yRWFjaFthbWx0TW9kZXx7Ci0vLwkJCWluY2hyb25Nb2RlbC5nbG9iYWxNb2RlR3JvdXBzLmFkZChtb2RlVHJhbnNmb3JtZXIuY3JlYXRlTW9kZUdyb3VwKGFtbHRNb2RlKSkKLS8vCQl9XQotCi0JCXZhbCBpbmNocm9uU2NoZWR1bGVyX2FtbHRTY2hlZHVsZXJNYXAgPSBjYWNoZU1vZGVsLmdldEluY2hyb25TY2hlZHVsZXJfYW1sdFNjaGVkdWxlck1hcCgpCi0KLQkJaW5jaHJvblNjaGVkdWxlcl9hbWx0U2NoZWR1bGVyTWFwLmZvckVhY2ggWyBpbmNocm9uU2NoZWR1bGVyLCBhbWx0U2NoZWR1bGVyIHwKLQotCQkJaWYgKGFtbHRTY2hlZHVsZXIgIT09IG51bGwpIHsKLQotCQkJCXZhciBhbWx0T1MgPSBhbWx0U2NoZWR1bGVyLmVDb250YWluZXIgYXMgT3BlcmF0aW5nU3lzdGVtCi0JCQkJdmFsIGluY2hyb25Db21wb25lbnQgPSBvc1RyYW5zZm9ybWVyLmNyZWF0ZUNvbXBvbmVudChhbWx0T1MpCi0KLQkJCQlpZiAoYW1sdFNjaGVkdWxlciBpbnN0YW5jZW9mIFRhc2tTY2hlZHVsZXIpIHsKLQkJCQkJYW1sdFNjaGVkdWxlci50YXNrQWxsb2NhdGlvbnMuZm9yRWFjaCBbIGFtbHRUYXNrQWxsb2NhdGlvbiB8Ci0KLQkJCQkJCXZhciBhbWx0VGFzayA9IGFtbHRUYXNrQWxsb2NhdGlvbi50YXNrCi0KLQkJCQkJCXZhbCBpbmNocm9uUHJvY2VzcyA9IHRhc2tUcmFuc2Zvcm1lci5jcmVhdGVQcm9jZXNzKGFtbHRUYXNrLCBpbmNocm9uQ29tcG9uZW50KQotCi0JCQkJCQlhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcC5wdXQoYW1sdFRhc2ssIGluY2hyb25Qcm9jZXNzKQotCi0JCQkJCQlhbWx0VGFza0FsbG9jYXRpb24uYWZmaW5pdHkuZm9yRWFjaCBbIGFtbHRQVSB8Ci0JCQkJCQkJewotCQkJCQkJCQl2YXIgaW5jaHJvbkNwdUNvcmUgPSBwcm9jZXNzaW5nVW5pdFRyYW5zZm9ybWVyLmNyZWF0ZUNwdUNvcmUoYW1sdFBVKQotCQkJCQkJCQlpZiAoaW5jaHJvbkNwdUNvcmUgIT09IG51bGwpIHsKLQkJCQkJCQkJCWluY2hyb25Qcm9jZXNzLmNwdUNvcmVzLmFkZChpbmNocm9uQ3B1Q29yZSkKLQkJCQkJCQkJfQotCQkJCQkJCX0KLQkJCQkJCV0KLQotCQkJCQkJaW5jaHJvblNjaGVkdWxlci5zY2hlZHVsYWJsZXMuYWRkKGluY2hyb25Qcm9jZXNzKQotCQkJCQldCi0JCQkJfSBlbHNlIGlmIChhbWx0U2NoZWR1bGVyIGluc3RhbmNlb2YgSW50ZXJydXB0Q29udHJvbGxlcikgewotCi0JCQkJCWFtbHRTY2hlZHVsZXIuaXNyQWxsb2NhdGlvbnMuZm9yRWFjaCBbIGFtbHRJU1JBbGxvY2F0aW9uIHwKLQkJCQkJCXZhciBhbWx0SVNSID0gYW1sdElTUkFsbG9jYXRpb24uaXNyCi0JCQkJCQl2YWwgaW5jaHJvblByb2Nlc3MgPSBpc3JUcmFuc2Zvcm1lci5jcmVhdGVQcm9jZXNzKGFtbHRJU1IsIGluY2hyb25Db21wb25lbnQpCi0KLQkJCQkJCWFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwLnB1dChhbWx0SVNSLCBpbmNocm9uUHJvY2VzcykKLQotCQkJCQkJaW5jaHJvblNjaGVkdWxlci5zY2hlZHVsYWJsZXMuYWRkKGluY2hyb25Qcm9jZXNzKQotCQkJCQldCi0JCQkJfQotCQkJfQotCQldCi0KLQkJYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXAuZm9yRWFjaCBbIGFtbHRQcm9jZXNzLCBpbmNocm9uUHJvY2VzcyB8IHsKLQotCQkJaWYoYW1sdFByb2Nlc3MuY2FsbEdyYXBoIT09bnVsbCkKLQkJCXsKLQkJCQljYWxsR3JhcGhUcmFuc2Zvcm1lci50cmFuc2Zvcm1DYWxsR3JhcGgoYW1sdFByb2Nlc3MuY2FsbEdyYXBoLGFtbHRQcm9jZXNzLGFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwKQotCQkJCQotCQkJfQotCQkJCi0JCQlhbWx0UHJvY2Vzcz8uc3RpbXVsaT8uZm9yRWFjaCBbIGFtbHRTdGltdWxpIHx7Ci0JCQkJc3RpbXVsaVRyYW5zZm9ybWVyLmNyZWF0ZUFjdGl2YXRlUHJvY2VzcyhhbWx0U3RpbXVsaSwgYW1sdFByb2Nlc3MpCi0JCQl9XQotCQl9XQotCX0KLQkKLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9UYXNrVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L1Rhc2tUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2JhZTMzNi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L1Rhc2tUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3Ci0KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkNvbXBvbmVudAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5UYXNrCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCB0ZW1wbGF0ZXMudXRpbHMuQW1sdENhY2hlTW9kZWwKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgVGFza1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0KLQl2YXIgQW1sdENhY2hlTW9kZWwgY2FjaGVNb2RlbAotCi0JZGVmIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVByb2Nlc3MgY3JlYXRlUHJvY2VzcyhUYXNrIGFtbHRUYXNrLCBDb21wb25lbnQgaW5jaHJvbkNvbXBvbmVudCkgewotCi0JCWNhY2hlTW9kZWwgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoQW1sdENhY2hlTW9kZWwpCi0KLQkJY2FjaGVNb2RlbC5hZGRBbWx0UHJvY2Vzc19JbmNocm9uQ29tcG9uZW50KGFtbHRUYXNrLCBpbmNocm9uQ29tcG9uZW50KQotCQlpdC5uYW1lID0gYW1sdFRhc2submFtZQotCi0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9Bc3luY2hyb25vdXNTZXJ2ZXJDYWxsVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9Bc3luY2hyb25vdXNTZXJ2ZXJDYWxsVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzMDgzNTYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vQXN5bmNocm9ub3VzU2VydmVyQ2FsbFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uc3cucnVubmFibGVJdGVtCi0KLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBBc3luY2hyb25vdXNTZXJ2ZXJDYWxsVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0NoYW5uZWxBY2Nlc3NUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0NoYW5uZWxBY2Nlc3NUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY0Y2FjMS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9DaGFubmVsQWNjZXNzVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uc3cucnVubmFibGVJdGVtCi0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkRhdGFGbG93Q29ubmVjdGlvbgotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuVmFyaWFibGVSZWFkQWNjZXNzUG9saWN5Ci1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5WYXJpYWJsZVJlYWRBY2Nlc3NUeXBlCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5WYXJpYWJsZVdyaXRlQWNjZXNzVHlwZQotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwubWVtb3J5LkRhdGFBY2Nlc3NUeXBlCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkNoYW5uZWxSZWNlaXZlCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkNoYW5uZWxTZW5kCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUmVjZWl2ZU9wZXJhdGlvbgotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS5zdy5DaGFubmVsVHJhbnNmb3JtZXIKLQotQFNpbmdsZXRvbgotY2xhc3MgQ2hhbm5lbEFjY2Vzc1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0JCi0JQEluamVjdCBDaGFubmVsVHJhbnNmb3JtZXIgY2hhbm5lbFRyYW5zZm9ybWVyCi0JQEluamVjdCBUcmFuc21pc3Npb25Qb2xpY3lUcmFuc2Zvcm1lciB0cmFuc21pc3Npb25Qb2xpY3lUcmFuc2Zvcm1lcgotCQotCXByaXZhdGUgc3RhdGljIEludGVnZXIgZW51bWVyYXRvclJlYWQgPSAwOwotCXByaXZhdGUgc3RhdGljIEludGVnZXIgZW51bWVyYXRvclNlbmQgPSAwCi0JCi0JZGVmIGRpc3BhdGNoIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVZhcmlhYmxlUmVhZEFjY2VzcyBjcmVhdGVWYXJpYWJsZUFjY2VzcyhQcm9jZXNzIGFtbHRUYXNrLCBDaGFubmVsUmVjZWl2ZSBhbWx0Q2hhbm5lbFJlY2VpdmUpIHsKLQkJLy9jcmVhdGUvZ2V0IGRhdGFmbG93Ci0JCWl0LmNvbm5lY3Rpb24gPSBjaGFubmVsVHJhbnNmb3JtZXIuY3JlYXRlRGF0YUZsb3dDb25uZWN0aW9uKGFtbHRDaGFubmVsUmVjZWl2ZS5kYXRhKQotCQkvL3NldCBhdHRyaWJ1dGVzCi0JCXZhbCBuYW1lID0gYW1sdFRhc2submFtZSArICJfcmVjZWl2ZV8iICsgaXQuY29ubmVjdGlvbi5uYW1lICsgIl8iICsgZW51bWVyYXRvclJlYWQKLQkJaXQuZGF0YU11c3RCZU5ldyA9IGFtbHRDaGFubmVsUmVjZWl2ZS5kYXRhTXVzdEJlTmV3Ci0JCWl0LmluZGV4ID0gYW1sdENoYW5uZWxSZWNlaXZlLmVsZW1lbnRJbmRleAotCQlpdC5uYW1lID0gIG5hbWUKLQkJaXQubGFiZWwgPSBuYW1lCi0JCWl0Lm1pbkVsZW1lbnRzID0gYW1sdENoYW5uZWxSZWNlaXZlLmxvd2VyQm91bmQKLQkJaXQuZWxlbWVudHMgPSBhbWx0Q2hhbm5lbFJlY2VpdmUuZWxlbWVudHMKLQkJCi0JCS8vc2V0IGRhdGEgYWNjZXNzIHBvbGljeQkKLQkJaWYgKGFtbHRDaGFubmVsUmVjZWl2ZS50cmFuc21pc3Npb25Qb2xpY3kgIT09IG51bGwpewotCQkJaXQuZGF0YUFjY2VzcyA9IHRyYW5zbWlzc2lvblBvbGljeVRyYW5zZm9ybWVyLmNyZWF0ZUV4cGxpY2l0RGF0YUFjY2VzcyhhbWx0VGFzaywgYW1sdENoYW5uZWxSZWNlaXZlLnRyYW5zbWlzc2lvblBvbGljeSkKLQkJfSBlbHNlIHsKLQkJCWl0LmRhdGFBY2Nlc3MgPSBpbmNocm9uTWVtb3J5RmFjdG9yeS5jcmVhdGVFeHBsaWNpdERhdGFBY2Nlc3MKLQkJfSAKLQkJaXQuZGF0YUFjY2Vzcy5hY2Nlc3NUeXBlID0gRGF0YUFjY2Vzc1R5cGUuUkVBRDsKLQkJCi0JCQotCQkvL2Fzc2lnbiBvcGVyYXRpb24gdHlwZTogRklGTywgTElGTywgVEFLRSwgUkVBRAkKLQkJaWYgKGFtbHRDaGFubmVsUmVjZWl2ZS5yZWNlaXZlT3BlcmF0aW9uID09PSBSZWNlaXZlT3BlcmF0aW9uLkZJRk9fUkVBRCkgewotCQkJaXQucG9saWN5ID0gVmFyaWFibGVSZWFkQWNjZXNzUG9saWN5LkZJRk9fUkVBRAotCQl9Ci0JCWVsc2UgaWYgKGFtbHRDaGFubmVsUmVjZWl2ZS5yZWNlaXZlT3BlcmF0aW9uID09PSBSZWNlaXZlT3BlcmF0aW9uLkZJRk9fVEFLRSkgewotCQkJaXQucG9saWN5ID0gVmFyaWFibGVSZWFkQWNjZXNzUG9saWN5LkZJRk9fVEFLRQotCQl9Ci0JCWVsc2UgaWYgKGFtbHRDaGFubmVsUmVjZWl2ZS5yZWNlaXZlT3BlcmF0aW9uID09PSBSZWNlaXZlT3BlcmF0aW9uLkxJRk9fUkVBRCkgewotCQkJaXQucG9saWN5ID0gVmFyaWFibGVSZWFkQWNjZXNzUG9saWN5LkxJRk9fUkVBRAotCQl9Ci0JCWVsc2UgaWYgKGFtbHRDaGFubmVsUmVjZWl2ZS5yZWNlaXZlT3BlcmF0aW9uID09PSBSZWNlaXZlT3BlcmF0aW9uLkxJRk9fVEFLRSkgewotCQkJaXQucG9saWN5ID0gVmFyaWFibGVSZWFkQWNjZXNzUG9saWN5LkxJRk9fVEFLRQotCQl9Ci0JCQotCQkvL2Fzc2lnbiB0eXBlCi0JCWl0LnR5cGUgPSBWYXJpYWJsZVJlYWRBY2Nlc3NUeXBlLkdFTkVSSUMJCQotCQkKLQkJLy9hZGQgcmVhZCBhY2Nlc3MgdG8gZGF0YWZsb3cgY29ubmVjdGlvbidzIHJlY2VpdmVyIGxpc3QgCi0JCWl0LmNvbm5lY3Rpb24ucmVxdWVzdGVycy5hZGQoaXQpCi0JCQotCQllbnVtZXJhdG9yUmVhZCA9IGVudW1lcmF0b3JSZWFkICsgMQotCX0KLQotCQotCWRlZiBkaXNwYXRjaCBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVWYXJpYWJsZVdyaXRlQWNjZXNzIGNyZWF0ZVZhcmlhYmxlQWNjZXNzKFByb2Nlc3MgYW1sdFRhc2ssIENoYW5uZWxTZW5kIGFtbHRDaGFubmVsU2VuZCkgewotCQkvL2NyZWF0ZS9nZXQgZGF0YWZsb3cKLQkJdmFsIERhdGFGbG93Q29ubmVjdGlvbiBjb25uZWN0aW9uVG1wID0gY2hhbm5lbFRyYW5zZm9ybWVyLmNyZWF0ZURhdGFGbG93Q29ubmVjdGlvbihhbWx0Q2hhbm5lbFNlbmQuZGF0YSkKLQkJLy9zZXQgYXR0cmlidXRlcwotCQl2YWwgbmFtZSA9IGFtbHRUYXNrLm5hbWUgKyAiX3NlbmRfIiArIGNvbm5lY3Rpb25UbXAubmFtZSArICJfIiArIGVudW1lcmF0b3JTZW5kCQotCQkvL2lzc3VlIGFuIGVycm9yIGlmIGNvbm5lY3Rpb24ncyBwcm92aWRlciBpcyBhbHJlYWR5IHNldAotCQlpZiAoY29ubmVjdGlvblRtcC5wcm92aWRlciAhPT0gbnVsbCl7Ci0JCQlsb2dnZXIuZXJyb3IoIlRyYW5zZm9ybWF0aW9uIGZvciBDaGFubmVsIHRvIEluY2hyb24gRGF0YUZsb3dDb25uZWN0aW9uIHN1cHBvcnRzIG9ubHkgb25lIHdyaXRlciBwZXIgY2hhbm5lbC4gVXBkYXRpbmcgcHJvdmlkZXIgb2YgZGF0YSBmbG93IGNvbm5lY3Rpb24gIiArIGNvbm5lY3Rpb25UbXAubmFtZSArIAotCQkJIiwgcmVwbGFjaW5nICIgKyBjb25uZWN0aW9uVG1wLnByb3ZpZGVyLm5hbWUgKyAiIHdpdGggIiArIG5hbWUpCi0JCX0KLQkJCi0JCWl0LmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uVG1wCi0JCWl0Lm5hbWUgPSBuYW1lCi0JCWl0LmxhYmVsID0gbmFtZQotCQlpdC5lbGVtZW50cyA9IGFtbHRDaGFubmVsU2VuZC5lbGVtZW50cwotCQkKLQkJLy9zZXQgZGF0YSBhY2Nlc3MgcG9saWN5CQkKLQkJaWYgKGFtbHRDaGFubmVsU2VuZC50cmFuc21pc3Npb25Qb2xpY3kgIT09IG51bGwpewotCQkJaXQuZGF0YUFjY2VzcyA9IHRyYW5zbWlzc2lvblBvbGljeVRyYW5zZm9ybWVyLmNyZWF0ZUV4cGxpY2l0RGF0YUFjY2VzcyhhbWx0VGFzaywgYW1sdENoYW5uZWxTZW5kLnRyYW5zbWlzc2lvblBvbGljeSkKLQkJfSBlbHNlIHsKLQkJCWl0LmRhdGFBY2Nlc3MgPSBpbmNocm9uTWVtb3J5RmFjdG9yeS5jcmVhdGVFeHBsaWNpdERhdGFBY2Nlc3MKLQkJfSAKLQkJaXQuZGF0YUFjY2Vzcy5hY2Nlc3NUeXBlID0gRGF0YUFjY2Vzc1R5cGUuV1JJVEU7Ci0JCQotCQkvL2Fzc2lnbiB0eXBlCi0JCWl0LnR5cGUgPSBWYXJpYWJsZVdyaXRlQWNjZXNzVHlwZS5HRU5FUklDCQotCQkKLQkJLy9UT0RPOiBhc3NpZ24gcG9saWN5Ci0JCS8vaXQucG9saWN5ID0gVmFyaWFibGVXcml0ZUFjY2Vzc1BvbGljeS5FUlJPUl9EUk9QCi0JCQotCQllbnVtZXJhdG9yU2VuZCA9IGVudW1lcmF0b3JTZW5kICsgMQotCX0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0NvbXB1dGF0aW9uSXRlbVRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vQ29tcHV0YXRpb25JdGVtVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiNGE3NDEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vQ29tcHV0YXRpb25JdGVtVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdy5ydW5uYWJsZUl0ZW0KLQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIENvbXB1dGF0aW9uSXRlbVRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9DdXN0b21FdmVudFRyaWdnZXJUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0N1c3RvbUV2ZW50VHJpZ2dlclRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjMzYmY0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0N1c3RvbUV2ZW50VHJpZ2dlclRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uc3cucnVubmFibGVJdGVtCi0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkFjdGl2YXRpb25Db25uZWN0aW9uCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5DYWxsU2VxdWVuY2VJdGVtCi1pbXBvcnQgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Db21wb25lbnQKLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkZ1bmN0aW9uQ2FsbAotaW1wb3J0IGphdmEudXRpbC5MaW5rZWRIYXNoTWFwCi1pbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3QKLWltcG9ydCBqYXZhLnV0aWwuTGlzdAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5DdXN0b21FdmVudFRyaWdnZXIKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuRXZlbnRTdGltdWx1cwotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS5zdGltdWxpLlN0aW11bGlUcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy51dGlscy5BbWFsdGhlYU1vZGVsTmFnaXZhdGlvblV0aWxzCi1pbXBvcnQgdGVtcGxhdGVzLnV0aWxzLkFtbHRDYWNoZU1vZGVsCi0KLUBTaW5nbGV0b24KLWNsYXNzIEN1c3RvbUV2ZW50VHJpZ2dlclRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0JCi0JdmFyIEFtbHRDYWNoZU1vZGVsIGNhY2hlTW9kZWwKLQkKLQkJQEluamVjdCBTdGltdWxpVHJhbnNmb3JtZXIgc3RpbXVsaVRyYW5zZm9ybWVyCi0JCQotCXB1YmxpYyBkZWYgTGlzdDxDYWxsU2VxdWVuY2VJdGVtPiB0cmFuc2Zvcm1DdXN0b21FdmVudFRyaWdnZXIoQ29tcG9uZW50IGluY2hyb25Db21wb25lbnQsIEN1c3RvbUV2ZW50VHJpZ2dlciBhbWx0Q3VzdG9tRXZlbnRUcmlnZ2VyKXsKLQkJIAkJCSAJCi0JIAljYWNoZU1vZGVsID0gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKEFtbHRDYWNoZU1vZGVsKQotCQkJCi0JIAl2YWwgaW5jaHJvbkNhbGxTZXF1ZW5jZUl0ZW1zID0gbmV3IExpbmtlZExpc3Q8Q2FsbFNlcXVlbmNlSXRlbT4KLQkJdmFsIGFtbHRDdXN0b21FdmVudD0gYW1sdEN1c3RvbUV2ZW50VHJpZ2dlci5ldmVudAkJCi0JCXZhbCBhbWx0U3RpbXVsdXNJbmNocm9uQWN0aXZhdGlvbkNvbm5lY3Rpb25zTWFwPW5ldyBMaW5rZWRIYXNoTWFwPEV2ZW50U3RpbXVsdXMsIEFjdGl2YXRpb25Db25uZWN0aW9uPgotCQkJCi0JCWlmKGFtbHRDdXN0b21FdmVudCAhPT1udWxsKXsKLQkJCXZhbCBhbWx0Q3VzdG9tRXZlbnRCYWNrUmVmZXJlbmNlcz1BbWFsdGhlYU1vZGVsTmFnaXZhdGlvblV0aWxzLmdldEJhY2tSZWZlcmVuY2VzKGFtbHRDdXN0b21FdmVudCx0cnVlKTsKLQkJCWZvciAoYW1sdEN1c3RvbUV2ZW50QmFja1JlZmVyZW5jZSA6IGFtbHRDdXN0b21FdmVudEJhY2tSZWZlcmVuY2VzKSB7Ci0JCQkJaWYoYW1sdEN1c3RvbUV2ZW50QmFja1JlZmVyZW5jZSBpbnN0YW5jZW9mIEV2ZW50U3RpbXVsdXMpewotCQkJCQl2YWwgaW5jaHJvbkFjdGl2YXRpb25Db25uZWN0aW9uID0gc3RpbXVsaVRyYW5zZm9ybWVyLmNyZWF0ZUFjdGl2YXRpb25Db25uZWN0aW9uKGFtbHRDdXN0b21FdmVudEJhY2tSZWZlcmVuY2UgYXMgRXZlbnRTdGltdWx1cykKLQkJCQkJYW1sdFN0aW11bHVzSW5jaHJvbkFjdGl2YXRpb25Db25uZWN0aW9uc01hcC5wdXQoYW1sdEN1c3RvbUV2ZW50QmFja1JlZmVyZW5jZSwgaW5jaHJvbkFjdGl2YXRpb25Db25uZWN0aW9uKQkJCQotCQkJCX0KLQkJCX0KLQkJfQotCQkJCQotIAotCQkvL1RyYW5zZm9ybWluZyBtb2RlIGVudHJpZXMgd2l0aCBjb25kaXRpb24KLQkJLy8jIyMjIyMjIyMjIyMjIG5vdyBjcmVhdGluZyBBY3RpdmF0aW9uSXRlbSBhbmQgYXNzb2NpYXRpbmcgQWN0aXZhdGlvbkNvbm5lY3Rpb24gb2JqZWN0cyAgCi0JCWFtbHRTdGltdWx1c0luY2hyb25BY3RpdmF0aW9uQ29ubmVjdGlvbnNNYXAuZm9yRWFjaFthbWx0RXZlbnRTdGltdWx1cywgaW5jaHJvbkFjdGl2YXRpb25Db25uZWN0aW9ufHsKLQotCQkgCXZhbCBpbmNocm9uQWN0aXZhdGlvbkl0ZW09aW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVBY3RpdmF0aW9uSXRlbQotCQkgCWluY2hyb25BY3RpdmF0aW9uSXRlbS5uYW1lID0gIkFjdGl2YXRpb25JdGVtXyIrIGFtbHRFdmVudFN0aW11bHVzLm5hbWUKLQkJIAlpbmNocm9uQWN0aXZhdGlvbkl0ZW0uY29ubmVjdGlvbj1pbmNocm9uQWN0aXZhdGlvbkNvbm5lY3Rpb247Ci0JCSAJCi0JCSAJaWYgKGFtbHRFdmVudFN0aW11bHVzLmVuYWJsaW5nTW9kZVZhbHVlTGlzdCAhPT0gbnVsbCl7Ci0JCQkJLyoKLQkJCQkgKiBCYXNlZCBvbiB0aGUgcmVxdWlyZW1lbnQgZnJvbSBJbmNocm9uIHRvIHVzZSB0aGUgbGF0ZXN0IE1vZGUgdmFsdWVzOgotCQkJCSAqIC0tIGl0IGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhICJEdW1teSBDYWxsU2VxdWVuY2UiIGFuZCBhc3NvY2lhdGUgTW9kZUNvbmRpdGlvbkV2YWx1YXRpb24gb2YgZWFjaCBNb2RlU3dpdGNoRW50cnkgb2JqZWN0IAotCQkJCSAqLyAKLQkJCQl2YWwgaW5jaHJvbkR1bW15RnVuY3Rpb249c3RpbXVsaVRyYW5zZm9ybWVyLmNyZWF0ZUR1bW15RnVuY3Rpb24oYW1sdEV2ZW50U3RpbXVsdXMsIGluY2hyb25BY3RpdmF0aW9uSXRlbSkKLQkJCQlpbmNocm9uQ29tcG9uZW50LmZ1bmN0aW9ucy5hZGQoaW5jaHJvbkR1bW15RnVuY3Rpb24pCi0JCQkJCi0JCQkJdmFyIEZ1bmN0aW9uQ2FsbCBpbmNocm9uRnVuY3Rpb25DYWxsPWluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlRnVuY3Rpb25DYWxsCi0JCQkJaW5jaHJvbkZ1bmN0aW9uQ2FsbC5mdW5jdGlvbj1pbmNocm9uRHVtbXlGdW5jdGlvbgotCQkJCWluY2hyb25GdW5jdGlvbkNhbGwubmFtZT0iY2FsbF8iK2luY2hyb25EdW1teUZ1bmN0aW9uLm5hbWUKLQkJCQlpbmNocm9uQ2FsbFNlcXVlbmNlSXRlbXMuYWRkKGluY2hyb25GdW5jdGlvbkNhbGwpCi0JCSAJfSBlbHNlIHsKLQkJCQlpbmNocm9uQ2FsbFNlcXVlbmNlSXRlbXMuYWRkKGluY2hyb25BY3RpdmF0aW9uSXRlbSkgCQkKLQkJIAl9Ci0JCSAJCi0JCQkKLSAJCX1dCi0KLQkJcmV0dXJuIGluY2hyb25DYWxsU2VxdWVuY2VJdGVtcwotCSAKLQl9Ci0JCi0KLSAKLQkJCi0gCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vRXhlY3V0aW9uTmVlZFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vRXhlY3V0aW9uTmVlZFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDVhMmY3Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0V4ZWN1dGlvbk5lZWRUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbQotCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgRXhlY3V0aW9uTmVlZFRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9HZXRSZXN1bHRTZXJ2ZXJDYWxsVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9HZXRSZXN1bHRTZXJ2ZXJDYWxsVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjM2I4YzQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vR2V0UmVzdWx0U2VydmVyQ2FsbFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uc3cucnVubmFibGVJdGVtCi0KLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBHZXRSZXN1bHRTZXJ2ZXJDYWxsVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0dyb3VwVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9Hcm91cFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzAxMzM4Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0dyb3VwVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdy5ydW5uYWJsZUl0ZW0KLQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIEdyb3VwVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0xhYmVsQWNjZXNzVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9MYWJlbEFjY2Vzc1RyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWI2NDQ5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL0xhYmVsQWNjZXNzVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdy5ydW5uYWJsZUl0ZW0KLQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIExhYmVsQWNjZXNzVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL01vZGVMYWJlbEFjY2Vzc1RyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vTW9kZUxhYmVsQWNjZXNzVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhM2RlODMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vTW9kZUxhYmVsQWNjZXNzVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdy5ydW5uYWJsZUl0ZW0KLQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIE1vZGVMYWJlbEFjY2Vzc1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9SdW5uYWJsZUNhbGxUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1J1bm5hYmxlQ2FsbFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjE5Yzk3Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1J1bm5hYmxlQ2FsbFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uc3cucnVubmFibGVJdGVtCi0KLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkNvbXBvbmVudAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Qcm9jZXNzCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlJ1bm5hYmxlQ2FsbAotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgdGVtcGxhdGVzLm0ybS5zdy5SdW5uYWJsZVRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIFJ1bm5hYmxlQ2FsbFRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0KLQlASW5qZWN0IFJ1bm5hYmxlVHJhbnNmb3JtZXIgcnVubmFibGVUcmFuc2Zvcm1lcgotCi0JZGVmIGNyZWF0ZSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZUZ1bmN0aW9uQ2FsbCBjcmVhdGVGdW5jdGlvbkNhbGwoQ29tcG9uZW50IGluY2hyb25Db21wb25lbnQsIFByb2Nlc3MgYW1sdFRhc2ssCi0JCVJ1bm5hYmxlQ2FsbCBhbWx0UnVubmFibGVDYWxsKSB7Ci0KLQkJdmFyIGluY2hyb25GdW5jdGlvbiA9IHJ1bm5hYmxlVHJhbnNmb3JtZXIuY3JlYXRlRnVuY3Rpb24oaW5jaHJvbkNvbXBvbmVudCwgYW1sdFRhc2ssIGFtbHRSdW5uYWJsZUNhbGwucnVubmFibGUpCi0KLQkJaW5jaHJvbkNvbXBvbmVudC5mdW5jdGlvbnMuYWRkKGluY2hyb25GdW5jdGlvbikKLQotCQlpdC5uYW1lID0gImNhbGxfIiArIGFtbHRSdW5uYWJsZUNhbGwucnVubmFibGUubmFtZQotCi0JCWl0LmZ1bmN0aW9uID0gaW5jaHJvbkZ1bmN0aW9uCi0KLS8vCQlpdC5mdW5jdGlvbiA9IHJ1bm5hYmxlVHJhbnNmb3JtZXIuY3JlYXRlRnVuY3Rpb24oYW1sdFByb2Nlc3MsIGFtbHRSdW5uYWJsZUNhbGwucnVubmFibGUpOwotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vUnVubmFibGVNb2RlU3dpdGNoVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9SdW5uYWJsZU1vZGVTd2l0Y2hUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzk5YmFhZi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9SdW5uYWJsZU1vZGVTd2l0Y2hUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbQotCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgUnVubmFibGVNb2RlU3dpdGNoVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1J1bm5hYmxlUHJvYmFibGlsaXR5U3dpdGNoVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9SdW5uYWJsZVByb2JhYmxpbGl0eVN3aXRjaFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzY5ODllLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1J1bm5hYmxlUHJvYmFibGlsaXR5U3dpdGNoVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdy5ydW5uYWJsZUl0ZW0KLQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIFJ1bm5hYmxlUHJvYmFibGlsaXR5U3dpdGNoVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1NlbWFwaG9yZUFjY2Vzc1RyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vU2VtYXBob3JlQWNjZXNzVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzNDY4NjkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vU2VtYXBob3JlQWNjZXNzVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdy5ydW5uYWJsZUl0ZW0KLQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIFNlbWFwaG9yZUFjY2Vzc1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9TZW5kZXJSZWNlaXZlckNvbW11bmljYXRpb25UcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1NlbmRlclJlY2VpdmVyQ29tbXVuaWNhdGlvblRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWU3NTQ5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1NlbmRlclJlY2VpdmVyQ29tbXVuaWNhdGlvblRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uc3cucnVubmFibGVJdGVtCi0KLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBTZW5kZXJSZWNlaXZlckNvbW11bmljYXRpb25UcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIgewotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vU2VuZGVyUmVjZWl2ZXJSZWFkVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9TZW5kZXJSZWNlaXZlclJlYWRUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTM0MTc0ZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9TZW5kZXJSZWNlaXZlclJlYWRUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbQotCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgU2VuZGVyUmVjZWl2ZXJSZWFkVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1NlbmRlclJlY2VpdmVyV3JpdGVUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1NlbmRlclJlY2VpdmVyV3JpdGVUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTEzYWI4OC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9TZW5kZXJSZWNlaXZlcldyaXRlVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdy5ydW5uYWJsZUl0ZW0KLQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi0KLUBTaW5nbGV0b24KLWNsYXNzIFNlbmRlclJlY2VpdmVyV3JpdGVUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIgewotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vU2VydmVyQ2FsbFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vU2VydmVyQ2FsbFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmRkMTMwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1NlcnZlckNhbGxUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbQotCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgU2VydmVyQ2FsbFRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9TeW5jaHJvbm91c1NlcnZlckNhbGxUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1N5bmNocm9ub3VzU2VydmVyQ2FsbFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjc0OTUwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1N5bmNocm9ub3VzU2VydmVyQ2FsbFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0uc3cucnVubmFibGVJdGVtCi0KLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotCi1AU2luZ2xldG9uCi1jbGFzcyBTeW5jaHJvbm91c1NlcnZlckNhbGxUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIgewotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vVGlja3NUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vc3cvcnVubmFibGVJdGVtL1RpY2tzVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZDRiMTYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vVGlja3NUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS5zdy5ydW5uYWJsZUl0ZW0KLQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LlNpbmdsZXRvbgotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuVGltZQotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuVGltZURpc3RyaWJ1dGlvblR5cGUKLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLlRpbWVVbml0Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkRpc2NyZXRlVmFsdWVCZXRhRGlzdHJpYnV0aW9uCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkRpc2NyZXRlVmFsdWVHYXVzc0Rpc3RyaWJ1dGlvbgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5EaXNjcmV0ZVZhbHVlSGlzdG9ncmFtCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkRpc2NyZXRlVmFsdWVVbmlmb3JtRGlzdHJpYnV0aW9uCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuVGlja3MKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwudXRpbC5EZXBsb3ltZW50VXRpbAotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLkVjb3JlVXRpbAotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3NpbmdVbml0Ci0KLUBTaW5nbGV0b24KLWNsYXNzIFRpY2tzVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVSZXNvdXJjZUNvbnN1bXB0aW9uIGNyZWF0ZVJlc291cmNlQ29uc3VtcHRpb24oUHJvY2VzcyBhbWx0VGFzaywKLQkJVGlja3MgYW1sdFRpY2tzKSB7Ci0JCWl0Lm5hbWUgPSAiUkMiCi0JCWl0LnRpbWVEaXN0cmlidXRpb24gPSBjcmVhdGVUaWNrc0Rpc3RyaWJ1dGlvbihhbWx0VGFzaywgYW1sdFRpY2tzKQotCX0KLQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVUaW1lRGlzdHJpYnV0aW9uIGNyZWF0ZVRpY2tzRGlzdHJpYnV0aW9uKFByb2Nlc3MgYW1sdFRhc2ssIFRpY2tzIGFtbHRUaWNrcykgewotCi0JCXZhciBhbWx0Q29yZXMgPSBEZXBsb3ltZW50VXRpbC5nZXRBc3NpZ25lZENvcmVGb3JQcm9jZXNzKGFtbHRUYXNrLAotCQkJRWNvcmVVdGlsLmdldFJvb3RDb250YWluZXIoYW1sdFRhc2spIGFzIEFtYWx0aGVhKTsKLQotCQkvL2dldCBkaXN0cmlidXRpb24gKGV4dGVuZGVkIGlmIHByb3ZpZGVkIGJ5IHRoZSBtb2RlbCBlbGVtZW50KQotCQl2YXIgUHJvY2Vzc2luZ1VuaXQgYW1sdENvcmUgPSBudWxsCi0JCQotCQlpZihhbWx0Q29yZXMhPT1udWxsICYmIGFtbHRDb3Jlcy5zaXplPjApewotCQkJYW1sdENvcmU9YW1sdENvcmVzPy5nZXQoMCkKLQkJfQotCi0JCXZhciBhbWx0RGlzdHJpYnV0aW9uID0gYW1sdFRpY2tzPy5leHRlbmRlZC5nZXQoYW1sdENvcmU/LmRlZmluaXRpb24pCi0JCWlmIChhbWx0RGlzdHJpYnV0aW9uID09PSBudWxsKSB7Ci0JCQlhbWx0RGlzdHJpYnV0aW9uID0gYW1sdFRpY2tzLl5kZWZhdWx0Ci0JCX0KLQkJCi0JCWlmKGFtbHREaXN0cmlidXRpb249PT1udWxsKQotCQl7Ci0JCQlyZXR1cm4KLQkJfQotCQkvL3RyYW5zZm9ybSBiYXNpYyBlbGVtZW50cwotCQlpdC5taW4gPSBjcmVhdGVUaW1lVGlja3MoIGFtbHREaXN0cmlidXRpb24ubG93ZXJCb3VuZCkKLQkJaXQubWVhbiA9ICBjcmVhdGVUaW1lVGlja3MoYW1sdERpc3RyaWJ1dGlvbi5hdmVyYWdlKQotCQlpdC5tYXggPSAgY3JlYXRlVGltZVRpY2tzKGFtbHREaXN0cmlidXRpb24udXBwZXJCb3VuZCkKLQkJaXQuc2lnbWEgPSAgY3JlYXRlVGltZVRpY2tzKDApCi0JCWl0LnR5cGUgPSBUaW1lRGlzdHJpYnV0aW9uVHlwZS5NQVgKLQkJaXQuYWxwaGEgPSAwCi0JCWl0LmJldGEgPSAwCi0JCQotCQkvLyBtb3JlIHNvcGhpc3RpY2F0ZWQgZGlzdHJpYnV0aW9ucwotCQlpZiAoYW1sdERpc3RyaWJ1dGlvbiBpbnN0YW5jZW9mIERpc2NyZXRlVmFsdWVHYXVzc0Rpc3RyaWJ1dGlvbikgewotCQkJaXQudHlwZSA9IFRpbWVEaXN0cmlidXRpb25UeXBlLk5PUk1BTAotCQkJaXQuc2lnbWEgPSBjcmVhdGVUaW1lVGlja3MoYW1sdERpc3RyaWJ1dGlvbi5zZCkKLQkJfSBlbHNlIGlmIChhbWx0RGlzdHJpYnV0aW9uIGluc3RhbmNlb2YgRGlzY3JldGVWYWx1ZVVuaWZvcm1EaXN0cmlidXRpb24pIHsKLQkJCWl0LnR5cGUgPSBUaW1lRGlzdHJpYnV0aW9uVHlwZS5VTklGT1JNCi0JCX0gZWxzZSBpZiAoYW1sdERpc3RyaWJ1dGlvbiBpbnN0YW5jZW9mIERpc2NyZXRlVmFsdWVCZXRhRGlzdHJpYnV0aW9uKSB7Ci0JCQkvL1RPRE86IGltcGxlbWVudCBiZXRhIGRpc3RyaWJ1dGlvbiB0cmFuc2Zvcm1lcgotCQl9IGVsc2UgaWYgKGFtbHREaXN0cmlidXRpb24gaW5zdGFuY2VvZiBEaXNjcmV0ZVZhbHVlSGlzdG9ncmFtKSB7Ci0JCQlpdC50eXBlID0gVGltZURpc3RyaWJ1dGlvblR5cGUuRElTQ1JFVEUKLQkJCWFtbHREaXN0cmlidXRpb24uZW50cmllcy5mb3JFYWNoIFsgYW1sdEVudHJ5IHwgewotCQkJCXZhbCBhbWx0QXZnID0gKGFtbHRFbnRyeS51cHBlckJvdW5kICsgYW1sdEVudHJ5Lmxvd2VyQm91bmQpIC8gMjsKLQkJCQl2YWwgYW1sdE9jY3VycmVuY2VzID0gYW1sdEVudHJ5Lm9jY3VycmVuY2VzCi0JCQkJdmFyIGluY2hyb25EaXNjcmV0ZURpc3RyaWJ1dGlvbkVudHJ5ID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVEaXNjcmV0ZURpc3RyaWJ1dGlvbkVudHJ5Ci0JCQkJaW5jaHJvbkRpc2NyZXRlRGlzdHJpYnV0aW9uRW50cnkuY291bnQgPSBhbWx0T2NjdXJyZW5jZXMKLQkJCQlpbmNocm9uRGlzY3JldGVEaXN0cmlidXRpb25FbnRyeS5leGVjVGltZSA9IGNyZWF0ZVRpbWVUaWNrcyhhbWx0QXZnKQkJCQkKLQkJCQlpdC5kaXNjcmV0ZURpc3RyaWJ1dGlvbi5hZGQoaW5jaHJvbkRpc2NyZXRlRGlzdHJpYnV0aW9uRW50cnkpCi0JCQl9XQotCQl9Ci0JfQotCi0KLQlkZWYgVGltZSBjcmVhdGVUaW1lVGlja3MoRG91YmxlIHZhbHVlKSB7Ci0JCXZhciBUaW1lIHRpbWUgPSBpbmNocm9uTW9kZWxGYWN0b3J5LmNyZWF0ZVRpbWUKLQkJdGltZS52YWx1ZSA9IE1hdGgucm91bmQodmFsdWUpCi0JCXRpbWUudW5pdCA9IFRpbWVVbml0LlQKLQkJcmV0dXJuIHRpbWUKLQl9Ci0JCi0JZGVmIFRpbWUgY3JlYXRlVGltZVRpY2tzKExvbmcgdmFsdWUpIHsKLQkJdmFyIFRpbWUgdGltZSA9IGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZQotCQl0aW1lLnZhbHVlID0gdmFsdWUKLQkJdGltZS51bml0ID0gVGltZVVuaXQuVAotCQlyZXR1cm4gdGltZQotCX0KLQkKLQkKLQlkZWYgVGltZSBjcmVhdGVUaW1lVGlja3MoSW50ZWdlciB2YWx1ZSkgewotCQl2YXIgVGltZSB0aW1lID0gaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVUaW1lCi0JCXRpbWUudmFsdWUgPSB2YWx1ZQotCQl0aW1lLnVuaXQgPSBUaW1lVW5pdC5UCi0JCXJldHVybiB0aW1lCi0JfQotCQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS9zdy9ydW5uYWJsZUl0ZW0vVHJhbnNtaXNzaW9uUG9saWN5VHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9UcmFuc21pc3Npb25Qb2xpY3lUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjk0M2ViZi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3N3L3J1bm5hYmxlSXRlbS9UcmFuc21pc3Npb25Qb2xpY3lUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnN3LnJ1bm5hYmxlSXRlbQotCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuU2luZ2xldG9uCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlRyYW5zbWlzc2lvblBvbGljeQotaW1wb3J0IHRlbXBsYXRlcy5BYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlByb2Nlc3MKLQotQFNpbmdsZXRvbgotY2xhc3MgVHJhbnNtaXNzaW9uUG9saWN5VHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQkKLQlASW5qZWN0IFRpY2tzVHJhbnNmb3JtZXIgdGlja3NUcmFuc2Zvcm1lcgotCQotCWRlZiBjcmVhdGUgaW5jaHJvbk1lbW9yeUZhY3RvcnkuY3JlYXRlRXhwbGljaXREYXRhQWNjZXNzIGNyZWF0ZUV4cGxpY2l0RGF0YUFjY2VzcyhQcm9jZXNzIGFtbHRUYXNrLCBUcmFuc21pc3Npb25Qb2xpY3kgYW1sdFRyYW5zbWlzc2lvblBvbGljeSkgewotCQkKLQotCX0gCi0KLQkKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vdXRpbHMvQ291bnRlclV0aWxzLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS91dGlscy9Db3VudGVyVXRpbHMueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhZTdhY2UuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS91dGlscy9Db3VudGVyVXRpbHMueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0udXRpbHMKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Db3VudGVyCi0KLWNsYXNzIENvdW50ZXJVdGlscyB7Ci0Jc3RhdGljIGRlZiBJbnRlZ2VyIGdldFByZXNjYWxlckFzSW50ZWdlcihDb3VudGVyIGNvdW50ZXIpewotCQlyZXR1cm4gY291bnRlci5wcmVzY2FsZXIuaW50VmFsdWUKLQl9Ci0JCi0JCi0Jc3RhdGljIGRlZiBJbnRlZ2VyIGdldE9mZnNldEFzSW50ZWdlcihDb3VudGVyIGNvdW50ZXIpewotCQlyZXR1cm4gY291bnRlci5vZmZzZXQuaW50VmFsdWUKLQl9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS91dGlscy9EYXRhRmxvd1V0aWxzLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS91dGlscy9EYXRhRmxvd1V0aWxzLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTVhOWY3Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vdXRpbHMvRGF0YUZsb3dVdGlscy54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS51dGlscwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFic3RyYWN0RXZlbnRDaGFpbgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5DaGFubmVsCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkNoYW5uZWxBY2Nlc3MKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQ2hhbm5lbEV2ZW50Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkNoYW5uZWxFdmVudFR5cGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQ2hhbm5lbFJlY2VpdmUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQ2hhbm5lbFNlbmQKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuRXZlbnQKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUHJvY2VzcwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5SdW5uYWJsZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5SdW5uYWJsZUl0ZW0KLQotY2xhc3MgRGF0YUZsb3dVdGlscyB7Ci0JCi0JCQotCQkKLQlzdGF0aWMgZGVmIGJvb2xlYW4gdGVzdENvbmRpdGlvbkV2ZW50Q2hhaW4yRGF0YUZsb3coQWJzdHJhY3RFdmVudENoYWluIGFic3RyYWN0RXZlbnRDaGFpbil7Ci0JCWlmICghdGVzdENvbmRpdGlvbkNoYW5uZWxFdmVudChhYnN0cmFjdEV2ZW50Q2hhaW4/LnN0aW11bHVzKSkgCi0JCQlyZXR1cm4gZmFsc2UKLQkJaWYgKCF0ZXN0Q29uZGl0aW9uQ2hhbm5lbEV2ZW50KGFic3RyYWN0RXZlbnRDaGFpbj8ucmVzcG9uc2UpKSAKLQkJCXJldHVybiBmYWxzZQotCQlyZXR1cm4gdHJ1ZQotCX0KLQkKLQkKLQlzdGF0aWMgZGVmIGRpc3BhdGNoIGJvb2xlYW4gaXNDaGFubmVsRXZlbnQoRXZlbnQgZXZlbnQpewotCQlyZXR1cm4gZmFsc2UKLQl9Ci0JCi0Jc3RhdGljIGRlZiBkaXNwYXRjaCBib29sZWFuIGlzQ2hhbm5lbEV2ZW50KENoYW5uZWxFdmVudCBldmVudCl7Ci0JCXJldHVybiB0cnVlCi0JfQotCQotCQotCXN0YXRpYyBkZWYgZGlzcGF0Y2ggYm9vbGVhbiB0ZXN0Q29uZGl0aW9uQ2hhbm5lbEV2ZW50KEV2ZW50IGV2ZW50KXsKLQkJcmV0dXJuIGZhbHNlCi0JfQotCQotCXN0YXRpYyBkZWYgZGlzcGF0Y2ggYm9vbGVhbiB0ZXN0Q29uZGl0aW9uQ2hhbm5lbEV2ZW50KENoYW5uZWxFdmVudCBldmVudCl7Ci0JCWlmIChEYXRhRmxvd1V0aWxzLmZpbmRDaGFubmVsQWNjZXNzKGV2ZW50KSAhPT0gbnVsbCl7Ci0JCQlyZXR1cm4gdHJ1ZQkKLQkJfQotCQlyZXR1cm4gZmFsc2UKLQl9Ci0JCi0KLQlwdWJsaWMgc3RhdGljIGRlZiBkaXNwYXRjaCBDaGFubmVsQWNjZXNzIGZpbmRDaGFubmVsQWNjZXNzKEV2ZW50IGFtbHRFdmVudCkgewotCQkvL3NvbWUgZXZlbnQgbm90IG9mIHNwZWNpYWxpemF0aW9uIHR5cGUgQ2hhbm5lbEV2ZW50Ci0JCXJldHVybiBudWxsCi0JfQotCQotCi0gCXB1YmxpYyBzdGF0aWMgZGVmIGRpc3BhdGNoIENoYW5uZWxBY2Nlc3MgZmluZENoYW5uZWxBY2Nlc3MoQ2hhbm5lbEV2ZW50IGFtbHRDaGFubmVsRXZlbnQpIHsKLSAJCQotCQlpZihhbWx0Q2hhbm5lbEV2ZW50ID09PSBudWxsKSAKLQkJCXJldHVybiBudWxsCi0JCQkKLQkJdmFsIENoYW5uZWwgY2hhbm5lbCA9IGFtbHRDaGFubmVsRXZlbnQuZW50aXR5OwotCQl2YWwgQ2hhbm5lbEV2ZW50VHlwZSBldmVudFR5cGUgPSAgYW1sdENoYW5uZWxFdmVudC5ldmVudFR5cGU7Ci0JCXZhbCBSdW5uYWJsZSBydW5uYWJsZSA9IGFtbHRDaGFubmVsRXZlbnQucnVubmFibGUKLQkJdmFsIFByb2Nlc3MgdGFzayA9IGFtbHRDaGFubmVsRXZlbnQucHJvY2VzcwotCQkKLQkJaWYocnVubmFibGUgPT09IG51bGwpIAotCQkJcmV0dXJuIG51bGwKLQkJaWYodGFzayA9PT0gbnVsbCkKLQkJCXJldHVybiBudWxsCi0JCQkKLQkJaWYoIXJ1bm5hYmxlLnRhc2tSdW5uYWJsZUNhbGxzLm1hcFtpdC5jb250YWluaW5nUHJvY2Vzc10uY29udGFpbnModGFzaykpCi0JCQlyZXR1cm4gbnVsbAotCQkKLQkJaWYgKGV2ZW50VHlwZSA9PSBDaGFubmVsRXZlbnRUeXBlLlNFTkQpIHsKLQkJCXJldHVybiBmaW5kQ2hhbm5lbFNlbmQocnVubmFibGUsIGNoYW5uZWwpCi0JCX0gZWxzZSBpZiAoZXZlbnRUeXBlID09IENoYW5uZWxFdmVudFR5cGUuUkVDRUlWRSkgewotCQkJcmV0dXJuIGZpbmRDaGFubmVsUmVjZWl2ZShydW5uYWJsZSwgY2hhbm5lbCkKLQkJfSBlbHNlIHsKLQkJCXJldHVybiBudWxsOwkJCQotCQl9Ci0JfQotCQotCXByaXZhdGUgc3RhdGljIGRlZiBDaGFubmVsU2VuZCBmaW5kQ2hhbm5lbFNlbmQoUnVubmFibGUgcnVubmFibGUsIENoYW5uZWwgY2hhbm5lbCkgewotCQl2YXIgQ2hhbm5lbFNlbmQgcmV0ID0gbnVsbAotCQlmb3IgKFJ1bm5hYmxlSXRlbSBydW5uYWJsZUl0ZW0gOiBydW5uYWJsZS5ydW5uYWJsZUl0ZW1zKSB7CQotCQkJaWYgKHJ1bm5hYmxlSXRlbSBpbnN0YW5jZW9mIENoYW5uZWxTZW5kKXsKLQkJCQl2YWwgY2hhbm5lbFNlbmQgPSBydW5uYWJsZUl0ZW0gYXMgQ2hhbm5lbFNlbmQKLQkJCQlpZiAoY2hhbm5lbFNlbmQuZGF0YSA9PT0gY2hhbm5lbCl7Ci0JCQkJCWlmIChyZXQgPT09IG51bGwpewotCQkJCQkJcmV0ID0gY2hhbm5lbFNlbmQKLQkJCQkJfSBlbHNleyAKLQkJCQkJCS8vbXVsdGlwbGUgc2VuZCBhY2Nlc3NlcyB0byB0aGlzIGNoYW5uZWwgd2l0aGluIHJ1bm5hYmxlIC0tPiBub3QgdmFsaWQKLQkJCQkJCXJldHVybiBudWxsCi0JCQkJCX0KLQkJCQl9Ci0JCQl9CQkKLQkJfQotCQlyZXR1cm4gcmV0Ci0JfQotCQotCXByaXZhdGUgc3RhdGljIGRlZiBDaGFubmVsUmVjZWl2ZSBmaW5kQ2hhbm5lbFJlY2VpdmUoUnVubmFibGUgcnVubmFibGUsIENoYW5uZWwgY2hhbm5lbCkgewkKLQkJdmFyIENoYW5uZWxSZWNlaXZlIHJldCA9IG51bGwJCi0JCWZvciAoUnVubmFibGVJdGVtIHJ1bm5hYmxlSXRlbSA6IHJ1bm5hYmxlLnJ1bm5hYmxlSXRlbXMpIHsJCi0JCQlpZiAocnVubmFibGVJdGVtIGluc3RhbmNlb2YgQ2hhbm5lbFJlY2VpdmUpewotCQkJCXZhbCBjaGFubmVsUmVjZWl2ZT0gcnVubmFibGVJdGVtIGFzIENoYW5uZWxSZWNlaXZlCi0JCQkJaWYgKGNoYW5uZWxSZWNlaXZlLmRhdGEgPT09IGNoYW5uZWwpewotCQkJCQlpZiAocmV0ID09PSBudWxsKXsgCi0JCQkJCQlyZXQgPSBjaGFubmVsUmVjZWl2ZQotCQkJCQl9IGVsc2V7IAotCQkJCQkJLy9tdWx0aXBsZSByZWNlaXZlIGFjY2Vzc2VzIHRvIHRoaXMgY2hhbm5lbCB3aXRoaW4gcnVubmFibGUgLS0+IG5vdCB2YWxpZAotCQkJCQkJcmV0dXJuIG51bGwKLQkJCQkJfQotCQkJCX0KLQkJCX0JCQotCQl9Ci0JCXJldHVybiByZXQKLQl9Ci0JCi0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vdXRpbHMvRXZlbnRDaGFpbkNyYXdsZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3V0aWxzL0V2ZW50Q2hhaW5DcmF3bGVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzAzMTg1Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vdXRpbHMvRXZlbnRDaGFpbkNyYXdsZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwxOTUgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0udXRpbHMKLQotaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0Ci1pbXBvcnQgamF2YS51dGlsLkxpc3QKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQWJzdHJhY3RFdmVudENoYWluCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkV2ZW50Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkV2ZW50Q2hhaW4KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuRXZlbnRDaGFpbkNvbnRhaW5lcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5FdmVudENoYWluSXRlbQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5FdmVudENoYWluUmVmZXJlbmNlCi0KLWNsYXNzIEV2ZW50Q2hhaW5DcmF3bGVyIHsKLQkJCi0Jc3RhdGljIGludGVyZmFjZSBUZXN0Q29uZGl0aW9uewotCQlkZWYgYm9vbGVhbiBydW4oQWJzdHJhY3RFdmVudENoYWluIF9ldmVudENoYWluKQotCX0KLQkKLQkJCQkKLQkvL3RoaXMgbGlzdCBpcyB1c2VkIHRvIGlkZW50aWZ5IGN5Y2xlczogY2hhaW4xIHJlZmVyZW5jZXMgY2hhaW4yLCBjaGFpbjIgcmVmZXJlbmNlcyBjaGFpbjEKLQlwcml2YXRlIHZhciBUZXN0Q29uZGl0aW9uIHRlc3RDb25kaXRpb24gCi0JcHJpdmF0ZSB2YXIgRXZlbnRDaGFpbiByb290RXZlbnRDaGFpbjsKLQlwcml2YXRlIHZhciBMaXN0PEFic3RyYWN0RXZlbnRDaGFpbj4gdHJhdmVyc2VkRXZlbnRDaGFpbnMgPSBuZXcgTGlua2VkTGlzdAotCQotCW5ldyhUZXN0Q29uZGl0aW9uIF90ZXN0Q29uZGl0aW9uKXsKLQkJdGVzdENvbmRpdGlvbiA9IF90ZXN0Q29uZGl0aW9uCi0JfQotCQotCS8qKgotCSAqIEBicmllZiAKLQkgKiBBcHBsaWVzIHRoZSB0ZXN0IGNvbmRpdGlvbiB0byB0aGUgc3VwcGxpZWQgZXZlbnQgY2hhaW4gYW5kIGl0cyBzdWItZWxlbWVudHMgKHNlZ21lbnRzKS4KLQkgKiBUaGUgc2VxdWVuY2Ugb2YgZXZlbnQgY2hhaW4gcmVmZXJlbmNlcyBhcmUgcGFyc2VkLCB0byBzdXBwb3J0IHJhbmdlcyBnaXZlbiBieSBwYXJlbnQgZXZlbnQgY2hhaW5zLiAKLQkgKiBPdGhlcndpc2Ugbm8gZXZlbnQgc2VxdWVuY2UgcGFyc2luZyBpcyBhcHBsaWVkLiBVc2UgZnVuY3Rpb24gQHBhcnNlRXZlbnRDaGFpblNlcXVlbmNlCi0JICogdG8gYW5hbHl6ZSBzZXF1ZW5jZSBvbiB0b3AgbGV2ZWwuIAotCSAqIAotCSAqIEByZXR1cm4gdHJ1ZSwgaWYgdGhlIGVsZW1lbnQgYW5kIGl0cyBzdWIgZWxlbWVudHMgc2F0aXNmeSB0aGUgdGVzdCBjb25kaXRpb24KLQkgKiBAbm90ZSAgIAotCSAqLwotCXB1YmxpYyBkZWYgYm9vbGVhbiBldmFsdWF0ZShFdmVudENoYWluIF9ldmVudENoYWluKXsKLQkJcm9vdEV2ZW50Q2hhaW4gPSBfZXZlbnRDaGFpbgotCQlyZXR1cm4gKGV2YWx1YXRlRWxlbWVudChfZXZlbnRDaGFpbikpCi0JfQotCi0JcHJpdmF0ZSBkZWYgYm9vbGVhbiBldmFsdWF0ZUVsZW1lbnQoQWJzdHJhY3RFdmVudENoYWluIF9ldmVudENoYWluKXsKLQkJaWYgKCFfZXZlbnRDaGFpbi5zZWdtZW50cy5pc0VtcHR5KXsKLQkJCWZvciAoRXZlbnRDaGFpbkl0ZW0gZXZlbnRDaGFpbkl0ZW0gOiBfZXZlbnRDaGFpbi5zZWdtZW50cyl7Ci0JCQkJaWYgKGV2ZW50Q2hhaW5JdGVtIGluc3RhbmNlb2YgRXZlbnRDaGFpblJlZmVyZW5jZSl7Ci0JCQkJCWlmKCFwcm9jZXNzUmVmZXJlbmNlKGV2ZW50Q2hhaW5JdGVtIGFzIEV2ZW50Q2hhaW5SZWZlcmVuY2UsIF9ldmVudENoYWluKSl7Ci0JCQkJCQlyZXR1cm4gZmFsc2UKLQkJCQkJfQkJCQkJCQkJCQotCQkJCX0gZWxzZSBpZiAoZXZlbnRDaGFpbkl0ZW0gaW5zdGFuY2VvZiBFdmVudENoYWluQ29udGFpbmVyKXsKLQkJCQkJaWYgKCFldmFsdWF0ZUVsZW1lbnQoKGV2ZW50Q2hhaW5JdGVtIGFzIEV2ZW50Q2hhaW5Db250YWluZXIpLmV2ZW50Q2hhaW4pKXsKLQkJCQkJCXJldHVybiBmYWxzZQotCQkJCQl9Ci0JCQkJfSBlbHNlIHsKLQkJCQkJcmV0dXJuIGZhbHNlOwotCQkJCX0KLQkJCX0KLQkJfSBlbHNlIHsKLQkJCWlmICghcHJvY2Vzc0xlYWZFbGVtZW50KF9ldmVudENoYWluKSl7Ci0JCQkJcmV0dXJuIGZhbHNlCi0JCQl9Ci0JCX0KLQkJcmV0dXJuIHRydWUKLQl9Ci0KLQkKLQlwcml2YXRlIGRlZiBwcm9jZXNzTGVhZkVsZW1lbnQoQWJzdHJhY3RFdmVudENoYWluIF9ldmVudENoYWluKSB7Ci0JCWlmICh0ZXN0Q29uZGl0aW9uLnJ1bihfZXZlbnRDaGFpbikpewotCQkJdHJhdmVyc2VkRXZlbnRDaGFpbnMuYWRkKF9ldmVudENoYWluKQotCSAJfSBlbHNlIHsKLQkgCQlyZXR1cm4gZmFsc2UKLQkgCX0JCi0JfQotCQotCXByaXZhdGUgZGVmIGJvb2xlYW4gcHJvY2Vzc1JlZmVyZW5jZShFdmVudENoYWluUmVmZXJlbmNlIF9yZWZlcmVuY2UsIEFic3RyYWN0RXZlbnRDaGFpbiBfcGFyZW50RXZlbnRDaGFpbikgewotCQl2YWwgZXZlbnRTZXF1ZW5jZUNyYXdsZXIgPSBuZXcgRXZlbnRDaGFpbkNyYXdsZXIodGVzdENvbmRpdGlvbikJCi0JCS8vcmVmZXJlbmNlZCBldmVudCBjaGFpbidzIGVsZW1lbnRzIGZ1bGxmaWxsIHRlc3QgY29uZGl0aW9uPwotCQlpZiAoIWV2ZW50U2VxdWVuY2VDcmF3bGVyLmV2YWx1YXRlKF9yZWZlcmVuY2UuZXZlbnRDaGFpbikpIAotCQkJcmV0dXJuIGZhbHNlCi0JCWlmICghZXZlbnRTZXF1ZW5jZUNyYXdsZXIuYXBwbHlPcmRlcikKLQkJCXJldHVybiBmYWxzZQotCQlpZiAoIWV2ZW50U2VxdWVuY2VDcmF3bGVyLmFwcGx5Qm91bmRhcmllcyhfcGFyZW50RXZlbnRDaGFpbi5zdGltdWx1cywgX3BhcmVudEV2ZW50Q2hhaW4ucmVzcG9uc2UpKQotCQkJcmV0dXJuIGZhbHNlCi0JCWV2ZW50U2VxdWVuY2VDcmF3bGVyLnRyYXZlcnNlZEV2ZW50Q2hhaW5zLmZvckVhY2hbdHJhdmVyc2VkRXZlbnRDaGFpbnMuYWRkKGl0KV0KLQkJcmV0dXJuIHRydWUJCi0JfQotCQotCQotCXB1YmxpYyBkZWYgTGlzdDxBYnN0cmFjdEV2ZW50Q2hhaW4+IGdldFRyYXZlcnNlZEV2ZW50Q2hhaW5zKCl7Ci0JCXJldHVybiB0cmF2ZXJzZWRFdmVudENoYWlucwotCX0JCQotCQkJCi0JLyoqCi0JICogQGJyaWVmIG9yZGVyIGV2ZW50IGNoYWluICh3aXRoIHNlZ21lbnRzKSBieSBjb25jYXRlbmF0aW9uIG9mIHN1Yi1ldmVudCBjaGFpbnMnIHN0aW11bHVzL3Jlc3BvbnNlIHBhaXJzCi0JICogQGRlc2NyaXB0aW9uCi0JICogb3JkZXIgZXZlbnQgY2hhaW5zIGJ5IGNvbmNhdGVuYXRpb24gb2YgZXZlbnQgY2hhaW4gc3RpbXVsdXMvcmVzcG9uc2UgcGFpcgotIAkgKgktIGV4YW1wbGUgZXZlbnQgY2hhaW4gd2l0aCBzZWdtZW50czogCi0gCSAqIAkgIEVDMShzdGltPUEsIHJlc3A9QiksIEVDMihzdGltPUMsIHJlc3A9RCksIEVDMyhzdGltPUIsIHJlc3A9QykgCi0gCSAqCS0gcmVzdWx0cyBpbjogRUMxLCBFQzMsIEVDMiBkdWUgdG8gKHN0aW09QSwgW3Jlc3A9Qikoc3RpbT1CXSwgW3Jlc3A9Qykoc3RpbT1DXSwgcmVzcD1EKQotIAkgKgkKLQkgKiBAcmV0dXJuIHRydWUsIGlmIHNlcXVlbmNlIGhhcyBiZWVuIHBhcnNlZAotCSAqIAotCSAqLwotCSBwdWJsaWMgZGVmIGJvb2xlYW4gYXBwbHlPcmRlcigpewotCQkKLQkJaWYgKHRyYXZlcnNlZEV2ZW50Q2hhaW5zID09PSBudWxsICl7Ci0JCQlyZXR1cm4gZmFsc2UKLQkJfQotCQkvL0VDIGNvbnRhaW5zIG9ubHkgb25lIG5vZGUgLS0+IHNlcXVlbmNlIGlzIHJhdGhlciBvYnZpb3VzIAotCQlpZiAodHJhdmVyc2VkRXZlbnRDaGFpbnMuc2l6ZSA8PSAxKXsKLQkJCXJldHVybiB0cnVlCi0JCX0KLQkJCi0JCXZhciBMaW5rZWRMaXN0PEFic3RyYWN0RXZlbnRDaGFpbj4gc29ydGVkTGlzdCA9IG5ldyBMaW5rZWRMaXN0Ci0JCS8vIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgZWxlbWVudCBpbiB0cmF2ZXJzZWQgbm9kZXMgbGlzdCwgc29ydGluZyBpcyByZXF1aXJlZAotCQlzb3J0ZWRMaXN0LmFkZCh0cmF2ZXJzZWRFdmVudENoYWlucy5nZXQoMCkpCi0JCXRyYXZlcnNlZEV2ZW50Q2hhaW5zLnJlbW92ZSgwKQotCQkKLQkJd2hpbGUgKCF0cmF2ZXJzZWRFdmVudENoYWlucy5pc0VtcHR5ICl7Ci0JCQl2YXIgc29ydGVkTGlzdFNpemVCZWZvcmUgPXNvcnRlZExpc3Quc2l6ZQotCQkJZm9yIChBYnN0cmFjdEV2ZW50Q2hhaW4gdW5zb3J0ZWRFdmVudCA6IHRyYXZlcnNlZEV2ZW50Q2hhaW5zKXsKLQkJCQkvL2lmIGZlYXNpYmxlLCBhZGQgaW52ZXN0aWdhdGVkIGV2ZW50IGF0IGhlYWQgb3IgdGFpbCBvZiBzb3J0ZWQgbGlzdAotCQkJCWlmICh1bnNvcnRlZEV2ZW50LnJlc3BvbnNlID09IHNvcnRlZExpc3QuZ2V0KDApLnN0aW11bHVzKXsKLQkJCQkJc29ydGVkTGlzdC5hZGRGaXJzdCh1bnNvcnRlZEV2ZW50KQotCQkJCX0KLQkJCQlpZiAodW5zb3J0ZWRFdmVudC5zdGltdWx1cyA9PSBzb3J0ZWRMaXN0Lmxhc3QucmVzcG9uc2UpewotCQkJCQlzb3J0ZWRMaXN0LmFkZExhc3QodW5zb3J0ZWRFdmVudCkKLQkJCQl9Ci0JCQl9Ci0JCQl0cmF2ZXJzZWRFdmVudENoYWlucy5yZW1vdmVBbGwoc29ydGVkTGlzdCkKLQkJCQotCQkJdmFyIHNvcnRlZExpc3RTaXplQWZ0ZXIgPSBzb3J0ZWRMaXN0LnNpemUKLQkJCWlmKHNvcnRlZExpc3RTaXplQWZ0ZXIgPT09IHNvcnRlZExpc3RTaXplQmVmb3JlKXsKLQkJCQl0cmF2ZXJzZWRFdmVudENoYWlucyA9IHNvcnRlZExpc3QKLQkJCQlyZXR1cm4gZmFsc2UKLQkJCX0KLQkJCQotCQl9Ci0JCXRyYXZlcnNlZEV2ZW50Q2hhaW5zID0gc29ydGVkTGlzdAotCQlyZXR1cm4gdHJ1ZQotCX0KLQkKLQlwdWJsaWMgZGVmIGJvb2xlYW4gYXBwbHlCb3VuZGFyaWVzKEV2ZW50IF9pbml0aWFsU3RpbXVsdXMsIEV2ZW50IF9maW5hbFJlc3BvbnNlKSB7Ci0JCS8vcGFyZW50IHNwZWNpZmllcyBhIHNjb3BlIHRoYXQgZW5kcyBhdCByZWZlcmVuY2VkIGV2ZW50IGNoYWlucywgb3Igc3RhcnRzIGF0IGVuZCBvZiByZWZlcmVuY2UKLQkJLy9pbiBib3RoIGNhc2VzIHRoZSByZWZlcmVuY2UgZG9lcyBub3QgY29udHJpYnV0ZSB0byBwYXJlbnQgZXZlbnQgY2hhaW4KLQkJaWYgKHRyYXZlcnNlZEV2ZW50Q2hhaW5zLmlzRW1wdHkpCi0JCQlyZXR1cm4gdHJ1ZQotCQlpZiAodHJhdmVyc2VkRXZlbnRDaGFpbnMuZ2V0KDApLnN0aW11bHVzPT09X2ZpbmFsUmVzcG9uc2UpIHsKLQkJCXRyYXZlcnNlZEV2ZW50Q2hhaW5zLmNsZWFyCi0JCQlyZXR1cm4gdHJ1ZQotCQl9Ci0JCWlmICh0cmF2ZXJzZWRFdmVudENoYWlucy5sYXN0LnJlc3BvbnNlPT09X2luaXRpYWxTdGltdWx1cyl7Ci0JIAkJdHJhdmVyc2VkRXZlbnRDaGFpbnMuY2xlYXIKLQkgCQlyZXR1cm4gdHJ1ZQotIAkJfQotCSAJCQotCQl2YXIgc3RhcnRJbmRleCA9IDAKLQkJdmFyIGVuZEluZGV4ID0gdHJhdmVyc2VkRXZlbnRDaGFpbnMuc2l6ZS0xCi0JCWZvcihpbmRleDowLi48dHJhdmVyc2VkRXZlbnRDaGFpbnMuc2l6ZSl7Ci0JCQlpZiAodHJhdmVyc2VkRXZlbnRDaGFpbnMuZ2V0KGluZGV4KS5zdGltdWx1cz09PV9pbml0aWFsU3RpbXVsdXMpIHsKLQkJCQlzdGFydEluZGV4PWluZGV4Ci0JCQl9Ci0JCQlpZiAodHJhdmVyc2VkRXZlbnRDaGFpbnMuZ2V0KGluZGV4KS5yZXNwb25zZT09PV9maW5hbFJlc3BvbnNlKXsKLQkJIAkJZW5kSW5kZXg9aW5kZXgKLQkgCQl9CQotCQl9Ci0JCWlmIChzdGFydEluZGV4IDw9IGVuZEluZGV4KXsKLQkJCS8vYWRkIGFsbCByZWZlcmVuY2VkIGV2ZW50IGNoYWluIGVsZW1lbnRzIGJldHdlZW4gc3RhcnQgYW5kIGVuZCBpbmRleCB0byBwYXJlbnQKLQkJCXRyYXZlcnNlZEV2ZW50Q2hhaW5zID0gdHJhdmVyc2VkRXZlbnRDaGFpbnMuc3ViTGlzdChzdGFydEluZGV4LCBlbmRJbmRleCsxKQotCQkJcmV0dXJuIHRydWUKLQkJfWVsc2V7Ci0JCQkvL3BhcmVudCBzcGVjaWZpZXMgYW4gaWxsZWdhbCByYW5nZSwgYXMgdGhlIGZpbmFsIGV2ZW50IGNoYWluIGVsZW1lbnQgb2NjdXJzIHByaW9yIHRvIHRoZSBzdGFydCBpbiByZWZlcmVuY2VkIGV2ZW50IGNoYWluCi0JCQkvLy0tPiBub3RoaW5nIGlzIGFkZGVkIHRvIHBhcmVudCBjaGFpbgotCQkJcmV0dXJuIGZhbHNlCi0JCX0JCQotCX0KLQkKLQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvbTJtL3V0aWxzL0V2ZW50U2VxdWVuY2VVdGlscy54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vdXRpbHMvRXZlbnRTZXF1ZW5jZVV0aWxzLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODI4YTljLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vdXRpbHMvRXZlbnRTZXF1ZW5jZVV0aWxzLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIHRlbXBsYXRlcy5tMm0udXRpbHMKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BYnN0cmFjdEV2ZW50Q2hhaW4KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuRXZlbnQKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuUHJvY2Vzc0V2ZW50Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlJ1bm5hYmxlRXZlbnQKLWltcG9ydCB0ZW1wbGF0ZXMuQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lcgotaW1wb3J0IHRlbXBsYXRlcy51dGlscy5BbWx0Q2FjaGVNb2RlbAotCi1jbGFzcyBFdmVudFNlcXVlbmNlVXRpbHMgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyewotCQotCXN0YXRpYyBkZWYgYm9vbGVhbiB0ZXN0Q29uZGl0aW9uRXZlbnRDaGFpbjJFdmVudFNlcXVlbmNlKEFic3RyYWN0RXZlbnRDaGFpbiBhYnN0cmFjdEV2ZW50Q2hhaW4pewotCQlpZiAoYWJzdHJhY3RFdmVudENoYWluLnN0aW11bHVzID09PSBudWxsKSByZXR1cm4gZmFsc2UKLQkJaWYgKGFic3RyYWN0RXZlbnRDaGFpbi5yZXNwb25zZSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlCi0JCXZhbCBzdGltdWx1c09rID0gdGVzdENvbmRpdGlvblRyYWNlRXZlbnQoYWJzdHJhY3RFdmVudENoYWluLnN0aW11bHVzKQotCQl2YWwgcmVzcG9uc2VPayA9IHRlc3RDb25kaXRpb25UcmFjZUV2ZW50KGFic3RyYWN0RXZlbnRDaGFpbi5yZXNwb25zZSkKLQkJcmV0dXJuIHN0aW11bHVzT2sgJiYgcmVzcG9uc2VPawotCX0KLQkKLQlzdGF0aWMgZGVmIGRpc3BhdGNoIGJvb2xlYW4gdGVzdENvbmRpdGlvblRyYWNlRXZlbnQoRXZlbnQgZXZlbnQpewotCQlyZXR1cm4gZmFsc2UKLQl9Ci0JCi0Jc3RhdGljIGRlZiBkaXNwYXRjaCBib29sZWFuIHRlc3RDb25kaXRpb25UcmFjZUV2ZW50KFJ1bm5hYmxlRXZlbnQgZXZlbnQpewotCQlpZiAoZXZlbnQ/LnByb2Nlc3MhPT1udWxsICYmIGV2ZW50Py5lbnRpdHkhPT1udWxsKXsKLQkJCXZhbCBBbWx0Q2FjaGVNb2RlbCBjYWNoZU1vZGVsID0gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKEFtbHRDYWNoZU1vZGVsKQotCQkJaWYgKGNhY2hlTW9kZWwuZ2V0SW5jaHJvbkNvbXBvbmVudChldmVudC5wcm9jZXNzKSAhPT0gbnVsbCl7Ci0JCQkJcmV0dXJuIHRydWUKLQkJCX0JCi0JCX0KLQkJcmV0dXJuIGZhbHNlCi0JfQotCQkKLQlzdGF0aWMgZGVmIGRpc3BhdGNoIGJvb2xlYW4gdGVzdENvbmRpdGlvblRyYWNlRXZlbnQoUHJvY2Vzc0V2ZW50IGV2ZW50KXsKLQkJaWYgKGV2ZW50Py5lbnRpdHkgIT09IG51bGwpewotCQkJdmFsIEFtbHRDYWNoZU1vZGVsIGNhY2hlTW9kZWwgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoQW1sdENhY2hlTW9kZWwpCi0JCQlpZiAoY2FjaGVNb2RlbC5nZXRJbmNocm9uQ29tcG9uZW50KGV2ZW50LmVudGl0eSkgIT09IG51bGwpewotCQkJCXJldHVybiB0cnVlCi0JCQl9CQotCQl9Ci0JCXJldHVybiBmYWxzZQotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS91dGlscy9GcmVxdWVuY3lUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vdXRpbHMvRnJlcXVlbmN5VHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZjFkMjMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS91dGlscy9GcmVxdWVuY3lUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qKgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE5IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMubTJtLnV0aWxzCi0KLWltcG9ydCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLkZyZXF1ZW5jeVVuaXQKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuRnJlcXVlbmN5Ci1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgRnJlcXVlbmN5VHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdEFtYWx0aGVhSW5jaHJvblRyYW5zZm9ybWVyIHsKLQotCWRlZiBjcmVhdGUgaW5jaHJvbk1vZGVsRmFjdG9yeS5jcmVhdGVGcmVxdWVuY3kgY3JlYXRlRnJlcXVlbmN5KEZyZXF1ZW5jeSBhbWx0RnJlcXVlbmN5KSB7Ci0KLQkJaXQudmFsdWUgPSBpZihhbWx0RnJlcXVlbmN5ICE9PSBudWxsKSBhbWx0RnJlcXVlbmN5LnZhbHVlLmZsb2F0VmFsdWUgZWxzZSAwCi0KLQkJaXQudW5pdCA9IEZyZXF1ZW5jeVVuaXQuZ2V0QnlOYW1lKGFtbHRGcmVxdWVuY3k/LnVuaXQuZ2V0TmFtZSkKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy9tMm0vdXRpbHMvVGltZVRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS91dGlscy9UaW1lVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViOWY4NjcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL20ybS91dGlscy9UaW1lVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKioKLSAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOSBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLm0ybS51dGlsczsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5UaW1lCi1pbXBvcnQgdGVtcGxhdGVzLkFic3RyYWN0QW1hbHRoZWFJbmNocm9uVHJhbnNmb3JtZXIKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5TaW5nbGV0b24KLQotQFNpbmdsZXRvbgotY2xhc3MgVGltZVRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RBbWFsdGhlYUluY2hyb25UcmFuc2Zvcm1lciB7Ci0KLQlkZWYgY3JlYXRlIGluY2hyb25Nb2RlbEZhY3RvcnkuY3JlYXRlVGltZSBjcmVhdGVUaW1lKFRpbWUgYW1sdFRpbWUpIHsKLQotCQl2YWwgYW1sdFZhbHVlID0gYW1sdFRpbWU/LnZhbHVlCi0JCWl0LnZhbHVlID0gaWYoYW1sdFZhbHVlICE9PSBudWxsKSBhbWx0VmFsdWUubG9uZ1ZhbHVlIGVsc2UgMDsKLQotCQlzd2l0Y2ggKGFtbHRUaW1lPy51bml0KSB7Ci0JCQljYXNlIFM6Ci0JCQkJaXQudW5pdCA9IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuVGltZVVuaXQuUwotCQkJY2FzZSBNUzoKLQkJCQlpdC51bml0ID0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5UaW1lVW5pdC5NUwotCQkJY2FzZSBVUzoKLQkJCQlpdC51bml0ID0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5UaW1lVW5pdC5VUwotCQkJY2FzZSBOUzoKLQkJCQlpdC51bml0ID0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5UaW1lVW5pdC5OUwotCQkJY2FzZSBQUzoKLQkJCQlpdC51bml0ID0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5UaW1lVW5pdC5QUwotCQkJY2FzZSBfVU5ERUZJTkVEXzoKLQkJCQlpdC51bml0ID0gY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5UaW1lVW5pdC5QUwotCQl9Ci0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvdXRpbHMvQW1hbHRoZWFNb2RlbE5hZ2l2YXRpb25VdGlscy5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL3V0aWxzL0FtYWx0aGVhTW9kZWxOYWdpdmF0aW9uVXRpbHMuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQyMmRkZi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtL3NyYy90ZW1wbGF0ZXMvdXRpbHMvQW1hbHRoZWFNb2RlbE5hZ2l2YXRpb25VdGlscy5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLnV0aWxzOwotCi1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYUNyb3NzUmVmZXJlbmNlQWRhcHRlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWVyOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5FTGlzdDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVN0cnVjdHVyYWxGZWF0dXJlLlNldHRpbmc7Ci0KLXB1YmxpYyBjbGFzcyBBbWFsdGhlYU1vZGVsTmFnaXZhdGlvblV0aWxzIHsKLQotCXB1YmxpYyAgc3RhdGljIHN5bmNocm9uaXplZCBBbWFsdGhlYUNyb3NzUmVmZXJlbmNlQWRhcHRlciBnZXRPckNyZWF0ZUFtYWx0aGVhQWRhcHRlcihmaW5hbCBOb3RpZmllciB0YXJnZXQpIHsKLQkJLy8gVHJ5IHRvIGdldCBBbWFsdGhlYSBhZGFwdGVyCi0JCWZpbmFsIEVMaXN0PEFkYXB0ZXI+IGFkYXB0ZXJzID0gdGFyZ2V0LmVBZGFwdGVycygpOwotCQlmb3IgKGZpbmFsIEFkYXB0ZXIgYWRhcHRlciA6IGFkYXB0ZXJzKSB7Ci0JCQlpZiAoYWRhcHRlciBpbnN0YW5jZW9mIEFtYWx0aGVhQ3Jvc3NSZWZlcmVuY2VBZGFwdGVyKSB7Ci0JCQkJcmV0dXJuIChBbWFsdGhlYUNyb3NzUmVmZXJlbmNlQWRhcHRlcikgYWRhcHRlcjsKLQkJCX0KLQkJfQotCQkKLQkJLy8gQ3JlYXRlIEFtYWx0aGVhIGFkYXB0ZXIKLQkJZmluYWwgQW1hbHRoZWFDcm9zc1JlZmVyZW5jZUFkYXB0ZXIgYW1hbHRoZWFBZGFwdGVyID0gbmV3IEFtYWx0aGVhQ3Jvc3NSZWZlcmVuY2VBZGFwdGVyKCk7Ci0JCWFkYXB0ZXJzLmFkZChhbWFsdGhlYUFkYXB0ZXIpOwotCQlyZXR1cm4gYW1hbHRoZWFBZGFwdGVyOwotCX0KLQotCSBwdWJsaWMgc3RhdGljIENvbGxlY3Rpb248RU9iamVjdD4gZ2V0QmFja1JlZmVyZW5jZXMoRU9iamVjdCBlT2JqZWN0LCBib29sZWFuIHJlc29sdmUpewotCQkgCi0JCSBMaXN0PEVPYmplY3Q+IHJlc3VsdD1uZXcgQXJyYXlMaXN0PEVPYmplY3Q+KCk7Ci0JCSAKLQkJIENvbGxlY3Rpb248U2V0dGluZz4gcmVmZXJlbmNlcyA9IGdldE9yQ3JlYXRlQW1hbHRoZWFBZGFwdGVyKGVPYmplY3QpLmdldE5vbk5hdmlnYWJsZUludmVyc2VSZWZlcmVuY2VzKGVPYmplY3QsIHJlc29sdmUpOwotCQkgCi0JCSBmb3IgKFNldHRpbmcgc2V0dGluZyA6IHJlZmVyZW5jZXMpIHsKLQkJCUVPYmplY3QgZU9iamVjdDIgPSBzZXR0aW5nLmdldEVPYmplY3QoKTsKLQkJCQotCQkJaWYocmVzdWx0LmNvbnRhaW5zKGVPYmplY3QyKT09ZmFsc2UpIHsKLQkJCQlyZXN1bHQuYWRkKGVPYmplY3QyKTsKLQkJCX0KLQkJfQotCQkgcmV0dXJuIHJlc3VsdDsKLQkJIAotCSB9Ci0JIAotCSAKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0vc3JjL3RlbXBsYXRlcy91dGlscy9BbWx0Q2FjaGVNb2RlbC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL3V0aWxzL0FtbHRDYWNoZU1vZGVsLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2Nzk3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybS9zcmMvdGVtcGxhdGVzL3V0aWxzL0FtbHRDYWNoZU1vZGVsLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMzcgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgdGVtcGxhdGVzLnV0aWxzOwotCi1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkludGVycnVwdENvbnRyb2xsZXI7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLk1hcHBpbmdNb2RlbDsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuT3BlcmF0aW5nU3lzdGVtOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Qcm9jZXNzOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5TY2hlZHVsZXI7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlNjaGVkdWxlckFsbG9jYXRpb247Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlRhc2s7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLlRhc2tBbGxvY2F0aW9uOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5UYXNrU2NoZWR1bGVyOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5FTGlzdDsKLQotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuQ29tcG9uZW50OwotaW1wb3J0IGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuTW9kZUdyb3VwOwotCi1wdWJsaWMgY2xhc3MgQW1sdENhY2hlTW9kZWwgewotCi0JcHJpdmF0ZSBNYXA8U3RyaW5nLCBNb2RlR3JvdXA+IGluY2hyb25Nb2RlR3JvdXBzTWFwID0gbmV3IEhhc2hNYXA8PigpOwotCi0KLQlwcml2YXRlIE1hcDxQcm9jZXNzLCBDb21wb25lbnQ+IGFtbHRQcm9jZXNzX0luY2hyb25Db21wb25lbnRNYXAgPSBuZXcgSGFzaE1hcDw+KCk7Ci0JCi0JcHJpdmF0ZSBNYXA8UHJvY2VzcywgY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Qcm9jZXNzPiBhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcCA9IG5ldyBIYXNoTWFwPD4oKTsKLQkKLQlwcml2YXRlIE1hcDxjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLlNjaGVkdWxlciwgU2NoZWR1bGVyPiBpbmNocm9uU2NoZWR1bGVyX2FtbHRTY2hlZHVsZXJNYXAgPSBuZXcgSGFzaE1hcDw+KCk7Ci0KLQlwcml2YXRlIE1hcDxTY2hlZHVsZXIsIFNjaGVkdWxlckFsbG9jYXRpb24+IHNjaGVkdWxlcl9zY2hlZHVsZXJBbGxvY2F0aW9uTWFwID0gbmV3IEhhc2hNYXA8U2NoZWR1bGVyLCBTY2hlZHVsZXJBbGxvY2F0aW9uPigpOwotCi0JcHJpdmF0ZSBNYXA8VGFzaywgTGlzdDxUYXNrQWxsb2NhdGlvbj4+IHRhc2tzX1Rhc2tBbGxvY2F0aW9uTWFwID0gbmV3IEhhc2hNYXA8VGFzaywgTGlzdDxUYXNrQWxsb2NhdGlvbj4+KCk7Ci0KLQlwcml2YXRlIE1hcDxUYXNrU2NoZWR1bGVyLCBMaXN0PFRhc2tBbGxvY2F0aW9uPj4gdGFza1NjaGVkdWxlcl90YXNrQWxsb2NhdGlvbk1hcCA9IG5ldyBIYXNoTWFwPFRhc2tTY2hlZHVsZXIsIExpc3Q8VGFza0FsbG9jYXRpb24+PigpOwotCi0JcHJpdmF0ZSBNYXA8U3RyaW5nLCBMaXN0PG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5Qcm9jZXNzPj4gYW1sdEludGVyUHJvY2Vzc1N0aW11bGlfcHJvY2Vzc0FjdGl2YXRpb25zTWFwID0gbmV3IEhhc2hNYXA8PigpOwotCQotCXByaXZhdGUgTWFwPFN0cmluZywgTGlzdDxjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLlByb2Nlc3M+PiBhbWx0U3RpbXVsaUluY2hyb25Qcm9jZXNzTWFwID0gbmV3IEhhc2hNYXA8PigpOwotCQotCXB1YmxpYyB2b2lkIGNhY2hlQW1sdFN0aW11bGlJbmNocm9uUHJvY2Vzc01hcChTdHJpbmcgYW1sdFN0aW11bGlOYW1lLAotCQkJY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5Qcm9jZXNzIGluY2hyb25Qcm9jZXNzKSB7Ci0JCWlmIChhbWx0U3RpbXVsaU5hbWUgIT0gbnVsbCkgewotCQkJTGlzdDxjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLlByb2Nlc3M+IHByb2Nlc3NMaXN0ID0gYW1sdFN0aW11bGlJbmNocm9uUHJvY2Vzc01hcAotCQkJCQkuZ2V0KGFtbHRTdGltdWxpTmFtZSk7Ci0KLQkJCWlmIChwcm9jZXNzTGlzdCA9PSBudWxsKSB7Ci0JCQkJcHJvY2Vzc0xpc3QgPSBuZXcgQXJyYXlMaXN0PD4oKTsKLQkJCQlhbWx0U3RpbXVsaUluY2hyb25Qcm9jZXNzTWFwLnB1dChhbWx0U3RpbXVsaU5hbWUsIHByb2Nlc3NMaXN0KTsKLQkJCX0KLQkJCXByb2Nlc3NMaXN0LmFkZChpbmNocm9uUHJvY2Vzcyk7Ci0JCX0KLQl9Ci0KLQlwdWJsaWMgTWFwPFN0cmluZywgTGlzdDxjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLlByb2Nlc3M+PiBnZXRBbWx0U3RpbXVsaUluY2hyb25Qcm9jZXNzRWxlbWVudHNNYXAoKSB7Ci0KLQkJcmV0dXJuIGFtbHRTdGltdWxpSW5jaHJvblByb2Nlc3NNYXA7Ci0JfQotCQotCXB1YmxpYyB2b2lkIGNhY2hlSW50ZXJQcm9jZXNzVHJpZ2dlclJlbGF0aW9ucyhTdHJpbmcgc3RpbXVsaU5hbWUsIFByb2Nlc3MgYW1sdFByb2Nlc3MpIHsKLQotCQlpZiAoc3RpbXVsaU5hbWUgIT0gbnVsbCkgewotCQkJTGlzdDxQcm9jZXNzPiBwcm9jZXNzTGlzdCA9IGFtbHRJbnRlclByb2Nlc3NTdGltdWxpX3Byb2Nlc3NBY3RpdmF0aW9uc01hcC5nZXQoc3RpbXVsaU5hbWUpOwotCi0JCQlpZiAocHJvY2Vzc0xpc3QgPT0gbnVsbCkgewotCQkJCXByb2Nlc3NMaXN0ID0gbmV3IEFycmF5TGlzdDw+KCk7Ci0JCQkJYW1sdEludGVyUHJvY2Vzc1N0aW11bGlfcHJvY2Vzc0FjdGl2YXRpb25zTWFwLnB1dChzdGltdWxpTmFtZSwgcHJvY2Vzc0xpc3QpOwotCQkJfQotCQkJcHJvY2Vzc0xpc3QuYWRkKGFtbHRQcm9jZXNzKTsKLQkJfQotCi0JfQotCi0JcHVibGljIE1hcDxTdHJpbmcsIExpc3Q8UHJvY2Vzcz4+IGdldEludGVyUHJvY2Vzc1RyaWdnZXJSZWxhdGlvbnNNYXAoKSB7Ci0JCXJldHVybiBhbWx0SW50ZXJQcm9jZXNzU3RpbXVsaV9wcm9jZXNzQWN0aXZhdGlvbnNNYXA7Ci0JfQotCi0JcHVibGljIE1hcDxTY2hlZHVsZXIsIFNjaGVkdWxlckFsbG9jYXRpb24+IGdldFRhc2tTY2hlZHVsZXJfc2NoZWR1bGVyQWxsb2NhdGlvbk1hcCgpIHsKLQkJcmV0dXJuIHNjaGVkdWxlcl9zY2hlZHVsZXJBbGxvY2F0aW9uTWFwOwotCX0KLQotCXB1YmxpYyBNYXA8VGFzaywgTGlzdDxUYXNrQWxsb2NhdGlvbj4+IGdldFRhc2tzX1Rhc2tBbGxvY2F0aW9uTWFwKCkgewotCQlyZXR1cm4gdGFza3NfVGFza0FsbG9jYXRpb25NYXA7Ci0JfQotCi0JcHVibGljIE1hcDxUYXNrU2NoZWR1bGVyLCBMaXN0PFRhc2tBbGxvY2F0aW9uPj4gZ2V0VGFza1NjaGVkdWxlcl90YXNrQWxsb2NhdGlvbk1hcCgpIHsKLQkJcmV0dXJuIHRhc2tTY2hlZHVsZXJfdGFza0FsbG9jYXRpb25NYXA7Ci0JfQotCi0JcHVibGljIHZvaWQgYnVpbGRQcm9jZXNzZXNfU2NoZWR1bGVyQWxsb2NhdGlvbk1hcChNYXBwaW5nTW9kZWwgbWFwcGluZ01vZGVsKSB7Ci0KLQkJRUxpc3Q8U2NoZWR1bGVyQWxsb2NhdGlvbj4gc2NoZWR1bGVyQWxsb2NhdGlvbnMgPSBtYXBwaW5nTW9kZWwuZ2V0U2NoZWR1bGVyQWxsb2NhdGlvbigpOwotCi0JCWZvciAoU2NoZWR1bGVyQWxsb2NhdGlvbiBzY2hlZHVsZXJBbGxvY2F0aW9uIDogc2NoZWR1bGVyQWxsb2NhdGlvbnMpIHsKLQotCQkJc2NoZWR1bGVyX3NjaGVkdWxlckFsbG9jYXRpb25NYXAucHV0KHNjaGVkdWxlckFsbG9jYXRpb24uZ2V0U2NoZWR1bGVyKCksIHNjaGVkdWxlckFsbG9jYXRpb24pOwotCQl9Ci0KLQl9Ci0KLQlwdWJsaWMgdm9pZCBidWlsZFNjaGVkdWxlckFuZFNjaGVkdWxlckFzc29jaWF0aW9uTWFwKE1hcHBpbmdNb2RlbCBtYXBwaW5nTW9kZWwpIHsKLQotCQlFTGlzdDxTY2hlZHVsZXJBbGxvY2F0aW9uPiBzY2hlZHVsZXJBbGxvY2F0aW9ucyA9IG1hcHBpbmdNb2RlbC5nZXRTY2hlZHVsZXJBbGxvY2F0aW9uKCk7Ci0KLQkJZm9yIChTY2hlZHVsZXJBbGxvY2F0aW9uIHNjaGVkdWxlckFsbG9jYXRpb24gOiBzY2hlZHVsZXJBbGxvY2F0aW9ucykgewotCi0JCQlTY2hlZHVsZXIgc2NoZWR1bGVyID0gc2NoZWR1bGVyQWxsb2NhdGlvbi5nZXRTY2hlZHVsZXIoKTsKLQkJCWlmIChzY2hlZHVsZXIgaW5zdGFuY2VvZiBUYXNrU2NoZWR1bGVyKSB7Ci0JCQkJc2NoZWR1bGVyX3NjaGVkdWxlckFsbG9jYXRpb25NYXAucHV0KHNjaGVkdWxlciwgc2NoZWR1bGVyQWxsb2NhdGlvbik7Ci0KLQkJCX0gZWxzZSBpZiAoc2NoZWR1bGVyIGluc3RhbmNlb2YgSW50ZXJydXB0Q29udHJvbGxlcikgewotLy8JCQkJaXNyX3NjaGVkdWxlckFsbG9jYXRpb25NYXAucHV0KCgoSW50ZXJydXB0Q29udHJvbGxlcilzY2hlZHVsZXIpLmdldElTUiwgc2NoZWR1bGVyQWxsb2NhdGlvbik7Ci0JCQl9Ci0JCX0KLQotCX0KLQotCXB1YmxpYyBNYXA8U2NoZWR1bGVyLCBTY2hlZHVsZXJBbGxvY2F0aW9uPiBnZXRTY2hlZHVsZXJfU2NoZWR1bGVyQWxsb2NhdGlvbk1hcCgpIHsKLQkJcmV0dXJuIHNjaGVkdWxlcl9zY2hlZHVsZXJBbGxvY2F0aW9uTWFwOwotCX0KLQotCXB1YmxpYyBNYXA8VGFza1NjaGVkdWxlciwgTGlzdDxUYXNrQWxsb2NhdGlvbj4+IGdldFRhc2tTY2hlZHVsZXJfVGFza0FsbG9jYXRpb25NYXAoKSB7Ci0JCXJldHVybiB0YXNrU2NoZWR1bGVyX3Rhc2tBbGxvY2F0aW9uTWFwOwotCX0KLQotCXB1YmxpYyB2b2lkIGJ1aWxkVGFza1NjaGVkdWxlckFuZFRhc2tBbGxvY2F0aW9uTWFwKE1hcHBpbmdNb2RlbCBtYXBwaW5nTW9kZWwpIHsKLQotCQlFTGlzdDxUYXNrQWxsb2NhdGlvbj4gdGFza0FsbG9jYXRpb25zID0gbWFwcGluZ01vZGVsLmdldFRhc2tBbGxvY2F0aW9uKCk7Ci0KLQkJZm9yIChUYXNrQWxsb2NhdGlvbiB0YXNrQWxsb2NhdGlvbiA6IHRhc2tBbGxvY2F0aW9ucykgewotCi0JCQlMaXN0PFRhc2tBbGxvY2F0aW9uPiBsaXN0T2ZUYXNrQWxsb2NhdGlvbnM7Ci0KLQkJCWlmICh0YXNrU2NoZWR1bGVyX3Rhc2tBbGxvY2F0aW9uTWFwLmNvbnRhaW5zS2V5KHRhc2tBbGxvY2F0aW9uLmdldFNjaGVkdWxlcigpKSkgewotCQkJCWxpc3RPZlRhc2tBbGxvY2F0aW9ucyA9IHRhc2tTY2hlZHVsZXJfdGFza0FsbG9jYXRpb25NYXAuZ2V0KHRhc2tBbGxvY2F0aW9uLmdldFNjaGVkdWxlcigpKTsKLQkJCX0gZWxzZSB7Ci0JCQkJbGlzdE9mVGFza0FsbG9jYXRpb25zID0gbmV3IEFycmF5TGlzdDxUYXNrQWxsb2NhdGlvbj4oKTsKLQkJCQl0YXNrU2NoZWR1bGVyX3Rhc2tBbGxvY2F0aW9uTWFwLnB1dCh0YXNrQWxsb2NhdGlvbi5nZXRTY2hlZHVsZXIoKSwgbGlzdE9mVGFza0FsbG9jYXRpb25zKTsKLQkJCX0KLQotCQkJbGlzdE9mVGFza0FsbG9jYXRpb25zLmFkZCh0YXNrQWxsb2NhdGlvbik7Ci0KLQkJCS8vIHBvcHVsYXRpbmcgbWFwIHRhc2tzX1Rhc2tBbGxvY2F0aW9uTWFwCi0KLQkJCUxpc3Q8VGFza0FsbG9jYXRpb24+IGxpc3RPZnRhc2tfVGFza0FsbG9jYXRpb25zOwotCi0JCQlpZiAodGFza3NfVGFza0FsbG9jYXRpb25NYXAuY29udGFpbnNLZXkodGFza0FsbG9jYXRpb24uZ2V0VGFzaygpKSkgewotCQkJCWxpc3RPZnRhc2tfVGFza0FsbG9jYXRpb25zID0gdGFza3NfVGFza0FsbG9jYXRpb25NYXAuZ2V0KHRhc2tBbGxvY2F0aW9uLmdldFRhc2soKSk7Ci0JCQl9IGVsc2UgewotCQkJCWxpc3RPZnRhc2tfVGFza0FsbG9jYXRpb25zID0gbmV3IEFycmF5TGlzdDxUYXNrQWxsb2NhdGlvbj4oKTsKLQkJCQl0YXNrc19UYXNrQWxsb2NhdGlvbk1hcC5wdXQodGFza0FsbG9jYXRpb24uZ2V0VGFzaygpLCBsaXN0T2Z0YXNrX1Rhc2tBbGxvY2F0aW9ucyk7Ci0JCQl9Ci0KLQkJCWxpc3RPZnRhc2tfVGFza0FsbG9jYXRpb25zLmFkZCh0YXNrQWxsb2NhdGlvbik7Ci0KLQkJfQotCi0JfQotCi0JcHVibGljIE1hcDxPcGVyYXRpbmdTeXN0ZW0sIExpc3Q8VGFza1NjaGVkdWxlcj4+IGdyb3VwVGFza1NjaGR1bGVycyhJdGVyYWJsZTxUYXNrU2NoZWR1bGVyPiByb290VGFza1NjaGVkdWxlcnMpIHsKLQotCQlNYXA8T3BlcmF0aW5nU3lzdGVtLCBMaXN0PFRhc2tTY2hlZHVsZXI+PiBtYXAgPSBuZXcgSGFzaE1hcDw+KCk7Ci0KLQkJZm9yIChUYXNrU2NoZWR1bGVyIHRhc2tTY2hlZHVsZXIgOiByb290VGFza1NjaGVkdWxlcnMpIHsKLQotCQkJTGlzdDxUYXNrU2NoZWR1bGVyPiBsaXN0ID0gbWFwLmdldCh0YXNrU2NoZWR1bGVyLmVDb250YWluZXIoKSk7Ci0KLQkJCWlmIChsaXN0ID09IG51bGwpIHsKLQkJCQlsaXN0ID0gbmV3IEFycmF5TGlzdDxUYXNrU2NoZWR1bGVyPigpOwotCQkJCW1hcC5wdXQoKE9wZXJhdGluZ1N5c3RlbSkgdGFza1NjaGVkdWxlci5lQ29udGFpbmVyKCksIGxpc3QpOwotCQkJfQotCQkJbGlzdC5hZGQodGFza1NjaGVkdWxlcik7Ci0JCX0KLQkJcmV0dXJuIG1hcDsKLQl9Ci0KLQlwdWJsaWMgTWFwPFByb2Nlc3MsIGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuUHJvY2Vzcz4gZ2V0QW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXAoKSB7Ci0JCXJldHVybiBhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcDsKLQl9Ci0KLQlwdWJsaWMgdm9pZCBzZXRBbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcCgKLQkJCU1hcDxQcm9jZXNzLCBjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Lm1vZGVsLlByb2Nlc3M+IGFtbHRQcm9jZXNzX2luY2hyb25Qcm9jZXNzTWFwKSB7Ci0JCXRoaXMuYW1sdFByb2Nlc3NfaW5jaHJvblByb2Nlc3NNYXAgPSBhbWx0UHJvY2Vzc19pbmNocm9uUHJvY2Vzc01hcDsKLQl9Ci0KLQlwdWJsaWMgdm9pZCBhZGRJbmNocm9uU2NoZWR1bGVyX2FtbHRTY2hlZHVsZXJNYXAoY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5TY2hlZHVsZXIgaW5jaHJvblNjaGVkdWxlciwKLQkJCVNjaGVkdWxlciBhbWx0U2NoZWR1bGVyKSB7Ci0JCWluY2hyb25TY2hlZHVsZXJfYW1sdFNjaGVkdWxlck1hcC5wdXQoaW5jaHJvblNjaGVkdWxlciwgYW1sdFNjaGVkdWxlcik7Ci0JfQotCi0JcHVibGljIFNjaGVkdWxlciBnZXRBbWx0U2NoZWR1bGVyRnJvbUluY2hyb25TY2hlZHVsZXIoY29tLmluY2hyb24ucmVhbHRpbWUucm9vdC5tb2RlbC5TY2hlZHVsZXIgaW5jaHJvblNjaGVkdWxlcikgewotCQlyZXR1cm4gaW5jaHJvblNjaGVkdWxlcl9hbWx0U2NoZWR1bGVyTWFwLmdldChpbmNocm9uU2NoZWR1bGVyKTsKLQl9Ci0KLQlwdWJsaWMgTWFwPGNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QubW9kZWwuU2NoZWR1bGVyLCBTY2hlZHVsZXI+IGdldEluY2hyb25TY2hlZHVsZXJfYW1sdFNjaGVkdWxlck1hcCgpIHsKLQkJcmV0dXJuIGluY2hyb25TY2hlZHVsZXJfYW1sdFNjaGVkdWxlck1hcDsKLQl9Ci0JCi0JCi0JcHVibGljIHZvaWQgYWRkSW5jaHJvbk1vZGVHcm91cChNb2RlR3JvdXAgbW9kZUdyb3VwKSB7Ci0JCWluY2hyb25Nb2RlR3JvdXBzTWFwLnB1dChtb2RlR3JvdXAuZ2V0TmFtZSgpLCBtb2RlR3JvdXApOwotCX0KLQkKLQlwdWJsaWMgTW9kZUdyb3VwIGdldEluY2hyb25Nb2RlR3JvdXAoU3RyaW5nIG5hbWUpIHsKLQkJcmV0dXJuIGluY2hyb25Nb2RlR3JvdXBzTWFwLmdldChuYW1lKTsKLQl9Ci0JCi0JcHVibGljIE1hcDxTdHJpbmcsIE1vZGVHcm91cD4gZ2V0SW5jaHJvbk1vZGVHcm91cE1hcCggKSB7Ci0JCXJldHVybiBpbmNocm9uTW9kZUdyb3Vwc01hcCA7Ci0JfQotCi0JcHVibGljIHZvaWQgYWRkQW1sdFByb2Nlc3NfSW5jaHJvbkNvbXBvbmVudChQcm9jZXNzIGFtbHRQcm9jZXNzLCBDb21wb25lbnQgaW5jaHJvbkNvbXBvbmVudCkgewotCQlhbWx0UHJvY2Vzc19JbmNocm9uQ29tcG9uZW50TWFwLnB1dChhbWx0UHJvY2VzcywgaW5jaHJvbkNvbXBvbmVudCk7Ci0JfQotCi0JcHVibGljIENvbXBvbmVudCBnZXRJbmNocm9uQ29tcG9uZW50KFByb2Nlc3MgYW1sdFByb2Nlc3MpIHsKLQkJcmV0dXJuIGFtbHRQcm9jZXNzX0luY2hyb25Db21wb25lbnRNYXAuZ2V0KGFtbHRQcm9jZXNzKTsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0Ly5jbGFzc3BhdGggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2E3YmRiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0Ly5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC8uZ2l0aWdub3JlIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvLmdpdGlnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE0NDVjMS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0vYmluLwotL3RhcmdldC8KLS94dGVuZC1nZW4vCi0vb3V0cHV0Ci0vaW5wdXQvKi9PYmZ1c2NhdGVkX01vZGVsLmFteG1pCi0vaW5wdXQvKi8qLioKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0Ly5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDMxNTViLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0Ly5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3Q8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzY4YTYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L0FtbHQySW5jaHJvbl9UcmFuc2Zvcm1hdGlvbi5wcm9kdWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvQW1sdDJJbmNocm9uX1RyYW5zZm9ybWF0aW9uLnByb2R1Y3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyNTZkM2QuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvQW1sdDJJbmNocm9uX1RyYW5zZm9ybWF0aW9uLnByb2R1Y3QKKysrIC9kZXYvbnVsbApAQCAtMSwxODQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/cGRlIHZlcnNpb249IjMuNSI/PgotCi08cHJvZHVjdCBuYW1lPSJBUFA0TUNUcmFuc2Zvcm1hdGlvbiIgdWlkPSJBbWx0MkluY2hyb25fVHJhbnNmb3JtYXRpb24ucHJvZHVjdCIgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAucHJvZHVjdCIgYXBwbGljYXRpb249Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAuYXBwbGljYXRpb24iIHZlcnNpb249IjEuMC4wIiB1c2VGZWF0dXJlcz0iZmFsc2UiIGluY2x1ZGVMYXVuY2hlcnM9InRydWUiPgotCi0gICA8Y29uZmlnSW5pIHVzZT0iZGVmYXVsdCI+Ci0gICA8L2NvbmZpZ0luaT4KLQotICAgPGxhdW5jaGVyQXJncz4KLSAgICAgIDxwcm9ncmFtQXJncz4tLWlucHV0LnByb3BzICZxdW90OyR7d29ya3NwYWNlX2xvYzpvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdH0vaW5wdXQucHJvcGVydGllcyZxdW90OwotICAgICAgPC9wcm9ncmFtQXJncz4KLSAgICAgIDx2bUFyZ3NNYWM+LVhzdGFydE9uRmlyc3RUaHJlYWQgLURvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwuY2FyYm9uLnNtYWxsRm9udHMKLSAgICAgIDwvdm1BcmdzTWFjPgotICAgPC9sYXVuY2hlckFyZ3M+Ci0KLSAgIDx3aW5kb3dJbWFnZXMvPgotCi0gICA8bGF1bmNoZXI+Ci0gICAgICA8d2luIHVzZUljbz0iZmFsc2UiPgotICAgICAgICAgPGJtcC8+Ci0gICAgICA8L3dpbj4KLSAgIDwvbGF1bmNoZXI+Ci0KLSAgIDx2bT4KLSAgIDwvdm0+Ci0KLSAgIDxwbHVnaW5zPgotICAgICAgPHBsdWdpbiBpZD0iY29tLmdvb2dsZS5ndWF2YSIvPgotICAgICAgPHBsdWdpbiBpZD0iY29tLmdvb2dsZS5pbmplY3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImNvbS5pYm0uaWN1Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJjb20uaW5jaHJvbi5yZWFsdGltZS5yb290Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJqYXZheC5hbm5vdGF0aW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJqYXZheC5pbmplY3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImphdmF4LnhtbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5iYXRpay5jc3MiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuYmF0aWsudXRpbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5iYXRpay51dGlsLmd1aSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5jb21tb25zLmNsaSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5jb21tb25zLmp4cGF0aCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5jb21tb25zLmxhbmciLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMubWF0aDMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZ29nby5jb21tYW5kIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28uY29tbWFuZC5zb3VyY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZ29nby5ydW50aW1lIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28ucnVudGltZS5zb3VyY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZ29nby5zaGVsbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLnNoZWxsLnNvdXJjZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5zY3IiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguc2NyLnNvdXJjZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5sb2c0aiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS54ZXJjZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUueG1sLnJlc29sdmVyIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLnhtbC5zZXJpYWxpemVyIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5zcGhpbngiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5hcHAiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvbXBhcmUuY29yZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5jb21tYW5kcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5jb250ZW50dHlwZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5kYXRhYmluZGluZyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5kYXRhYmluZGluZy5vYnNlcnZhYmxlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmRhdGFiaW5kaW5nLnByb3BlcnR5Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmV4cHJlc3Npb25zIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmZpbGVzeXN0ZW0iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuZmlsZXN5c3RlbS53aW4zMi54ODZfNjQiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmpvYnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy53aW4zMi54ODZfNjQiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUudmFyaWFibGVzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5jb3JlLmNvbW1hbmRzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5jb3JlLmNvbnRleHRzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5jb3JlLmRpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5jb3JlLmRpLmFubm90YXRpb25zIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5jb3JlLmRpLmV4dGVuc2lvbnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuZGkuZXh0ZW5zaW9ucy5zdXBwbGllciIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQuY29yZS5zZXJ2aWNlcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQuZW1mLnhwYXRoIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS5iaW5kaW5ncyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuY3NzLmNvcmUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLmNzcy5zd3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLmNzcy5zd3QudGhlbWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLmRpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS5tb2RlbC53b3JrYmVuY2giLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLnNlcnZpY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS53aWRnZXRzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS53b3JrYmVuY2giLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLndvcmtiZW5jaC5hZGRvbnMuc3d0Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS53b3JrYmVuY2gucmVuZGVyZXJzLnN3dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkud29ya2JlbmNoLnN3dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkud29ya2JlbmNoMyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYuY29tbW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnVpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lY29yZS5jaGFuZ2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lY29yZS54Y29yZS5saWIiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lY29yZS54bWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lZGl0Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYuZWRpdC51aSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLnRyYW5zYWN0aW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYudHJhbnNhY3Rpb24udWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi52YWxpZGF0aW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYud29ya3NwYWNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYud29ya3NwYWNlLnVpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmFwcCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5iaWRpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmNvbW1vbiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5kcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5wMi5jb3JlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnAyLmVuZ2luZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5wMi5tZXRhZGF0YSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5wMi5tZXRhZGF0YS5yZXBvc2l0b3J5Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnAyLnJlcG9zaXRvcnkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucHJlZmVyZW5jZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucmVnaW9uIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5yZWdpc3RyeSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5zZWN1cml0eSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5zZWN1cml0eS53aW4zMi54ODZfNjQiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnN1cHBsZW1lbnQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gudHJhbnNmb3Jtcy5ob29rIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC51dGlsIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LndlYXZpbmcuaG9vayIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmZ4Lm9zZ2kiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5oZWxwIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5qZmFjZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuamZhY2UuZGF0YWJpbmRpbmciLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmpmYWNlLnRleHQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kuY29tcGF0aWJpbGl0eS5zdGF0ZSIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kuc2VydmljZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kudXRpbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LmVtZiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LmVtZi5lZGl0b3JzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguZW1mLmVkaXRvcnMuZm9ybXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5lbWYudWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5lbWYud29ya3NwYWNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguZW1mLndvcmtzcGFjZS51aSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnBsYXRmb3JtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbngucGxhdGZvcm0udWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnN3dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3d0LndpbjMyLndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnRleHQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5jb25zb2xlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5mb3JtcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudWkuaWRlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5uYXZpZ2F0b3IiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpLnZpZXdzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS52aWV3cy5wcm9wZXJ0aWVzLnRhYmJlZCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudWkud2luMzIiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS53b3JrYmVuY2giLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpLndvcmtiZW5jaC50ZXh0ZWRpdG9yIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS54dGVuZC5saWIiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZW5kLmxpYi5tYWNybyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UueHRleHQubG9nZ2luZyIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZXh0LnhiYXNlLmxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmpkb20iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy50dWthYW5pLnh6Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcudzNjLmNzcy5zYWMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy53M2MuZG9tLmV2ZW50cyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLnczYy5kb20uc21pbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLnczYy5kb20uc3ZnIi8+Ci0gICA8L3BsdWdpbnM+Ci0KLSAgIDxjb25maWd1cmF0aW9ucz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucnVudGltZSIgYXV0b1N0YXJ0PSJ0cnVlIiBzdGFydExldmVsPSIxIiAvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaSIgYXV0b1N0YXJ0PSJmYWxzZSIgc3RhcnRMZXZlbD0iMSIgLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kuc2VydmljZXMiIGF1dG9TdGFydD0iZmFsc2UiIHN0YXJ0TGV2ZWw9IjEiIC8+Ci0gICAgICA8cHJvcGVydHkgbmFtZT0iZXF1aW5veC51c2UuZHMiIHZhbHVlPSJmYWxzZSIgLz4KLSAgIDwvY29uZmlndXJhdGlvbnM+Ci0KLSAgIDxwcmVmZXJlbmNlc0luZm8+Ci0gICAgICA8dGFyZ2V0ZmlsZSBvdmVyd3JpdGU9ImZhbHNlIi8+Ci0gICA8L3ByZWZlcmVuY2VzSW5mbz4KLQotICAgPGNzc0luZm8+Ci0gICA8L2Nzc0luZm8+Ci0KLTwvcHJvZHVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlYjY4N2UuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IFByb2R1Y3QKLUJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0Ci1CdW5kbGUtVmVyc2lvbjogMS4wLjAucXVhbGlmaWVyCi1BdXRvbWF0aWMtTW9kdWxlLU5hbWU6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0Ci1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRkMmU0ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1zb3VyY2UuLiA9IHNyYy8KLW91dHB1dC4uID0gYmluLwotYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIC4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L2lucHV0LnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC9pbnB1dC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDViNTcwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L2lucHV0LnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1pbnB1dF9tb2RlbHNfZm9sZGVyPS4vaW5wdXQvYW1hbHRoZWFfbW9kZWxzCi1tMm1fb3V0cHV0X2ZvbGRlcj0uL291dHB1dC9tMm1fb3V0cHV0X21vZGVscwotbG9nX2ZpbGU9Li9vdXRwdXQvdHJhbnNmb3JtYXRpb24udHh0Ci10cmFuZm9ybWF0aW9uQ29uZmlnSURzPW9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm0uY29uZmlnClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvaW5wdXQvYW1hbHRoZWFfbW9kZWxzL3RyYW5zZm9ybWF0aW9uRXhhbXBsZS5hbXhtaS1vbGQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvdHJhbnNmb3JtYXRpb25FeGFtcGxlLmFteG1pLW9sZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjFkMGEzOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvdHJhbnNmb3JtYXRpb25FeGFtcGxlLmFteG1pLW9sZAorKysgL2Rldi9udWxsCkBAIC0xLDE4MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGFtOkFtYWx0aGVhIHhtbG5zOmFtPSJodHRwOi8vYXBwNG1jLmVjbGlwc2Uub3JnL2FtYWx0aGVhLzAuOS4zIiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtaTp2ZXJzaW9uPSIyLjAiPgotICA8c3dNb2RlbD4KLSAgICA8dGFza3MgbmFtZT0iVGFzazVtcyIgc3RpbXVsaT0iU3RpbXVsaTVtc0E/dHlwZT1QZXJpb2RpY1N0aW11bHVzIFN0aW11bGk1bXNCP3R5cGU9UGVyaW9kaWNTdGltdWx1cyIgcHJlZW1wdGlvbj0icHJlZW1wdGl2ZSIgbXVsdGlwbGVUYXNrQWN0aXZhdGlvbkxpbWl0PSIwIj4KLSAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9ImFtOkNhbGxTZXF1ZW5jZSI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpUYXNrUnVubmFibGVDYWxsIiBydW5uYWJsZT0iUnVubmFibGU1bXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrMW1zIiBzdGltdWxpPSJTdGltdWxpMW1zP3R5cGU9UGVyaW9kaWNTdGltdWx1cyIgcHJlZW1wdGlvbj0icHJlZW1wdGl2ZSIgbXVsdGlwbGVUYXNrQWN0aXZhdGlvbkxpbWl0PSIwIj4KLSAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9ImFtOkNhbGxTZXF1ZW5jZSI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpUYXNrUnVubmFibGVDYWxsIiBydW5uYWJsZT0iUnVubmFibGUxbXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrMTBtcyIgc3RpbXVsaT0iU3RpbXVsaTEwbXM/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIj4KLSAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9ImFtOlRhc2tSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJSdW5uYWJsZTEwbXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9ImFtOkNhbGxTZXF1ZW5jZSIgbmFtZT0iSVBDMjBtcyI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpJbnRlclByb2Nlc3NUcmlnZ2VyIiBzdGltdWx1cz0iVGFzazEwbXMyVGFzazIwbXM/dHlwZT1JbnRlclByb2Nlc3NTdGltdWx1cyI+Ci0gICAgICAgICAgICA8Y291bnRlciBwcmVzY2FsZXI9IjIiIG9mZnNldD0iMCIgLz4KLSAgICAgICAgICA8L2NhbGxzPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2syMG1zIiBzdGltdWxpPSJUYXNrMTBtczJUYXNrMjBtcz90eXBlPUludGVyUHJvY2Vzc1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIj4KLSAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9ImFtOlRhc2tSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJSdW5uYWJsZTIwbXM/dHlwZT1SdW5uYWJsZSIgLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iUnVubmFibGUxbXMiIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlNlbWFwaG9yZUFjY2VzcyIgc2VtYXBob3JlPSJMb2NrP3R5cGU9U2VtYXBob3JlIiBhY2Nlc3M9InJlcXVlc3QiIHdhaXRpbmdCZWhhdmlvdXI9ImFjdGl2ZSIgLz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjIwMCIgdXBwZXJCb3VuZD0iNjAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVVuaWZvcm1EaXN0cmlidXRpb24iIC8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06U2VtYXBob3JlQWNjZXNzIiBzZW1hcGhvcmU9IkxvY2s/dHlwZT1TZW1hcGhvcmUiIGFjY2Vzcz0icmVsZWFzZSIgd2FpdGluZ0JlaGF2aW91cj0iYWN0aXZlIiAvPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iMTAiIHBSZW1haW5Qcm9taWxsZT0iMC4wMDQ5OTk5OTk4ODgyNDEyOTEiIGF2ZXJhZ2U9IjQiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIC8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06U2VtYXBob3JlQWNjZXNzIiBzZW1hcGhvcmU9IkxvY2s/dHlwZT1TZW1hcGhvcmUiIGFjY2Vzcz0icmVxdWVzdCIgd2FpdGluZ0JlaGF2aW91cj0iYWN0aXZlIiAvPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iMjAwIiB1cHBlckJvdW5kPSI2MDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlVW5pZm9ybURpc3RyaWJ1dGlvbiIgLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpTZW1hcGhvcmVBY2Nlc3MiIHNlbWFwaG9yZT0iTG9jaz90eXBlPVNlbWFwaG9yZSIgYWNjZXNzPSJyZWxlYXNlIiB3YWl0aW5nQmVoYXZpb3VyPSJhY3RpdmUiIC8+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSIxNSIgcFJlbWFpblByb21pbGxlPSIwLjAwNDk5OTk5OTg4ODI0MTI5MSIgYXZlcmFnZT0iNSIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlJ1bm5hYmxlNW1zIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpTZW1hcGhvcmVBY2Nlc3MiIHNlbWFwaG9yZT0iTG9jaz90eXBlPVNlbWFwaG9yZSIgYWNjZXNzPSJyZXF1ZXN0IiB3YWl0aW5nQmVoYXZpb3VyPSJhY3RpdmUiIC8+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSIyMDAiIHVwcGVyQm91bmQ9IjYwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVVbmlmb3JtRGlzdHJpYnV0aW9uIiAvPgotICAgICAgPC9ydW5uYWJsZUl0ZW1zPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlNlbWFwaG9yZUFjY2VzcyIgc2VtYXBob3JlPSJMb2NrP3R5cGU9U2VtYXBob3JlIiBhY2Nlc3M9InJlbGVhc2UiIHdhaXRpbmdCZWhhdmlvdXI9ImFjdGl2ZSIgLz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9IjEwIiBwUmVtYWluUHJvbWlsbGU9IjAuMDA0OTk5OTk5ODg4MjQxMjkxIiBhdmVyYWdlPSI0IiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiAvPgotICAgICAgPC9ydW5uYWJsZUl0ZW1zPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlNlbWFwaG9yZUFjY2VzcyIgc2VtYXBob3JlPSJMb2NrP3R5cGU9U2VtYXBob3JlIiBhY2Nlc3M9InJlcXVlc3QiIHdhaXRpbmdCZWhhdmlvdXI9ImFjdGl2ZSIgLz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjIwMCIgdXBwZXJCb3VuZD0iNjAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVVuaWZvcm1EaXN0cmlidXRpb24iIC8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06U2VtYXBob3JlQWNjZXNzIiBzZW1hcGhvcmU9IkxvY2s/dHlwZT1TZW1hcGhvcmUiIGFjY2Vzcz0icmVsZWFzZSIgd2FpdGluZ0JlaGF2aW91cj0iYWN0aXZlIiAvPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iMTUiIHBSZW1haW5Qcm9taWxsZT0iMC4wMDQ5OTk5OTk4ODgyNDEyOTEiIGF2ZXJhZ2U9IjUiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIC8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJSdW5uYWJsZTIwbXMiIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlNlbWFwaG9yZUFjY2VzcyIgc2VtYXBob3JlPSJMb2NrP3R5cGU9U2VtYXBob3JlIiBhY2Nlc3M9InJlcXVlc3QiIHdhaXRpbmdCZWhhdmlvdXI9ImFjdGl2ZSIgLz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjIwMCIgdXBwZXJCb3VuZD0iNjAwIiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVVuaWZvcm1EaXN0cmlidXRpb24iIC8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06U2VtYXBob3JlQWNjZXNzIiBzZW1hcGhvcmU9IkxvY2s/dHlwZT1TZW1hcGhvcmUiIGFjY2Vzcz0icmVsZWFzZSIgd2FpdGluZ0JlaGF2aW91cj0iYWN0aXZlIiAvPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iMSIgdXBwZXJCb3VuZD0iMTAiIHBSZW1haW5Qcm9taWxsZT0iMC4wMDQ5OTk5OTk4ODgyNDEyOTEiIGF2ZXJhZ2U9IjQiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlV2VpYnVsbEVzdGltYXRvcnNEaXN0cmlidXRpb24iIC8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06U2VtYXBob3JlQWNjZXNzIiBzZW1hcGhvcmU9IkxvY2s/dHlwZT1TZW1hcGhvcmUiIGFjY2Vzcz0icmVxdWVzdCIgd2FpdGluZ0JlaGF2aW91cj0iYWN0aXZlIiAvPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iMjAwIiB1cHBlckJvdW5kPSI2MDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlVW5pZm9ybURpc3RyaWJ1dGlvbiIgLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpTZW1hcGhvcmVBY2Nlc3MiIHNlbWFwaG9yZT0iTG9jaz90eXBlPVNlbWFwaG9yZSIgYWNjZXNzPSJyZWxlYXNlIiB3YWl0aW5nQmVoYXZpb3VyPSJhY3RpdmUiIC8+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSIxNSIgcFJlbWFpblByb21pbGxlPSIwLjAwNDk5OTk5OTg4ODI0MTI5MSIgYXZlcmFnZT0iNSIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlJ1bm5hYmxlMTBtcyIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06U2VtYXBob3JlQWNjZXNzIiBzZW1hcGhvcmU9IkxvY2s/dHlwZT1TZW1hcGhvcmUiIGFjY2Vzcz0icmVxdWVzdCIgd2FpdGluZ0JlaGF2aW91cj0iYWN0aXZlIiAvPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgbG93ZXJCb3VuZD0iMjAwIiB1cHBlckJvdW5kPSI2MDAiIHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlVW5pZm9ybURpc3RyaWJ1dGlvbiIgLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpTZW1hcGhvcmVBY2Nlc3MiIHNlbWFwaG9yZT0iTG9jaz90eXBlPVNlbWFwaG9yZSIgYWNjZXNzPSJyZWxlYXNlIiB3YWl0aW5nQmVoYXZpb3VyPSJhY3RpdmUiIC8+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSIxIiB1cHBlckJvdW5kPSIxMCIgcFJlbWFpblByb21pbGxlPSIwLjAwNDk5OTk5OTg4ODI0MTI5MSIgYXZlcmFnZT0iNCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVXZWlidWxsRXN0aW1hdG9yc0Rpc3RyaWJ1dGlvbiIgLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpTZW1hcGhvcmVBY2Nlc3MiIHNlbWFwaG9yZT0iTG9jaz90eXBlPVNlbWFwaG9yZSIgYWNjZXNzPSJyZXF1ZXN0IiB3YWl0aW5nQmVoYXZpb3VyPSJhY3RpdmUiIC8+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCBsb3dlckJvdW5kPSIyMDAiIHVwcGVyQm91bmQ9IjYwMCIgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVVbmlmb3JtRGlzdHJpYnV0aW9uIiAvPgotICAgICAgPC9ydW5uYWJsZUl0ZW1zPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlNlbWFwaG9yZUFjY2VzcyIgc2VtYXBob3JlPSJMb2NrP3R5cGU9U2VtYXBob3JlIiBhY2Nlc3M9InJlbGVhc2UiIHdhaXRpbmdCZWhhdmlvdXI9ImFjdGl2ZSIgLz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IGxvd2VyQm91bmQ9IjEiIHVwcGVyQm91bmQ9IjE1IiBwUmVtYWluUHJvbWlsbGU9IjAuMDA0OTk5OTk5ODg4MjQxMjkxIiBhdmVyYWdlPSI1IiB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZVdlaWJ1bGxFc3RpbWF0b3JzRGlzdHJpYnV0aW9uIiAvPgotICAgICAgPC9ydW5uYWJsZUl0ZW1zPgotICAgIDwvcnVubmFibGVzPgotICA8L3N3TW9kZWw+Ci0gIDxod01vZGVsPgotICAgIDxkZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIiBuYW1lPSJDMF9UeXBlIiBwdVR5cGU9IkNQVSIgZmVhdHVyZXM9Ikluc3RydWN0aW9ucy9JUENfMS4wP3R5cGU9SHdGZWF0dXJlIiAvPgotICAgIDxkZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIiBuYW1lPSJDMV9UeXBlIiBwdVR5cGU9IkNQVSIgZmVhdHVyZXM9Ikluc3RydWN0aW9ucy9JUENfMS4wP3R5cGU9SHdGZWF0dXJlIiAvPgotICAgIDxmZWF0dXJlQ2F0ZWdvcmllcyBuYW1lPSJJbnN0cnVjdGlvbnMiIGZlYXR1cmVUeXBlPSJwZXJmb3JtYW5jZSI+Ci0gICAgICA8ZmVhdHVyZXMgbmFtZT0iSVBDXzEuMCIgdmFsdWU9IjEuMCIgLz4KLSAgICA8L2ZlYXR1cmVDYXRlZ29yaWVzPgotICAgIDxzdHJ1Y3R1cmVzIG5hbWU9IlN5c3RlbSIgc3RydWN0dXJlVHlwZT0iU3lzdGVtIj4KLSAgICAgIDxzdHJ1Y3R1cmVzIG5hbWU9IkVDVSIgc3RydWN0dXJlVHlwZT0iRUNVIj4KLSAgICAgICAgPHN0cnVjdHVyZXMgbmFtZT0ibUMiIHN0cnVjdHVyZVR5cGU9Ik1pY3JvY29udHJvbGxlciI+Ci0gICAgICAgICAgPG1vZHVsZXMgeHNpOnR5cGU9ImFtOlByb2Nlc3NpbmdVbml0IiBuYW1lPSJDMCIgZnJlcXVlbmN5RG9tYWluPSJjbG9ja19DMD90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iQzBfVHlwZT90eXBlPVByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbiIgLz4KLSAgICAgICAgICA8bW9kdWxlcyB4c2k6dHlwZT0iYW06UHJvY2Vzc2luZ1VuaXQiIG5hbWU9IkMxIiBmcmVxdWVuY3lEb21haW49ImNsb2NrX0MxP3R5cGU9RnJlcXVlbmN5RG9tYWluIiBkZWZpbml0aW9uPSJDMV9UeXBlP3R5cGU9UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIiAvPgotICAgICAgICA8L3N0cnVjdHVyZXM+Ci0gICAgICA8L3N0cnVjdHVyZXM+Ci0gICAgPC9zdHJ1Y3R1cmVzPgotICAgIDxkb21haW5zIHhzaTp0eXBlPSJhbTpGcmVxdWVuY3lEb21haW4iIG5hbWU9ImNsb2NrX0MwIiBjbG9ja0dhdGluZz0iZmFsc2UiPgotICAgICAgPGRlZmF1bHRWYWx1ZSB2YWx1ZT0iMjQwLjAiIHVuaXQ9Ik1IeiIgLz4KLSAgICA8L2RvbWFpbnM+Ci0gICAgPGRvbWFpbnMgeHNpOnR5cGU9ImFtOkZyZXF1ZW5jeURvbWFpbiIgbmFtZT0iY2xvY2tfQzEiIGNsb2NrR2F0aW5nPSJmYWxzZSI+Ci0gICAgICA8ZGVmYXVsdFZhbHVlIHZhbHVlPSIyNDAuMCIgdW5pdD0iTUh6IiAvPgotICAgIDwvZG9tYWlucz4KLSAgPC9od01vZGVsPgotICA8b3NNb2RlbD4KLSAgICA8c2VtYXBob3JlcyBuYW1lPSJMb2NrIiBpbml0aWFsVmFsdWU9IjAiIG1heFZhbHVlPSIwIiBwcmlvcml0eUNlaWxpbmdQcm90b2NvbD0iZmFsc2UiIC8+Ci0gICAgPG9wZXJhdGluZ1N5c3RlbXMgbmFtZT0iT1MiPgotICAgICAgPHRhc2tTY2hlZHVsZXJzIG5hbWU9IlNjaGVkQzAiPgotICAgICAgICA8c2NoZWR1bGluZ0FsZ29yaXRobSB4c2k6dHlwZT0iYW06T1NFSyIgLz4KLSAgICAgIDwvdGFza1NjaGVkdWxlcnM+Ci0gICAgICA8dGFza1NjaGVkdWxlcnMgbmFtZT0iU2NoZWRDMSI+Ci0gICAgICAgIDxzY2hlZHVsaW5nQWxnb3JpdGhtIHhzaTp0eXBlPSJhbTpPU0VLIiAvPgotICAgICAgPC90YXNrU2NoZWR1bGVycz4KLSAgICA8L29wZXJhdGluZ1N5c3RlbXM+Ci0gIDwvb3NNb2RlbD4KLSAgPHN0aW11bGlNb2RlbD4KLSAgICA8c3RpbXVsaSB4c2k6dHlwZT0iYW06UGVyaW9kaWNTdGltdWx1cyIgbmFtZT0iU3RpbXVsaTFtcyI+Ci0gICAgICA8b2Zmc2V0IHZhbHVlPSIwIiB1bml0PSJtcyIgLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSIxIiB1bml0PSJtcyIgLz4KLSAgICA8L3N0aW11bGk+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOlBlcmlvZGljU3RpbXVsdXMiIG5hbWU9IlN0aW11bGk1bXNBIj4KLSAgICAgIDxvZmZzZXQgdmFsdWU9IjgwMCIgdW5pdD0idXMiIC8+Ci0gICAgICA8cmVjdXJyZW5jZSB2YWx1ZT0iNSIgdW5pdD0ibXMiIC8+Ci0gICAgPC9zdGltdWxpPgotICAgIDxzdGltdWxpIHhzaTp0eXBlPSJhbTpQZXJpb2RpY1N0aW11bHVzIiBuYW1lPSJTdGltdWxpNW1zQiI+Ci0gICAgICA8b2Zmc2V0IHZhbHVlPSIxNTAwIiB1bml0PSJ1cyIgLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSI1IiB1bml0PSJtcyIgLz4KLSAgICA8L3N0aW11bGk+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOlBlcmlvZGljU3RpbXVsdXMiIG5hbWU9IlN0aW11bGkxMG1zIj4KLSAgICAgIDxvZmZzZXQgdmFsdWU9IjAiIHVuaXQ9Im1zIiAvPgotICAgICAgPHJlY3VycmVuY2UgdmFsdWU9IjEwIiB1bml0PSJtcyIgLz4KLSAgICA8L3N0aW11bGk+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOkludGVyUHJvY2Vzc1N0aW11bHVzIiBuYW1lPSJUYXNrMTBtczJUYXNrMjBtcyIgLz4KLSAgPC9zdGltdWxpTW9kZWw+Ci0gIDxtYXBwaW5nTW9kZWw+Ci0gICAgPHNjaGVkdWxlckFsbG9jYXRpb24+Ci0gICAgICA8c2NoZWR1bGVyIHhzaTp0eXBlPSJhbTpUYXNrU2NoZWR1bGVyIiBocmVmPSJhbWx0Oi8jU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiIC8+Ci0gICAgICA8cmVzcG9uc2liaWxpdHkgaHJlZj0iYW1sdDovI0MwP3R5cGU9UHJvY2Vzc2luZ1VuaXQiIC8+Ci0gICAgPC9zY2hlZHVsZXJBbGxvY2F0aW9uPgotICAgIDxzY2hlZHVsZXJBbGxvY2F0aW9uPgotICAgICAgPHNjaGVkdWxlciB4c2k6dHlwZT0iYW06VGFza1NjaGVkdWxlciIgaHJlZj0iYW1sdDovI1NjaGVkQzE/dHlwZT1UYXNrU2NoZWR1bGVyIiAvPgotICAgICAgPHJlc3BvbnNpYmlsaXR5IGhyZWY9ImFtbHQ6LyNDMT90eXBlPVByb2Nlc3NpbmdVbml0IiAvPgotICAgIDwvc2NoZWR1bGVyQWxsb2NhdGlvbj4KLSAgICA8dGFza0FsbG9jYXRpb24gdGFzaz0iVGFzazFtcz90eXBlPVRhc2siIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiPgotICAgICAgPHNjaGVkdWxpbmdQYXJhbWV0ZXJzIHByaW9yaXR5PSI1MCIgLz4KLSAgICA8L3Rhc2tBbGxvY2F0aW9uPgotICAgIDx0YXNrQWxsb2NhdGlvbiB0YXNrPSJUYXNrMjBtcz90eXBlPVRhc2siIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiPgotICAgICAgPHNjaGVkdWxpbmdQYXJhbWV0ZXJzIHByaW9yaXR5PSIxMCIgLz4KLSAgICA8L3Rhc2tBbGxvY2F0aW9uPgotICAgIDx0YXNrQWxsb2NhdGlvbiB0YXNrPSJUYXNrNW1zP3R5cGU9VGFzayIgc2NoZWR1bGVyPSJTY2hlZEMxP3R5cGU9VGFza1NjaGVkdWxlciI+Ci0gICAgICA8c2NoZWR1bGluZ1BhcmFtZXRlcnMgcHJpb3JpdHk9IjQwIiAvPgotICAgIDwvdGFza0FsbG9jYXRpb24+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2sxMG1zP3R5cGU9VGFzayIgc2NoZWR1bGVyPSJTY2hlZEMxP3R5cGU9VGFza1NjaGVkdWxlciI+Ci0gICAgICA8c2NoZWR1bGluZ1BhcmFtZXRlcnMgcHJpb3JpdHk9IjMwIiAvPgotICAgIDwvdGFza0FsbG9jYXRpb24+Ci0gIDwvbWFwcGluZ01vZGVsPgotPC9hbTpBbWFsdGhlYT4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC9wb20ueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjIwMWFhLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3BvbS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi08IS0tIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIAotCSogQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJILiAqICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIAotCW1hdGVyaWFscyBhcmUgbWFkZSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgCi0JMi4wICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvICogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogCi0JRVBMLTIuMCAqICogQ29udHJpYnV0b3JzOiAqIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIAotCSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovIC0tPgotPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKLQl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCTxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KLQotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9idWlsZC9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYnVpbGQvcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgotCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb248L2dyb3VwSWQ+Ci0JCTxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5idWlsZDwvYXJ0aWZhY3RJZD4KLQkJPHZlcnNpb24+MC4zLjAtU05BUFNIT1Q8L3ZlcnNpb24+Ci0JPC9wYXJlbnQ+Ci0KLQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdDwvYXJ0aWZhY3RJZD4KLQk8cGFja2FnaW5nPmVjbGlwc2UtcmVwb3NpdG9yeTwvcGFja2FnaW5nPgotCi0KLQk8YnVpbGQ+Ci0KLQkJPHBsdWdpbnM+Ci0KLQotCQkJPHBsdWdpbj4KLQkJCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS50eWNobzwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD50eWNoby1wMi1kaXJlY3Rvci1wbHVnaW48L2FydGlmYWN0SWQ+Ci0JCQkJPHZlcnNpb24+JHt0eWNoby52ZXJzaW9ufTwvdmVyc2lvbj4KLQotCQkJCTxleGVjdXRpb25zPgotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPm1hdGVyaWFsaXplLXByb2R1Y3RzPC9pZD4KLQkJCQkJCTxnb2Fscz4KLQkJCQkJCQk8Z29hbD5tYXRlcmlhbGl6ZS1wcm9kdWN0czwvZ29hbD4KLQkJCQkJCTwvZ29hbHM+Ci0JCQkJCTwvZXhlY3V0aW9uPgotCi0JCQkJCTxleGVjdXRpb24+Ci0JCQkJCQk8aWQ+YXJjaGl2ZS1wcm9kdWN0czwvaWQ+Ci0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+YXJjaGl2ZS1wcm9kdWN0czwvZ29hbD4KLQkJCQkJCTwvZ29hbHM+Ci0JCQkJCTwvZXhlY3V0aW9uPgotCQkJCTwvZXhlY3V0aW9ucz4KLQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJPHByb2R1Y3RzPgotCQkJCQkJPHByb2R1Y3Q+Ci0JCQkJCQkJPGlkPkFtbHQySW5jaHJvbl9UcmFuc2Zvcm1hdGlvbi5wcm9kdWN0PC9pZD4KLQkJCQkJCQk8YXJjaGl2ZUZpbGVOYW1lPnByb2R1Y3Q8L2FyY2hpdmVGaWxlTmFtZT4KLQkJCQkJCTwvcHJvZHVjdD4KLQkJCQkJPC9wcm9kdWN0cz4KLQkJCQk8L2NvbmZpZ3VyYXRpb24+Ci0JCQk8L3BsdWdpbj4KLQotCi0JCTwvcGx1Z2lucz4KLQotCTwvYnVpbGQ+Ci0JPGdyb3VwSWQ+bTJtPC9ncm91cElkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3NyYy8uZ2l0aWdub3JlIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3Qvc3JjLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3Qvc3JjLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9DdXN0b21FdmVudFRyaWdnZXIvaW5wdXQvQ3VzdG9tRXZlbnRUcmlnZ2VyLmFteG1pIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9DdXN0b21FdmVudFRyaWdnZXIvaW5wdXQvQ3VzdG9tRXZlbnRUcmlnZ2VyLmFteG1pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGMzNDA5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvQ3VzdG9tRXZlbnRUcmlnZ2VyL2lucHV0L0N1c3RvbUV2ZW50VHJpZ2dlci5hbXhtaQorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08YW06QW1hbHRoZWEgeG1pOnZlcnNpb249IjIuMCIgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczphbT0iaHR0cDovL2FwcDRtYy5lY2xpcHNlLm9yZy9hbWFsdGhlYS8wLjkuMyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+Ci0gIDxzd01vZGVsPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrTGF1bmNoZXIiIHN0aW11bGk9IlBlcmlvZGljU3RpbXVsdXMxbXM/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIiBuYW1lPSIiPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06VGFza1J1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlJ1bm5hYmxlTGF1bmNoZXI/dHlwZT1SdW5uYWJsZSIvPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tXb3JrZXJDb25kaXRpb25hbCIgc3RpbXVsaT0iRXZlbnRTdGltdWx1c19Db25kaXRpb25hbD90eXBlPUV2ZW50U3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMCI+Ci0gICAgICA8Y2FsbEdyYXBoPgotICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJhbTpDYWxsU2VxdWVuY2UiIG5hbWU9IiI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpUYXNrUnVubmFibGVDYWxsIiBydW5uYWJsZT0iUnVubmFibGVXb3JrZXI/dHlwZT1SdW5uYWJsZSIvPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tXb3JrZXJVbmNvbmRpdGlvbmFsIiBzdGltdWxpPSJFdmVudFN0aW11bHVzX1VuY29uZGl0aW9uYWw/dHlwZT1FdmVudFN0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIiBuYW1lPSIiPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06VGFza1J1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlJ1bm5hYmxlV29ya2VyP3R5cGU9UnVubmFibGUiLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iUnVubmFibGVXb3JrZXIiIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVDb25zdGFudCIgdmFsdWU9IjEwMCIvPgotICAgICAgPC9ydW5uYWJsZUl0ZW1zPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iUnVubmFibGVMYXVuY2hlciIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZUNvbnN0YW50IiB2YWx1ZT0iMTAiLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpDdXN0b21FdmVudFRyaWdnZXIiIGV2ZW50PSJDdXN0b21FdmVudF8yX3RvXzM/dHlwZT1DdXN0b21FdmVudCIvPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVDb25zdGFudCIgdmFsdWU9IjEwIi8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPG1vZGVzIG5hbWU9Im1vZGVDb25kaXRpb24iPgotICAgICAgPGxpdGVyYWxzIG5hbWU9IlN0YXRlMSIvPgotICAgICAgPGxpdGVyYWxzIG5hbWU9IlN0YXRlMiIvPgotICAgIDwvbW9kZXM+Ci0gICAgPG1vZGVMYWJlbHMgbmFtZT0iTW9kZUxhYmVsQSIgZGlzcGxheU5hbWU9IiIgaW5pdGlhbFZhbHVlPSJtb2RlQ29uZGl0aW9uL1N0YXRlMT90eXBlPU1vZGVMaXRlcmFsIi8+Ci0gICAgPG1vZGVMYWJlbHMgbmFtZT0iTW9kZUxhYmVsQiIgZGlzcGxheU5hbWU9IiIgaW5pdGlhbFZhbHVlPSJtb2RlQ29uZGl0aW9uL1N0YXRlMj90eXBlPU1vZGVMaXRlcmFsIi8+Ci0gIDwvc3dNb2RlbD4KLSAgPGh3TW9kZWw+Ci0gICAgPGRlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdERlZmluaXRpb24iIG5hbWU9IkMwX1R5cGUiIHB1VHlwZT0iQ1BVIi8+Ci0gICAgPHN0cnVjdHVyZXMgbmFtZT0iU3lzdGVtIiBzdHJ1Y3R1cmVUeXBlPSJTeXN0ZW0iPgotICAgICAgPHN0cnVjdHVyZXMgbmFtZT0iRUNVIiBzdHJ1Y3R1cmVUeXBlPSJFQ1UiPgotICAgICAgICA8c3RydWN0dXJlcyBuYW1lPSJtQyIgc3RydWN0dXJlVHlwZT0iTWljcm9jb250cm9sbGVyIj4KLSAgICAgICAgICA8bW9kdWxlcyB4c2k6dHlwZT0iYW06UHJvY2Vzc2luZ1VuaXQiIG5hbWU9IkMwIiBmcmVxdWVuY3lEb21haW49ImNsb2NrX0MwP3R5cGU9RnJlcXVlbmN5RG9tYWluIiBkZWZpbml0aW9uPSJDMF9UeXBlP3R5cGU9UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIi8+Ci0gICAgICAgIDwvc3RydWN0dXJlcz4KLSAgICAgIDwvc3RydWN0dXJlcz4KLSAgICA8L3N0cnVjdHVyZXM+Ci0gICAgPGRvbWFpbnMgeHNpOnR5cGU9ImFtOkZyZXF1ZW5jeURvbWFpbiIgbmFtZT0iY2xvY2tfQzAiIGNsb2NrR2F0aW5nPSJmYWxzZSI+Ci0gICAgICA8ZGVmYXVsdFZhbHVlIHZhbHVlPSIyNDAuMCIgdW5pdD0iTUh6Ii8+Ci0gICAgPC9kb21haW5zPgotICA8L2h3TW9kZWw+Ci0gIDxvc01vZGVsPgotICAgIDxvcGVyYXRpbmdTeXN0ZW1zIG5hbWU9Ik9TIj4KLSAgICAgIDx0YXNrU2NoZWR1bGVycyBuYW1lPSJTY2hlZEMwIj4KLSAgICAgICAgPHNjaGVkdWxpbmdBbGdvcml0aG0geHNpOnR5cGU9ImFtOk9TRUsiLz4KLSAgICAgIDwvdGFza1NjaGVkdWxlcnM+Ci0gICAgPC9vcGVyYXRpbmdTeXN0ZW1zPgotICA8L29zTW9kZWw+Ci0gIDxzdGltdWxpTW9kZWw+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOlBlcmlvZGljU3RpbXVsdXMiIG5hbWU9IlBlcmlvZGljU3RpbXVsdXMxbXMiPgotICAgICAgPG9mZnNldCB2YWx1ZT0iMCIgdW5pdD0ibXMiLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSIxIiB1bml0PSJtcyIvPgotICAgIDwvc3RpbXVsaT4KLSAgICA8c3RpbXVsaSB4c2k6dHlwZT0iYW06RXZlbnRTdGltdWx1cyIgbmFtZT0iRXZlbnRTdGltdWx1c19VbmNvbmRpdGlvbmFsIiB0cmlnZ2VyaW5nRXZlbnRzPSJDdXN0b21FdmVudF8yX3RvXzM/dHlwZT1DdXN0b21FdmVudCIvPgotICAgIDxzdGltdWxpIHhzaTp0eXBlPSJhbTpFdmVudFN0aW11bHVzIiBuYW1lPSJFdmVudFN0aW11bHVzX0NvbmRpdGlvbmFsIiB0cmlnZ2VyaW5nRXZlbnRzPSJDdXN0b21FdmVudF8yX3RvXzM/dHlwZT1DdXN0b21FdmVudCI+Ci0gICAgICA8ZW5hYmxpbmdNb2RlVmFsdWVMaXN0PgotICAgICAgICA8ZW50cmllcyB4c2k6dHlwZT0iYW06TW9kZVZhbHVlQ29uanVuY3Rpb24iPgotICAgICAgICAgIDxlbnRyaWVzIHZhbHVlUHJvdmlkZXI9Ik1vZGVMYWJlbEE/dHlwZT1Nb2RlTGFiZWwiIHZhbHVlPSJtb2RlQ29uZGl0aW9uL1N0YXRlMT90eXBlPU1vZGVMaXRlcmFsIi8+Ci0gICAgICAgICAgPGVudHJpZXMgdmFsdWVQcm92aWRlcj0iTW9kZUxhYmVsQj90eXBlPU1vZGVMYWJlbCIgdmFsdWU9Im1vZGVDb25kaXRpb24vU3RhdGUyP3R5cGU9TW9kZUxpdGVyYWwiLz4KLSAgICAgICAgPC9lbnRyaWVzPgotICAgICAgPC9lbmFibGluZ01vZGVWYWx1ZUxpc3Q+Ci0gICAgPC9zdGltdWxpPgotICA8L3N0aW11bGlNb2RlbD4KLSAgPGV2ZW50TW9kZWw+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06Q3VzdG9tRXZlbnQiIG5hbWU9IkN1c3RvbUV2ZW50XzJfdG9fMyIgZGVzY3JpcHRpb249IiIgZXZlbnRUeXBlPSIiLz4KLSAgPC9ldmVudE1vZGVsPgotICA8bWFwcGluZ01vZGVsPgotICAgIDxzY2hlZHVsZXJBbGxvY2F0aW9uIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiIHJlc3BvbnNpYmlsaXR5PSJDMD90eXBlPVByb2Nlc3NpbmdVbml0Ii8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2tMYXVuY2hlcj90eXBlPVRhc2siIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiLz4KLSAgICA8dGFza0FsbG9jYXRpb24gdGFzaz0iVGFza1dvcmtlckNvbmRpdGlvbmFsP3R5cGU9VGFzayIgc2NoZWR1bGVyPSJTY2hlZEMwP3R5cGU9VGFza1NjaGVkdWxlciIvPgotICAgIDx0YXNrQWxsb2NhdGlvbiB0YXNrPSJUYXNrV29ya2VyVW5jb25kaXRpb25hbD90eXBlPVRhc2siIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiLz4KLSAgPC9tYXBwaW5nTW9kZWw+Ci08L2FtOkFtYWx0aGVhPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9DdXN0b21FdmVudFRyaWdnZXIvb3V0cHV0L0N1c3RvbUV2ZW50VHJpZ2dlci5pcHJ4IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9DdXN0b21FdmVudFRyaWdnZXIvb3V0cHV0L0N1c3RvbUV2ZW50VHJpZ2dlci5pcHJ4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjE0NTg3Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvQ3VzdG9tRXZlbnRUcmlnZ2VyL291dHB1dC9DdXN0b21FdmVudFRyaWdnZXIuaXByeAorKysgL2Rldi9udWxsCkBAIC0xLDE2NiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJBU0NJSSI/PgotPHJvb3Q6Um9vdCB4bWk6dmVyc2lvbj0iMi4wIiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOm1vZGVsPSJodHRwOi8vaW5jaHJvbi5jb20vcmVhbHRpbWUvcm9vdC8yLjk4LjUvbW9kZWwiIHhtbG5zOnJvb3Q9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguNSIgeG1sbnM6c3RpbXVsYXRpb249Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguNS9tb2RlbC9zdGltdWxhdGlvbiI+Ci0gIDxtb2RlbCB4c2k6dHlwZT0ibW9kZWw6TW9kZWwiIG5hbWU9Ik1vZGVsIiBkZWZhdWx0U2NlbmFyaW89Ii8vQG1vZGVsL0BzdGltdWxhdGlvblNjZW5hcmlvcy4wIj4KLSAgICA8Y2xvY2tzIG5hbWU9ImNsb2NrX0MwIiB1c2Vycz0iLy9AbW9kZWwvQGNwdXMuMCAvL0Btb2RlbC9Ac3RpbXVsYXRpb25TY2VuYXJpb3MuMC9AZ2VuZXJhdG9ycy4wIj4KLSAgICAgIDxmcmVxdWVuY3kgdmFsdWU9IjI0MC4wIi8+Ci0gICAgICA8cmFuZ2UgdmFsdWU9IjEiIHVuaXQ9InMiLz4KLSAgICAgIDxzdGFydFRpbWVGaXhlZC8+Ci0gICAgICA8c3RhcnRUaW1lTWluLz4KLSAgICAgIDxzdGFydFRpbWVNYXgvPgotICAgICAgPHN0YXJ0VmFsdWUvPgotICAgIDwvY2xvY2tzPgotICAgIDxjcHVzIG5hbWU9Im1DIiBjbG9jaz0iLy9AbW9kZWwvQGNsb2Nrcy4wIiBjcHVNb2RlbD0iZ2VuZXJpYyI+Ci0gICAgICA8Y29yZXMgbmFtZT0iQzAiPgotICAgICAgICA8Y29ubmVjdGVkU2xhdmUvPgotICAgICAgPC9jb3Jlcz4KLSAgICAgIDxtZW1vcnlSZWdpb25zIG5hbWU9InJhbSIgYmFzZT0iMTY3NzcyMTYiIGZsYWdzPSIyOTAiIHBhZ2VzPSIxIiBzZWN0aW9ucz0iZGF0YTpic3M6c3RhY2s6aGVhcCIvPgotICAgICAgPG1lbW9yeVJlZ2lvbnMgbmFtZT0icm9tIiBiYXNlPSIzMzU1NDQzMiIgZmxhZ3M9IjI3NSIgcGFnZXM9IjEiIHNlY3Rpb25zPSJ0ZXh0Ii8+Ci0gICAgPC9jcHVzPgotICAgIDxjb25uZWN0aW9ucyB4c2k6dHlwZT0ibW9kZWw6QWN0aXZhdGlvbkNvbm5lY3Rpb24iIG5hbWU9IkV2ZW50U3RpbXVsdXNfVW5jb25kaXRpb25hbCIgYWN0aXZhdG9ycz0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMC9AY2FsbEdyYXBoL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMSI+Ci0gICAgICA8YWN0aXZhdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRlUHJvY2VzcyIgdGFyZ2V0PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4yIi8+Ci0gICAgPC9jb25uZWN0aW9ucz4KLSAgICA8Y29ubmVjdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRpb25Db25uZWN0aW9uIiBuYW1lPSJFdmVudFN0aW11bHVzX0NvbmRpdGlvbmFsIiBhY3RpdmF0b3JzPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4xL0BjYWxsR3JhcGgvQGdyYXBoRW50cmllcy4xL0BlbnRyaWVzLjAvQGdyYXBoRW50cmllcy4wL0BjYWxscy4wIj4KLSAgICAgIDxhY3RpdmF0aW9ucyB4c2k6dHlwZT0ibW9kZWw6QWN0aXZhdGVQcm9jZXNzIiB0YXJnZXQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQHJ0b3NDb25maWcvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjEiLz4KLSAgICA8L2Nvbm5lY3Rpb25zPgotICAgIDxnZW5lcmFsSW5mbyBjcmVhdG9yPSJBbWx0MkluY2hyb24gMC45LjMgV2VkIE1heSAwOCAwOToxMDozNSBDRVNUIDIwMTkiIHZlcnNpb249IjEiLz4KLSAgICA8Z2xvYmFsTW9kZUNvbmRpdGlvbnMgbmFtZT0iTW9kZUNvbmRpdGlvbl9fMTI2NjIyNDUxOCI+Ci0gICAgICA8Y29uanVuY3Rpb25zIG1vZGVzPSIvL0Btb2RlbC9AZ2xvYmFsTW9kZUdyb3Vwcy4wL0Btb2Rlcy4wIC8vQG1vZGVsL0BnbG9iYWxNb2RlR3JvdXBzLjEvQG1vZGVzLjEiLz4KLSAgICA8L2dsb2JhbE1vZGVDb25kaXRpb25zPgotICAgIDxnbG9iYWxNb2RlR3JvdXBzIG5hbWU9Ik1vZGVMYWJlbEEiIGluaXRpYWxNb2RlPSIvL0Btb2RlbC9AZ2xvYmFsTW9kZUdyb3Vwcy4wL0Btb2Rlcy4wIj4KLSAgICAgIDxtb2RlcyBuYW1lPSJTdGF0ZTEiLz4KLSAgICAgIDxtb2RlcyBuYW1lPSJTdGF0ZTIiIHZhbHVlPSIxIi8+Ci0gICAgPC9nbG9iYWxNb2RlR3JvdXBzPgotICAgIDxnbG9iYWxNb2RlR3JvdXBzIG5hbWU9Ik1vZGVMYWJlbEIiIGluaXRpYWxNb2RlPSIvL0Btb2RlbC9AZ2xvYmFsTW9kZUdyb3Vwcy4xL0Btb2Rlcy4xIj4KLSAgICAgIDxtb2RlcyBuYW1lPSJTdGF0ZTEiLz4KLSAgICAgIDxtb2RlcyBuYW1lPSJTdGF0ZTIiIHZhbHVlPSIxIi8+Ci0gICAgPC9nbG9iYWxNb2RlR3JvdXBzPgotICAgIDxzdGltdWxhdGlvblNjZW5hcmlvcyBuYW1lPSJEZWZhdWx0U2NlbmFyaW8iPgotICAgICAgPGdlbmVyYXRvcnMgeHNpOnR5cGU9InN0aW11bGF0aW9uOlJhbmRvbVN0aW11bGlHZW5lcmF0b3IiIG5hbWU9IlBlcmlvZGljU3RpbXVsdXMxbXMiIGNsb2NrPSIvL0Btb2RlbC9AY2xvY2tzLjAiPgotICAgICAgICA8Y29ubmVjdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRpb25Db25uZWN0aW9uIiBuYW1lPSJQZXJpb2RpY1N0aW11bHVzMW1zIiBhY3RpdmF0b3JzPSIvL0Btb2RlbC9Ac3RpbXVsYXRpb25TY2VuYXJpb3MuMC9AZ2VuZXJhdG9ycy4wL0B0YXJnZXRzL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMCI+Ci0gICAgICAgICAgPGFjdGl2YXRpb25zIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0ZVByb2Nlc3MiIHRhcmdldD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMCIvPgotICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICA8dGFyZ2V0cz4KLSAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNTIj4KLSAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6QWN0aXZhdGlvbkl0ZW0iIG5hbWU9IkFjdGl2YXRpb25JdGVtX1BlcmlvZGljU3RpbXVsdXMxbXMiIGNvbm5lY3Rpb249Ii8vQG1vZGVsL0BzdGltdWxhdGlvblNjZW5hcmlvcy4wL0BnZW5lcmF0b3JzLjAvQGNvbm5lY3Rpb25zLjAiLz4KLSAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgPC90YXJnZXRzPgotICAgICAgICA8bWluSW50ZXJBcnJpdmFsVGltZS8+Ci0gICAgICAgIDxwZXJpb2QgdmFsdWU9IjEiIHVuaXQ9Im1zIi8+Ci0gICAgICAgIDxzdGFydE9mZnNldCB1bml0PSJtcyIvPgotICAgICAgICA8c3RhcnRPZmZzZXRWYXJpYXRpb24vPgotICAgICAgICA8dmFyaWF0aW9uLz4KLSAgICAgIDwvZ2VuZXJhdG9ycz4KLSAgICA8L3N0aW11bGF0aW9uU2NlbmFyaW9zPgotICAgIDxzeXN0ZW1zIHhzaTp0eXBlPSJtb2RlbDpHZW5lcmljU3lzdGVtIiBuYW1lPSJPU19TWVNURU0iPgotICAgICAgPGNvbXBvbmVudHMgbmFtZT0iT1NfU1dDIj4KLSAgICAgICAgPGZ1bmN0aW9ucyBuYW1lPSJSdW5uYWJsZUxhdW5jaGVyLVRhc2tMYXVuY2hlciI+Ci0gICAgICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOlJlc291cmNlQ29uc3VtcHRpb24iIG5hbWU9IlJDIj4KLSAgICAgICAgICAgICAgICA8dGltZURpc3RyaWJ1dGlvbiBhbHBoYT0iMC4wIiBiZXRhPSIwLjAiPgotICAgICAgICAgICAgICAgICAgPG1pbiB2YWx1ZT0iMTAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtYXggdmFsdWU9IjEwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWVhbiB2YWx1ZT0iMTAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxzaWdtYSB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgPC90aW1lRGlzdHJpYnV0aW9uPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRpb25JdGVtIiBuYW1lPSJBY3RpdmF0aW9uSXRlbV9FdmVudFN0aW11bHVzX1VuY29uZGl0aW9uYWwiIGNvbm5lY3Rpb249Ii8vQG1vZGVsL0Bjb25uZWN0aW9ucy4wIi8+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6RnVuY3Rpb25DYWxsIiBuYW1lPSJjYWxsX0R1bW15X0V2ZW50U3RpbXVsdXNfQ29uZGl0aW9uYWwiIGZ1bmN0aW9uPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4xIi8+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6UmVzb3VyY2VDb25zdW1wdGlvbiIgbmFtZT0iUkMiPgotICAgICAgICAgICAgICAgIDx0aW1lRGlzdHJpYnV0aW9uIGFscGhhPSIwLjAiIGJldGE9IjAuMCI+Ci0gICAgICAgICAgICAgICAgICA8bWluIHZhbHVlPSIxMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1heCB2YWx1ZT0iMTAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtZWFuIHZhbHVlPSIxMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPHNpZ21hIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICA8L3RpbWVEaXN0cmlidXRpb24+Ci0gICAgICAgICAgICAgIDwvY2FsbHM+Ci0gICAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgPC9mdW5jdGlvbnM+Ci0gICAgICAgIDxmdW5jdGlvbnMgbmFtZT0iRHVtbXlfRXZlbnRTdGltdWx1c19Db25kaXRpb25hbCI+Ci0gICAgICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ2FsbFNlcXVlbmNlX0Zvcl9Nb2RlQ29uZGl0aW9uRXZhbHVhdGlvbiI+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6TW9kZUNvbmRpdGlvbkV2YWx1YXRpb24iIGNvbmRpdGlvbj0iLy9AbW9kZWwvQGdsb2JhbE1vZGVDb25kaXRpb25zLjAiLz4KLSAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6TW9kZVN3aXRjaCIgbmFtZT0iRXZlbnRTdGltdWx1c0NvbmRpdGlvbiI+Ci0gICAgICAgICAgICAgIDxlbnRyaWVzIGNvbmRpdGlvbj0iLy9AbW9kZWwvQGdsb2JhbE1vZGVDb25kaXRpb25zLjAiPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSI+Ci0gICAgICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRpb25JdGVtIiBuYW1lPSJBY3RpdmF0aW9uSXRlbV9FdmVudFN0aW11bHVzX0NvbmRpdGlvbmFsIiBjb25uZWN0aW9uPSIvL0Btb2RlbC9AY29ubmVjdGlvbnMuMSIvPgotICAgICAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgICAgICA8L2VudHJpZXM+Ci0gICAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgPC9mdW5jdGlvbnM+Ci0gICAgICAgIDxmdW5jdGlvbnMgbmFtZT0iUnVubmFibGVXb3JrZXItVGFza1dvcmtlclVuY29uZGl0aW9uYWwiPgotICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNTIj4KLSAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpSZXNvdXJjZUNvbnN1bXB0aW9uIiBuYW1lPSJSQyI+Ci0gICAgICAgICAgICAgICAgPHRpbWVEaXN0cmlidXRpb24gYWxwaGE9IjAuMCIgYmV0YT0iMC4wIj4KLSAgICAgICAgICAgICAgICAgIDxtaW4gdmFsdWU9IjEwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1heCB2YWx1ZT0iMTAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWVhbiB2YWx1ZT0iMTAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8c2lnbWEgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgIDwvdGltZURpc3RyaWJ1dGlvbj4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICA8L2Z1bmN0aW9ucz4KLSAgICAgICAgPGZ1bmN0aW9ucyBuYW1lPSJSdW5uYWJsZVdvcmtlci1UYXNrV29ya2VyQ29uZGl0aW9uYWwiPgotICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNTIj4KLSAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpSZXNvdXJjZUNvbnN1bXB0aW9uIiBuYW1lPSJSQyI+Ci0gICAgICAgICAgICAgICAgPHRpbWVEaXN0cmlidXRpb24gYWxwaGE9IjAuMCIgYmV0YT0iMC4wIj4KLSAgICAgICAgICAgICAgICAgIDxtaW4gdmFsdWU9IjEwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1heCB2YWx1ZT0iMTAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWVhbiB2YWx1ZT0iMTAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8c2lnbWEgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgIDwvdGltZURpc3RyaWJ1dGlvbj4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICA8L2Z1bmN0aW9ucz4KLSAgICAgIDwvY29tcG9uZW50cz4KLSAgICAgIDxydG9zTW9kZWwgbmFtZT0iZ2VuZXJpYyIgcmV0dXJuVHlwZT0idm9pZCIvPgotICAgICAgPHJ0b3NDb25maWcgbmFtZT0iT1MiPgotICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpTY2hlZHVsZXIiIG5hbWU9Ik9TX0lTUkR1bW15IiBjcHVDb3Jlcz0iLy9AbW9kZWwvQGNwdXMuMC9AY29yZXMuMCI+Ci0gICAgICAgICAgPHNjaGVkdWxhYmxlcyB4c2k6dHlwZT0ibW9kZWw6U2NoZWR1bGVyIiBuYW1lPSJTY2hlZEMwIiBjcHVDb3Jlcz0iLy9AbW9kZWwvQGNwdXMuMC9AY29yZXMuMCI+Ci0gICAgICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpQcm9jZXNzIiBuYW1lPSJUYXNrTGF1bmNoZXIiPgotICAgICAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIG5hbWU9ImNhbGxfUnVubmFibGVMYXVuY2hlci1UYXNrTGF1bmNoZXIiIGZ1bmN0aW9uPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4wIi8+Ci0gICAgICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpQcm9jZXNzIiBuYW1lPSJUYXNrV29ya2VyQ29uZGl0aW9uYWwiPgotICAgICAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIG5hbWU9ImNhbGxfUnVubmFibGVXb3JrZXItVGFza1dvcmtlckNvbmRpdGlvbmFsIiBmdW5jdGlvbj0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMyIvPgotICAgICAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgICAgIDwvc2NoZWR1bGFibGVzPgotICAgICAgICAgICAgPHNjaGVkdWxhYmxlcyB4c2k6dHlwZT0ibW9kZWw6UHJvY2VzcyIgbmFtZT0iVGFza1dvcmtlclVuY29uZGl0aW9uYWwiPgotICAgICAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIG5hbWU9ImNhbGxfUnVubmFibGVXb3JrZXItVGFza1dvcmtlclVuY29uZGl0aW9uYWwiIGZ1bmN0aW9uPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4yIi8+Ci0gICAgICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICAgICAgICA8dGltZVNsaWNlLz4KLSAgICAgICAgICAgIDxwZXJpb2QvPgotICAgICAgICAgICAgPG1heFJldGFyZC8+Ci0gICAgICAgICAgICA8bWF4QWR2YW5jZS8+Ci0gICAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICAgICAgPHRpbWVTbGljZS8+Ci0gICAgICAgICAgPHBlcmlvZC8+Ci0gICAgICAgICAgPG1heFJldGFyZC8+Ci0gICAgICAgICAgPG1heEFkdmFuY2UvPgotICAgICAgICA8L3NjaGVkdWxhYmxlcz4KLSAgICAgIDwvcnRvc0NvbmZpZz4KLSAgICA8L3N5c3RlbXM+Ci0gIDwvbW9kZWw+Ci0gIDxzZXR0aW5ncz4KLSAgICA8ZWRpdG9yLz4KLSAgICA8bW9kZWwvPgotICAgIDx0b29sLz4KLSAgPC9zZXR0aW5ncz4KLTwvcm9vdDpSb290PgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9FdmVudENoYWluMkRhdGFGbG93L0RhdGFGbG93X0V2ZW50Q2hhaW5zLmdyYXBobWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL0V2ZW50Q2hhaW4yRGF0YUZsb3cvRGF0YUZsb3dfRXZlbnRDaGFpbnMuZ3JhcGhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NkNzg5My4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL0V2ZW50Q2hhaW4yRGF0YUZsb3cvRGF0YUZsb3dfRXZlbnRDaGFpbnMuZ3JhcGhtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyMSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KLTxncmFwaG1sIHhtbG5zPSJodHRwOi8vZ3JhcGhtbC5ncmFwaGRyYXdpbmcub3JnL3htbG5zIiB4bWxuczpqYXZhPSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3lmaWxlcy1jb21tb24vMS4wL2phdmEiIHhtbG5zOnN5cz0iaHR0cDovL3d3dy55d29ya3MuY29tL3htbC95ZmlsZXMtY29tbW9uL21hcmt1cC9wcmltaXRpdmVzLzIuMCIgeG1sbnM6eD0iaHR0cDovL3d3dy55d29ya3MuY29tL3htbC95ZmlsZXMtY29tbW9uL21hcmt1cC8yLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnk9Imh0dHA6Ly93d3cueXdvcmtzLmNvbS94bWwvZ3JhcGhtbCIgeG1sbnM6eWVkPSJodHRwOi8vd3d3Lnl3b3Jrcy5jb20veG1sL3llZC8zIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9ncmFwaG1sLmdyYXBoZHJhd2luZy5vcmcveG1sbnMgaHR0cDovL3d3dy55d29ya3MuY29tL3htbC9zY2hlbWEvZ3JhcGhtbC8xLjEveWdyYXBobWwueHNkIj4KLSAgPCEtLUNyZWF0ZWQgYnkgeUVkIDMuMTguMi0tPgotICA8a2V5IGF0dHIubmFtZT0iRGVzY3JpcHRpb24iIGF0dHIudHlwZT0ic3RyaW5nIiBmb3I9ImdyYXBoIiBpZD0iZDAiLz4KLSAgPGtleSBmb3I9InBvcnQiIGlkPSJkMSIgeWZpbGVzLnR5cGU9InBvcnRncmFwaGljcyIvPgotICA8a2V5IGZvcj0icG9ydCIgaWQ9ImQyIiB5ZmlsZXMudHlwZT0icG9ydGdlb21ldHJ5Ii8+Ci0gIDxrZXkgZm9yPSJwb3J0IiBpZD0iZDMiIHlmaWxlcy50eXBlPSJwb3J0dXNlcmRhdGEiLz4KLSAgPGtleSBhdHRyLm5hbWU9InVybCIgYXR0ci50eXBlPSJzdHJpbmciIGZvcj0ibm9kZSIgaWQ9ImQ0Ii8+Ci0gIDxrZXkgYXR0ci5uYW1lPSJkZXNjcmlwdGlvbiIgYXR0ci50eXBlPSJzdHJpbmciIGZvcj0ibm9kZSIgaWQ9ImQ1Ii8+Ci0gIDxrZXkgZm9yPSJub2RlIiBpZD0iZDYiIHlmaWxlcy50eXBlPSJub2RlZ3JhcGhpY3MiLz4KLSAgPGtleSBmb3I9ImdyYXBobWwiIGlkPSJkNyIgeWZpbGVzLnR5cGU9InJlc291cmNlcyIvPgotICA8a2V5IGF0dHIubmFtZT0idXJsIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJlZGdlIiBpZD0iZDgiLz4KLSAgPGtleSBhdHRyLm5hbWU9ImRlc2NyaXB0aW9uIiBhdHRyLnR5cGU9InN0cmluZyIgZm9yPSJlZGdlIiBpZD0iZDkiLz4KLSAgPGtleSBmb3I9ImVkZ2UiIGlkPSJkMTAiIHlmaWxlcy50eXBlPSJlZGdlZ3JhcGhpY3MiLz4KLSAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9IkciPgotICAgIDxkYXRhIGtleT0iZDAiLz4KLSAgICA8bm9kZSBpZD0ibjAiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyMzAuMzI0NzA3MDMxMjUiIHdpZHRoPSI1ODEuMzE1OTc4NzI0MzI0MiIgeD0iOTYwLjAiIHk9IjI2MC42MjM1MzUxNTYyNSIvPgotICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZGRkZGIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjU4MS4zMTU5Nzg3MjQzMjQyIiB4PSIwLjAiIHk9IjAuMCI+TGVnZW5kPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIzNyIgYm90dG9tRj0iMzcuMjQ3MDcwMzEyNSIgbGVmdD0iMTAiIGxlZnRGPSIxMC4wIiByaWdodD0iNzUiIHJpZ2h0Rj0iNzUuMCIgdG9wPSIxOSIgdG9wRj0iMTkuMCIvPgotICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgMjwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgPC9kYXRhPgotICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4wOiI+Ci0gICAgICAgIDxub2RlIGlkPSJuMDo6bjAiPgotICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjAiIHdpZHRoPSIzMC4wIiB4PSI5ODUuMCIgeT0iMzE3LjAiLz4KLSAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9ImNlbnRlciIgYXV0b1NpemVQb2xpY3k9ImNvbnRlbnQiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjEyIiBmb250U3R5bGU9InBsYWluIiBoYXNCYWNrZ3JvdW5kQ29sb3I9ImZhbHNlIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoYXNUZXh0PSJmYWxzZSIgaGVpZ2h0PSI0LjAiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI0LjAiIHg9IjEzLjAiIHk9IjEzLjAiPgotICAgICAgICAgICAgICAgIDx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPC9kYXRhPgotICAgICAgICA8L25vZGU+Ci0gICAgICAgIDxub2RlIGlkPSJuMDo6bjEiPgotICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMwLjAiIHdpZHRoPSIzMC4wIiB4PSIxMDY3LjAiIHk9IjMxNy4wIi8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkNDMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGFzVGV4dD0iZmFsc2UiIGhlaWdodD0iNC4wIiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNC4wIiB4PSIxMy4wIiB5PSIxMy4wIj4KLSAgICAgICAgICAgICAgICA8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgPC9ub2RlPgotICAgICAgICA8bm9kZSBpZD0ibjA6Om4yIj4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMzM1LjMxNTk3ODcyNDMyNDE3IiB4PSIxMTE2LjAiIHk9IjMxNy4wIi8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkZGRkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIzMjQuMTYyMTA5Mzc1IiB4PSI1LjU3NjkzNDY3NDY2MTk3IiB5PSI1LjY0OTQxNDA2MjUiPkNoYW5uZWwgYWNjZXNzZXMgd2l0aCBjaGFubmVsIGV2ZW50IChzdGltdWx1cyAmYW1wOyByZXNwb25zZSk8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgPC9ub2RlPgotICAgICAgICA8bm9kZSBpZD0ibjA6Om4zIj4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMzM1LjMxNTk3ODcyNDMyNDE3IiB4PSIxMTE2LjAiIHk9IjM0Ny4wIi8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkZGRkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIzMy40MDIzNDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJjdXN0b20iIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjIyNS43NTk3NjU2MjUiIHg9IjU0Ljc3ODEwNjU0OTY2MTk3IiB5PSItMS43MDExNzE4NzUiPkRhdGFGbG93X05lc3RlZEV2ZW5kQ2hhaW4gCi0oZG90dGVkIGxpbmUgPSBmaXJzdCBzdGltdWx1cywgbGFzdCByZXNwb25zZSk8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgPC9ub2RlPgotICAgICAgICA8bm9kZSBpZD0ibjA6Om40Ij4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMC4wIiB3aWR0aD0iMzM1LjMxNTk3ODcyNDMyNDE3IiB4PSIxMTE2LjAiIHk9IjM3Ny4wIi8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRkZGRkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxNjAuMDc2MTcxODc1IiB4PSI4Ny42MTk5MDM0MjQ2NjE5NyIgeT0iNS42NDk0MTQwNjI1Ij5EYXRhRmxvd19TaW1wbGVFdmVudENoYWluPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgIDwvbm9kZT4KLSAgICAgICAgPG5vZGUgaWQ9Im4wOjpuNSI+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzAuMCIgd2lkdGg9IjMzNS4zMTU5Nzg3MjQzMjQxNyIgeD0iMTExNi4wIiB5PSI0MDcuMCIvPgotICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZGRkZGIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHJhaXNlZD0iZmFsc2UiIHR5cGU9ImxpbmUiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMzMuNDAyMzQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIyODEuNzkyOTY4NzUiIHg9IjI2Ljc2MTUwNDk4NzE2MTk3IiB5PSItMS43MDExNzE4NzUiPkRhdGFGbG93X1JlZmVyZW5jZUV2ZW50Q2hhaW4KLShkb3R0ZWQgbGluZSA9IHRvcCBsZXZlbCBmaXJzdCBzdGltdWx1cyAmYW1wOyBsYXN0IHJlc3BvbnNlKTx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPC9kYXRhPgotICAgICAgICA8L25vZGU+Ci0gICAgICAgIDxub2RlIGlkPSJuMDo6bjYiPgotICAgICAgICAgIDxkYXRhIGtleT0iZDUiLz4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI0LjYwODg3Mzg1OTQ1OTQ5MyIgd2lkdGg9IjUwLjQ5OTk5OTk5OTk5OTc3IiB4PSIxMDQ1LjAiIHk9IjM2Mi42OTU1NjMwNzAyNzA0Ii8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiMzMzY2RkYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGFzVGV4dD0iZmFsc2UiIGhlaWdodD0iNC4wIiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNC4wIiB4PSIyMy4yNDk5OTk5OTk5OTk3NzMiIHk9IjAuMzA0NDM2OTI5NzI5NzE4MDMiPgotICAgICAgICAgICAgICAgIDx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICAgICAgPC9kYXRhPgotICAgICAgICA8L25vZGU+Ci0gICAgICAgIDxub2RlIGlkPSJuMDo6bjciPgotICAgICAgICAgIDxkYXRhIGtleT0iZDUiLz4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI0LjYwODg3Mzg1OTQ1OTQ5MyIgd2lkdGg9IjUwLjQ5OTk5OTk5OTk5OTc3IiB4PSIxMDQ1LjAwMDAwMDAwMDAwMDIiIHk9IjM4OS42OTU1NjMwNzAyNzAzIi8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGRjAwMDAiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGFzVGV4dD0iZmFsc2UiIGhlaWdodD0iNC4wIiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNC4wIiB4PSIyMy4yNSIgeT0iMC4zMDQ0MzY5Mjk3Mjk3MTgwMyI+Ci0gICAgICAgICAgICAgICAgPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgIDwvbm9kZT4KLSAgICAgICAgPG5vZGUgaWQ9Im4wOjpuOCI+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNSIvPgotICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjQuNjA4ODczODU5NDU5NDkzIiB3aWR0aD0iNTAuNDk5OTk5OTk5OTk5NzciIHg9IjEwNDUuMDAwMDAwMDAwMDAwMiIgeT0iNDE2LjY5NTU2MzA3MDI3MDE3Ii8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiMzMzk5NjYiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGFzVGV4dD0iZmFsc2UiIGhlaWdodD0iNC4wIiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNC4wIiB4PSIyMy4yNSIgeT0iMC4zMDQ0MzY5Mjk3Mjk3MTgwMyI+Ci0gICAgICAgICAgICAgICAgPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgIDwvbm9kZT4KLSAgICAgIDwvZ3JhcGg+Ci0gICAgPC9ub2RlPgotICAgIDxub2RlIGlkPSJuMSIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgIDxkYXRhIGtleT0iZDQiLz4KLSAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgIDx5OlJlYWxpemVycyBhY3RpdmU9IjAiPgotICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjIwOC42MjM1MzUxNTYyNSIgd2lkdGg9IjUwNS4wIiB4PSIzNjguMCIgeT0iMTA1LjAiLz4KLSAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI1MDUuMCIgeD0iMC4wIiB5PSIwLjAiPlRhc2sgMTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0iZmFsc2UiIGNsb3NlZEhlaWdodD0iNTAuMCIgY2xvc2VkV2lkdGg9IjUwLjAiIGlubmVyR3JhcGhEaXNwbGF5RW5hYmxlZD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMjQiIGJvdHRvbUY9IjIzLjYyMzUzNTE1NjI1IiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjUwLjAiIHdpZHRoPSI1MC4wIiB4PSIwLjAiIHk9IjYwLjAiLz4KLSAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0icmlnaHQiIGF1dG9TaXplUG9saWN5PSJub2RlX3dpZHRoIiBiYWNrZ3JvdW5kQ29sb3I9IiNFQkVCRUIiIGJvcmRlckRpc3RhbmNlPSIwLjAiIGZvbnRGYW1pbHk9IkRpYWxvZyIgZm9udFNpemU9IjE1IiBmb250U3R5bGU9InBsYWluIiBoYXNMaW5lQ29sb3I9ImZhbHNlIiBoZWlnaHQ9IjIyLjM3NjQ2NDg0Mzc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImludGVybmFsIiBtb2RlbFBvc2l0aW9uPSJ0IiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI1OS4wMjY4NTU0Njg3NSIgeD0iLTQuNTEzNDI3NzM0Mzc1IiB5PSIwLjAiPkZvbGRlciA0PC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgIDx5Okluc2V0cyBib3R0b209IjUiIGJvdHRvbUY9IjUuMCIgbGVmdD0iNSIgbGVmdEY9IjUuMCIgcmlnaHQ9IjUiIHJpZ2h0Rj0iNS4wIiB0b3A9IjUiIHRvcEY9IjUuMCIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIwIiBib3R0b21GPSIwLjAiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSIwIiB0b3BGPSIwLjAiLz4KLSAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgPC95OlJlYWxpemVycz4KLSAgICAgICAgPC95OlByb3h5QXV0b0JvdW5kc05vZGU+Ci0gICAgICA8L2RhdGE+Ci0gICAgICA8Z3JhcGggZWRnZWRlZmF1bHQ9ImRpcmVjdGVkIiBpZD0ibjE6Ij4KLSAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMCIgeWZpbGVzLmZvbGRlcnR5cGU9Imdyb3VwIj4KLSAgICAgICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICA8eTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgICAgICA8eTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjEzMi42MjM1MzUxNTYyNSIgd2lkdGg9IjQ3NS4wIiB4PSIzODMuMCIgeT0iMTQyLjM3NjQ2NDg0Mzc1Ii8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNDc1LjAiIHg9IjAuMCIgeT0iMC4wIj5SdW5uYWJsZSAxPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpTdGF0ZSBjbG9zZWQ9ImZhbHNlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMiIgYm90dG9tRj0iMi4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iNzUiIHJpZ2h0Rj0iNzUuMCIgdG9wPSI0MyIgdG9wRj0iNDMuMjQ3MDcwMzEyNSIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgMTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4xOjpuMDoiPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4xOjpuMDo6bjAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMyLjAiIHdpZHRoPSIxMzIuMCIgeD0iMzk4LjAiIHk9IjIyMy4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSI5NS40MDYyNSIgeD0iMTguMjk2ODc1IiB5PSI2LjY0OTQxNDA2MjUiPnNlbmQgdG8gY2hhbm5lbDE8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICAgIDxub2RlIGlkPSJuMTo6bjA6Om4xIj4KLSAgICAgICAgICAgICAgPGRhdGEga2V5PSJkNiI+Ci0gICAgICAgICAgICAgICAgPHk6U2hhcGVOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIzMi4wIiB3aWR0aD0iMTQ2LjAiIHg9IjYyMi4wIiB5PSIyMjYuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iMTIyLjA2MDU0Njg3NSIgeD0iMTEuOTY5NzI2NTYyNSIgeT0iNi42NDk0MTQwNjI1Ij5yZWNlaXZlIGZyb20gY2hhbm5lbDI8eTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWwgZGlzdGFuY2U9IjQuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgPHk6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbFBhcmFtZXRlciBsYWJlbFJhdGlvWD0iMC4wIiBsYWJlbFJhdGlvWT0iMC4wIiBub2RlUmF0aW9YPSIwLjAiIG5vZGVSYXRpb1k9IjAuMCIgb2Zmc2V0WD0iMC4wIiBvZmZzZXRZPSIwLjAiIHVwWD0iMC4wIiB1cFk9Ii0xLjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgIDwveTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgIDwvZGF0YT4KLSAgICAgICAgICAgIDwvbm9kZT4KLSAgICAgICAgICA8L2dyYXBoPgotICAgICAgICA8L25vZGU+Ci0gICAgICA8L2dyYXBoPgotICAgIDwvbm9kZT4KLSAgICA8bm9kZSBpZD0ibjIiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ0Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8eTpSZWFsaXplcnMgYWN0aXZlPSIwIj4KLSAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIyMjkuNTY4NTYwMjc4NTQ3MjQiIHdpZHRoPSI1MDUuMCIgeD0iMzY4LjAiIHk9IjMzNy4wNzIwMjc5MTQwMjAxNyIvPgotICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVyU3R5bGUgY29sb3I9IiMwMDAwMDAiIHR5cGU9ImRhc2hlZCIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjUwNS4wIiB4PSIwLjAiIHk9IjAuMCI+VGFzayAyPC95Ok5vZGVMYWJlbD4KLSAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icm91bmRyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSIxNSIgYm90dG9tRj0iMTUuMCIgbGVmdD0iMTUiIGxlZnRGPSIxNS4wIiByaWdodD0iMTUiIHJpZ2h0Rj0iMTUuMCIgdG9wPSIxNSIgdG9wRj0iMTUuMCIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJJbnNldHMgYm90dG9tPSIyIiBib3R0b21GPSIyLjMyMTQ4OTk2NjA0NzIzODMiIGxlZnQ9IjAiIGxlZnRGPSIwLjAiIHJpZ2h0PSIwIiByaWdodEY9IjAuMCIgdG9wPSI0MiIgdG9wRj0iNDIuMjQ3MDcwMzEyNSIvPgotICAgICAgICAgICAgPC95Okdyb3VwTm9kZT4KLSAgICAgICAgICAgIDx5Okdyb3VwTm9kZT4KLSAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgIDx5OkZpbGwgY29sb3I9IiNGNUY1RjUiIHRyYW5zcGFyZW50PSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgNTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgIDx5OlNoYXBlIHR5cGU9InJvdW5kcmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgIDx5OlN0YXRlIGNsb3NlZD0idHJ1ZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgPHk6Qm9yZGVySW5zZXRzIGJvdHRvbT0iMCIgYm90dG9tRj0iMC4wIiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iMCIgcmlnaHRGPSIwLjAiIHRvcD0iMCIgdG9wRj0iMC4wIi8+Ci0gICAgICAgICAgICA8L3k6R3JvdXBOb2RlPgotICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgIDwveTpQcm94eUF1dG9Cb3VuZHNOb2RlPgotICAgICAgPC9kYXRhPgotICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4yOiI+Ci0gICAgICAgIDxub2RlIGlkPSJuMjo6bjAiIHlmaWxlcy5mb2xkZXJ0eXBlPSJncm91cCI+Ci0gICAgICAgICAgPGRhdGEga2V5PSJkNCIvPgotICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgPHk6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICAgICAgPHk6UmVhbGl6ZXJzIGFjdGl2ZT0iMCI+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSIxMzIuNjIzNTM1MTU2MjUiIHdpZHRoPSI0NzUuMCIgeD0iMzgzLjAiIHk9IjQxNi42OTU1NjMwNzAyNzAxNyIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0Y1RjVGNSIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJyaWdodCIgYXV0b1NpemVQb2xpY3k9Im5vZGVfd2lkdGgiIGJhY2tncm91bmRDb2xvcj0iI0VCRUJFQiIgYm9yZGVyRGlzdGFuY2U9IjAuMCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTUiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMjIuMzc2NDY0ODQzNzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iaW50ZXJuYWwiIG1vZGVsUG9zaXRpb249InQiIHRleHRDb2xvcj0iIzAwMDAwMCIgdmVydGljYWxUZXh0UG9zaXRpb249ImJvdHRvbSIgdmlzaWJsZT0idHJ1ZSIgd2lkdGg9IjQ3NS4wIiB4PSIwLjAiIHk9IjAuMCI+UnVubmFibGUgMjwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJmYWxzZSIgY2xvc2VkSGVpZ2h0PSI1MC4wIiBjbG9zZWRXaWR0aD0iNTAuMCIgaW5uZXJHcmFwaERpc3BsYXlFbmFibGVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgICAgPHk6SW5zZXRzIGJvdHRvbT0iMTUiIGJvdHRvbUY9IjE1LjAiIGxlZnQ9IjE1IiBsZWZ0Rj0iMTUuMCIgcmlnaHQ9IjE1IiByaWdodEY9IjE1LjAiIHRvcD0iMTUiIHRvcEY9IjE1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjMxIiBib3R0b21GPSIzMS4yNDcwNzAzMTI1IiBsZWZ0PSIwIiBsZWZ0Rj0iMC4wIiByaWdodD0iNzUiIHJpZ2h0Rj0iNzUuMCIgdG9wPSIxNCIgdG9wRj0iMTQuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgICAgPHk6R3JvdXBOb2RlPgotICAgICAgICAgICAgICAgICAgPHk6R2VvbWV0cnkgaGVpZ2h0PSI1MC4wIiB3aWR0aD0iNTAuMCIgeD0iMC4wIiB5PSI2MC4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRjVGNUY1IiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIxLjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5Ok5vZGVMYWJlbCBhbGlnbm1lbnQ9InJpZ2h0IiBhdXRvU2l6ZVBvbGljeT0ibm9kZV93aWR0aCIgYmFja2dyb3VuZENvbG9yPSIjRUJFQkVCIiBib3JkZXJEaXN0YW5jZT0iMC4wIiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxNSIgZm9udFN0eWxlPSJwbGFpbiIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIyMi4zNzY0NjQ4NDM3NSIgaG9yaXpvbnRhbFRleHRQb3NpdGlvbj0iY2VudGVyIiBpY29uVGV4dEdhcD0iNCIgbW9kZWxOYW1lPSJpbnRlcm5hbCIgbW9kZWxQb3NpdGlvbj0idCIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iNTkuMDI2ODU1NDY4NzUiIHg9Ii00LjUxMzQyNzczNDM3NSIgeT0iMC4wIj5Gb2xkZXIgMTwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyb3VuZHJlY3RhbmdsZSIvPgotICAgICAgICAgICAgICAgICAgPHk6U3RhdGUgY2xvc2VkPSJ0cnVlIiBjbG9zZWRIZWlnaHQ9IjUwLjAiIGNsb3NlZFdpZHRoPSI1MC4wIiBpbm5lckdyYXBoRGlzcGxheUVuYWJsZWQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpJbnNldHMgYm90dG9tPSI1IiBib3R0b21GPSI1LjAiIGxlZnQ9IjUiIGxlZnRGPSI1LjAiIHJpZ2h0PSI1IiByaWdodEY9IjUuMCIgdG9wPSI1IiB0b3BGPSI1LjAiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlckluc2V0cyBib3R0b209IjAiIGJvdHRvbUY9IjAuMCIgbGVmdD0iMCIgbGVmdEY9IjAuMCIgcmlnaHQ9IjAiIHJpZ2h0Rj0iMC4wIiB0b3A9IjAiIHRvcEY9IjAuMCIvPgotICAgICAgICAgICAgICAgIDwveTpHcm91cE5vZGU+Ci0gICAgICAgICAgICAgIDwveTpSZWFsaXplcnM+Ci0gICAgICAgICAgICA8L3k6UHJveHlBdXRvQm91bmRzTm9kZT4KLSAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgPGdyYXBoIGVkZ2VkZWZhdWx0PSJkaXJlY3RlZCIgaWQ9Im4yOjpuMDoiPgotICAgICAgICAgICAgPG5vZGUgaWQ9Im4yOjpuMDo6bjAiPgotICAgICAgICAgICAgICA8ZGF0YSBrZXk9ImQ2Ij4KLSAgICAgICAgICAgICAgICA8eTpTaGFwZU5vZGU+Ci0gICAgICAgICAgICAgICAgICA8eTpHZW9tZXRyeSBoZWlnaHQ9IjMyLjAiIHdpZHRoPSIxMzIuMCIgeD0iMzk4LjAiIHk9IjQ2OC4wNzIwMjc5MTQwMjAxNyIvPgotICAgICAgICAgICAgICAgICAgPHk6RmlsbCBjb2xvcj0iI0ZGQ0MwMCIgdHJhbnNwYXJlbnQ9ImZhbHNlIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpCb3JkZXJTdHlsZSBjb2xvcj0iIzAwMDAwMCIgcmFpc2VkPSJmYWxzZSIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgICAgICAgICAgPHk6Tm9kZUxhYmVsIGFsaWdubWVudD0iY2VudGVyIiBhdXRvU2l6ZVBvbGljeT0iY29udGVudCIgZm9udEZhbWlseT0iRGlhbG9nIiBmb250U2l6ZT0iMTIiIGZvbnRTdHlsZT0icGxhaW4iIGhhc0JhY2tncm91bmRDb2xvcj0iZmFsc2UiIGhhc0xpbmVDb2xvcj0iZmFsc2UiIGhlaWdodD0iMTguNzAxMTcxODc1IiBob3Jpem9udGFsVGV4dFBvc2l0aW9uPSJjZW50ZXIiIGljb25UZXh0R2FwPSI0IiBtb2RlbE5hbWU9ImN1c3RvbSIgdGV4dENvbG9yPSIjMDAwMDAwIiB2ZXJ0aWNhbFRleHRQb3NpdGlvbj0iYm90dG9tIiB2aXNpYmxlPSJ0cnVlIiB3aWR0aD0iOTUuNDA2MjUiIHg9IjE4LjI5Njg3NSIgeT0iNi42NDk0MTQwNjI1Ij5zZW5kIHRvIGNoYW5uZWwyPHk6TGFiZWxNb2RlbD4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsIGRpc3RhbmNlPSI0LjAiLz4KLSAgICAgICAgICAgICAgICAgICAgPC95OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgIDx5Ok1vZGVsUGFyYW1ldGVyPgotICAgICAgICAgICAgICAgICAgICAgIDx5OlNtYXJ0Tm9kZUxhYmVsTW9kZWxQYXJhbWV0ZXIgbGFiZWxSYXRpb1g9IjAuMCIgbGFiZWxSYXRpb1k9IjAuMCIgbm9kZVJhdGlvWD0iMC4wIiBub2RlUmF0aW9ZPSIwLjAiIG9mZnNldFg9IjAuMCIgb2Zmc2V0WT0iMC4wIiB1cFg9IjAuMCIgdXBZPSItMS4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgIDwveTpOb2RlTGFiZWw+Ci0gICAgICAgICAgICAgICAgICA8eTpTaGFwZSB0eXBlPSJyZWN0YW5nbGUiLz4KLSAgICAgICAgICAgICAgICA8L3k6U2hhcGVOb2RlPgotICAgICAgICAgICAgICA8L2RhdGE+Ci0gICAgICAgICAgICA8L25vZGU+Ci0gICAgICAgICAgICA8bm9kZSBpZD0ibjI6Om4wOjpuMSI+Ci0gICAgICAgICAgICAgIDxkYXRhIGtleT0iZDYiPgotICAgICAgICAgICAgICAgIDx5OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgICAgIDx5Okdlb21ldHJ5IGhlaWdodD0iMzIuMCIgd2lkdGg9IjE0Ni4wIiB4PSI2MjIuMCIgeT0iNDcxLjA3MjAyNzkxNDAyMDE3Ii8+Ci0gICAgICAgICAgICAgICAgICA8eTpGaWxsIGNvbG9yPSIjRkZDQzAwIiB0cmFuc3BhcmVudD0iZmFsc2UiLz4KLSAgICAgICAgICAgICAgICAgIDx5OkJvcmRlclN0eWxlIGNvbG9yPSIjMDAwMDAwIiByYWlzZWQ9ImZhbHNlIiB0eXBlPSJsaW5lIiB3aWR0aD0iMS4wIi8+Ci0gICAgICAgICAgICAgICAgICA8eTpOb2RlTGFiZWwgYWxpZ25tZW50PSJjZW50ZXIiIGF1dG9TaXplUG9saWN5PSJjb250ZW50IiBmb250RmFtaWx5PSJEaWFsb2ciIGZvbnRTaXplPSIxMiIgZm9udFN0eWxlPSJwbGFpbiIgaGFzQmFja2dyb3VuZENvbG9yPSJmYWxzZSIgaGFzTGluZUNvbG9yPSJmYWxzZSIgaGVpZ2h0PSIxOC43MDExNzE4NzUiIGhvcml6b250YWxUZXh0UG9zaXRpb249ImNlbnRlciIgaWNvblRleHRHYXA9IjQiIG1vZGVsTmFtZT0iY3VzdG9tIiB0ZXh0Q29sb3I9IiMwMDAwMDAiIHZlcnRpY2FsVGV4dFBvc2l0aW9uPSJib3R0b20iIHZpc2libGU9InRydWUiIHdpZHRoPSIxMjIuMDYwNTQ2ODc1IiB4PSIxMS45Njk3MjY1NjI1IiB5PSI2LjY0OTQxNDA2MjUiPnJlY2VpdmUgZnJvbSBjaGFubmVsMTx5OkxhYmVsTW9kZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgPHk6U21hcnROb2RlTGFiZWxNb2RlbCBkaXN0YW5jZT0iNC4wIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwveTpMYWJlbE1vZGVsPgotICAgICAgICAgICAgICAgICAgICA8eTpNb2RlbFBhcmFtZXRlcj4KLSAgICAgICAgICAgICAgICAgICAgICA8eTpTbWFydE5vZGVMYWJlbE1vZGVsUGFyYW1ldGVyIGxhYmVsUmF0aW9YPSIwLjAiIGxhYmVsUmF0aW9ZPSIwLjAiIG5vZGVSYXRpb1g9IjAuMCIgbm9kZVJhdGlvWT0iMC4wIiBvZmZzZXRYPSIwLjAiIG9mZnNldFk9IjAuMCIgdXBYPSIwLjAiIHVwWT0iLTEuMCIvPgotICAgICAgICAgICAgICAgICAgICA8L3k6TW9kZWxQYXJhbWV0ZXI+Ci0gICAgICAgICAgICAgICAgICA8L3k6Tm9kZUxhYmVsPgotICAgICAgICAgICAgICAgICAgPHk6U2hhcGUgdHlwZT0icmVjdGFuZ2xlIi8+Ci0gICAgICAgICAgICAgICAgPC95OlNoYXBlTm9kZT4KLSAgICAgICAgICAgICAgPC9kYXRhPgotICAgICAgICAgICAgPC9ub2RlPgotICAgICAgICAgIDwvZ3JhcGg+Ci0gICAgICAgIDwvbm9kZT4KLSAgICAgIDwvZ3JhcGg+Ci0gICAgPC9ub2RlPgotICAgIDxlZGdlIGlkPSJlMCIgc291cmNlPSJuMTo6bjA6Om4wIiB0YXJnZXQ9Im4yOjpuMDo6bjEiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMzM2NkZGIiB0eXBlPSJsaW5lIiB3aWR0aD0iMy4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4yOjpuMDo6ZTAiIHNvdXJjZT0ibjI6Om4wOjpuMSIgdGFyZ2V0PSJuMjo6bjA6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzMzNjZGRiIgdHlwZT0ibGluZSIgd2lkdGg9IjMuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlMSIgc291cmNlPSJuMjo6bjA6Om4wIiB0YXJnZXQ9Im4xOjpuMDo6bjEiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIi8+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMzM2NkZGIiB0eXBlPSJsaW5lIiB3aWR0aD0iMy4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4wOjplMCIgc291cmNlPSJuMDo6bjAiIHRhcmdldD0ibjA6Om4xIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCIvPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzAwMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjEuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlMiIgc291cmNlPSJuMjo6bjA6Om4wIiB0YXJnZXQ9Im4xOjpuMDo6bjEiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkOSIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIj4KLSAgICAgICAgICAgIDx5OlBvaW50IHg9IjQ4Ni4xMzEwMjU1MTIwODI2IiB5PSIzNDEuMzA1NzIxMzQzOTk5OSIvPgotICAgICAgICAgIDwveTpQYXRoPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iI0ZGMDAwMCIgdHlwZT0ibGluZSIgd2lkdGg9IjMuMCIvPgotICAgICAgICAgIDx5OkFycm93cyBzb3VyY2U9Im5vbmUiIHRhcmdldD0id2hpdGVfZGVsdGEiLz4KLSAgICAgICAgICA8eTpCZW5kU3R5bGUgc21vb3RoZWQ9ImZhbHNlIi8+Ci0gICAgICAgIDwveTpQb2x5TGluZUVkZ2U+Ci0gICAgICA8L2RhdGE+Ci0gICAgPC9lZGdlPgotICAgIDxlZGdlIGlkPSJlMyIgc291cmNlPSJuMTo6bjA6Om4wIiB0YXJnZXQ9Im4yOjpuMDo6bjAiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkOSIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iLTQ1LjEyMjA4MTU1Njc1Njg4IiB0eT0iMS4xMTY3NDE1NTk3MDk0NTMyIj4KLSAgICAgICAgICAgIDx5OlBvaW50IHg9IjM5OC40MTYyMjYxMTc0ODgiIHk9IjMyNS4xNDc3MzE5ODE4Mzc3NSIvPgotICAgICAgICAgIDwveTpQYXRoPgotICAgICAgICAgIDx5OkxpbmVTdHlsZSBjb2xvcj0iIzMzOTk2NiIgdHlwZT0iZGFzaGVkIiB3aWR0aD0iMi4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9ImU0IiBzb3VyY2U9Im4xOjpuMDo6bjAiIHRhcmdldD0ibjI6Om4wOjpuMSI+Ci0gICAgICA8ZGF0YSBrZXk9ImQ4Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQ5Ii8+Ci0gICAgICA8ZGF0YSBrZXk9ImQxMCI+Ci0gICAgICAgIDx5OlBvbHlMaW5lRWRnZT4KLSAgICAgICAgICA8eTpQYXRoIHN4PSIzNS42Njc4NjUyNTQwNTM5MzYiIHN5PSI5LjIwNDkyNTQ5NTM1MTI5IiB0eD0iMC4wIiB0eT0iMC4wIj4KLSAgICAgICAgICAgIDx5OlBvaW50IHg9IjY2MC4wMjE3NjgxNzE1NDIiIHk9IjM2OS43NzQ1NTk3NDM5OTk5Ii8+Ci0gICAgICAgICAgPC95OlBhdGg+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMzM5OTY2IiB0eXBlPSJsaW5lIiB3aWR0aD0iMy4wIi8+Ci0gICAgICAgICAgPHk6QXJyb3dzIHNvdXJjZT0ibm9uZSIgdGFyZ2V0PSJ3aGl0ZV9kZWx0YSIvPgotICAgICAgICAgIDx5OkJlbmRTdHlsZSBzbW9vdGhlZD0iZmFsc2UiLz4KLSAgICAgICAgPC95OlBvbHlMaW5lRWRnZT4KLSAgICAgIDwvZGF0YT4KLSAgICA8L2VkZ2U+Ci0gICAgPGVkZ2UgaWQ9Im4yOjpuMDo6ZTEiIHNvdXJjZT0ibjI6Om4wOjpuMSIgdGFyZ2V0PSJuMjo6bjA6Om4wIj4KLSAgICAgIDxkYXRhIGtleT0iZDgiLz4KLSAgICAgIDxkYXRhIGtleT0iZDkiLz4KLSAgICAgIDxkYXRhIGtleT0iZDEwIj4KLSAgICAgICAgPHk6UG9seUxpbmVFZGdlPgotICAgICAgICAgIDx5OlBhdGggc3g9IjAuMCIgc3k9IjAuMCIgdHg9IjAuMCIgdHk9IjAuMCI+Ci0gICAgICAgICAgICA8eTpQb2ludCB4PSI1ODIuMzA5NTMzNjIwMTkwNyIgeT0iNTE1Ljk0Mjk4MTU4Mjg1MTIiLz4KLSAgICAgICAgICA8L3k6UGF0aD4KLSAgICAgICAgICA8eTpMaW5lU3R5bGUgY29sb3I9IiMzMzk5NjYiIHR5cGU9ImxpbmUiIHdpZHRoPSIzLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgICA8ZWRnZSBpZD0ibjE6Om4wOjplMCIgc291cmNlPSJuMTo6bjA6Om4wIiB0YXJnZXQ9Im4xOjpuMDo6bjEiPgotICAgICAgPGRhdGEga2V5PSJkOCIvPgotICAgICAgPGRhdGEga2V5PSJkOSIvPgotICAgICAgPGRhdGEga2V5PSJkMTAiPgotICAgICAgICA8eTpQb2x5TGluZUVkZ2U+Ci0gICAgICAgICAgPHk6UGF0aCBzeD0iMC4wIiBzeT0iMC4wIiB0eD0iMC4wIiB0eT0iMC4wIj4KLSAgICAgICAgICAgIDx5OlBvaW50IHg9IjU3OC4xNDk1Mjc4NzAyNyIgeT0iMTgxLjI2NDY4Mzg1MjEwODA1Ii8+Ci0gICAgICAgICAgPC95OlBhdGg+Ci0gICAgICAgICAgPHk6TGluZVN0eWxlIGNvbG9yPSIjMzM2NkZGIiB0eXBlPSJkYXNoZWQiIHdpZHRoPSIyLjAiLz4KLSAgICAgICAgICA8eTpBcnJvd3Mgc291cmNlPSJub25lIiB0YXJnZXQ9IndoaXRlX2RlbHRhIi8+Ci0gICAgICAgICAgPHk6QmVuZFN0eWxlIHNtb290aGVkPSJmYWxzZSIvPgotICAgICAgICA8L3k6UG9seUxpbmVFZGdlPgotICAgICAgPC9kYXRhPgotICAgIDwvZWRnZT4KLSAgPC9ncmFwaD4KLSAgPGRhdGEga2V5PSJkNyI+Ci0gICAgPHk6UmVzb3VyY2VzLz4KLSAgPC9kYXRhPgotPC9ncmFwaG1sPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9FdmVudENoYWluMkRhdGFGbG93L2lucHV0L0V2ZW50Q2hhaW5Nb2RlbC5hbXhtaSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvRXZlbnRDaGFpbjJEYXRhRmxvdy9pbnB1dC9FdmVudENoYWluTW9kZWwuYW14bWkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiNjg5N2UuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9FdmVudENoYWluMkRhdGFGbG93L2lucHV0L0V2ZW50Q2hhaW5Nb2RlbC5hbXhtaQorKysgL2Rldi9udWxsCkBAIC0xLDMyMyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGFtOkFtYWx0aGVhIHhtaTp2ZXJzaW9uPSIyLjAiIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6YW09Imh0dHA6Ly9hcHA0bWMuZWNsaXBzZS5vcmcvYW1hbHRoZWEvMC45LjMiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgotICA8c3dNb2RlbD4KLSAgICA8dGFza3MgbmFtZT0iVGFza18xIiBzdGltdWxpPSJQZXJpb2RpY1N0aW11bHVzXzE/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIiBuYW1lPSJDYWxsU2VxdWVuY2VfMSI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpUYXNrUnVubmFibGVDYWxsIiBydW5uYWJsZT0iUnVubmFibGVfMT90eXBlPVJ1bm5hYmxlIj4KLSAgICAgICAgICAgIDxjb3VudGVyIHByZXNjYWxlcj0iMCIgb2Zmc2V0PSIwIi8+Ci0gICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrXzIiIHN0aW11bGk9IlBlcmlvZGljU3RpbXVsdXNfMT90eXBlPVBlcmlvZGljU3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMCI+Ci0gICAgICA8Y2FsbEdyYXBoPgotICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJhbTpDYWxsU2VxdWVuY2UiIG5hbWU9IiI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpUYXNrUnVubmFibGVDYWxsIiBydW5uYWJsZT0iUnVubmFibGVfMj90eXBlPVJ1bm5hYmxlIi8+Ci0gICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgPC90YXNrcz4KLSAgICA8dGFza3MgbmFtZT0iVGFza18zLTEiIHN0aW11bGk9IlBlcmlvZGljU3RpbXVsdXNfMT90eXBlPVBlcmlvZGljU3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMCI+Ci0gICAgICA8Y2FsbEdyYXBoPgotICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJhbTpDYWxsU2VxdWVuY2UiIG5hbWU9IkNhbGxTZXF1ZW5jZV8xIj4KLSAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9ImFtOlRhc2tSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJSdW5uYWJsZV8zP3R5cGU9UnVubmFibGUiLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrXzMtMiIgc3RpbXVsaT0iUGVyaW9kaWNTdGltdWx1c18xP3R5cGU9UGVyaW9kaWNTdGltdWx1cyIgcHJlZW1wdGlvbj0icHJlZW1wdGl2ZSIgbXVsdGlwbGVUYXNrQWN0aXZhdGlvbkxpbWl0PSIwIj4KLSAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9ImFtOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ2FsbFNlcXVlbmNlXzEiPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06VGFza1J1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlJ1bm5hYmxlXzM/dHlwZT1SdW5uYWJsZSIvPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2s0IiBzdGltdWxpPSJQZXJpb2RpY1N0aW11bHVzXzE/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIiBuYW1lPSIiPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06VGFza1J1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlJ1bm5hYmxlXzQ/dHlwZT1SdW5uYWJsZSIvPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJSdW5uYWJsZV8xIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpDaGFubmVsUmVjZWl2ZSIgZGF0YT0iQ2hhbm5lbDI/dHlwZT1DaGFubmVsIiBlbGVtZW50cz0iMiIgcmVjZWl2ZU9wZXJhdGlvbj0iTElGT19SZWFkIiBkYXRhTXVzdEJlTmV3PSJmYWxzZSIgZWxlbWVudEluZGV4PSIwIiBsb3dlckJvdW5kPSIyIj4KLSAgICAgICAgPHRyYW5zbWlzc2lvblBvbGljeSBjaHVua1Byb2Nlc3NpbmdUaWNrcz0iMCIgdHJhbnNtaXRSYXRpbz0iMS4wIj4KLSAgICAgICAgICA8Y2h1bmtTaXplIHZhbHVlPSIyMyIgdW5pdD0iQiIvPgotICAgICAgICA8L3RyYW5zbWlzc2lvblBvbGljeT4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlQ29uc3RhbnQiIHZhbHVlPSIxMDAwMDAiLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpDaGFubmVsU2VuZCIgZGF0YT0iQ2hhbm5lbDE/dHlwZT1DaGFubmVsIiBlbGVtZW50cz0iMjMiPgotICAgICAgICA8dHJhbnNtaXNzaW9uUG9saWN5IGNodW5rUHJvY2Vzc2luZ1RpY2tzPSIwIiB0cmFuc21pdFJhdGlvPSIxLjAiPgotICAgICAgICAgIDxjaHVua1NpemUgdmFsdWU9IjMiIHVuaXQ9IkIiLz4KLSAgICAgICAgPC90cmFuc21pc3Npb25Qb2xpY3k+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJSdW5uYWJsZV8yIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpDaGFubmVsUmVjZWl2ZSIgZGF0YT0iQ2hhbm5lbDE/dHlwZT1DaGFubmVsIiBlbGVtZW50cz0iMiIgcmVjZWl2ZU9wZXJhdGlvbj0iRklGT19UYWtlIiBkYXRhTXVzdEJlTmV3PSJmYWxzZSIgZWxlbWVudEluZGV4PSIwIiBsb3dlckJvdW5kPSIxIj4KLSAgICAgICAgPHRyYW5zbWlzc2lvblBvbGljeSBjaHVua1Byb2Nlc3NpbmdUaWNrcz0iMCIgdHJhbnNtaXRSYXRpbz0iMS4wIj4KLSAgICAgICAgICA8Y2h1bmtTaXplIHZhbHVlPSI0MiIgdW5pdD0iQiIvPgotICAgICAgICA8L3RyYW5zbWlzc2lvblBvbGljeT4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlQ29uc3RhbnQiIHZhbHVlPSIxMDAwMDAiLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpDaGFubmVsU2VuZCIgZGF0YT0iQ2hhbm5lbDI/dHlwZT1DaGFubmVsIiBlbGVtZW50cz0iMjMiPgotICAgICAgICA8dHJhbnNtaXNzaW9uUG9saWN5IGNodW5rUHJvY2Vzc2luZ1RpY2tzPSIwIiB0cmFuc21pdFJhdGlvPSIxLjAiPgotICAgICAgICAgIDxjaHVua1NpemUgdmFsdWU9IjMiIHVuaXQ9IkIiLz4KLSAgICAgICAgPC90cmFuc21pc3Npb25Qb2xpY3k+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJSdW5uYWJsZV8zIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlQ29uc3RhbnQiIHZhbHVlPSIxMDAwMDAiLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpDaGFubmVsU2VuZCIgZGF0YT0iQ2hhbm5lbDM/dHlwZT1DaGFubmVsIiBlbGVtZW50cz0iMjMiPgotICAgICAgICA8dHJhbnNtaXNzaW9uUG9saWN5IGNodW5rUHJvY2Vzc2luZ1RpY2tzPSIwIiB0cmFuc21pdFJhdGlvPSIxLjAiPgotICAgICAgICAgIDxjaHVua1NpemUgdmFsdWU9IjMiIHVuaXQ9IkIiLz4KLSAgICAgICAgPC90cmFuc21pc3Npb25Qb2xpY3k+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJSdW5uYWJsZV80IiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlQ29uc3RhbnQiIHZhbHVlPSIxMDAwMDAiLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpDaGFubmVsUmVjZWl2ZSIgZGF0YT0iQ2hhbm5lbDM/dHlwZT1DaGFubmVsIiBlbGVtZW50cz0iMCIgcmVjZWl2ZU9wZXJhdGlvbj0iTElGT19SZWFkIiBkYXRhTXVzdEJlTmV3PSJmYWxzZSIgZWxlbWVudEluZGV4PSIwIiBsb3dlckJvdW5kPSIwIi8+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPGNoYW5uZWxzIG5hbWU9IkNoYW5uZWwxIiBkZWZhdWx0RWxlbWVudHM9IjEiIG1heEVsZW1lbnRzPSI1Ij4KLSAgICAgIDxzaXplIHZhbHVlPSIyMiIgdW5pdD0iTUIiLz4KLSAgICAgIDxlbGVtZW50VHlwZSB4c2k6dHlwZT0iYW06VHlwZVJlZiIgdHlwZURlZj0iQmFzZVR5cGVEZWZpbml0aW9uXzg/dHlwZT1CYXNlVHlwZURlZmluaXRpb24iLz4KLSAgICA8L2NoYW5uZWxzPgotICAgIDxjaGFubmVscyBuYW1lPSJDaGFubmVsMiIgZGVmYXVsdEVsZW1lbnRzPSIxIiBtYXhFbGVtZW50cz0iNSI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iNDQiIHVuaXQ9Ik1CIi8+Ci0gICAgICA8ZWxlbWVudFR5cGUgeHNpOnR5cGU9ImFtOlR5cGVSZWYiIHR5cGVEZWY9IkJhc2VUeXBlRGVmaW5pdGlvbl84P3R5cGU9QmFzZVR5cGVEZWZpbml0aW9uIi8+Ci0gICAgPC9jaGFubmVscz4KLSAgICA8Y2hhbm5lbHMgbmFtZT0iQ2hhbm5lbDMiIGRlZmF1bHRFbGVtZW50cz0iMSIgbWF4RWxlbWVudHM9IjUiPgotICAgICAgPHNpemUgdmFsdWU9IjQ0IiB1bml0PSJNQiIvPgotICAgICAgPGVsZW1lbnRUeXBlIHhzaTp0eXBlPSJhbTpUeXBlUmVmIiB0eXBlRGVmPSJCYXNlVHlwZURlZmluaXRpb25fOD90eXBlPUJhc2VUeXBlRGVmaW5pdGlvbiIvPgotICAgIDwvY2hhbm5lbHM+Ci0gICAgPHR5cGVEZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06QmFzZVR5cGVEZWZpbml0aW9uIiBuYW1lPSJCYXNlVHlwZURlZmluaXRpb25fMSI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iOCIgdW5pdD0iQiIvPgotICAgIDwvdHlwZURlZmluaXRpb25zPgotICAgIDx0eXBlRGVmaW5pdGlvbnMgeHNpOnR5cGU9ImFtOkJhc2VUeXBlRGVmaW5pdGlvbiIgbmFtZT0iQmFzZVR5cGVEZWZpbml0aW9uXzIiPgotICAgICAgPHNpemUgdmFsdWU9IjAiIHVuaXQ9IkIiLz4KLSAgICA8L3R5cGVEZWZpbml0aW9ucz4KLSAgICA8dHlwZURlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpCYXNlVHlwZURlZmluaXRpb24iIG5hbWU9IkJhc2VUeXBlRGVmaW5pdGlvbl8zIj4KLSAgICAgIDxzaXplIHZhbHVlPSIwIiB1bml0PSJCIi8+Ci0gICAgPC90eXBlRGVmaW5pdGlvbnM+Ci0gICAgPHR5cGVEZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06QmFzZVR5cGVEZWZpbml0aW9uIiBuYW1lPSJCYXNlVHlwZURlZmluaXRpb25fNCI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iNCIgdW5pdD0iTUIiLz4KLSAgICA8L3R5cGVEZWZpbml0aW9ucz4KLSAgICA8dHlwZURlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpCYXNlVHlwZURlZmluaXRpb24iIG5hbWU9IkJhc2VUeXBlRGVmaW5pdGlvbl81Ij4KLSAgICAgIDxzaXplIHZhbHVlPSIxMjAiIHVuaXQ9ImtCIi8+Ci0gICAgPC90eXBlRGVmaW5pdGlvbnM+Ci0gICAgPHR5cGVEZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06QmFzZVR5cGVEZWZpbml0aW9uIiBuYW1lPSJCYXNlVHlwZURlZmluaXRpb25fNiI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iMTAiIHVuaXQ9ImtCIi8+Ci0gICAgPC90eXBlRGVmaW5pdGlvbnM+Ci0gICAgPHR5cGVEZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06QmFzZVR5cGVEZWZpbml0aW9uIiBuYW1lPSJCYXNlVHlwZURlZmluaXRpb25fNyI+Ci0gICAgICA8c2l6ZSB2YWx1ZT0iNCIgdW5pdD0iTUIiLz4KLSAgICA8L3R5cGVEZWZpbml0aW9ucz4KLSAgICA8dHlwZURlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpCYXNlVHlwZURlZmluaXRpb24iIG5hbWU9IkJhc2VUeXBlRGVmaW5pdGlvbl84Ij4KLSAgICAgIDxzaXplIHZhbHVlPSIyMCIgdW5pdD0ia0IiLz4KLSAgICA8L3R5cGVEZWZpbml0aW9ucz4KLSAgICA8dHlwZURlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpCYXNlVHlwZURlZmluaXRpb24iIG5hbWU9IkJhc2VUeXBlRGVmaW5pdGlvbl85Ij4KLSAgICAgIDxzaXplIHZhbHVlPSIxODAiIHVuaXQ9ImtCIi8+Ci0gICAgPC90eXBlRGVmaW5pdGlvbnM+Ci0gIDwvc3dNb2RlbD4KLSAgPGh3TW9kZWw+Ci0gICAgPGRlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdERlZmluaXRpb24iIG5hbWU9IlByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbl8xIi8+Ci0gICAgPGRlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdERlZmluaXRpb24iIG5hbWU9IlByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbl8yIi8+Ci0gICAgPGRlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpNZW1vcnlEZWZpbml0aW9uIiBuYW1lPSJNZW1vcnlEZWZpbml0aW9uXzEiIG1lbW9yeVR5cGU9IkRSQU0iPgotICAgICAgPHNpemUgdmFsdWU9Ijc2OCIgdW5pdD0ia0IiLz4KLSAgICAgIDxkYXRhUmF0ZSB2YWx1ZT0iMTAiIHVuaXQ9Ik1iaXRQZXJTZWNvbmQiLz4KLSAgICA8L2RlZmluaXRpb25zPgotICAgIDxkZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06TWVtb3J5RGVmaW5pdGlvbiIgbmFtZT0iTWVtb3J5RGVmaW5pdGlvbl8yIiBtZW1vcnlUeXBlPSJTUkFNIj4KLSAgICAgIDxzaXplIHZhbHVlPSIyNTYiIHVuaXQ9ImtCIi8+Ci0gICAgICA8YWNjZXNzTGF0ZW5jeSB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZUNvbnN0YW50IiB2YWx1ZT0iNSIvPgotICAgIDwvZGVmaW5pdGlvbnM+Ci0gICAgPHN0cnVjdHVyZXMgbmFtZT0iSHdTdHJ1Y3R1cmVfMSIgc3RydWN0dXJlVHlwZT0iU3lzdGVtIj4KLSAgICAgIDxzdHJ1Y3R1cmVzIG5hbWU9Ikh3U3RydWN0dXJlXzIiIHN0cnVjdHVyZVR5cGU9IkVDVSI+Ci0gICAgICAgIDxzdHJ1Y3R1cmVzIG5hbWU9Ikh3U3RydWN0dXJlXzEiIHN0cnVjdHVyZVR5cGU9Ik1pY3JvY29udHJvbGxlciI+Ci0gICAgICAgICAgPG1vZHVsZXMgeHNpOnR5cGU9ImFtOlByb2Nlc3NpbmdVbml0IiBuYW1lPSJQcm9jZXNzaW5nVW5pdF8xIiBmcmVxdWVuY3lEb21haW49IkZyZXF1ZW5jeURvbWFpbl8xP3R5cGU9RnJlcXVlbmN5RG9tYWluIiBkZWZpbml0aW9uPSJQcm9jZXNzaW5nVW5pdERlZmluaXRpb25fMT90eXBlPVByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbiI+Ci0gICAgICAgICAgICA8YWNjZXNzRWxlbWVudHMgbmFtZT0iSHdBY2Nlc3NFbGVtZW50XzEiIGRlc3RpbmF0aW9uPSJNZW1vcnlfMT90eXBlPU1lbW9yeSI+Ci0gICAgICAgICAgICAgIDxyZWFkTGF0ZW5jeSB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZUNvbnN0YW50IiB2YWx1ZT0iNSIvPgotICAgICAgICAgICAgICA8d3JpdGVMYXRlbmN5IHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlQ29uc3RhbnQiIHZhbHVlPSIxIi8+Ci0gICAgICAgICAgICA8L2FjY2Vzc0VsZW1lbnRzPgotICAgICAgICAgIDwvbW9kdWxlcz4KLSAgICAgICAgICA8bW9kdWxlcyB4c2k6dHlwZT0iYW06TWVtb3J5IiBuYW1lPSJNZW1vcnlfMSIgZnJlcXVlbmN5RG9tYWluPSJGcmVxdWVuY3lEb21haW5fMT90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iTWVtb3J5RGVmaW5pdGlvbl8yP3R5cGU9TWVtb3J5RGVmaW5pdGlvbiIvPgotICAgICAgICAgIDxtb2R1bGVzIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdCIgbmFtZT0iUHJvY2Vzc2luZ1VuaXRfMiIgZnJlcXVlbmN5RG9tYWluPSJGcmVxdWVuY3lEb21haW5fMT90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iUHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uXzI/dHlwZT1Qcm9jZXNzaW5nVW5pdERlZmluaXRpb24iPgotICAgICAgICAgICAgPGFjY2Vzc0VsZW1lbnRzIG5hbWU9Ikh3QWNjZXNzRWxlbWVudF80IiBkZXN0aW5hdGlvbj0iTWVtb3J5XzI/dHlwZT1NZW1vcnkiPgotICAgICAgICAgICAgICA8cmVhZExhdGVuY3kgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVTdGF0aXN0aWNzIiBsb3dlckJvdW5kPSIxMCIgdXBwZXJCb3VuZD0iMTIwIiBhdmVyYWdlPSI3MC4wIi8+Ci0gICAgICAgICAgICAgIDx3cml0ZUxhdGVuY3kgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVTdGF0aXN0aWNzIiBsb3dlckJvdW5kPSI5MCIgdXBwZXJCb3VuZD0iMTUwIiBhdmVyYWdlPSI1MC4wIi8+Ci0gICAgICAgICAgICA8L2FjY2Vzc0VsZW1lbnRzPgotICAgICAgICAgIDwvbW9kdWxlcz4KLSAgICAgICAgICA8bW9kdWxlcyB4c2k6dHlwZT0iYW06TWVtb3J5IiBuYW1lPSJNZW1vcnlfMiIgZnJlcXVlbmN5RG9tYWluPSJGcmVxdWVuY3lEb21haW5fMT90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iTWVtb3J5RGVmaW5pdGlvbl8xP3R5cGU9TWVtb3J5RGVmaW5pdGlvbiIvPgotICAgICAgICA8L3N0cnVjdHVyZXM+Ci0gICAgICA8L3N0cnVjdHVyZXM+Ci0gICAgPC9zdHJ1Y3R1cmVzPgotICAgIDxkb21haW5zIHhzaTp0eXBlPSJhbTpGcmVxdWVuY3lEb21haW4iIG5hbWU9IkZyZXF1ZW5jeURvbWFpbl8xIiBjbG9ja0dhdGluZz0iZmFsc2UiPgotICAgICAgPGRlZmF1bHRWYWx1ZSB2YWx1ZT0iMC4xIiB1bml0PSJHSHoiLz4KLSAgICA8L2RvbWFpbnM+Ci0gIDwvaHdNb2RlbD4KLSAgPG9zTW9kZWw+Ci0gICAgPG9wZXJhdGluZ1N5c3RlbXMgbmFtZT0iT3BlcmF0aW5nU3lzdGVtXzEiPgotICAgICAgPHRhc2tTY2hlZHVsZXJzIG5hbWU9IlRhc2tTY2hlZHVsZXJfMSI+Ci0gICAgICAgIDxzY2hlZHVsaW5nQWxnb3JpdGhtIHhzaTp0eXBlPSJhbTpPU0VLIi8+Ci0gICAgICA8L3Rhc2tTY2hlZHVsZXJzPgotICAgIDwvb3BlcmF0aW5nU3lzdGVtcz4KLSAgPC9vc01vZGVsPgotICA8c3RpbXVsaU1vZGVsPgotICAgIDxzdGltdWxpIHhzaTp0eXBlPSJhbTpQZXJpb2RpY1N0aW11bHVzIiBuYW1lPSJQZXJpb2RpY1N0aW11bHVzXzEiPgotICAgICAgPG9mZnNldCB2YWx1ZT0iMCIgdW5pdD0icyIvPgotICAgICAgPHJlY3VycmVuY2UgdmFsdWU9IjEwIiB1bml0PSJtcyIvPgotICAgIDwvc3RpbXVsaT4KLSAgPC9zdGltdWxpTW9kZWw+Ci0gIDxldmVudE1vZGVsPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOkNoYW5uZWxFdmVudCIgbmFtZT0idGFzazFfcnVubmFibGUxX2NoYW5uZWwxX3NlbmQiIGV2ZW50VHlwZT0ic2VuZCIgZW50aXR5PSJDaGFubmVsMT90eXBlPUNoYW5uZWwiIHJ1bm5hYmxlPSJSdW5uYWJsZV8xP3R5cGU9UnVubmFibGUiIHByb2Nlc3M9IlRhc2tfMT90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpDaGFubmVsRXZlbnQiIG5hbWU9InRhc2sxX3J1bm5hYmxlMV9jaGFubmVsMl9yZWNlaXZlIiBkZXNjcmlwdGlvbj0iIiBldmVudFR5cGU9InJlY2VpdmUiIGVudGl0eT0iQ2hhbm5lbDI/dHlwZT1DaGFubmVsIiBydW5uYWJsZT0iUnVubmFibGVfMT90eXBlPVJ1bm5hYmxlIiBwcm9jZXNzPSJUYXNrXzE/dHlwZT1UYXNrIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06Q2hhbm5lbEV2ZW50IiBuYW1lPSJ0YXNrMl9ydW5uYWJsZTJfY2hhbm5lbDFfcmVjZWl2ZSIgZGVzY3JpcHRpb249IiIgZXZlbnRUeXBlPSJyZWNlaXZlIiBlbnRpdHk9IkNoYW5uZWwxP3R5cGU9Q2hhbm5lbCIgcnVubmFibGU9IlJ1bm5hYmxlXzI/dHlwZT1SdW5uYWJsZSIgcHJvY2Vzcz0iVGFza18yP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOkNoYW5uZWxFdmVudCIgbmFtZT0idGFzazJfcnVubmFibGUyX2NoYW5uZWwyX3NlbmQiIGV2ZW50VHlwZT0ic2VuZCIgZW50aXR5PSJDaGFubmVsMj90eXBlPUNoYW5uZWwiIHJ1bm5hYmxlPSJSdW5uYWJsZV8yP3R5cGU9UnVubmFibGUiIHByb2Nlc3M9IlRhc2tfMj90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpDdXN0b21FdmVudCIgbmFtZT0iY3VzdG9tRXZlbnQwIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06Q2hhbm5lbEV2ZW50IiBuYW1lPSJ0YXNrMV9jaGFubmVsMV9hbGxBY2Nlc3Nlc19yMSIgZGVzY3JpcHRpb249IiIgZW50aXR5PSJDaGFubmVsMT90eXBlPUNoYW5uZWwiIHJ1bm5hYmxlPSJSdW5uYWJsZV8xP3R5cGU9UnVubmFibGUiIHByb2Nlc3M9IlRhc2tfMT90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpDaGFubmVsRXZlbnQiIG5hbWU9InRhc2sxX2NoYW5uZWwxX3NlbmRfci1ub3RTZXQiIGV2ZW50VHlwZT0ic2VuZCIgZW50aXR5PSJDaGFubmVsMT90eXBlPUNoYW5uZWwiIHByb2Nlc3M9IlRhc2tfMT90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpDaGFubmVsRXZlbnQiIG5hbWU9InRhc2sxX2NoYW5uZWwtbm90U2V0X3NlbmRfcjEiIGV2ZW50VHlwZT0ic2VuZCIgcnVubmFibGU9IlJ1bm5hYmxlXzE/dHlwZT1SdW5uYWJsZSIgcHJvY2Vzcz0iVGFza18xP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOkNoYW5uZWxFdmVudCIgbmFtZT0idGFzazFfY2hhbm5lbDFfc2VuZF9yMyIgZGVzY3JpcHRpb249IiIgZXZlbnRUeXBlPSJzZW5kIiBlbnRpdHk9IkNoYW5uZWwxP3R5cGU9Q2hhbm5lbCIgcHJvY2Vzcz0iVGFza18xP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOkNoYW5uZWxFdmVudCIgbmFtZT0idGFza1hfcnVubmFibGUxX2NoYW5uZWwxX3NlbmQiIGV2ZW50VHlwZT0ic2VuZCIgZW50aXR5PSJDaGFubmVsMT90eXBlPUNoYW5uZWwiIHJ1bm5hYmxlPSJSdW5uYWJsZV8xP3R5cGU9UnVubmFibGUiLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpQcm9jZXNzRXZlbnQiIG5hbWU9InRhc2sxX2FjdGl2YXRlIiBldmVudFR5cGU9ImFjdGl2YXRlIiBlbnRpdHk9IlRhc2tfMT90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpQcm9jZXNzRXZlbnQiIG5hbWU9InRhc2sxX3Rlcm1pbmF0ZSIgZXZlbnRUeXBlPSJ0ZXJtaW5hdGUiIGVudGl0eT0iVGFza18xP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOlByb2Nlc3NFdmVudCIgbmFtZT0idGFzazFfc3RhcnQiIGV2ZW50VHlwZT0ic3RhcnQiIGVudGl0eT0iVGFza18xP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOlByb2Nlc3NFdmVudCIgbmFtZT0idGFzazFfcHJlZW1wdCIgZXZlbnRUeXBlPSJwcmVlbXB0IiBlbnRpdHk9IlRhc2tfMT90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpQcm9jZXNzRXZlbnQiIG5hbWU9InRhc2sxX3Jlc3VtZSIgZXZlbnRUeXBlPSJyZXN1bWUiIGVudGl0eT0iVGFza18xP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOlByb2Nlc3NFdmVudCIgbmFtZT0idGFzazFfcnVuIiBldmVudFR5cGU9InJ1biIgZW50aXR5PSJUYXNrXzE/dHlwZT1UYXNrIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06UHJvY2Vzc0V2ZW50IiBuYW1lPSJ0YXNrMl9hY3RpdmF0ZSIgZXZlbnRUeXBlPSJhY3RpdmF0ZSIgZW50aXR5PSJUYXNrXzI/dHlwZT1UYXNrIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06UHJvY2Vzc0V2ZW50IiBuYW1lPSJ0YXNrMl9zdGFydCIgZXZlbnRUeXBlPSJzdGFydCIgZW50aXR5PSJUYXNrXzI/dHlwZT1UYXNrIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06UHJvY2Vzc0V2ZW50IiBuYW1lPSJ0YXNrMl90ZXJtaW5hdGUiIGV2ZW50VHlwZT0idGVybWluYXRlIiBlbnRpdHk9IlRhc2tfMj90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpQcm9jZXNzRXZlbnQiIG5hbWU9InRhc2szLTFfYWN0aXZhdGUiIGV2ZW50VHlwZT0iYWN0aXZhdGUiIGVudGl0eT0iVGFza18zLTE/dHlwZT1UYXNrIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06UHJvY2Vzc0V2ZW50IiBuYW1lPSJ0YXNrMy0xX3N0YXJ0IiBldmVudFR5cGU9InN0YXJ0IiBlbnRpdHk9IlRhc2tfMy0xP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOlByb2Nlc3NFdmVudCIgbmFtZT0idGFzazMtMV90ZXJtaW5hdGUiIGV2ZW50VHlwZT0idGVybWluYXRlIiBlbnRpdHk9IlRhc2tfMy0xP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlRXZlbnQiIG5hbWU9InJ1bm5hYmxlMV9zdGFydCIgZXZlbnRUeXBlPSJzdGFydCIgZW50aXR5PSJSdW5uYWJsZV8xP3R5cGU9UnVubmFibGUiIHByb2Nlc3M9IlRhc2tfMT90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUV2ZW50IiBuYW1lPSJydW5uYWJsZTFfdGVybWluYXRlIiBldmVudFR5cGU9InRlcm1pbmF0ZSIgZW50aXR5PSJSdW5uYWJsZV8xP3R5cGU9UnVubmFibGUiIHByb2Nlc3M9IlRhc2tfMT90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUV2ZW50IiBuYW1lPSJydW5uYWJsZTJfc3RhcnQiIGV2ZW50VHlwZT0ic3RhcnQiIGVudGl0eT0iUnVubmFibGVfMj90eXBlPVJ1bm5hYmxlIiBwcm9jZXNzPSJUYXNrXzI/dHlwZT1UYXNrIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06UnVubmFibGVFdmVudCIgbmFtZT0icnVubmFibGUyX3Rlcm1pbmF0ZSIgZXZlbnRUeXBlPSJ0ZXJtaW5hdGUiIGVudGl0eT0iUnVubmFibGVfMj90eXBlPVJ1bm5hYmxlIiBwcm9jZXNzPSJUYXNrXzI/dHlwZT1UYXNrIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06UnVubmFibGVFdmVudCIgbmFtZT0icnVubmFibGUzX3Rhc2tfM18xX3N0YXJ0IiBldmVudFR5cGU9InN0YXJ0IiBlbnRpdHk9IlJ1bm5hYmxlXzM/dHlwZT1SdW5uYWJsZSIgcHJvY2Vzcz0iVGFza18zLTE/dHlwZT1UYXNrIi8+Ci0gICAgPGV2ZW50cyB4c2k6dHlwZT0iYW06UnVubmFibGVFdmVudCIgbmFtZT0icnVubmFibGUzX3Rhc2tfM18xX3Rlcm1pbmF0ZSIgZXZlbnRUeXBlPSJ0ZXJtaW5hdGUiIGVudGl0eT0iUnVubmFibGVfMz90eXBlPVJ1bm5hYmxlIiBwcm9jZXNzPSJUYXNrXzMtMT90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUV2ZW50IiBuYW1lPSJydW5uYWJsZTNfdGFza18zXzJfc3RhcnQiIGV2ZW50VHlwZT0ic3RhcnQiIGVudGl0eT0iUnVubmFibGVfMz90eXBlPVJ1bm5hYmxlIiBwcm9jZXNzPSJUYXNrXzMtMj90eXBlPVRhc2siLz4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpSdW5uYWJsZUV2ZW50IiBuYW1lPSJydW5uYWJsZTNfdGFza18zXzJfdGVybWluYXRlIiBldmVudFR5cGU9InRlcm1pbmF0ZSIgZW50aXR5PSJSdW5uYWJsZV8zP3R5cGU9UnVubmFibGUiIHByb2Nlc3M9IlRhc2tfMy0yP3R5cGU9VGFzayIvPgotICAgIDxldmVudHMgeHNpOnR5cGU9ImFtOlJ1bm5hYmxlRXZlbnQiIG5hbWU9InJ1bm5hYmxlRXZlbnRfdGFza05vdFNldCIgZXZlbnRUeXBlPSJ0ZXJtaW5hdGUiIGVudGl0eT0iUnVubmFibGVfMz90eXBlPVJ1bm5hYmxlIi8+Ci0gIDwvZXZlbnRNb2RlbD4KLSAgPGNvbnN0cmFpbnRzTW9kZWw+Ci0gICAgPGV2ZW50Q2hhaW5zIG5hbWU9IkV2ZW50U2VxdWVuY2VfRnVuY3Rpb25fTmVzdGVkRXZlbnRDaGFpbiI+Ci0gICAgICA8c2VnbWVudHMgeHNpOnR5cGU9ImFtOkV2ZW50Q2hhaW5Db250YWluZXIiPgotICAgICAgICA8ZXZlbnRDaGFpbiBuYW1lPSIiPgotICAgICAgICAgIDxzZWdtZW50cyB4c2k6dHlwZT0iYW06RXZlbnRDaGFpbkNvbnRhaW5lciI+Ci0gICAgICAgICAgICA8ZXZlbnRDaGFpbiBuYW1lPSJydW5uYWJsZTJfc3RhcnQtdGVybWluYXRlIiBzdGltdWx1cz0icnVubmFibGUyX3N0YXJ0P3R5cGU9UnVubmFibGVFdmVudCIgcmVzcG9uc2U9InJ1bm5hYmxlMl90ZXJtaW5hdGU/dHlwZT1SdW5uYWJsZUV2ZW50Ii8+Ci0gICAgICAgICAgPC9zZWdtZW50cz4KLSAgICAgICAgICA8c2VnbWVudHMgeHNpOnR5cGU9ImFtOkV2ZW50Q2hhaW5Db250YWluZXIiPgotICAgICAgICAgICAgPGV2ZW50Q2hhaW4gbmFtZT0icnVubmFibGUyLXRlcm1pbmF0ZV9ydW5uYWJsZTNfMi1hY3RpdmF0ZSIgc3RpbXVsdXM9InJ1bm5hYmxlMl90ZXJtaW5hdGU/dHlwZT1SdW5uYWJsZUV2ZW50IiByZXNwb25zZT0icnVubmFibGUzX3Rhc2tfM18yX3N0YXJ0P3R5cGU9UnVubmFibGVFdmVudCIvPgotICAgICAgICAgIDwvc2VnbWVudHM+Ci0gICAgICAgICAgPHNlZ21lbnRzIHhzaTp0eXBlPSJhbTpFdmVudENoYWluQ29udGFpbmVyIj4KLSAgICAgICAgICAgIDxldmVudENoYWluIG5hbWU9InJ1bm5hYmxlM18yX3N0YXJ0LXRlcm1pbmF0ZSIgc3RpbXVsdXM9InJ1bm5hYmxlM190YXNrXzNfMl9zdGFydD90eXBlPVJ1bm5hYmxlRXZlbnQiIHJlc3BvbnNlPSJydW5uYWJsZTNfdGFza18zXzJfdGVybWluYXRlP3R5cGU9UnVubmFibGVFdmVudCIvPgotICAgICAgICAgIDwvc2VnbWVudHM+Ci0gICAgICAgIDwvZXZlbnRDaGFpbj4KLSAgICAgIDwvc2VnbWVudHM+Ci0gICAgICA8c2VnbWVudHMgeHNpOnR5cGU9ImFtOkV2ZW50Q2hhaW5SZWZlcmVuY2UiIGV2ZW50Q2hhaW49IkV2ZW50U2VxdWVuY2VfRnVuY3Rpb25fU2ltcGxlRXZlbnRDaGFpbj90eXBlPUV2ZW50Q2hhaW4iLz4KLSAgICAgIDxzZWdtZW50cyB4c2k6dHlwZT0iYW06RXZlbnRDaGFpbkNvbnRhaW5lciI+Ci0gICAgICAgIDxldmVudENoYWluIG5hbWU9InJ1bm5hYmxlMV90ZXJtaW5hdGUtcnVubmFibGUyX3N0YXJ0IiBzdGltdWx1cz0icnVubmFibGUxX3Rlcm1pbmF0ZT90eXBlPVJ1bm5hYmxlRXZlbnQiIHJlc3BvbnNlPSJydW5uYWJsZTJfc3RhcnQ/dHlwZT1SdW5uYWJsZUV2ZW50Ii8+Ci0gICAgICA8L3NlZ21lbnRzPgotICAgIDwvZXZlbnRDaGFpbnM+Ci0gICAgPGV2ZW50Q2hhaW5zIG5hbWU9IkV2ZW50U2VxdWVuY2VfRnVuY3Rpb25fUmVmZXJlbmNlQ2hhaW4iIHN0aW11bHVzPSJydW5uYWJsZTJfc3RhcnQ/dHlwZT1SdW5uYWJsZUV2ZW50IiByZXNwb25zZT0icnVubmFibGUzX3Rhc2tfM18yX3N0YXJ0P3R5cGU9UnVubmFibGVFdmVudCI+Ci0gICAgICA8c2VnbWVudHMgeHNpOnR5cGU9ImFtOkV2ZW50Q2hhaW5SZWZlcmVuY2UiIGV2ZW50Q2hhaW49IkV2ZW50U2VxdWVuY2VfRnVuY3Rpb25fTmVzdGVkRXZlbnRDaGFpbj90eXBlPUV2ZW50Q2hhaW4iLz4KLSAgICA8L2V2ZW50Q2hhaW5zPgotICAgIDxldmVudENoYWlucyBuYW1lPSJFdmVudFNlcXVlbmNlX0Z1bmN0aW9uX1NpbXBsZUV2ZW50Q2hhaW4iIHN0aW11bHVzPSJydW5uYWJsZTFfc3RhcnQ/dHlwZT1SdW5uYWJsZUV2ZW50IiByZXNwb25zZT0icnVubmFibGUxX3Rlcm1pbmF0ZT90eXBlPVJ1bm5hYmxlRXZlbnQiLz4KLSAgICA8ZXZlbnRDaGFpbnMgbmFtZT0iRXZlbnRTZXF1ZW5jZV9Qcm9jZXNzX1NpbXBsZUV2ZW50Q2hhaW4iIHN0aW11bHVzPSJ0YXNrMV9hY3RpdmF0ZT90eXBlPVByb2Nlc3NFdmVudCIgcmVzcG9uc2U9InRhc2sxX3Rlcm1pbmF0ZT90eXBlPVByb2Nlc3NFdmVudCIvPgotICAgIDxldmVudENoYWlucyBuYW1lPSJFdmVudFNlcXVlbmNlX1Byb2Nlc3NfTmVzdGVkRXZlbnRDaGFpbiIgc3RpbXVsdXM9InRhc2sxX2FjdGl2YXRlP3R5cGU9UHJvY2Vzc0V2ZW50IiByZXNwb25zZT0idGFzazMtMV90ZXJtaW5hdGU/dHlwZT1Qcm9jZXNzRXZlbnQiPgotICAgICAgPHNlZ21lbnRzIHhzaTp0eXBlPSJhbTpFdmVudENoYWluQ29udGFpbmVyIj4KLSAgICAgICAgPGV2ZW50Q2hhaW4gbmFtZT0iIiBzdGltdWx1cz0idGFzazMtMV90ZXJtaW5hdGU/dHlwZT1Qcm9jZXNzRXZlbnQiIHJlc3BvbnNlPSJ0YXNrMl9hY3RpdmF0ZT90eXBlPVByb2Nlc3NFdmVudCI+Ci0gICAgICAgICAgPHNlZ21lbnRzIHhzaTp0eXBlPSJhbTpFdmVudENoYWluQ29udGFpbmVyIj4KLSAgICAgICAgICAgIDxldmVudENoYWluIG5hbWU9InRhc2syX2FjdGl2YXRlLXRlcm1pbmF0ZSIgc3RpbXVsdXM9InRhc2syX2FjdGl2YXRlP3R5cGU9UHJvY2Vzc0V2ZW50IiByZXNwb25zZT0idGFzazJfdGVybWluYXRlP3R5cGU9UHJvY2Vzc0V2ZW50Ii8+Ci0gICAgICAgICAgPC9zZWdtZW50cz4KLSAgICAgICAgICA8c2VnbWVudHMgeHNpOnR5cGU9ImFtOkV2ZW50Q2hhaW5Db250YWluZXIiPgotICAgICAgICAgICAgPGV2ZW50Q2hhaW4gbmFtZT0idGFzazNfMV9hY3RpdmF0ZS10ZXJtaW5hdGUiIHN0aW11bHVzPSJ0YXNrMy0xX2FjdGl2YXRlP3R5cGU9UHJvY2Vzc0V2ZW50IiByZXNwb25zZT0idGFzazMtMV90ZXJtaW5hdGU/dHlwZT1Qcm9jZXNzRXZlbnQiLz4KLSAgICAgICAgICA8L3NlZ21lbnRzPgotICAgICAgICA8L2V2ZW50Q2hhaW4+Ci0gICAgICA8L3NlZ21lbnRzPgotICAgICAgPHNlZ21lbnRzIHhzaTp0eXBlPSJhbTpFdmVudENoYWluQ29udGFpbmVyIj4KLSAgICAgICAgPGV2ZW50Q2hhaW4gbmFtZT0idGFzazJfdGVybWlhdGUtdGFzazNfMV9hY3RpdmF0ZSIgc3RpbXVsdXM9InRhc2syX3Rlcm1pbmF0ZT90eXBlPVByb2Nlc3NFdmVudCIgcmVzcG9uc2U9InRhc2szLTFfYWN0aXZhdGU/dHlwZT1Qcm9jZXNzRXZlbnQiLz4KLSAgICAgIDwvc2VnbWVudHM+Ci0gICAgPC9ldmVudENoYWlucz4KLSAgICA8ZXZlbnRDaGFpbnMgbmFtZT0iRXZlbnRTZXF1ZW5jZV9Qcm9jZXNzX1JlZmVyZW5jZUNoYWluIiBzdGltdWx1cz0idGFzazJfYWN0aXZhdGU/dHlwZT1Qcm9jZXNzRXZlbnQiIHJlc3BvbnNlPSJ0YXNrMy0xX2FjdGl2YXRlP3R5cGU9UHJvY2Vzc0V2ZW50Ij4KLSAgICAgIDxzZWdtZW50cyB4c2k6dHlwZT0iYW06RXZlbnRDaGFpblJlZmVyZW5jZSIgZXZlbnRDaGFpbj0iRXZlbnRTZXF1ZW5jZV9Qcm9jZXNzX05lc3RlZEV2ZW50Q2hhaW4/dHlwZT1FdmVudENoYWluIi8+Ci0gICAgPC9ldmVudENoYWlucz4KLSAgICA8ZXZlbnRDaGFpbnMgbmFtZT0iRGF0YUZsb3dfUmVmZXJlbmNlRXZlbnRDaGFpbiIgc3RpbXVsdXM9InRhc2sxX3J1bm5hYmxlMV9jaGFubmVsMV9zZW5kP3R5cGU9Q2hhbm5lbEV2ZW50IiByZXNwb25zZT0idGFzazJfcnVubmFibGUyX2NoYW5uZWwyX3NlbmQ/dHlwZT1DaGFubmVsRXZlbnQiPgotICAgICAgPHNlZ21lbnRzIHhzaTp0eXBlPSJhbTpFdmVudENoYWluUmVmZXJlbmNlIiBldmVudENoYWluPSJEYXRhRmxvd19OZXN0ZWRFdmVudENoYWluP3R5cGU9RXZlbnRDaGFpbiIvPgotICAgICAgPHNlZ21lbnRzIHhzaTp0eXBlPSJhbTpFdmVudENoYWluUmVmZXJlbmNlIiBldmVudENoYWluPSJEYXRhRmxvd19TaW1wbGVFdmVudENoYWluP3R5cGU9RXZlbnRDaGFpbiIvPgotICAgIDwvZXZlbnRDaGFpbnM+Ci0gICAgPGV2ZW50Q2hhaW5zIG5hbWU9IkRhdGFGbG93X1NpbXBsZUV2ZW50Q2hhaW4iIHN0aW11bHVzPSJ0YXNrMl9ydW5uYWJsZTJfY2hhbm5lbDJfc2VuZD90eXBlPUNoYW5uZWxFdmVudCIgcmVzcG9uc2U9InRhc2sxX3J1bm5hYmxlMV9jaGFubmVsMl9yZWNlaXZlP3R5cGU9Q2hhbm5lbEV2ZW50Ii8+Ci0gICAgPGV2ZW50Q2hhaW5zIG5hbWU9IkRhdGFGbG93X05lc3RlZEV2ZW50Q2hhaW4iIHN0aW11bHVzPSJ0YXNrMV9ydW5uYWJsZTFfY2hhbm5lbDFfc2VuZD90eXBlPUNoYW5uZWxFdmVudCIgcmVzcG9uc2U9InRhc2sxX3J1bm5hYmxlMV9jaGFubmVsMl9yZWNlaXZlP3R5cGU9Q2hhbm5lbEV2ZW50Ij4KLSAgICAgIDxzZWdtZW50cyB4c2k6dHlwZT0iYW06RXZlbnRDaGFpbkNvbnRhaW5lciI+Ci0gICAgICAgIDxldmVudENoYWluIG5hbWU9IlN1YkV2ZW50Q2hhaW4zIiBzdGltdWx1cz0idGFzazJfcnVubmFibGUyX2NoYW5uZWwyX3NlbmQ/dHlwZT1DaGFubmVsRXZlbnQiIHJlc3BvbnNlPSJ0YXNrMV9ydW5uYWJsZTFfY2hhbm5lbDJfcmVjZWl2ZT90eXBlPUNoYW5uZWxFdmVudCIvPgotICAgICAgPC9zZWdtZW50cz4KLSAgICAgIDxzZWdtZW50cyB4c2k6dHlwZT0iYW06RXZlbnRDaGFpbkNvbnRhaW5lciI+Ci0gICAgICAgIDxldmVudENoYWluIG5hbWU9IlN1YkV2ZW50Q2hhaW5fMSIgc3RpbXVsdXM9InRhc2sxX2NoYW5uZWwtbm90U2V0X3NlbmRfcjE/dHlwZT1DaGFubmVsRXZlbnQiIHJlc3BvbnNlPSJ0YXNrMl9ydW5uYWJsZTJfY2hhbm5lbDJfc2VuZD90eXBlPUNoYW5uZWxFdmVudCI+Ci0gICAgICAgICAgPHNlZ21lbnRzIHhzaTp0eXBlPSJhbTpFdmVudENoYWluQ29udGFpbmVyIj4KLSAgICAgICAgICAgIDxldmVudENoYWluIG5hbWU9IlN1YkV2ZW50Q2hhaW5fMV8xIiBzdGltdWx1cz0idGFzazFfcnVubmFibGUxX2NoYW5uZWwxX3NlbmQ/dHlwZT1DaGFubmVsRXZlbnQiIHJlc3BvbnNlPSJ0YXNrMl9ydW5uYWJsZTJfY2hhbm5lbDFfcmVjZWl2ZT90eXBlPUNoYW5uZWxFdmVudCIvPgotICAgICAgICAgIDwvc2VnbWVudHM+Ci0gICAgICAgICAgPHNlZ21lbnRzIHhzaTp0eXBlPSJhbTpFdmVudENoYWluQ29udGFpbmVyIj4KLSAgICAgICAgICAgIDxldmVudENoYWluIG5hbWU9IlN1YkV2ZW50Q2hhaW5fMV8yIiBzdGltdWx1cz0idGFzazJfcnVubmFibGUyX2NoYW5uZWwxX3JlY2VpdmU/dHlwZT1DaGFubmVsRXZlbnQiIHJlc3BvbnNlPSJ0YXNrMl9ydW5uYWJsZTJfY2hhbm5lbDJfc2VuZD90eXBlPUNoYW5uZWxFdmVudCIvPgotICAgICAgICAgIDwvc2VnbWVudHM+Ci0gICAgICAgIDwvZXZlbnRDaGFpbj4KLSAgICAgIDwvc2VnbWVudHM+Ci0gICAgPC9ldmVudENoYWlucz4KLSAgICA8ZXZlbnRDaGFpbnMgbmFtZT0iTm90QURhdGFGbG93RXZlbnRDaGFpbl93cm9uZ0V2ZW50VHlwZSIgc3RpbXVsdXM9InRhc2syX3J1bm5hYmxlMl9jaGFubmVsMV9yZWNlaXZlP3R5cGU9Q2hhbm5lbEV2ZW50IiByZXNwb25zZT0iY3VzdG9tRXZlbnQwP3R5cGU9Q3VzdG9tRXZlbnQiLz4KLSAgICA8ZXZlbnRDaGFpbnMgbmFtZT0iTm90QURhdGFGbG93RXZlbnRDaGFpbl9JbGxlZ2FsRXZlbnRUeXBlSW5TdGltdWx1cyIgc3RpbXVsdXM9InRhc2sxX2NoYW5uZWwxX2FsbEFjY2Vzc2VzX3IxP3R5cGU9Q2hhbm5lbEV2ZW50IiByZXNwb25zZT0idGFzazFfcnVubmFibGUxX2NoYW5uZWwxX3NlbmQ/dHlwZT1DaGFubmVsRXZlbnQiLz4KLSAgICA8ZXZlbnRDaGFpbnMgbmFtZT0iTm90QURhdGFGbG93RXZlbnRDaGFpbl9DaGFubmVsTm90U2V0IiBzdGltdWx1cz0idGFzazFfY2hhbm5lbC1ub3RTZXRfc2VuZF9yMT90eXBlPUNoYW5uZWxFdmVudCIgcmVzcG9uc2U9InRhc2sxX3J1bm5hYmxlMV9jaGFubmVsMV9zZW5kP3R5cGU9Q2hhbm5lbEV2ZW50Ii8+Ci0gICAgPGV2ZW50Q2hhaW5zIG5hbWU9Ik5vdEFEYXRhRmxvd0V2ZW50Q2hhaW5fUnVubmFibGVOb3RTZXQiIHN0aW11bHVzPSJ0YXNrMV9jaGFubmVsMV9hbGxBY2Nlc3Nlc19yMT90eXBlPUNoYW5uZWxFdmVudCIgcmVzcG9uc2U9InRhc2sxX3J1bm5hYmxlMV9jaGFubmVsMV9zZW5kP3R5cGU9Q2hhbm5lbEV2ZW50Ii8+Ci0gICAgPGV2ZW50Q2hhaW5zIG5hbWU9Ik5vdEFEYXRhRmxvd0V2ZW50Q2hhaW5fUnVubmFibGVOb3RDb250YWluc0NoYW5uZWxBY2Nlc3MiIHN0aW11bHVzPSJ0YXNrMV9jaGFubmVsMV9zZW5kX3IzP3R5cGU9Q2hhbm5lbEV2ZW50IiByZXNwb25zZT0idGFzazFfcnVubmFibGUxX2NoYW5uZWwxX3NlbmQ/dHlwZT1DaGFubmVsRXZlbnQiLz4KLSAgICA8ZXZlbnRDaGFpbnMgbmFtZT0iTm90QURhdGFGbG93RXZlbnRDaGFpbl9UYXNrTm90U2V0IiBzdGltdWx1cz0idGFzazJfcnVubmFibGUyX2NoYW5uZWwxX3JlY2VpdmU/dHlwZT1DaGFubmVsRXZlbnQiIHJlc3BvbnNlPSJ0YXNrWF9ydW5uYWJsZTFfY2hhbm5lbDFfc2VuZD90eXBlPUNoYW5uZWxFdmVudCIvPgotICAgIDxldmVudENoYWlucyBuYW1lPSJOb3RBRXZlbnRTZXF1ZW5jZUV2ZW50Q2hhaW5fd3JvbmdFdmVudFR5cGUiIHN0aW11bHVzPSJ0YXNrMV9hY3RpdmF0ZT90eXBlPVByb2Nlc3NFdmVudCIgcmVzcG9uc2U9ImN1c3RvbUV2ZW50MD90eXBlPUN1c3RvbUV2ZW50Ii8+Ci0gICAgPGV2ZW50Q2hhaW5zIG5hbWU9Ik5vdEFFdmVudFNlcXVlbmNlX0V2ZW50Q2hhaW5fUnVubmFibGVOb3RTZXQiIHN0aW11bHVzPSJydW5uYWJsZTFfc3RhcnQ/dHlwZT1SdW5uYWJsZUV2ZW50IiByZXNwb25zZT0icnVubmFibGVFdmVudF90YXNrTm90U2V0P3R5cGU9UnVubmFibGVFdmVudCIvPgotICAgIDxldmVudENoYWlucyBuYW1lPSJOb3RBRXZlbnRTZXF1ZW5jZUV2ZW50Q2hhaW5fVGFza05vdFNldCIgc3RpbXVsdXM9InJ1bm5hYmxlRXZlbnRfdGFza05vdFNldD90eXBlPVJ1bm5hYmxlRXZlbnQiIHJlc3BvbnNlPSJydW5uYWJsZTFfc3RhcnQ/dHlwZT1SdW5uYWJsZUV2ZW50Ii8+Ci0gIDwvY29uc3RyYWludHNNb2RlbD4KLSAgPG1hcHBpbmdNb2RlbD4KLSAgICA8c2NoZWR1bGVyQWxsb2NhdGlvbiBzY2hlZHVsZXI9IlRhc2tTY2hlZHVsZXJfMT90eXBlPVRhc2tTY2hlZHVsZXIiIHJlc3BvbnNpYmlsaXR5PSJQcm9jZXNzaW5nVW5pdF8xP3R5cGU9UHJvY2Vzc2luZ1VuaXQgUHJvY2Vzc2luZ1VuaXRfMj90eXBlPVByb2Nlc3NpbmdVbml0IiBleGVjdXRpbmdQVT0iUHJvY2Vzc2luZ1VuaXRfMT90eXBlPVByb2Nlc3NpbmdVbml0Ii8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2tfMT90eXBlPVRhc2siIHNjaGVkdWxlcj0iVGFza1NjaGVkdWxlcl8xP3R5cGU9VGFza1NjaGVkdWxlciIgYWZmaW5pdHk9IlByb2Nlc3NpbmdVbml0XzE/dHlwZT1Qcm9jZXNzaW5nVW5pdCI+Ci0gICAgICA8c2NoZWR1bGluZ1BhcmFtZXRlcnMgcHJpb3JpdHk9IjIwIi8+Ci0gICAgPC90YXNrQWxsb2NhdGlvbj4KLSAgICA8dGFza0FsbG9jYXRpb24gdGFzaz0iVGFza18yP3R5cGU9VGFzayIgc2NoZWR1bGVyPSJUYXNrU2NoZWR1bGVyXzE/dHlwZT1UYXNrU2NoZWR1bGVyIiBhZmZpbml0eT0iUHJvY2Vzc2luZ1VuaXRfMT90eXBlPVByb2Nlc3NpbmdVbml0Ii8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2tfMy0xP3R5cGU9VGFzayIgc2NoZWR1bGVyPSJUYXNrU2NoZWR1bGVyXzE/dHlwZT1UYXNrU2NoZWR1bGVyIi8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2tfMy0yP3R5cGU9VGFzayIgc2NoZWR1bGVyPSJUYXNrU2NoZWR1bGVyXzE/dHlwZT1UYXNrU2NoZWR1bGVyIi8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2s0P3R5cGU9VGFzayIgc2NoZWR1bGVyPSJUYXNrU2NoZWR1bGVyXzE/dHlwZT1UYXNrU2NoZWR1bGVyIi8+Ci0gICAgPG1lbW9yeU1hcHBpbmcgYWJzdHJhY3RFbGVtZW50PSJDaGFubmVsMT90eXBlPUNoYW5uZWwiIG1lbW9yeT0iTWVtb3J5XzE/dHlwZT1NZW1vcnkiIG1lbW9yeVBvc2l0aW9uQWRkcmVzcz0iMHgyMDAwIi8+Ci0gICAgPG1lbW9yeU1hcHBpbmcgYWJzdHJhY3RFbGVtZW50PSJDaGFubmVsMj90eXBlPUNoYW5uZWwiIG1lbW9yeT0iTWVtb3J5XzI/dHlwZT1NZW1vcnkiIG1lbW9yeVBvc2l0aW9uQWRkcmVzcz0iMHgzMDAwIi8+Ci0gIDwvbWFwcGluZ01vZGVsPgotICA8Y29tcG9uZW50c01vZGVsPgotICAgIDxjb21wb25lbnRzIG5hbWU9IkNvbXBvbmVudF8xIi8+Ci0gICAgPGNvbXBvbmVudHMgbmFtZT0iQ29tcG9uZW50XzIiLz4KLSAgICA8Y29tcG9uZW50cyBuYW1lPSJDb21wb25lbnRfMyIvPgotICAgIDxjb21wb25lbnRzIG5hbWU9IkNvbXBvbmVudF80Ii8+Ci0gICAgPGNvbXBvbmVudHMgbmFtZT0iQ29tcG9uZW50XzUiLz4KLSAgICA8Y29tcG9uZW50cyBuYW1lPSJDb21wb25lbnRfNiIvPgotICAgIDxjb21wb25lbnRzIG5hbWU9IkNvbXBvbmVudF83Ii8+Ci0gICAgPGNvbXBvbmVudHMgbmFtZT0iQ29tcG9uZW50XzgiLz4KLSAgICA8Y29tcG9uZW50cyB4c2k6dHlwZT0iYW06Q29tcG9zaXRlIiBuYW1lPSJDb21wb3NpdGVfMSI+Ci0gICAgICA8Y29tcG9uZW50SW5zdGFuY2VzIG5hbWU9IkNvbXBvbmVudEluc3RhbmNlXzEiIHR5cGU9IkNvbXBvbmVudF8xP3R5cGU9Q29tcG9uZW50Ii8+Ci0gICAgICA8Y29tcG9uZW50SW5zdGFuY2VzIG5hbWU9IkNvbXBvbmVudEluc3RhbmNlXzIiIHR5cGU9IkNvbXBvbmVudF8yP3R5cGU9Q29tcG9uZW50Ii8+Ci0gICAgICA8Y29tcG9uZW50SW5zdGFuY2VzIG5hbWU9IkNvbXBvbmVudEluc3RhbmNlXzMiIHR5cGU9IkNvbXBvbmVudF8zP3R5cGU9Q29tcG9uZW50Ii8+Ci0gICAgICA8Y29tcG9uZW50SW5zdGFuY2VzIG5hbWU9IkNvbXBvbmVudEluc3RhbmNlXzQiIHR5cGU9IkNvbXBvbmVudF8xP3R5cGU9Q29tcG9uZW50Ii8+Ci0gICAgPC9jb21wb25lbnRzPgotICAgIDxjb21wb25lbnRzIHhzaTp0eXBlPSJhbTpDb21wb3NpdGUiIG5hbWU9IkNvbXBvc2l0ZV8yIj4KLSAgICAgIDxjb21wb25lbnRJbnN0YW5jZXMgbmFtZT0iQ29tcG9uZW50SW5zdGFuY2VfNSIgdHlwZT0iQ29tcG9uZW50XzQ/dHlwZT1Db21wb25lbnQiLz4KLSAgICAgIDxjb21wb25lbnRJbnN0YW5jZXMgbmFtZT0iQ29tcG9uZW50SW5zdGFuY2VfNiIgdHlwZT0iQ29tcG9uZW50XzU/dHlwZT1Db21wb25lbnQiLz4KLSAgICA8L2NvbXBvbmVudHM+Ci0gICAgPGNvbXBvbmVudHMgeHNpOnR5cGU9ImFtOkNvbXBvc2l0ZSIgbmFtZT0iQ29tcG9zaXRlXzMiPgotICAgICAgPGNvbXBvbmVudEluc3RhbmNlcyBuYW1lPSJDb21wb25lbnRJbnN0YW5jZV83IiB0eXBlPSJDb21wb25lbnRfNz90eXBlPUNvbXBvbmVudCIvPgotICAgIDwvY29tcG9uZW50cz4KLSAgICA8c3lzdGVtcyBuYW1lPSJTeXN0ZW1fMSI+Ci0gICAgICA8Y29tcG9uZW50SW5zdGFuY2VzIG5hbWU9IkNvbXBvbmVudEluc3RhbmNlXzgiIHR5cGU9IkNvbXBvbmVudF82P3R5cGU9Q29tcG9uZW50Ii8+Ci0gICAgICA8Y29tcG9uZW50SW5zdGFuY2VzIG5hbWU9IkNvbXBvbmVudEluc3RhbmNlXzkiIHR5cGU9IkNvbXBvbmVudF82P3R5cGU9Q29tcG9uZW50Ii8+Ci0gICAgICA8Y29tcG9uZW50SW5zdGFuY2VzIG5hbWU9IkNvbXBvbmVudEluc3RhbmNlXzEwIiB0eXBlPSJDb21wb3NpdGVfMT90eXBlPUNvbXBvc2l0ZSIvPgotICAgICAgPGNvbXBvbmVudEluc3RhbmNlcyBuYW1lPSJDb21wb25lbnRJbnN0YW5jZV8xMSIgdHlwZT0iQ29tcG9zaXRlXzI/dHlwZT1Db21wb3NpdGUiLz4KLSAgICAgIDxjb21wb25lbnRJbnN0YW5jZXMgbmFtZT0iQ29tcG9uZW50SW5zdGFuY2VfMTIiIHR5cGU9IkNvbXBvc2l0ZV8zP3R5cGU9Q29tcG9zaXRlIi8+Ci0gICAgPC9zeXN0ZW1zPgotICA8L2NvbXBvbmVudHNNb2RlbD4KLTwvYW06QW1hbHRoZWE+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL0V2ZW50Q2hhaW4yRGF0YUZsb3cvb3V0cHV0L0V2ZW50Q2hhaW5Nb2RlbC5pcHJ4IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9FdmVudENoYWluMkRhdGFGbG93L291dHB1dC9FdmVudENoYWluTW9kZWwuaXByeApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZjA4ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL0V2ZW50Q2hhaW4yRGF0YUZsb3cvb3V0cHV0L0V2ZW50Q2hhaW5Nb2RlbC5pcHJ4CisrKyAvZGV2L251bGwKQEAgLTEsMjU2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IkFTQ0lJIj8+Ci08cm9vdDpSb290IHhtaTp2ZXJzaW9uPSIyLjAiIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6bW9kZWw9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguNS9tb2RlbCIgeG1sbnM6cm9vdD0iaHR0cDovL2luY2hyb24uY29tL3JlYWx0aW1lL3Jvb3QvMi45OC41IiB4bWxuczpzdGltdWxhdGlvbj0iaHR0cDovL2luY2hyb24uY29tL3JlYWx0aW1lL3Jvb3QvMi45OC41L21vZGVsL3N0aW11bGF0aW9uIj4KLSAgPG1vZGVsIHhzaTp0eXBlPSJtb2RlbDpNb2RlbCIgbmFtZT0iTW9kZWwiIGRlZmF1bHRTY2VuYXJpbz0iLy9AbW9kZWwvQHN0aW11bGF0aW9uU2NlbmFyaW9zLjAiPgotICAgIDxjbG9ja3MgbmFtZT0iRnJlcXVlbmN5RG9tYWluXzEiIHVzZXJzPSIvL0Btb2RlbC9AY3B1cy4wL0BtZW1vcmllcy4wIC8vQG1vZGVsL0BjcHVzLjAvQG1lbW9yaWVzLjEgLy9AbW9kZWwvQGNwdXMuMCAvL0Btb2RlbC9Ac3RpbXVsYXRpb25TY2VuYXJpb3MuMC9AZ2VuZXJhdG9ycy4wIj4KLSAgICAgIDxmcmVxdWVuY3kgdmFsdWU9IjAuMSIgdW5pdD0iR0h6Ii8+Ci0gICAgICA8cmFuZ2UgdmFsdWU9IjEiIHVuaXQ9InMiLz4KLSAgICAgIDxzdGFydFRpbWVGaXhlZC8+Ci0gICAgICA8c3RhcnRUaW1lTWluLz4KLSAgICAgIDxzdGFydFRpbWVNYXgvPgotICAgICAgPHN0YXJ0VmFsdWUvPgotICAgIDwvY2xvY2tzPgotICAgIDxjcHVzIG5hbWU9Ikh3U3RydWN0dXJlXzEiIGNsb2NrPSIvL0Btb2RlbC9AY2xvY2tzLjAiIGNwdU1vZGVsPSJnZW5lcmljIj4KLSAgICAgIDxjb3JlcyBuYW1lPSJQcm9jZXNzaW5nVW5pdF8xIj4KLSAgICAgICAgPGNvbm5lY3RlZFNsYXZlLz4KLSAgICAgIDwvY29yZXM+Ci0gICAgICA8Y29yZXMgbmFtZT0iUHJvY2Vzc2luZ1VuaXRfMiI+Ci0gICAgICAgIDxjb25uZWN0ZWRTbGF2ZS8+Ci0gICAgICA8L2NvcmVzPgotICAgICAgPG1lbW9yaWVzIG5hbWU9Ik1lbW9yeV8xIiBjbG9jaz0iLy9AbW9kZWwvQGNsb2Nrcy4wIiBzaXplPSIyNTYwMDAiLz4KLSAgICAgIDxtZW1vcmllcyBuYW1lPSJNZW1vcnlfMiIgY2xvY2s9Ii8vQG1vZGVsL0BjbG9ja3MuMCIgc2l6ZT0iNzY4MDAwIi8+Ci0gICAgICA8bWVtb3J5UmVnaW9ucyBuYW1lPSJyYW0iIGJhc2U9IjE2Nzc3MjE2IiBmbGFncz0iMjkwIiBwYWdlcz0iMSIgc2VjdGlvbnM9ImRhdGE6YnNzOnN0YWNrOmhlYXAiLz4KLSAgICAgIDxtZW1vcnlSZWdpb25zIG5hbWU9InJvbSIgYmFzZT0iMzM1NTQ0MzIiIGZsYWdzPSIyNzUiIHBhZ2VzPSIxIiBzZWN0aW9ucz0idGV4dCIvPgotICAgIDwvY3B1cz4KLSAgICA8Y29ubmVjdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkRhdGFGbG93Q29ubmVjdGlvbiIgbmFtZT0iQ2hhbm5lbDIiIGNvbW11bmljYXRpb25UeXBlPSJRdWV1aW5nIiBpbml0aWFsRWxlbWVudHM9IjEiIG1heEVsZW1lbnRzPSI1IiBwcm92aWRlcj0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuNC9AY2FsbEdyYXBoL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMiIgcmVxdWVzdGVycz0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMC9AY2FsbEdyYXBoL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMCIvPgotICAgIDxjb25uZWN0aW9ucyB4c2k6dHlwZT0ibW9kZWw6RGF0YUZsb3dDb25uZWN0aW9uIiBuYW1lPSJDaGFubmVsMSIgY29tbXVuaWNhdGlvblR5cGU9IlF1ZXVpbmciIGluaXRpYWxFbGVtZW50cz0iMSIgbWF4RWxlbWVudHM9IjUiIHByb3ZpZGVyPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4wL0BjYWxsR3JhcGgvQGdyYXBoRW50cmllcy4wL0BjYWxscy4yIiByZXF1ZXN0ZXJzPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy40L0BjYWxsR3JhcGgvQGdyYXBoRW50cmllcy4wL0BjYWxscy4wIi8+Ci0gICAgPGNvbm5lY3Rpb25zIHhzaTp0eXBlPSJtb2RlbDpEYXRhRmxvd0Nvbm5lY3Rpb24iIG5hbWU9IkNoYW5uZWwzIiBjb21tdW5pY2F0aW9uVHlwZT0iUXVldWluZyIgaW5pdGlhbEVsZW1lbnRzPSIxIiBtYXhFbGVtZW50cz0iNSIgcHJvdmlkZXI9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjMvQGNhbGxHcmFwaC9AZ3JhcGhFbnRyaWVzLjAvQGNhbGxzLjEiIHJlcXVlc3RlcnM9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjEvQGNhbGxHcmFwaC9AZ3JhcGhFbnRyaWVzLjAvQGNhbGxzLjEiLz4KLSAgICA8ZXZlbnRDaGFpbnMgeHNpOnR5cGU9Im1vZGVsOkV2ZW50U2VxdWVuY2UiIG5hbWU9IkV2ZW50U2VxdWVuY2VfRnVuY3Rpb25fTmVzdGVkRXZlbnRDaGFpbiI+Ci0gICAgICA8c2VxdWVuY2UgdHJhY2VFdmVudD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMC9AdHJhY2VFdmVudHMuMCIvPgotICAgICAgPHNlcXVlbmNlIHRyYWNlRXZlbnQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjAvQHRyYWNlRXZlbnRzLjEiLz4KLSAgICAgIDxzZXF1ZW5jZSB0cmFjZUV2ZW50PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy40L0B0cmFjZUV2ZW50cy4wIi8+Ci0gICAgICA8c2VxdWVuY2UgdHJhY2VFdmVudD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuNC9AdHJhY2VFdmVudHMuMSIvPgotICAgICAgPHNlcXVlbmNlIHRyYWNlRXZlbnQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjIvQHRyYWNlRXZlbnRzLjAiLz4KLSAgICAgIDxzZXF1ZW5jZSB0cmFjZUV2ZW50PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4yL0B0cmFjZUV2ZW50cy4xIi8+Ci0gICAgPC9ldmVudENoYWlucz4KLSAgICA8ZXZlbnRDaGFpbnMgeHNpOnR5cGU9Im1vZGVsOkV2ZW50U2VxdWVuY2UiIG5hbWU9IkV2ZW50U2VxdWVuY2VfRnVuY3Rpb25fUmVmZXJlbmNlQ2hhaW4iPgotICAgICAgPHNlcXVlbmNlIHRyYWNlRXZlbnQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjQvQHRyYWNlRXZlbnRzLjAiLz4KLSAgICAgIDxzZXF1ZW5jZSB0cmFjZUV2ZW50PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy40L0B0cmFjZUV2ZW50cy4xIi8+Ci0gICAgICA8c2VxdWVuY2UgdHJhY2VFdmVudD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMi9AdHJhY2VFdmVudHMuMCIvPgotICAgIDwvZXZlbnRDaGFpbnM+Ci0gICAgPGV2ZW50Q2hhaW5zIHhzaTp0eXBlPSJtb2RlbDpFdmVudFNlcXVlbmNlIiBuYW1lPSJFdmVudFNlcXVlbmNlX0Z1bmN0aW9uX1NpbXBsZUV2ZW50Q2hhaW4iPgotICAgICAgPHNlcXVlbmNlIHRyYWNlRXZlbnQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjAvQHRyYWNlRXZlbnRzLjAiLz4KLSAgICAgIDxzZXF1ZW5jZSB0cmFjZUV2ZW50PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4wL0B0cmFjZUV2ZW50cy4xIi8+Ci0gICAgPC9ldmVudENoYWlucz4KLSAgICA8ZXZlbnRDaGFpbnMgeHNpOnR5cGU9Im1vZGVsOkV2ZW50U2VxdWVuY2UiIG5hbWU9IkV2ZW50U2VxdWVuY2VfUHJvY2Vzc19TaW1wbGVFdmVudENoYWluIj4KLSAgICAgIDxzZXF1ZW5jZSB0cmFjZUV2ZW50PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0B0cmFjZUV2ZW50cy4wIi8+Ci0gICAgICA8c2VxdWVuY2UgdHJhY2VFdmVudD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMC9AdHJhY2VFdmVudHMuMSIvPgotICAgIDwvZXZlbnRDaGFpbnM+Ci0gICAgPGV2ZW50Q2hhaW5zIHhzaTp0eXBlPSJtb2RlbDpFdmVudFNlcXVlbmNlIiBuYW1lPSJFdmVudFNlcXVlbmNlX1Byb2Nlc3NfTmVzdGVkRXZlbnRDaGFpbiI+Ci0gICAgICA8c2VxdWVuY2UgdHJhY2VFdmVudD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMS9AdHJhY2VFdmVudHMuMCIvPgotICAgICAgPHNlcXVlbmNlIHRyYWNlRXZlbnQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQHJ0b3NDb25maWcvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjEvQHRyYWNlRXZlbnRzLjEiLz4KLSAgICAgIDxzZXF1ZW5jZSB0cmFjZUV2ZW50PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4yL0B0cmFjZUV2ZW50cy4wIi8+Ci0gICAgICA8c2VxdWVuY2UgdHJhY2VFdmVudD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMi9AdHJhY2VFdmVudHMuMSIvPgotICAgIDwvZXZlbnRDaGFpbnM+Ci0gICAgPGV2ZW50Q2hhaW5zIHhzaTp0eXBlPSJtb2RlbDpFdmVudFNlcXVlbmNlIiBuYW1lPSJFdmVudFNlcXVlbmNlX1Byb2Nlc3NfUmVmZXJlbmNlQ2hhaW4iPgotICAgICAgPHNlcXVlbmNlIHRyYWNlRXZlbnQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQHJ0b3NDb25maWcvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjEvQHRyYWNlRXZlbnRzLjAiLz4KLSAgICAgIDxzZXF1ZW5jZSB0cmFjZUV2ZW50PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4xL0B0cmFjZUV2ZW50cy4xIi8+Ci0gICAgICA8c2VxdWVuY2UgdHJhY2VFdmVudD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMi9AdHJhY2VFdmVudHMuMCIvPgotICAgIDwvZXZlbnRDaGFpbnM+Ci0gICAgPGV2ZW50Q2hhaW5zIHhzaTp0eXBlPSJtb2RlbDpEYXRhRmxvdyIgbmFtZT0iRGF0YUZsb3dfUmVmZXJlbmNlRXZlbnRDaGFpbiI+Ci0gICAgICA8ZWRnZXMgc3RpbXVsdXM9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjAvQGNhbGxHcmFwaC9AZ3JhcGhFbnRyaWVzLjAvQGNhbGxzLjIiIHJlc3BvbnNlPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy40L0BjYWxsR3JhcGgvQGdyYXBoRW50cmllcy4wL0BjYWxscy4wIi8+Ci0gICAgICA8ZWRnZXMgc3RpbXVsdXM9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjQvQGNhbGxHcmFwaC9AZ3JhcGhFbnRyaWVzLjAvQGNhbGxzLjAiIHJlc3BvbnNlPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy40L0BjYWxsR3JhcGgvQGdyYXBoRW50cmllcy4wL0BjYWxscy4yIi8+Ci0gICAgPC9ldmVudENoYWlucz4KLSAgICA8ZXZlbnRDaGFpbnMgeHNpOnR5cGU9Im1vZGVsOkRhdGFGbG93IiBuYW1lPSJEYXRhRmxvd19TaW1wbGVFdmVudENoYWluIj4KLSAgICAgIDxlZGdlcyBzdGltdWx1cz0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuNC9AY2FsbEdyYXBoL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMiIgcmVzcG9uc2U9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjAvQGNhbGxHcmFwaC9AZ3JhcGhFbnRyaWVzLjAvQGNhbGxzLjAiLz4KLSAgICA8L2V2ZW50Q2hhaW5zPgotICAgIDxldmVudENoYWlucyB4c2k6dHlwZT0ibW9kZWw6RGF0YUZsb3ciIG5hbWU9IkRhdGFGbG93X05lc3RlZEV2ZW50Q2hhaW4iPgotICAgICAgPGVkZ2VzIHN0aW11bHVzPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4wL0BjYWxsR3JhcGgvQGdyYXBoRW50cmllcy4wL0BjYWxscy4yIiByZXNwb25zZT0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuNC9AY2FsbEdyYXBoL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMCIvPgotICAgICAgPGVkZ2VzIHN0aW11bHVzPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy40L0BjYWxsR3JhcGgvQGdyYXBoRW50cmllcy4wL0BjYWxscy4wIiByZXNwb25zZT0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuNC9AY2FsbEdyYXBoL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMiIvPgotICAgICAgPGVkZ2VzIHN0aW11bHVzPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy40L0BjYWxsR3JhcGgvQGdyYXBoRW50cmllcy4wL0BjYWxscy4yIiByZXNwb25zZT0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMC9AY2FsbEdyYXBoL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMCIvPgotICAgIDwvZXZlbnRDaGFpbnM+Ci0gICAgPGdlbmVyYWxJbmZvIGNyZWF0b3I9IkFtbHQySW5jaHJvbiAwLjkuMyBUaHUgQXByIDE4IDE3OjAxOjM4IENFU1QgMjAxOSIgdmVyc2lvbj0iMSIvPgotICAgIDxzdGltdWxhdGlvblNjZW5hcmlvcyBuYW1lPSJEZWZhdWx0U2NlbmFyaW8iPgotICAgICAgPGdlbmVyYXRvcnMgeHNpOnR5cGU9InN0aW11bGF0aW9uOlJhbmRvbVN0aW11bGlHZW5lcmF0b3IiIG5hbWU9IlBlcmlvZGljU3RpbXVsdXNfMSIgY2xvY2s9Ii8vQG1vZGVsL0BjbG9ja3MuMCI+Ci0gICAgICAgIDxjb25uZWN0aW9ucyB4c2k6dHlwZT0ibW9kZWw6QWN0aXZhdGlvbkNvbm5lY3Rpb24iIG5hbWU9IlBlcmlvZGljU3RpbXVsdXNfMSIgYWN0aXZhdG9ycz0iLy9AbW9kZWwvQHN0aW11bGF0aW9uU2NlbmFyaW9zLjAvQGdlbmVyYXRvcnMuMC9AdGFyZ2V0cy9AZ3JhcGhFbnRyaWVzLjAvQGNhbGxzLjAiPgotICAgICAgICAgIDxhY3RpdmF0aW9ucyB4c2k6dHlwZT0ibW9kZWw6QWN0aXZhdGVQcm9jZXNzIiB0YXJnZXQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQHJ0b3NDb25maWcvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAiLz4KLSAgICAgICAgICA8YWN0aXZhdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRlUHJvY2VzcyIgdGFyZ2V0PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy40Ii8+Ci0gICAgICAgICAgPGFjdGl2YXRpb25zIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0ZVByb2Nlc3MiIHRhcmdldD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMyIvPgotICAgICAgICAgIDxhY3RpdmF0aW9ucyB4c2k6dHlwZT0ibW9kZWw6QWN0aXZhdGVQcm9jZXNzIiB0YXJnZXQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQHJ0b3NDb25maWcvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjIiLz4KLSAgICAgICAgICA8YWN0aXZhdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRlUHJvY2VzcyIgdGFyZ2V0PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4xIi8+Ci0gICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgIDx0YXJnZXRzPgotICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0aW9uSXRlbSIgbmFtZT0iQWN0aXZhdGlvbkl0ZW0iIGNvbm5lY3Rpb249Ii8vQG1vZGVsL0BzdGltdWxhdGlvblNjZW5hcmlvcy4wL0BnZW5lcmF0b3JzLjAvQGNvbm5lY3Rpb25zLjAiLz4KLSAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgPC90YXJnZXRzPgotICAgICAgICA8bWluSW50ZXJBcnJpdmFsVGltZS8+Ci0gICAgICAgIDxwZXJpb2QgdmFsdWU9IjEwIiB1bml0PSJtcyIvPgotICAgICAgICA8c3RhcnRPZmZzZXQgdW5pdD0icyIvPgotICAgICAgICA8c3RhcnRPZmZzZXRWYXJpYXRpb24vPgotICAgICAgICA8dmFyaWF0aW9uLz4KLSAgICAgIDwvZ2VuZXJhdG9ycz4KLSAgICA8L3N0aW11bGF0aW9uU2NlbmFyaW9zPgotICAgIDxzeXN0ZW1zIHhzaTp0eXBlPSJtb2RlbDpHZW5lcmljU3lzdGVtIiBuYW1lPSJPcGVyYXRpbmdTeXN0ZW1fMV9TWVNURU0iPgotICAgICAgPGNvbXBvbmVudHMgbmFtZT0iT3BlcmF0aW5nU3lzdGVtXzFfU1dDIj4KLSAgICAgICAgPGZ1bmN0aW9ucyBuYW1lPSJSdW5uYWJsZV8xLVRhc2tfMSI+Ci0gICAgICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOlZhcmlhYmxlUmVhZEFjY2VzcyIgbmFtZT0iVGFza18xX3JlY2VpdmVfQ2hhbm5lbDJfMCIgbGFiZWw9IlRhc2tfMV9yZWNlaXZlX0NoYW5uZWwyXzAiIGVsZW1lbnRzPSIyIiBjb25uZWN0aW9uPSIvL0Btb2RlbC9AY29ubmVjdGlvbnMuMCIgbWluRWxlbWVudHM9IjIiIHBvbGljeT0iTElGT1JlYWQiPgotICAgICAgICAgICAgICAgIDxkYXRhQWNjZXNzLz4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpSZXNvdXJjZUNvbnN1bXB0aW9uIiBuYW1lPSJSQyI+Ci0gICAgICAgICAgICAgICAgPHRpbWVEaXN0cmlidXRpb24gYWxwaGE9IjAuMCIgYmV0YT0iMC4wIj4KLSAgICAgICAgICAgICAgICAgIDxtaW4gdmFsdWU9IjEwMDAwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1heCB2YWx1ZT0iMTAwMDAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWVhbiB2YWx1ZT0iMTAwMDAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8c2lnbWEgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgIDwvdGltZURpc3RyaWJ1dGlvbj4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpWYXJpYWJsZVdyaXRlQWNjZXNzIiBuYW1lPSJUYXNrXzFfc2VuZF9DaGFubmVsMV8wIiBsYWJlbD0iVGFza18xX3NlbmRfQ2hhbm5lbDFfMCIgZWxlbWVudHM9IjIzIiBjb25uZWN0aW9uPSIvL0Btb2RlbC9AY29ubmVjdGlvbnMuMSI+Ci0gICAgICAgICAgICAgICAgPGRhdGFBY2Nlc3MgYWNjZXNzVHlwZT0iV3JpdGUiLz4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICAgIDx0cmFjZUV2ZW50cyBuYW1lPSJydW5uYWJsZTFfc3RhcnQiIHR5cGU9IlN0YXJ0Ii8+Ci0gICAgICAgICAgPHRyYWNlRXZlbnRzIG5hbWU9InJ1bm5hYmxlMV90ZXJtaW5hdGUiIHR5cGU9IlRlcm1pbmF0ZSIvPgotICAgICAgICA8L2Z1bmN0aW9ucz4KLSAgICAgICAgPGZ1bmN0aW9ucyBuYW1lPSJSdW5uYWJsZV80LVRhc2s0Ij4KLSAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6UmVzb3VyY2VDb25zdW1wdGlvbiIgbmFtZT0iUkMiPgotICAgICAgICAgICAgICAgIDx0aW1lRGlzdHJpYnV0aW9uIGFscGhhPSIwLjAiIGJldGE9IjAuMCI+Ci0gICAgICAgICAgICAgICAgICA8bWluIHZhbHVlPSIxMDAwMDAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtYXggdmFsdWU9IjEwMDAwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1lYW4gdmFsdWU9IjEwMDAwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPHNpZ21hIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICA8L3RpbWVEaXN0cmlidXRpb24+Ci0gICAgICAgICAgICAgIDwvY2FsbHM+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6VmFyaWFibGVSZWFkQWNjZXNzIiBuYW1lPSJUYXNrNF9yZWNlaXZlX0NoYW5uZWwzXzEiIGxhYmVsPSJUYXNrNF9yZWNlaXZlX0NoYW5uZWwzXzEiIGVsZW1lbnRzPSIwIiBjb25uZWN0aW9uPSIvL0Btb2RlbC9AY29ubmVjdGlvbnMuMiIgcG9saWN5PSJMSUZPUmVhZCI+Ci0gICAgICAgICAgICAgICAgPGRhdGFBY2Nlc3MvPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgICAgIDwvZnVuY3Rpb25zPgotICAgICAgICA8ZnVuY3Rpb25zIG5hbWU9IlJ1bm5hYmxlXzMtVGFza18zLTIiPgotICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNTIj4KLSAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpSZXNvdXJjZUNvbnN1bXB0aW9uIiBuYW1lPSJSQyI+Ci0gICAgICAgICAgICAgICAgPHRpbWVEaXN0cmlidXRpb24gYWxwaGE9IjAuMCIgYmV0YT0iMC4wIj4KLSAgICAgICAgICAgICAgICAgIDxtaW4gdmFsdWU9IjEwMDAwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1heCB2YWx1ZT0iMTAwMDAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWVhbiB2YWx1ZT0iMTAwMDAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8c2lnbWEgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgIDwvdGltZURpc3RyaWJ1dGlvbj4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpWYXJpYWJsZVdyaXRlQWNjZXNzIiBuYW1lPSJUYXNrXzMtMl9zZW5kX0NoYW5uZWwzXzEiIGxhYmVsPSJUYXNrXzMtMl9zZW5kX0NoYW5uZWwzXzEiIGVsZW1lbnRzPSIyMyI+Ci0gICAgICAgICAgICAgICAgPGRhdGFBY2Nlc3MgYWNjZXNzVHlwZT0iV3JpdGUiLz4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICAgIDx0cmFjZUV2ZW50cyBuYW1lPSJydW5uYWJsZTNfdGFza18zXzJfc3RhcnQiIHR5cGU9IlN0YXJ0Ii8+Ci0gICAgICAgICAgPHRyYWNlRXZlbnRzIG5hbWU9InJ1bm5hYmxlM190YXNrXzNfMl90ZXJtaW5hdGUiIHR5cGU9IlRlcm1pbmF0ZSIvPgotICAgICAgICA8L2Z1bmN0aW9ucz4KLSAgICAgICAgPGZ1bmN0aW9ucyBuYW1lPSJSdW5uYWJsZV8zLVRhc2tfMy0xIj4KLSAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6UmVzb3VyY2VDb25zdW1wdGlvbiIgbmFtZT0iUkMiPgotICAgICAgICAgICAgICAgIDx0aW1lRGlzdHJpYnV0aW9uIGFscGhhPSIwLjAiIGJldGE9IjAuMCI+Ci0gICAgICAgICAgICAgICAgICA8bWluIHZhbHVlPSIxMDAwMDAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtYXggdmFsdWU9IjEwMDAwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1lYW4gdmFsdWU9IjEwMDAwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPHNpZ21hIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICA8L3RpbWVEaXN0cmlidXRpb24+Ci0gICAgICAgICAgICAgIDwvY2FsbHM+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6VmFyaWFibGVXcml0ZUFjY2VzcyIgbmFtZT0iVGFza18zLTFfc2VuZF9DaGFubmVsM18yIiBsYWJlbD0iVGFza18zLTFfc2VuZF9DaGFubmVsM18yIiBlbGVtZW50cz0iMjMiIGNvbm5lY3Rpb249Ii8vQG1vZGVsL0Bjb25uZWN0aW9ucy4yIj4KLSAgICAgICAgICAgICAgICA8ZGF0YUFjY2VzcyBhY2Nlc3NUeXBlPSJXcml0ZSIvPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgICAgIDwvZnVuY3Rpb25zPgotICAgICAgICA8ZnVuY3Rpb25zIG5hbWU9IlJ1bm5hYmxlXzItVGFza18yIj4KLSAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6VmFyaWFibGVSZWFkQWNjZXNzIiBuYW1lPSJUYXNrXzJfcmVjZWl2ZV9DaGFubmVsMV8yIiBsYWJlbD0iVGFza18yX3JlY2VpdmVfQ2hhbm5lbDFfMiIgZWxlbWVudHM9IjIiIGNvbm5lY3Rpb249Ii8vQG1vZGVsL0Bjb25uZWN0aW9ucy4xIiBtaW5FbGVtZW50cz0iMSI+Ci0gICAgICAgICAgICAgICAgPGRhdGFBY2Nlc3MvPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOlJlc291cmNlQ29uc3VtcHRpb24iIG5hbWU9IlJDIj4KLSAgICAgICAgICAgICAgICA8dGltZURpc3RyaWJ1dGlvbiBhbHBoYT0iMC4wIiBiZXRhPSIwLjAiPgotICAgICAgICAgICAgICAgICAgPG1pbiB2YWx1ZT0iMTAwMDAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWF4IHZhbHVlPSIxMDAwMDAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtZWFuIHZhbHVlPSIxMDAwMDAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxzaWdtYSB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgPC90aW1lRGlzdHJpYnV0aW9uPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOlZhcmlhYmxlV3JpdGVBY2Nlc3MiIG5hbWU9IlRhc2tfMl9zZW5kX0NoYW5uZWwyXzMiIGxhYmVsPSJUYXNrXzJfc2VuZF9DaGFubmVsMl8zIiBlbGVtZW50cz0iMjMiIGNvbm5lY3Rpb249Ii8vQG1vZGVsL0Bjb25uZWN0aW9ucy4wIj4KLSAgICAgICAgICAgICAgICA8ZGF0YUFjY2VzcyBhY2Nlc3NUeXBlPSJXcml0ZSIvPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgICAgICAgPHRyYWNlRXZlbnRzIG5hbWU9InJ1bm5hYmxlMl9zdGFydCIgdHlwZT0iU3RhcnQiLz4KLSAgICAgICAgICA8dHJhY2VFdmVudHMgbmFtZT0icnVubmFibGUyX3Rlcm1pbmF0ZSIgdHlwZT0iVGVybWluYXRlIi8+Ci0gICAgICAgIDwvZnVuY3Rpb25zPgotICAgICAgPC9jb21wb25lbnRzPgotICAgICAgPHJ0b3NNb2RlbCBuYW1lPSJnZW5lcmljIiByZXR1cm5UeXBlPSJ2b2lkIi8+Ci0gICAgICA8cnRvc0NvbmZpZyBuYW1lPSJPcGVyYXRpbmdTeXN0ZW1fMSI+Ci0gICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlNjaGVkdWxlciIgbmFtZT0iT3BlcmF0aW5nU3lzdGVtXzFfSVNSRHVtbXkiIGNwdUNvcmVzPSIvL0Btb2RlbC9AY3B1cy4wL0Bjb3Jlcy4wIC8vQG1vZGVsL0BjcHVzLjAvQGNvcmVzLjEiPgotICAgICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlNjaGVkdWxlciIgbmFtZT0iVGFza1NjaGVkdWxlcl8xIiBjcHVDb3Jlcz0iLy9AbW9kZWwvQGNwdXMuMC9AY29yZXMuMCAvL0Btb2RlbC9AY3B1cy4wL0Bjb3Jlcy4xIj4KLSAgICAgICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlByb2Nlc3MiIG5hbWU9IlRhc2tfMSIgY3B1Q29yZXM9Ii8vQG1vZGVsL0BjcHVzLjAvQGNvcmVzLjAiPgotICAgICAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIG5hbWU9ImNhbGxfUnVubmFibGVfMS1UYXNrXzEiIGZ1bmN0aW9uPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4wIi8+Ci0gICAgICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICAgICAgICA8dHJhY2VFdmVudHMgbmFtZT0idGFzazFfYWN0aXZhdGUiIHR5cGU9IkFjdGl2YXRlIi8+Ci0gICAgICAgICAgICAgIDx0cmFjZUV2ZW50cyBuYW1lPSJ0YXNrMV90ZXJtaW5hdGUiIHR5cGU9IlRlcm1pbmF0ZSIvPgotICAgICAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpQcm9jZXNzIiBuYW1lPSJUYXNrXzIiIGNwdUNvcmVzPSIvL0Btb2RlbC9AY3B1cy4wL0Bjb3Jlcy4wIj4KLSAgICAgICAgICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNTIj4KLSAgICAgICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6RnVuY3Rpb25DYWxsIiBuYW1lPSJjYWxsX1J1bm5hYmxlXzItVGFza18yIiBmdW5jdGlvbj0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuNCIvPgotICAgICAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgICAgICAgPHRyYWNlRXZlbnRzIG5hbWU9InRhc2syX2FjdGl2YXRlIiB0eXBlPSJBY3RpdmF0ZSIvPgotICAgICAgICAgICAgICA8dHJhY2VFdmVudHMgbmFtZT0idGFzazJfdGVybWluYXRlIiB0eXBlPSJUZXJtaW5hdGUiLz4KLSAgICAgICAgICAgIDwvc2NoZWR1bGFibGVzPgotICAgICAgICAgICAgPHNjaGVkdWxhYmxlcyB4c2k6dHlwZT0ibW9kZWw6UHJvY2VzcyIgbmFtZT0iVGFza18zLTEiPgotICAgICAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIG5hbWU9ImNhbGxfUnVubmFibGVfMy1UYXNrXzMtMSIgZnVuY3Rpb249Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjMiLz4KLSAgICAgICAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgICAgICAgICAgIDx0cmFjZUV2ZW50cyBuYW1lPSJ0YXNrMy0xX2FjdGl2YXRlIiB0eXBlPSJBY3RpdmF0ZSIvPgotICAgICAgICAgICAgICA8dHJhY2VFdmVudHMgbmFtZT0idGFzazMtMV90ZXJtaW5hdGUiIHR5cGU9IlRlcm1pbmF0ZSIvPgotICAgICAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpQcm9jZXNzIiBuYW1lPSJUYXNrXzMtMiI+Ci0gICAgICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOkZ1bmN0aW9uQ2FsbCIgbmFtZT0iY2FsbF9SdW5uYWJsZV8zLVRhc2tfMy0yIiBmdW5jdGlvbj0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMiIvPgotICAgICAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgICAgIDwvc2NoZWR1bGFibGVzPgotICAgICAgICAgICAgPHNjaGVkdWxhYmxlcyB4c2k6dHlwZT0ibW9kZWw6UHJvY2VzcyIgbmFtZT0iVGFzazQiPgotICAgICAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIG5hbWU9ImNhbGxfUnVubmFibGVfNC1UYXNrNCIgZnVuY3Rpb249Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjEiLz4KLSAgICAgICAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgICAgICAgICA8L3NjaGVkdWxhYmxlcz4KLSAgICAgICAgICAgIDx0aW1lU2xpY2UvPgotICAgICAgICAgICAgPHBlcmlvZC8+Ci0gICAgICAgICAgICA8bWF4UmV0YXJkLz4KLSAgICAgICAgICAgIDxtYXhBZHZhbmNlLz4KLSAgICAgICAgICA8L3NjaGVkdWxhYmxlcz4KLSAgICAgICAgICA8dGltZVNsaWNlLz4KLSAgICAgICAgICA8cGVyaW9kLz4KLSAgICAgICAgICA8bWF4UmV0YXJkLz4KLSAgICAgICAgICA8bWF4QWR2YW5jZS8+Ci0gICAgICAgIDwvc2NoZWR1bGFibGVzPgotICAgICAgPC9ydG9zQ29uZmlnPgotICAgIDwvc3lzdGVtcz4KLSAgPC9tb2RlbD4KLSAgPHNldHRpbmdzPgotICAgIDxlZGl0b3IvPgotICAgIDxtb2RlbC8+Ci0gICAgPHRvb2wvPgotICA8L3NldHRpbmdzPgotPC9yb290OlJvb3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL0ludGVyUHJvY2Vzc1RyaWdnZXIvaW5wdXQvSW50ZXJQcm9jZXNzVHJpZ2dlci5hbXhtaSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvSW50ZXJQcm9jZXNzVHJpZ2dlci9pbnB1dC9JbnRlclByb2Nlc3NUcmlnZ2VyLmFteG1pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTNiNzYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvSW50ZXJQcm9jZXNzVHJpZ2dlci9pbnB1dC9JbnRlclByb2Nlc3NUcmlnZ2VyLmFteG1pCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxhbTpBbWFsdGhlYSB4bWk6dmVyc2lvbj0iMi4wIiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOmFtPSJodHRwOi8vYXBwNG1jLmVjbGlwc2Uub3JnL2FtYWx0aGVhLzAuOS4zIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KLSAgPHN3TW9kZWw+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tMYXVuY2hlciIgc3RpbXVsaT0iUGVyaW9kaWNTdGltdWx1czFtcz90eXBlPVBlcmlvZGljU3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMCI+Ci0gICAgICA8Y2FsbEdyYXBoPgotICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJhbTpDYWxsU2VxdWVuY2UiIG5hbWU9IiI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpJbnRlclByb2Nlc3NUcmlnZ2VyIiBzdGltdWx1cz0iSW50ZXJQcm9jZXNzU3RpbXVsdXNfVW5jb25kaXRpb25hbD90eXBlPUludGVyUHJvY2Vzc1N0aW11bHVzIi8+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpJbnRlclByb2Nlc3NUcmlnZ2VyIiBzdGltdWx1cz0iSW50ZXJQcm9jZXNzU3RpbXVsdXNfQ29uZGl0aW9uYWw/dHlwZT1JbnRlclByb2Nlc3NTdGltdWx1cyIvPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tXb3JrZXJVbmNvbmRpdGlvbmFsIiBzdGltdWxpPSJJbnRlclByb2Nlc3NTdGltdWx1c19VbmNvbmRpdGlvbmFsP3R5cGU9SW50ZXJQcm9jZXNzU3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMCI+Ci0gICAgICA8Y2FsbEdyYXBoPgotICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJhbTpDYWxsU2VxdWVuY2UiIG5hbWU9IiI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpUYXNrUnVubmFibGVDYWxsIiBydW5uYWJsZT0iUnVubmFibGVXb3JrZXI/dHlwZT1SdW5uYWJsZSIvPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tXb3JrZXJVbmNvbmRpdGlvbmFsMiIgc3RpbXVsaT0iSW50ZXJQcm9jZXNzU3RpbXVsdXNfVW5jb25kaXRpb25hbD90eXBlPUludGVyUHJvY2Vzc1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIiBuYW1lPSIiPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06VGFza1J1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlJ1bm5hYmxlV29ya2VyP3R5cGU9UnVubmFibGUiLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrV29ya2VyQ29uZGl0aW9uYWwiIHN0aW11bGk9IkludGVyUHJvY2Vzc1N0aW11bHVzX0NvbmRpdGlvbmFsP3R5cGU9SW50ZXJQcm9jZXNzU3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMCI+Ci0gICAgICA8Y2FsbEdyYXBoPgotICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJhbTpDYWxsU2VxdWVuY2UiIG5hbWU9IiI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpUYXNrUnVubmFibGVDYWxsIiBydW5uYWJsZT0iUnVubmFibGVXb3JrZXI/dHlwZT1SdW5uYWJsZSIvPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHJ1bm5hYmxlcyBuYW1lPSJSdW5uYWJsZVdvcmtlciIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZUNvbnN0YW50IiB2YWx1ZT0iMTAwIi8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gICAgPG1vZGVzIG5hbWU9Im15TW9kZSI+Ci0gICAgICA8bGl0ZXJhbHMgbmFtZT0iU3RhdGUxIi8+Ci0gICAgICA8bGl0ZXJhbHMgbmFtZT0iU3RhdGUyIi8+Ci0gICAgPC9tb2Rlcz4KLSAgICA8bW9kZUxhYmVscyBuYW1lPSJNb2RlTGFiZWxBIiBkaXNwbGF5TmFtZT0iIiBpbml0aWFsVmFsdWU9Im15TW9kZS9TdGF0ZTE/dHlwZT1Nb2RlTGl0ZXJhbCIvPgotICA8L3N3TW9kZWw+Ci0gIDxod01vZGVsPgotICAgIDxkZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIiBuYW1lPSJDMF9UeXBlIiBwdVR5cGU9IkNQVSIvPgotICAgIDxzdHJ1Y3R1cmVzIG5hbWU9IlN5c3RlbSIgc3RydWN0dXJlVHlwZT0iU3lzdGVtIj4KLSAgICAgIDxzdHJ1Y3R1cmVzIG5hbWU9IkVDVSIgc3RydWN0dXJlVHlwZT0iRUNVIj4KLSAgICAgICAgPHN0cnVjdHVyZXMgbmFtZT0ibUMiIHN0cnVjdHVyZVR5cGU9Ik1pY3JvY29udHJvbGxlciI+Ci0gICAgICAgICAgPG1vZHVsZXMgeHNpOnR5cGU9ImFtOlByb2Nlc3NpbmdVbml0IiBuYW1lPSJDMCIgZnJlcXVlbmN5RG9tYWluPSJjbG9ja19DMD90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iQzBfVHlwZT90eXBlPVByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbiIvPgotICAgICAgICA8L3N0cnVjdHVyZXM+Ci0gICAgICA8L3N0cnVjdHVyZXM+Ci0gICAgPC9zdHJ1Y3R1cmVzPgotICAgIDxkb21haW5zIHhzaTp0eXBlPSJhbTpGcmVxdWVuY3lEb21haW4iIG5hbWU9ImNsb2NrX0MwIiBjbG9ja0dhdGluZz0iZmFsc2UiPgotICAgICAgPGRlZmF1bHRWYWx1ZSB2YWx1ZT0iMjQwLjAiIHVuaXQ9Ik1IeiIvPgotICAgIDwvZG9tYWlucz4KLSAgPC9od01vZGVsPgotICA8b3NNb2RlbD4KLSAgICA8b3BlcmF0aW5nU3lzdGVtcyBuYW1lPSJPUyI+Ci0gICAgICA8dGFza1NjaGVkdWxlcnMgbmFtZT0iU2NoZWRDMCI+Ci0gICAgICAgIDxzY2hlZHVsaW5nQWxnb3JpdGhtIHhzaTp0eXBlPSJhbTpPU0VLIi8+Ci0gICAgICA8L3Rhc2tTY2hlZHVsZXJzPgotICAgIDwvb3BlcmF0aW5nU3lzdGVtcz4KLSAgPC9vc01vZGVsPgotICA8c3RpbXVsaU1vZGVsPgotICAgIDxzdGltdWxpIHhzaTp0eXBlPSJhbTpQZXJpb2RpY1N0aW11bHVzIiBuYW1lPSJQZXJpb2RpY1N0aW11bHVzMW1zIj4KLSAgICAgIDxvZmZzZXQgdmFsdWU9IjAiIHVuaXQ9Im1zIi8+Ci0gICAgICA8cmVjdXJyZW5jZSB2YWx1ZT0iMSIgdW5pdD0ibXMiLz4KLSAgICA8L3N0aW11bGk+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOkludGVyUHJvY2Vzc1N0aW11bHVzIiBuYW1lPSJJbnRlclByb2Nlc3NTdGltdWx1c19VbmNvbmRpdGlvbmFsIi8+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOkludGVyUHJvY2Vzc1N0aW11bHVzIiBuYW1lPSJJbnRlclByb2Nlc3NTdGltdWx1c19Db25kaXRpb25hbCI+Ci0gICAgICA8ZW5hYmxpbmdNb2RlVmFsdWVMaXN0PgotICAgICAgICA8ZW50cmllcyB4c2k6dHlwZT0iYW06TW9kZVZhbHVlQ29uanVuY3Rpb24iPgotICAgICAgICAgIDxlbnRyaWVzIHZhbHVlUHJvdmlkZXI9Ik1vZGVMYWJlbEE/dHlwZT1Nb2RlTGFiZWwiIHZhbHVlPSJteU1vZGUvU3RhdGUxP3R5cGU9TW9kZUxpdGVyYWwiLz4KLSAgICAgICAgPC9lbnRyaWVzPgotICAgICAgPC9lbmFibGluZ01vZGVWYWx1ZUxpc3Q+Ci0gICAgPC9zdGltdWxpPgotICA8L3N0aW11bGlNb2RlbD4KLSAgPGV2ZW50TW9kZWwvPgotICA8bWFwcGluZ01vZGVsPgotICAgIDxzY2hlZHVsZXJBbGxvY2F0aW9uIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiIHJlc3BvbnNpYmlsaXR5PSJDMD90eXBlPVByb2Nlc3NpbmdVbml0Ii8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2tMYXVuY2hlcj90eXBlPVRhc2siIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiLz4KLSAgICA8dGFza0FsbG9jYXRpb24gdGFzaz0iVGFza1dvcmtlclVuY29uZGl0aW9uYWw/dHlwZT1UYXNrIiBzY2hlZHVsZXI9IlNjaGVkQzA/dHlwZT1UYXNrU2NoZWR1bGVyIi8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2tXb3JrZXJVbmNvbmRpdGlvbmFsMj90eXBlPVRhc2siIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiLz4KLSAgICA8dGFza0FsbG9jYXRpb24gdGFzaz0iVGFza1dvcmtlckNvbmRpdGlvbmFsP3R5cGU9VGFzayIgc2NoZWR1bGVyPSJTY2hlZEMwP3R5cGU9VGFza1NjaGVkdWxlciIvPgotICA8L21hcHBpbmdNb2RlbD4KLTwvYW06QW1hbHRoZWE+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL0ludGVyUHJvY2Vzc1RyaWdnZXIvb3V0cHV0L0ludGVyUHJvY2Vzc1RyaWdnZXIuaXByeCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvSW50ZXJQcm9jZXNzVHJpZ2dlci9vdXRwdXQvSW50ZXJQcm9jZXNzVHJpZ2dlci5pcHJ4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmI5M2QxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvSW50ZXJQcm9jZXNzVHJpZ2dlci9vdXRwdXQvSW50ZXJQcm9jZXNzVHJpZ2dlci5pcHJ4CisrKyAvZGV2L251bGwKQEAgLTEsMTYxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IkFTQ0lJIj8+Ci08cm9vdDpSb290IHhtaTp2ZXJzaW9uPSIyLjAiIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6bW9kZWw9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguNS9tb2RlbCIgeG1sbnM6cm9vdD0iaHR0cDovL2luY2hyb24uY29tL3JlYWx0aW1lL3Jvb3QvMi45OC41IiB4bWxuczpzdGltdWxhdGlvbj0iaHR0cDovL2luY2hyb24uY29tL3JlYWx0aW1lL3Jvb3QvMi45OC41L21vZGVsL3N0aW11bGF0aW9uIj4KLSAgPG1vZGVsIHhzaTp0eXBlPSJtb2RlbDpNb2RlbCIgbmFtZT0iTW9kZWwiIGRlZmF1bHRTY2VuYXJpbz0iLy9AbW9kZWwvQHN0aW11bGF0aW9uU2NlbmFyaW9zLjAiPgotICAgIDxjbG9ja3MgbmFtZT0iY2xvY2tfQzAiIHVzZXJzPSIvL0Btb2RlbC9AY3B1cy4wIC8vQG1vZGVsL0BzdGltdWxhdGlvblNjZW5hcmlvcy4wL0BnZW5lcmF0b3JzLjAiPgotICAgICAgPGZyZXF1ZW5jeSB2YWx1ZT0iMjQwLjAiLz4KLSAgICAgIDxyYW5nZSB2YWx1ZT0iMSIgdW5pdD0icyIvPgotICAgICAgPHN0YXJ0VGltZUZpeGVkLz4KLSAgICAgIDxzdGFydFRpbWVNaW4vPgotICAgICAgPHN0YXJ0VGltZU1heC8+Ci0gICAgICA8c3RhcnRWYWx1ZS8+Ci0gICAgPC9jbG9ja3M+Ci0gICAgPGNwdXMgbmFtZT0ibUMiIGNsb2NrPSIvL0Btb2RlbC9AY2xvY2tzLjAiIGNwdU1vZGVsPSJnZW5lcmljIj4KLSAgICAgIDxjb3JlcyBuYW1lPSJDMCI+Ci0gICAgICAgIDxjb25uZWN0ZWRTbGF2ZS8+Ci0gICAgICA8L2NvcmVzPgotICAgICAgPG1lbW9yeVJlZ2lvbnMgbmFtZT0icmFtIiBiYXNlPSIxNjc3NzIxNiIgZmxhZ3M9IjI5MCIgcGFnZXM9IjEiIHNlY3Rpb25zPSJkYXRhOmJzczpzdGFjazpoZWFwIi8+Ci0gICAgICA8bWVtb3J5UmVnaW9ucyBuYW1lPSJyb20iIGJhc2U9IjMzNTU0NDMyIiBmbGFncz0iMjc1IiBwYWdlcz0iMSIgc2VjdGlvbnM9InRleHQiLz4KLSAgICA8L2NwdXM+Ci0gICAgPGNvbm5lY3Rpb25zIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0aW9uQ29ubmVjdGlvbiIgbmFtZT0iSW50ZXJQcm9jZXNzU3RpbXVsdXNfQ29uZGl0aW9uYWwiIGFjdGl2YXRvcnM9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjIvQGNhbGxHcmFwaC9AZ3JhcGhFbnRyaWVzLjEvQGVudHJpZXMuMC9AZ3JhcGhFbnRyaWVzLjAvQGNhbGxzLjAiPgotICAgICAgPGFjdGl2YXRpb25zIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0ZVByb2Nlc3MiIHRhcmdldD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMyIvPgotICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgPGNvbm5lY3Rpb25zIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0aW9uQ29ubmVjdGlvbiIgbmFtZT0iSW50ZXJQcm9jZXNzU3RpbXVsdXNfVW5jb25kaXRpb25hbCIgYWN0aXZhdG9ycz0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMC9AY2FsbEdyYXBoL0BncmFwaEVudHJpZXMuMC9AY2FsbHMuMCI+Ci0gICAgICA8YWN0aXZhdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRlUHJvY2VzcyIgdGFyZ2V0PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4yIi8+Ci0gICAgICA8YWN0aXZhdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRlUHJvY2VzcyIgdGFyZ2V0PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4xIi8+Ci0gICAgPC9jb25uZWN0aW9ucz4KLSAgICA8Z2VuZXJhbEluZm8gY3JlYXRvcj0iQW1sdDJJbmNocm9uIDAuOS4zIFdlZCBNYXkgMDggMDk6MDM6MjggQ0VTVCAyMDE5IiB2ZXJzaW9uPSIxIi8+Ci0gICAgPGdsb2JhbE1vZGVDb25kaXRpb25zIG5hbWU9Ik1vZGVDb25kaXRpb25fXzIzMzMwOTA4NyI+Ci0gICAgICA8Y29uanVuY3Rpb25zIG1vZGVzPSIvL0Btb2RlbC9AZ2xvYmFsTW9kZUdyb3Vwcy4wL0Btb2Rlcy4wIi8+Ci0gICAgPC9nbG9iYWxNb2RlQ29uZGl0aW9ucz4KLSAgICA8Z2xvYmFsTW9kZUdyb3VwcyBuYW1lPSJNb2RlTGFiZWxBIiBpbml0aWFsTW9kZT0iLy9AbW9kZWwvQGdsb2JhbE1vZGVHcm91cHMuMC9AbW9kZXMuMCI+Ci0gICAgICA8bW9kZXMgbmFtZT0iU3RhdGUxIi8+Ci0gICAgICA8bW9kZXMgbmFtZT0iU3RhdGUyIiB2YWx1ZT0iMSIvPgotICAgIDwvZ2xvYmFsTW9kZUdyb3Vwcz4KLSAgICA8c3RpbXVsYXRpb25TY2VuYXJpb3MgbmFtZT0iRGVmYXVsdFNjZW5hcmlvIj4KLSAgICAgIDxnZW5lcmF0b3JzIHhzaTp0eXBlPSJzdGltdWxhdGlvbjpSYW5kb21TdGltdWxpR2VuZXJhdG9yIiBuYW1lPSJQZXJpb2RpY1N0aW11bHVzMW1zIiBjbG9jaz0iLy9AbW9kZWwvQGNsb2Nrcy4wIj4KLSAgICAgICAgPGNvbm5lY3Rpb25zIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0aW9uQ29ubmVjdGlvbiIgbmFtZT0iUGVyaW9kaWNTdGltdWx1czFtcyIgYWN0aXZhdG9ycz0iLy9AbW9kZWwvQHN0aW11bGF0aW9uU2NlbmFyaW9zLjAvQGdlbmVyYXRvcnMuMC9AdGFyZ2V0cy9AZ3JhcGhFbnRyaWVzLjAvQGNhbGxzLjAiPgotICAgICAgICAgIDxhY3RpdmF0aW9ucyB4c2k6dHlwZT0ibW9kZWw6QWN0aXZhdGVQcm9jZXNzIiB0YXJnZXQ9Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQHJ0b3NDb25maWcvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAiLz4KLSAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgPHRhcmdldHM+Ci0gICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRpb25JdGVtIiBuYW1lPSJBY3RpdmF0aW9uSXRlbV9QZXJpb2RpY1N0aW11bHVzMW1zIiBjb25uZWN0aW9uPSIvL0Btb2RlbC9Ac3RpbXVsYXRpb25TY2VuYXJpb3MuMC9AZ2VuZXJhdG9ycy4wL0Bjb25uZWN0aW9ucy4wIi8+Ci0gICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgIDwvdGFyZ2V0cz4KLSAgICAgICAgPG1pbkludGVyQXJyaXZhbFRpbWUvPgotICAgICAgICA8cGVyaW9kIHZhbHVlPSIxIiB1bml0PSJtcyIvPgotICAgICAgICA8c3RhcnRPZmZzZXQgdW5pdD0ibXMiLz4KLSAgICAgICAgPHN0YXJ0T2Zmc2V0VmFyaWF0aW9uLz4KLSAgICAgICAgPHZhcmlhdGlvbi8+Ci0gICAgICA8L2dlbmVyYXRvcnM+Ci0gICAgPC9zdGltdWxhdGlvblNjZW5hcmlvcz4KLSAgICA8c3lzdGVtcyB4c2k6dHlwZT0ibW9kZWw6R2VuZXJpY1N5c3RlbSIgbmFtZT0iT1NfU1lTVEVNIj4KLSAgICAgIDxjb21wb25lbnRzIG5hbWU9Ik9TX1NXQyI+Ci0gICAgICAgIDxmdW5jdGlvbnMgbmFtZT0iUnVubmFibGVXb3JrZXItVGFza1dvcmtlckNvbmRpdGlvbmFsIj4KLSAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6UmVzb3VyY2VDb25zdW1wdGlvbiIgbmFtZT0iUkMiPgotICAgICAgICAgICAgICAgIDx0aW1lRGlzdHJpYnV0aW9uIGFscGhhPSIwLjAiIGJldGE9IjAuMCI+Ci0gICAgICAgICAgICAgICAgICA8bWluIHZhbHVlPSIxMDAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtYXggdmFsdWU9IjEwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1lYW4gdmFsdWU9IjEwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPHNpZ21hIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICA8L3RpbWVEaXN0cmlidXRpb24+Ci0gICAgICAgICAgICAgIDwvY2FsbHM+Ci0gICAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgPC9mdW5jdGlvbnM+Ci0gICAgICAgIDxmdW5jdGlvbnMgbmFtZT0iUnVubmFibGVXb3JrZXItVGFza1dvcmtlclVuY29uZGl0aW9uYWwyIj4KLSAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6UmVzb3VyY2VDb25zdW1wdGlvbiIgbmFtZT0iUkMiPgotICAgICAgICAgICAgICAgIDx0aW1lRGlzdHJpYnV0aW9uIGFscGhhPSIwLjAiIGJldGE9IjAuMCI+Ci0gICAgICAgICAgICAgICAgICA8bWluIHZhbHVlPSIxMDAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtYXggdmFsdWU9IjEwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1lYW4gdmFsdWU9IjEwMCIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPHNpZ21hIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICA8L3RpbWVEaXN0cmlidXRpb24+Ci0gICAgICAgICAgICAgIDwvY2FsbHM+Ci0gICAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgPC9mdW5jdGlvbnM+Ci0gICAgICAgIDxmdW5jdGlvbnMgbmFtZT0iRHVtbXlfSW50ZXJQcm9jZXNzU3RpbXVsdXNfQ29uZGl0aW9uYWwiPgotICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNhbGxTZXF1ZW5jZV9Gb3JfTW9kZUNvbmRpdGlvbkV2YWx1YXRpb24iPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOk1vZGVDb25kaXRpb25FdmFsdWF0aW9uIiBjb25kaXRpb249Ii8vQG1vZGVsL0BnbG9iYWxNb2RlQ29uZGl0aW9ucy4wIi8+Ci0gICAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOk1vZGVTd2l0Y2giIG5hbWU9IkV2ZW50U3RpbXVsdXNDb25kaXRpb24iPgotICAgICAgICAgICAgICA8ZW50cmllcyBjb25kaXRpb249Ii8vQG1vZGVsL0BnbG9iYWxNb2RlQ29uZGl0aW9ucy4wIj4KLSAgICAgICAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0aW9uSXRlbSIgbmFtZT0iQWN0aXZhdGlvbkl0ZW1fSW50ZXJQcm9jZXNzU3RpbXVsdXNfQ29uZGl0aW9uYWwiIGNvbm5lY3Rpb249Ii8vQG1vZGVsL0Bjb25uZWN0aW9ucy4wIi8+Ci0gICAgICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgICAgIDwvZW50cmllcz4KLSAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICA8L2Z1bmN0aW9ucz4KLSAgICAgICAgPGZ1bmN0aW9ucyBuYW1lPSJSdW5uYWJsZVdvcmtlci1UYXNrV29ya2VyVW5jb25kaXRpb25hbCI+Ci0gICAgICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOlJlc291cmNlQ29uc3VtcHRpb24iIG5hbWU9IlJDIj4KLSAgICAgICAgICAgICAgICA8dGltZURpc3RyaWJ1dGlvbiBhbHBoYT0iMC4wIiBiZXRhPSIwLjAiPgotICAgICAgICAgICAgICAgICAgPG1pbiB2YWx1ZT0iMTAwIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWF4IHZhbHVlPSIxMDAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtZWFuIHZhbHVlPSIxMDAiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxzaWdtYSB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgPC90aW1lRGlzdHJpYnV0aW9uPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgICAgIDwvZnVuY3Rpb25zPgotICAgICAgPC9jb21wb25lbnRzPgotICAgICAgPHJ0b3NNb2RlbCBuYW1lPSJnZW5lcmljIiByZXR1cm5UeXBlPSJ2b2lkIi8+Ci0gICAgICA8cnRvc0NvbmZpZyBuYW1lPSJPUyI+Ci0gICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlNjaGVkdWxlciIgbmFtZT0iT1NfSVNSRHVtbXkiIGNwdUNvcmVzPSIvL0Btb2RlbC9AY3B1cy4wL0Bjb3Jlcy4wIj4KLSAgICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpTY2hlZHVsZXIiIG5hbWU9IlNjaGVkQzAiIGNwdUNvcmVzPSIvL0Btb2RlbC9AY3B1cy4wL0Bjb3Jlcy4wIj4KLSAgICAgICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlByb2Nlc3MiIG5hbWU9IlRhc2tMYXVuY2hlciI+Ci0gICAgICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRpb25JdGVtIiBuYW1lPSJBY3RpdmF0aW9uSXRlbV9JbnRlclByb2Nlc3NTdGltdWx1c19VbmNvbmRpdGlvbmFsIiBjb25uZWN0aW9uPSIvL0Btb2RlbC9AY29ubmVjdGlvbnMuMSIvPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIGZ1bmN0aW9uPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4yIi8+Ci0gICAgICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpQcm9jZXNzIiBuYW1lPSJUYXNrV29ya2VyVW5jb25kaXRpb25hbCI+Ci0gICAgICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOkZ1bmN0aW9uQ2FsbCIgbmFtZT0iY2FsbF9SdW5uYWJsZVdvcmtlci1UYXNrV29ya2VyVW5jb25kaXRpb25hbCIgZnVuY3Rpb249Ii8vQG1vZGVsL0BzeXN0ZW1zLjAvQGNvbXBvbmVudHMuMC9AZnVuY3Rpb25zLjMiLz4KLSAgICAgICAgICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgICAgICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgICAgICAgICA8L3NjaGVkdWxhYmxlcz4KLSAgICAgICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlByb2Nlc3MiIG5hbWU9IlRhc2tXb3JrZXJVbmNvbmRpdGlvbmFsMiI+Ci0gICAgICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0ibW9kZWw6Q2FsbFNlcXVlbmNlIiBuYW1lPSJDUyI+Ci0gICAgICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOkZ1bmN0aW9uQ2FsbCIgbmFtZT0iY2FsbF9SdW5uYWJsZVdvcmtlci1UYXNrV29ya2VyVW5jb25kaXRpb25hbDIiIGZ1bmN0aW9uPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4xIi8+Ci0gICAgICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpQcm9jZXNzIiBuYW1lPSJUYXNrV29ya2VyQ29uZGl0aW9uYWwiPgotICAgICAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIG5hbWU9ImNhbGxfUnVubmFibGVXb3JrZXItVGFza1dvcmtlckNvbmRpdGlvbmFsIiBmdW5jdGlvbj0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMCIvPgotICAgICAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgICAgIDwvc2NoZWR1bGFibGVzPgotICAgICAgICAgICAgPHRpbWVTbGljZS8+Ci0gICAgICAgICAgICA8cGVyaW9kLz4KLSAgICAgICAgICAgIDxtYXhSZXRhcmQvPgotICAgICAgICAgICAgPG1heEFkdmFuY2UvPgotICAgICAgICAgIDwvc2NoZWR1bGFibGVzPgotICAgICAgICAgIDx0aW1lU2xpY2UvPgotICAgICAgICAgIDxwZXJpb2QvPgotICAgICAgICAgIDxtYXhSZXRhcmQvPgotICAgICAgICAgIDxtYXhBZHZhbmNlLz4KLSAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICA8L3J0b3NDb25maWc+Ci0gICAgPC9zeXN0ZW1zPgotICA8L21vZGVsPgotICA8c2V0dGluZ3M+Ci0gICAgPGVkaXRvci8+Ci0gICAgPG1vZGVsLz4KLSAgICA8dG9vbC8+Ci0gIDwvc2V0dGluZ3M+Ci08L3Jvb3Q6Um9vdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvUHJlc2NhbGVyQW5kT2Zmc2V0L0VsZW1lbnRzV2l0aENvdW50ZXIubW1hcCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvUHJlc2NhbGVyQW5kT2Zmc2V0L0VsZW1lbnRzV2l0aENvdW50ZXIubW1hcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzk0MTY3Ni4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL1ByZXNjYWxlckFuZE9mZnNldC9FbGVtZW50c1dpdGhDb3VudGVyLm1tYXAKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL1ByZXNjYWxlckFuZE9mZnNldC9pbnB1dC9QcmVzY2FsZXJPZmZzZXQuYW14bWkgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ucHJvZHVjdC90ZXN0TW9kZWxzL1ByZXNjYWxlckFuZE9mZnNldC9pbnB1dC9QcmVzY2FsZXJPZmZzZXQuYW14bWkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NGYyNDAuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9QcmVzY2FsZXJBbmRPZmZzZXQvaW5wdXQvUHJlc2NhbGVyT2Zmc2V0LmFteG1pCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxhbTpBbWFsdGhlYSB4bWk6dmVyc2lvbj0iMi4wIiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOmFtPSJodHRwOi8vYXBwNG1jLmVjbGlwc2Uub3JnL2FtYWx0aGVhLzAuOS4zIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KLSAgPHN3TW9kZWw+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2sxbXMiIHN0aW11bGk9IlBlcmlvZGljU3RpbXVsdXMxbXM/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIiBuYW1lPSIiPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06VGFza1J1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlJ1bm5hYmxlMW1zP3R5cGU9UnVubmFibGUiPgotICAgICAgICAgICAgPGNvdW50ZXIgcHJlc2NhbGVyPSIyIiBvZmZzZXQ9IjAiLz4KLSAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06SW50ZXJQcm9jZXNzVHJpZ2dlciIgc3RpbXVsdXM9IkludGVyUHJvY2Vzc1N0aW11bHVzX1Rhc2sxMG1zP3R5cGU9SW50ZXJQcm9jZXNzU3RpbXVsdXMiPgotICAgICAgICAgICAgPGNvdW50ZXIgcHJlc2NhbGVyPSI1IiBvZmZzZXQ9IjAiLz4KLSAgICAgICAgICA8L2NhbGxzPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2sxMG1zIiBzdGltdWxpPSJJbnRlclByb2Nlc3NTdGltdWx1c19UYXNrMTBtcz90eXBlPUludGVyUHJvY2Vzc1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIiBuYW1lPSIiPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06VGFza1J1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlJ1bm5hYmxlNW1zP3R5cGU9UnVubmFibGUiLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrMjBtcyIgc3RpbXVsaT0iRXZlbnRTdGltdWx1c19UYXNrMjBtcz90eXBlPUV2ZW50U3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMCI+Ci0gICAgICA8Y2FsbEdyYXBoPgotICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJhbTpDYWxsU2VxdWVuY2UiIG5hbWU9IiI+Ci0gICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJhbTpUYXNrUnVubmFibGVDYWxsIiBydW5uYWJsZT0iUnVubmFibGUxMG1zP3R5cGU9UnVubmFibGUiLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrMW1zXzIiIHN0aW11bGk9IlBlcmlvZGljU3RpbXVsdXMxbXM/dHlwZT1QZXJpb2RpY1N0aW11bHVzIiBwcmVlbXB0aW9uPSJwcmVlbXB0aXZlIiBtdWx0aXBsZVRhc2tBY3RpdmF0aW9uTGltaXQ9IjAiPgotICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgPGdyYXBoRW50cmllcyB4c2k6dHlwZT0iYW06Q2FsbFNlcXVlbmNlIiBuYW1lPSIiPgotICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0iYW06VGFza1J1bm5hYmxlQ2FsbCIgcnVubmFibGU9IlJ1bm5hYmxlMW1zP3R5cGU9UnVubmFibGUiLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iUnVubmFibGUxbXMiIGNhbGxiYWNrPSJmYWxzZSIgc2VydmljZT0iZmFsc2UiPgotICAgICAgPHJ1bm5hYmxlSXRlbXMgeHNpOnR5cGU9ImFtOlRpY2tzIj4KLSAgICAgICAgPGRlZmF1bHQgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVDb25zdGFudCIgdmFsdWU9IjEiLz4KLSAgICAgIDwvcnVubmFibGVJdGVtcz4KLSAgICA8L3J1bm5hYmxlcz4KLSAgICA8cnVubmFibGVzIG5hbWU9IlJ1bm5hYmxlNW1zIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlQ29uc3RhbnQiIHZhbHVlPSIxIi8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06Q3VzdG9tRXZlbnRUcmlnZ2VyIiBldmVudD0iQ3VzdG9tRXZlbnRfNW1zX3RvXzEwbXM/dHlwZT1DdXN0b21FdmVudCIvPgotICAgIDwvcnVubmFibGVzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iUnVubmFibGUxMG1zIiBjYWxsYmFjaz0iZmFsc2UiIHNlcnZpY2U9ImZhbHNlIj4KLSAgICAgIDxydW5uYWJsZUl0ZW1zIHhzaTp0eXBlPSJhbTpUaWNrcyI+Ci0gICAgICAgIDxkZWZhdWx0IHhzaTp0eXBlPSJhbTpEaXNjcmV0ZVZhbHVlQ29uc3RhbnQiIHZhbHVlPSIxIi8+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgPC9ydW5uYWJsZXM+Ci0gIDwvc3dNb2RlbD4KLSAgPGh3TW9kZWw+Ci0gICAgPGRlZmluaXRpb25zIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdERlZmluaXRpb24iIG5hbWU9IkMwX1R5cGUiIHB1VHlwZT0iQ1BVIi8+Ci0gICAgPHN0cnVjdHVyZXMgbmFtZT0iU3lzdGVtIiBzdHJ1Y3R1cmVUeXBlPSJTeXN0ZW0iPgotICAgICAgPHN0cnVjdHVyZXMgbmFtZT0iRUNVIiBzdHJ1Y3R1cmVUeXBlPSJFQ1UiPgotICAgICAgICA8c3RydWN0dXJlcyBuYW1lPSJtQyIgc3RydWN0dXJlVHlwZT0iTWljcm9jb250cm9sbGVyIj4KLSAgICAgICAgICA8bW9kdWxlcyB4c2k6dHlwZT0iYW06UHJvY2Vzc2luZ1VuaXQiIG5hbWU9IkMwIiBmcmVxdWVuY3lEb21haW49ImNsb2NrX0MwP3R5cGU9RnJlcXVlbmN5RG9tYWluIiBkZWZpbml0aW9uPSJDMF9UeXBlP3R5cGU9UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIi8+Ci0gICAgICAgIDwvc3RydWN0dXJlcz4KLSAgICAgIDwvc3RydWN0dXJlcz4KLSAgICA8L3N0cnVjdHVyZXM+Ci0gICAgPGRvbWFpbnMgeHNpOnR5cGU9ImFtOkZyZXF1ZW5jeURvbWFpbiIgbmFtZT0iY2xvY2tfQzAiIGNsb2NrR2F0aW5nPSJmYWxzZSI+Ci0gICAgICA8ZGVmYXVsdFZhbHVlIHZhbHVlPSIyNDAuMCIgdW5pdD0iTUh6Ii8+Ci0gICAgPC9kb21haW5zPgotICA8L2h3TW9kZWw+Ci0gIDxvc01vZGVsPgotICAgIDxvcGVyYXRpbmdTeXN0ZW1zIG5hbWU9Ik9TIj4KLSAgICAgIDx0YXNrU2NoZWR1bGVycyBuYW1lPSJTY2hlZEMwIj4KLSAgICAgICAgPHNjaGVkdWxpbmdBbGdvcml0aG0geHNpOnR5cGU9ImFtOk9TRUsiLz4KLSAgICAgIDwvdGFza1NjaGVkdWxlcnM+Ci0gICAgPC9vcGVyYXRpbmdTeXN0ZW1zPgotICA8L29zTW9kZWw+Ci0gIDxzdGltdWxpTW9kZWw+Ci0gICAgPHN0aW11bGkgeHNpOnR5cGU9ImFtOlBlcmlvZGljU3RpbXVsdXMiIG5hbWU9IlBlcmlvZGljU3RpbXVsdXMxbXMiPgotICAgICAgPG9mZnNldCB2YWx1ZT0iMCIgdW5pdD0ibXMiLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSIxIiB1bml0PSJtcyIvPgotICAgIDwvc3RpbXVsaT4KLSAgICA8c3RpbXVsaSB4c2k6dHlwZT0iYW06SW50ZXJQcm9jZXNzU3RpbXVsdXMiIG5hbWU9IkludGVyUHJvY2Vzc1N0aW11bHVzX1Rhc2sxMG1zIj4KLSAgICAgIDxjb3VudGVyIHByZXNjYWxlcj0iMiIgb2Zmc2V0PSIxMCIvPgotICAgIDwvc3RpbXVsaT4KLSAgICA8c3RpbXVsaSB4c2k6dHlwZT0iYW06RXZlbnRTdGltdWx1cyIgbmFtZT0iRXZlbnRTdGltdWx1c19UYXNrMjBtcyI+Ci0gICAgICA8Y291bnRlciBwcmVzY2FsZXI9IjIiIG9mZnNldD0iMjAiLz4KLSAgICA8L3N0aW11bGk+Ci0gIDwvc3RpbXVsaU1vZGVsPgotICA8ZXZlbnRNb2RlbD4KLSAgICA8ZXZlbnRzIHhzaTp0eXBlPSJhbTpDdXN0b21FdmVudCIgbmFtZT0iQ3VzdG9tRXZlbnRfNW1zX3RvXzEwbXMiIGRlc2NyaXB0aW9uPSIiIGV2ZW50VHlwZT0iIi8+Ci0gIDwvZXZlbnRNb2RlbD4KLSAgPG1hcHBpbmdNb2RlbD4KLSAgICA8c2NoZWR1bGVyQWxsb2NhdGlvbiBzY2hlZHVsZXI9IlNjaGVkQzA/dHlwZT1UYXNrU2NoZWR1bGVyIiByZXNwb25zaWJpbGl0eT0iQzA/dHlwZT1Qcm9jZXNzaW5nVW5pdCIvPgotICAgIDx0YXNrQWxsb2NhdGlvbiB0YXNrPSJUYXNrMW1zP3R5cGU9VGFzayIgc2NoZWR1bGVyPSJTY2hlZEMwP3R5cGU9VGFza1NjaGVkdWxlciIvPgotICAgIDx0YXNrQWxsb2NhdGlvbiB0YXNrPSJUYXNrMTBtcz90eXBlPVRhc2siIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiLz4KLSAgICA8dGFza0FsbG9jYXRpb24gdGFzaz0iVGFzazIwbXM/dHlwZT1UYXNrIiBzY2hlZHVsZXI9IlNjaGVkQzA/dHlwZT1UYXNrU2NoZWR1bGVyIi8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2sxbXNfMj90eXBlPVRhc2siIHNjaGVkdWxlcj0iU2NoZWRDMD90eXBlPVRhc2tTY2hlZHVsZXIiLz4KLSAgPC9tYXBwaW5nTW9kZWw+Ci08L2FtOkFtYWx0aGVhPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9UaWNrczJUaWNrc0Zsb3cvaW5wdXQvRXh0ZW5kZWRUaWNrc01vZGVsLmFteG1pIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9UaWNrczJUaWNrc0Zsb3cvaW5wdXQvRXh0ZW5kZWRUaWNrc01vZGVsLmFteG1pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDQ0ZjI3Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvVGlja3MyVGlja3NGbG93L2lucHV0L0V4dGVuZGVkVGlja3NNb2RlbC5hbXhtaQorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08YW06QW1hbHRoZWEgeG1pOnZlcnNpb249IjIuMCIgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczphbT0iaHR0cDovL2FwcDRtYy5lY2xpcHNlLm9yZy9hbWFsdGhlYS8wLjkuMyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+Ci0gIDxzd01vZGVsPgotICAgIDx0YXNrcyBuYW1lPSJUYXNrXzEiIHN0aW11bGk9IlBlcmlvZGljU3RpbXVsdXNfMT90eXBlPVBlcmlvZGljU3RpbXVsdXMiIHByZWVtcHRpb249InByZWVtcHRpdmUiIG11bHRpcGxlVGFza0FjdGl2YXRpb25MaW1pdD0iMCI+Ci0gICAgICA8Y2FsbEdyYXBoPgotICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJhbTpDYWxsU2VxdWVuY2UiIG5hbWU9IkNhbGxTZXF1ZW5jZV8xIj4KLSAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9ImFtOlRhc2tSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJSdW5uYWJsZV8xP3R5cGU9UnVubmFibGUiPgotICAgICAgICAgICAgPGNvdW50ZXIgcHJlc2NhbGVyPSIwIiBvZmZzZXQ9IjAiLz4KLSAgICAgICAgICA8L2NhbGxzPgotICAgICAgICA8L2dyYXBoRW50cmllcz4KLSAgICAgIDwvY2FsbEdyYXBoPgotICAgIDwvdGFza3M+Ci0gICAgPHRhc2tzIG5hbWU9IlRhc2tfMiIgc3RpbXVsaT0iUGVyaW9kaWNTdGltdWx1c18xP3R5cGU9UGVyaW9kaWNTdGltdWx1cyIgcHJlZW1wdGlvbj0icHJlZW1wdGl2ZSIgbXVsdGlwbGVUYXNrQWN0aXZhdGlvbkxpbWl0PSIwIj4KLSAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9ImFtOkNhbGxTZXF1ZW5jZSIgbmFtZT0iIj4KLSAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9ImFtOlRhc2tSdW5uYWJsZUNhbGwiIHJ1bm5hYmxlPSJSdW5uYWJsZV8xP3R5cGU9UnVubmFibGUiLz4KLSAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICA8L2NhbGxHcmFwaD4KLSAgICA8L3Rhc2tzPgotICAgIDxydW5uYWJsZXMgbmFtZT0iUnVubmFibGVfMSIgY2FsbGJhY2s9ImZhbHNlIiBzZXJ2aWNlPSJmYWxzZSI+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZUNvbnN0YW50IiB2YWx1ZT0iMTAwIi8+Ci0gICAgICAgIDxleHRlbmRlZCBrZXk9IlByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbl8xP3R5cGU9UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIj4KLSAgICAgICAgICA8dmFsdWUgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVDb25zdGFudCIgdmFsdWU9IjQyIi8+Ci0gICAgICAgIDwvZXh0ZW5kZWQ+Ci0gICAgICAgIDxleHRlbmRlZCBrZXk9IlByb2Nlc3NpbmdVbml0RGVmaW5pdGlvbl8yP3R5cGU9UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIj4KLSAgICAgICAgICA8dmFsdWUgeHNpOnR5cGU9ImFtOkRpc2NyZXRlVmFsdWVDb25zdGFudCIgdmFsdWU9IjIzIi8+Ci0gICAgICAgIDwvZXh0ZW5kZWQ+Ci0gICAgICA8L3J1bm5hYmxlSXRlbXM+Ci0gICAgICA8cnVubmFibGVJdGVtcyB4c2k6dHlwZT0iYW06VGlja3MiPgotICAgICAgICA8ZGVmYXVsdCB4c2k6dHlwZT0iYW06RGlzY3JldGVWYWx1ZUNvbnN0YW50IiB2YWx1ZT0iNSIvPgotICAgICAgPC9ydW5uYWJsZUl0ZW1zPgotICAgIDwvcnVubmFibGVzPgotICA8L3N3TW9kZWw+Ci0gIDxod01vZGVsPgotICAgIDxkZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIiBuYW1lPSJQcm9jZXNzaW5nVW5pdERlZmluaXRpb25fMSIvPgotICAgIDxkZWZpbml0aW9ucyB4c2k6dHlwZT0iYW06UHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uIiBuYW1lPSJQcm9jZXNzaW5nVW5pdERlZmluaXRpb25fMiIvPgotICAgIDxzdHJ1Y3R1cmVzIG5hbWU9Ikh3U3RydWN0dXJlXzEiIHN0cnVjdHVyZVR5cGU9IlN5c3RlbSI+Ci0gICAgICA8c3RydWN0dXJlcyBuYW1lPSJId1N0cnVjdHVyZV8yIiBzdHJ1Y3R1cmVUeXBlPSJFQ1UiPgotICAgICAgICA8c3RydWN0dXJlcyBuYW1lPSJId1N0cnVjdHVyZV8xIiBzdHJ1Y3R1cmVUeXBlPSJNaWNyb2NvbnRyb2xsZXIiPgotICAgICAgICAgIDxtb2R1bGVzIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdCIgbmFtZT0iUHJvY2Vzc2luZ1VuaXRfMSIgZnJlcXVlbmN5RG9tYWluPSJGcmVxdWVuY3lEb21haW5fMT90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iUHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uXzE/dHlwZT1Qcm9jZXNzaW5nVW5pdERlZmluaXRpb24iLz4KLSAgICAgICAgPC9zdHJ1Y3R1cmVzPgotICAgICAgICA8c3RydWN0dXJlcyBuYW1lPSJId1N0cnVjdHVyZV8yIiBzdHJ1Y3R1cmVUeXBlPSJNaWNyb2NvbnRyb2xsZXIiPgotICAgICAgICAgIDxtb2R1bGVzIHhzaTp0eXBlPSJhbTpQcm9jZXNzaW5nVW5pdCIgbmFtZT0iUHJvY2Vzc2luZ1VuaXRfMiIgZnJlcXVlbmN5RG9tYWluPSJGcmVxdWVuY3lEb21haW5fMT90eXBlPUZyZXF1ZW5jeURvbWFpbiIgZGVmaW5pdGlvbj0iUHJvY2Vzc2luZ1VuaXREZWZpbml0aW9uXzI/dHlwZT1Qcm9jZXNzaW5nVW5pdERlZmluaXRpb24iLz4KLSAgICAgICAgPC9zdHJ1Y3R1cmVzPgotICAgICAgPC9zdHJ1Y3R1cmVzPgotICAgIDwvc3RydWN0dXJlcz4KLSAgICA8ZG9tYWlucyB4c2k6dHlwZT0iYW06RnJlcXVlbmN5RG9tYWluIiBuYW1lPSJGcmVxdWVuY3lEb21haW5fMSIgY2xvY2tHYXRpbmc9ImZhbHNlIj4KLSAgICAgIDxkZWZhdWx0VmFsdWUgdmFsdWU9IjAuMSIgdW5pdD0iR0h6Ii8+Ci0gICAgPC9kb21haW5zPgotICA8L2h3TW9kZWw+Ci0gIDxvc01vZGVsPgotICAgIDxvcGVyYXRpbmdTeXN0ZW1zIG5hbWU9Ik9wZXJhdGluZ1N5c3RlbV8xIj4KLSAgICAgIDx0YXNrU2NoZWR1bGVycyBuYW1lPSJUYXNrU2NoZWR1bGVyXzEiPgotICAgICAgICA8c2NoZWR1bGluZ0FsZ29yaXRobSB4c2k6dHlwZT0iYW06T1NFSyIvPgotICAgICAgPC90YXNrU2NoZWR1bGVycz4KLSAgICA8L29wZXJhdGluZ1N5c3RlbXM+Ci0gIDwvb3NNb2RlbD4KLSAgPHN0aW11bGlNb2RlbD4KLSAgICA8c3RpbXVsaSB4c2k6dHlwZT0iYW06UGVyaW9kaWNTdGltdWx1cyIgbmFtZT0iUGVyaW9kaWNTdGltdWx1c18xIj4KLSAgICAgIDxvZmZzZXQgdmFsdWU9IjAiIHVuaXQ9InMiLz4KLSAgICAgIDxyZWN1cnJlbmNlIHZhbHVlPSIxMCIgdW5pdD0ibXMiLz4KLSAgICA8L3N0aW11bGk+Ci0gIDwvc3RpbXVsaU1vZGVsPgotICA8ZXZlbnRNb2RlbC8+Ci0gIDxjb25zdHJhaW50c01vZGVsLz4KLSAgPG1hcHBpbmdNb2RlbD4KLSAgICA8c2NoZWR1bGVyQWxsb2NhdGlvbiBzY2hlZHVsZXI9IlRhc2tTY2hlZHVsZXJfMT90eXBlPVRhc2tTY2hlZHVsZXIiIHJlc3BvbnNpYmlsaXR5PSJQcm9jZXNzaW5nVW5pdF8xP3R5cGU9UHJvY2Vzc2luZ1VuaXQgUHJvY2Vzc2luZ1VuaXRfMj90eXBlPVByb2Nlc3NpbmdVbml0IiBleGVjdXRpbmdQVT0iUHJvY2Vzc2luZ1VuaXRfMT90eXBlPVByb2Nlc3NpbmdVbml0Ii8+Ci0gICAgPHRhc2tBbGxvY2F0aW9uIHRhc2s9IlRhc2tfMT90eXBlPVRhc2siIHNjaGVkdWxlcj0iVGFza1NjaGVkdWxlcl8xP3R5cGU9VGFza1NjaGVkdWxlciIgYWZmaW5pdHk9IlByb2Nlc3NpbmdVbml0XzE/dHlwZT1Qcm9jZXNzaW5nVW5pdCIvPgotICAgIDx0YXNrQWxsb2NhdGlvbiB0YXNrPSJUYXNrXzI/dHlwZT1UYXNrIiBzY2hlZHVsZXI9IlRhc2tTY2hlZHVsZXJfMT90eXBlPVRhc2tTY2hlZHVsZXIiIGFmZmluaXR5PSJQcm9jZXNzaW5nVW5pdF8yP3R5cGU9UHJvY2Vzc2luZ1VuaXQiLz4KLSAgPC9tYXBwaW5nTW9kZWw+Ci08L2FtOkFtYWx0aGVhPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9UaWNrczJUaWNrc0Zsb3cvb3V0cHV0L0V4dGVuZGVkVGlja3NNb2RlbC5pcHJ4IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QvdGVzdE1vZGVscy9UaWNrczJUaWNrc0Zsb3cvb3V0cHV0L0V4dGVuZGVkVGlja3NNb2RlbC5pcHJ4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODZjZGRmLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5wcm9kdWN0L3Rlc3RNb2RlbHMvVGlja3MyVGlja3NGbG93L291dHB1dC9FeHRlbmRlZFRpY2tzTW9kZWwuaXByeAorKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJBU0NJSSI/PgotPHJvb3Q6Um9vdCB4bWk6dmVyc2lvbj0iMi4wIiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOm1vZGVsPSJodHRwOi8vaW5jaHJvbi5jb20vcmVhbHRpbWUvcm9vdC8yLjk4LjUvbW9kZWwiIHhtbG5zOnJvb3Q9Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguNSIgeG1sbnM6c3RpbXVsYXRpb249Imh0dHA6Ly9pbmNocm9uLmNvbS9yZWFsdGltZS9yb290LzIuOTguNS9tb2RlbC9zdGltdWxhdGlvbiI+Ci0gIDxtb2RlbCB4c2k6dHlwZT0ibW9kZWw6TW9kZWwiIG5hbWU9Ik1vZGVsIiBkZWZhdWx0U2NlbmFyaW89Ii8vQG1vZGVsL0BzdGltdWxhdGlvblNjZW5hcmlvcy4wIj4KLSAgICA8Y2xvY2tzIG5hbWU9IkZyZXF1ZW5jeURvbWFpbl8xIiB1c2Vycz0iLy9AbW9kZWwvQGNwdXMuMCAvL0Btb2RlbC9AY3B1cy4xIC8vQG1vZGVsL0BzdGltdWxhdGlvblNjZW5hcmlvcy4wL0BnZW5lcmF0b3JzLjAiPgotICAgICAgPGZyZXF1ZW5jeSB2YWx1ZT0iMC4xIiB1bml0PSJHSHoiLz4KLSAgICAgIDxyYW5nZSB2YWx1ZT0iMSIgdW5pdD0icyIvPgotICAgICAgPHN0YXJ0VGltZUZpeGVkLz4KLSAgICAgIDxzdGFydFRpbWVNaW4vPgotICAgICAgPHN0YXJ0VGltZU1heC8+Ci0gICAgICA8c3RhcnRWYWx1ZS8+Ci0gICAgPC9jbG9ja3M+Ci0gICAgPGNwdXMgbmFtZT0iSHdTdHJ1Y3R1cmVfMSIgY2xvY2s9Ii8vQG1vZGVsL0BjbG9ja3MuMCIgY3B1TW9kZWw9ImdlbmVyaWMiPgotICAgICAgPGNvcmVzIG5hbWU9IlByb2Nlc3NpbmdVbml0XzEiLz4KLSAgICAgIDxtZW1vcnlSZWdpb25zIG5hbWU9InJhbSIgYmFzZT0iMTY3NzcyMTYiIGZsYWdzPSIyOTAiIHBhZ2VzPSIxIiBzZWN0aW9ucz0iZGF0YTpic3M6c3RhY2s6aGVhcCIvPgotICAgICAgPG1lbW9yeVJlZ2lvbnMgbmFtZT0icm9tIiBiYXNlPSIzMzU1NDQzMiIgZmxhZ3M9IjI3NSIgcGFnZXM9IjEiIHNlY3Rpb25zPSJ0ZXh0Ii8+Ci0gICAgPC9jcHVzPgotICAgIDxjcHVzIG5hbWU9Ikh3U3RydWN0dXJlXzIiIGNsb2NrPSIvL0Btb2RlbC9AY2xvY2tzLjAiIGNwdU1vZGVsPSJnZW5lcmljIj4KLSAgICAgIDxjb3JlcyBuYW1lPSJQcm9jZXNzaW5nVW5pdF8yIi8+Ci0gICAgICA8bWVtb3J5UmVnaW9ucyBuYW1lPSJyYW0iIGJhc2U9IjE2Nzc3MjE2IiBmbGFncz0iMjkwIiBwYWdlcz0iMSIgc2VjdGlvbnM9ImRhdGE6YnNzOnN0YWNrOmhlYXAiLz4KLSAgICAgIDxtZW1vcnlSZWdpb25zIG5hbWU9InJvbSIgYmFzZT0iMzM1NTQ0MzIiIGZsYWdzPSIyNzUiIHBhZ2VzPSIxIiBzZWN0aW9ucz0idGV4dCIvPgotICAgIDwvY3B1cz4KLSAgICA8Z2VuZXJhbEluZm8gY3JlYXRvcj0iQW1sdDJJbmNocm9uIDAuOS4zIEZyaSBNYXIgMjkgMDg6NDY6MjEgQ0VUIDIwMTkiIHZlcnNpb249IjEiLz4KLSAgICA8c3RpbXVsYXRpb25TY2VuYXJpb3MgbmFtZT0iRGVmYXVsdFNjZW5hcmlvIj4KLSAgICAgIDxnZW5lcmF0b3JzIHhzaTp0eXBlPSJzdGltdWxhdGlvbjpSYW5kb21TdGltdWxpR2VuZXJhdG9yIiBuYW1lPSJQZXJpb2RpY1N0aW11bHVzXzEiIGNsb2NrPSIvL0Btb2RlbC9AY2xvY2tzLjAiPgotICAgICAgICA8Y29ubmVjdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRpb25Db25uZWN0aW9uIiBuYW1lPSJQZXJpb2RpY1N0aW11bHVzXzEiIGFjdGl2YXRvcnM9Ii8vQG1vZGVsL0BzdGltdWxhdGlvblNjZW5hcmlvcy4wL0BnZW5lcmF0b3JzLjAvQHRhcmdldHMvQGdyYXBoRW50cmllcy4wL0BjYWxscy4wIj4KLSAgICAgICAgICA8YWN0aXZhdGlvbnMgeHNpOnR5cGU9Im1vZGVsOkFjdGl2YXRlUHJvY2VzcyIgdGFyZ2V0PSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0BydG9zQ29uZmlnL0BzY2hlZHVsYWJsZXMuMC9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4xIi8+Ci0gICAgICAgICAgPGFjdGl2YXRpb25zIHhzaTp0eXBlPSJtb2RlbDpBY3RpdmF0ZVByb2Nlc3MiIHRhcmdldD0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AcnRvc0NvbmZpZy9Ac2NoZWR1bGFibGVzLjAvQHNjaGVkdWxhYmxlcy4wL0BzY2hlZHVsYWJsZXMuMCIvPgotICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICA8dGFyZ2V0cz4KLSAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNTIj4KLSAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6QWN0aXZhdGlvbkl0ZW0iIG5hbWU9IkFjdGl2YXRpb25JdGVtIiBjb25uZWN0aW9uPSIvL0Btb2RlbC9Ac3RpbXVsYXRpb25TY2VuYXJpb3MuMC9AZ2VuZXJhdG9ycy4wL0Bjb25uZWN0aW9ucy4wIi8+Ci0gICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgIDwvdGFyZ2V0cz4KLSAgICAgICAgPG1pbkludGVyQXJyaXZhbFRpbWUvPgotICAgICAgICA8cGVyaW9kIHZhbHVlPSIxMCIgdW5pdD0ibXMiLz4KLSAgICAgICAgPHN0YXJ0T2Zmc2V0IHVuaXQ9InMiLz4KLSAgICAgICAgPHN0YXJ0T2Zmc2V0VmFyaWF0aW9uLz4KLSAgICAgICAgPHZhcmlhdGlvbi8+Ci0gICAgICA8L2dlbmVyYXRvcnM+Ci0gICAgPC9zdGltdWxhdGlvblNjZW5hcmlvcz4KLSAgICA8c3lzdGVtcyB4c2k6dHlwZT0ibW9kZWw6R2VuZXJpY1N5c3RlbSIgbmFtZT0iT3BlcmF0aW5nU3lzdGVtXzFfU1lTVEVNIj4KLSAgICAgIDxjb21wb25lbnRzIG5hbWU9Ik9wZXJhdGluZ1N5c3RlbV8xX1NXQyI+Ci0gICAgICAgIDxmdW5jdGlvbnMgbmFtZT0iVGFza18yLVJ1bm5hYmxlXzEiPgotICAgICAgICAgIDxjYWxsR3JhcGg+Ci0gICAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNTIj4KLSAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpSZXNvdXJjZUNvbnN1bXB0aW9uIiBuYW1lPSJSQyI+Ci0gICAgICAgICAgICAgICAgPHRpbWVEaXN0cmlidXRpb24gYWxwaGE9IjAuMCIgYmV0YT0iMC4wIj4KLSAgICAgICAgICAgICAgICAgIDxtaW4gdmFsdWU9IjIzIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWF4IHZhbHVlPSIyMyIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1lYW4gdmFsdWU9IjIzIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8c2lnbWEgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgIDwvdGltZURpc3RyaWJ1dGlvbj4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpSZXNvdXJjZUNvbnN1bXB0aW9uIiBuYW1lPSJSQyI+Ci0gICAgICAgICAgICAgICAgPHRpbWVEaXN0cmlidXRpb24gYWxwaGE9IjAuMCIgYmV0YT0iMC4wIj4KLSAgICAgICAgICAgICAgICAgIDxtaW4gdmFsdWU9IjUiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtYXggdmFsdWU9IjUiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtZWFuIHZhbHVlPSI1IiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8c2lnbWEgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgIDwvdGltZURpc3RyaWJ1dGlvbj4KLSAgICAgICAgICAgICAgPC9jYWxscz4KLSAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICA8L2Z1bmN0aW9ucz4KLSAgICAgICAgPGZ1bmN0aW9ucyBuYW1lPSJUYXNrXzEtUnVubmFibGVfMSI+Ci0gICAgICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOlJlc291cmNlQ29uc3VtcHRpb24iIG5hbWU9IlJDIj4KLSAgICAgICAgICAgICAgICA8dGltZURpc3RyaWJ1dGlvbiBhbHBoYT0iMC4wIiBiZXRhPSIwLjAiPgotICAgICAgICAgICAgICAgICAgPG1pbiB2YWx1ZT0iNDIiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxtYXggdmFsdWU9IjQyIiB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgICA8bWVhbiB2YWx1ZT0iNDIiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxzaWdtYSB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgPC90aW1lRGlzdHJpYnV0aW9uPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgICA8Y2FsbHMgeHNpOnR5cGU9Im1vZGVsOlJlc291cmNlQ29uc3VtcHRpb24iIG5hbWU9IlJDIj4KLSAgICAgICAgICAgICAgICA8dGltZURpc3RyaWJ1dGlvbiBhbHBoYT0iMC4wIiBiZXRhPSIwLjAiPgotICAgICAgICAgICAgICAgICAgPG1pbiB2YWx1ZT0iNSIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1heCB2YWx1ZT0iNSIgdW5pdD0iVCIvPgotICAgICAgICAgICAgICAgICAgPG1lYW4gdmFsdWU9IjUiIHVuaXQ9IlQiLz4KLSAgICAgICAgICAgICAgICAgIDxzaWdtYSB1bml0PSJUIi8+Ci0gICAgICAgICAgICAgICAgPC90aW1lRGlzdHJpYnV0aW9uPgotICAgICAgICAgICAgICA8L2NhbGxzPgotICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgPC9jYWxsR3JhcGg+Ci0gICAgICAgIDwvZnVuY3Rpb25zPgotICAgICAgPC9jb21wb25lbnRzPgotICAgICAgPHJ0b3NNb2RlbCBuYW1lPSJnZW5lcmljIiByZXR1cm5UeXBlPSJ2b2lkIi8+Ci0gICAgICA8cnRvc0NvbmZpZyBuYW1lPSJPcGVyYXRpbmdTeXN0ZW1fMSI+Ci0gICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlNjaGVkdWxlciIgbmFtZT0iT3BlcmF0aW5nU3lzdGVtXzFfSVNSRHVtbXkiIGNwdUNvcmVzPSIvL0Btb2RlbC9AY3B1cy4wL0Bjb3Jlcy4wIC8vQG1vZGVsL0BjcHVzLjEvQGNvcmVzLjAiPgotICAgICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlNjaGVkdWxlciIgbmFtZT0iVGFza1NjaGVkdWxlcl8xIiBjcHVDb3Jlcz0iLy9AbW9kZWwvQGNwdXMuMC9AY29yZXMuMCAvL0Btb2RlbC9AY3B1cy4xL0Bjb3Jlcy4wIj4KLSAgICAgICAgICAgIDxzY2hlZHVsYWJsZXMgeHNpOnR5cGU9Im1vZGVsOlByb2Nlc3MiIG5hbWU9IlRhc2tfMSIgY3B1Q29yZXM9Ii8vQG1vZGVsL0BjcHVzLjAvQGNvcmVzLjAiPgotICAgICAgICAgICAgICA8Y2FsbEdyYXBoPgotICAgICAgICAgICAgICAgIDxncmFwaEVudHJpZXMgeHNpOnR5cGU9Im1vZGVsOkNhbGxTZXF1ZW5jZSIgbmFtZT0iQ1MiPgotICAgICAgICAgICAgICAgICAgPGNhbGxzIHhzaTp0eXBlPSJtb2RlbDpGdW5jdGlvbkNhbGwiIG5hbWU9ImNhbGxfVGFza18xLVJ1bm5hYmxlXzEiIGZ1bmN0aW9uPSIvL0Btb2RlbC9Ac3lzdGVtcy4wL0Bjb21wb25lbnRzLjAvQGZ1bmN0aW9ucy4xIi8+Ci0gICAgICAgICAgICAgICAgPC9ncmFwaEVudHJpZXM+Ci0gICAgICAgICAgICAgIDwvY2FsbEdyYXBoPgotICAgICAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICAgICAgICA8c2NoZWR1bGFibGVzIHhzaTp0eXBlPSJtb2RlbDpQcm9jZXNzIiBuYW1lPSJUYXNrXzIiIGNwdUNvcmVzPSIvL0Btb2RlbC9AY3B1cy4xL0Bjb3Jlcy4wIj4KLSAgICAgICAgICAgICAgPGNhbGxHcmFwaD4KLSAgICAgICAgICAgICAgICA8Z3JhcGhFbnRyaWVzIHhzaTp0eXBlPSJtb2RlbDpDYWxsU2VxdWVuY2UiIG5hbWU9IkNTIj4KLSAgICAgICAgICAgICAgICAgIDxjYWxscyB4c2k6dHlwZT0ibW9kZWw6RnVuY3Rpb25DYWxsIiBuYW1lPSJjYWxsX1Rhc2tfMi1SdW5uYWJsZV8xIiBmdW5jdGlvbj0iLy9AbW9kZWwvQHN5c3RlbXMuMC9AY29tcG9uZW50cy4wL0BmdW5jdGlvbnMuMCIvPgotICAgICAgICAgICAgICAgIDwvZ3JhcGhFbnRyaWVzPgotICAgICAgICAgICAgICA8L2NhbGxHcmFwaD4KLSAgICAgICAgICAgIDwvc2NoZWR1bGFibGVzPgotICAgICAgICAgICAgPHRpbWVTbGljZS8+Ci0gICAgICAgICAgICA8cGVyaW9kLz4KLSAgICAgICAgICAgIDxtYXhSZXRhcmQvPgotICAgICAgICAgICAgPG1heEFkdmFuY2UvPgotICAgICAgICAgIDwvc2NoZWR1bGFibGVzPgotICAgICAgICAgIDx0aW1lU2xpY2UvPgotICAgICAgICAgIDxwZXJpb2QvPgotICAgICAgICAgIDxtYXhSZXRhcmQvPgotICAgICAgICAgIDxtYXhBZHZhbmNlLz4KLSAgICAgICAgPC9zY2hlZHVsYWJsZXM+Ci0gICAgICA8L3J0b3NDb25maWc+Ci0gICAgPC9zeXN0ZW1zPgotICA8L21vZGVsPgotPC9yb290OlJvb3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWNhN2JkYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvLmdpdGlnbm9yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZmI5NGMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvLmdpdGlnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotL2Jpbi8KLS90YXJnZXQvCi0veHRlbmQtZ2VuLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjM2QzZDYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGliczwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotIAotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNjhhNjEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFhZTY4ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wCi1CdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogM3JkcGFydHkKLUJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzCi1CdW5kbGUtVmVyc2lvbjogMC4zLjAucXVhbGlmaWVyCi1CdW5kbGUtVmVuZG9yOiBFY2xpcHNlIEFQUDRNQwotQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEphdmFTRS0xLjgKLUJ1bmRsZS1DbGFzc1BhdGg6IC4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KLTx0aXRsZT5BYm91dDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keSBsYW5nPSJFTi1VUyI+Ci0JPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+Ci0KLQk8cD5Ob3ZlbWJlciAzMCwgMjAxNzwvcD4KLQk8aDM+TGljZW5zZTwvaDM+Ci0KLQk8cD4KLQkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluCi0JCSgmcXVvdDtDb250ZW50JnF1b3Q7KS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50Ci0JCWlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UKLQkJUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUgRVBMIGlzCi0JCWF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCi0JCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC4KLQk8L3A+Ci0KLQk8cD4KLQkJSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZQotCQlGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyBiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkKLQkJKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5Ci0JCWFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlCi0JCVJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuIElmIG5vIHN1Y2gKLQkJbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkCi0JCWJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlCi0JCWNvZGUgaW4gdGhlIENvbnRlbnQgYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhCi0JCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnLyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uCi0JPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkZjFmYjQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIyAgQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0jICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotIyAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0jIAotIyAgIENvbnRyaWJ1dG9yczoKLSMgIAkgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSMgCi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sCi1zb3VyY2UuLiA9IHNyYy8KLXNyYy5pbmNsdWRlcyA9IGVwbC0yLjAuaHRtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+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+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy9wb20ueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvcG9tLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZkYmZjZi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkubGlicy9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotPCEtLQotICAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gLS0+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCTxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KLQotIAotCTxwYXJlbnQ+Ci0JCTxyZWxhdGl2ZVBhdGg+Li4vLi4vLi4vYnVpbGQvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmJ1aWxkL3BvbS54bWw8L3JlbGF0aXZlUGF0aD4KLQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uPC9ncm91cElkPgotCQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYnVpbGQ8L2FydGlmYWN0SWQ+Ci0JCTx2ZXJzaW9uPjAuMy4wLVNOQVBTSE9UPC92ZXJzaW9uPgotCTwvcGFyZW50PgotCi0JPGFydGlmYWN0SWQ+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnM8L2FydGlmYWN0SWQ+Ci0JPHBhY2thZ2luZz5lY2xpcHNlLXBsdWdpbjwvcGFja2FnaW5nPgotCi0JPGJ1aWxkPgotCQk8c291cmNlRGlyZWN0b3J5PnNyYzwvc291cmNlRGlyZWN0b3J5PgotCQk8cmVzb3VyY2VzPgotCQkJPHJlc291cmNlPgotCQkJCTxkaXJlY3Rvcnk+eHRlbmQtZ2VuPC9kaXJlY3Rvcnk+Ci0JCQkJPGV4Y2x1ZGVzPgotCQkJCQk8ZXhjbHVkZT4qKi8qLmphdmE8L2V4Y2x1ZGU+Ci0JCQkJPC9leGNsdWRlcz4KLQkJCTwvcmVzb3VyY2U+Ci0JCQk8cmVzb3VyY2U+Ci0JCQkJPGRpcmVjdG9yeT5zcmM8L2RpcmVjdG9yeT4KLQkJCQk8ZXhjbHVkZXM+Ci0JCQkJCTxleGNsdWRlPioqLyouamF2YTwvZXhjbHVkZT4KLQkJCQk8L2V4Y2x1ZGVzPgotCQkJPC9yZXNvdXJjZT4KLQkJPC9yZXNvdXJjZXM+Ci0JCTxwbHVnaW5zPgotCQkJPHBsdWdpbj4KLQkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1jbGVhbi1wbHVnaW48L2FydGlmYWN0SWQ+Ci0JCQkJPHZlcnNpb24+Mi40LjE8L3ZlcnNpb24+Ci0JCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxmaWxlc2V0cz4KLQkJCQkJCTxmaWxlc2V0PgotCQkJCQkJCTxkaXJlY3Rvcnk+eHRlbmQtZ2VuPC9kaXJlY3Rvcnk+Ci0JCQkJCQkJPGluY2x1ZGVzPgotCQkJCQkJCQk8aW5jbHVkZT4qKjwvaW5jbHVkZT4KLQkJCQkJCQk8L2luY2x1ZGVzPgotCQkJCQkJPC9maWxlc2V0PgotCQkJCQk8L2ZpbGVzZXRzPgotCQkJCTwvY29uZmlndXJhdGlvbj4KLQkJCTwvcGx1Z2luPgotCQkJPHBsdWdpbj4KLQkJCQk8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD5idWlsZC1oZWxwZXItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KLQkJCQk8ZXhlY3V0aW9ucz4KLQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxpZD5hZGQtc291cmNlPC9pZD4KLQkJCQkJCTxwaGFzZT5nZW5lcmF0ZS1zb3VyY2VzPC9waGFzZT4KLQkJCQkJCTxnb2Fscz4KLQkJCQkJCQk8Z29hbD5hZGQtc291cmNlPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTxzb3VyY2VzPgotCQkJCQkJCQk8c291cmNlPnh0ZW5kLWdlbjwvc291cmNlPgotCQkJCQkJCTwvc291cmNlcz4KLQkJCQkJCTwvY29uZmlndXJhdGlvbj4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJPC9leGVjdXRpb25zPgotCQkJPC9wbHVnaW4+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLnh0ZW5kPC9ncm91cElkPgotCQkJCTxhcnRpZmFjdElkPnh0ZW5kLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLQkJCQk8dmVyc2lvbj4yLjE0LjA8L3ZlcnNpb24+Ci0JCQkJPGV4ZWN1dGlvbnM+Ci0JCQkJCTxleGVjdXRpb24+Ci0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+Y29tcGlsZTwvZ29hbD4KLQkJCQkJCTwvZ29hbHM+Ci0JCQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJCQk8b3V0cHV0RGlyZWN0b3J5Pnh0ZW5kLWdlbjwvb3V0cHV0RGlyZWN0b3J5PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCQkJCQk8L2V4ZWN1dGlvbj4KLQkJCQk8L2V4ZWN1dGlvbnM+Ci0JCQk8L3BsdWdpbj4KLQkJPC9wbHVnaW5zPgotCTwvYnVpbGQ+Ci0JPGdyb3VwSWQ+bTJtPC9ncm91cElkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzL3NyYy8uZ2l0aWdub3JlIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvc3JjLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZmI5NGMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnMvc3JjLy5naXRpZ25vcmUKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLS9iaW4vCi0vdGFyZ2V0LwotL3h0ZW5kLWdlbi8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlLy5naXRpZ25vcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZmI5NGMuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRvLmluY2hyb24uZmVhdHVyZS8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0vYmluLwotL3RhcmdldC8KLS94dGVuZC1nZW4vClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRvLmluY2hyb24uZmVhdHVyZS8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50by5pbmNocm9uLmZlYXR1cmUvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkMDZhYWIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRvLmluY2hyb24uZmVhdHVyZS8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50by5pbmNocm9uLmZlYXR1cmU8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlTmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRvLmluY2hyb24uZmVhdHVyZS9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50by5pbmNocm9uLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50by5pbmNocm9uLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjM2OWFhOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1iaW4uaW5jbHVkZXMgPSBmZWF0dXJlLnhtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbAotc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50by5pbmNocm9uLmZlYXR1cmUvZXBsLTIuMC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRvLmluY2hyb24uZmVhdHVyZS9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRvLmluY2hyb24uZmVhdHVyZS9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+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+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50by5pbmNocm9uLmZlYXR1cmUvZmVhdHVyZS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlL2ZlYXR1cmUueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzM0MWFlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50by5pbmNocm9uLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGZlYXR1cmUKLSAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlIgotICAgICAgbGFiZWw9IkFQUDRNQyB0byBJbmNocm9uIG1vZGVsIHRyYW5zZm9ybWF0aW9uIEZlYXR1cmUiCi0gICAgICB2ZXJzaW9uPSIwLjMuMC5xdWFsaWZpZXIiCi0gICAgICBwcm92aWRlci1uYW1lPSJFY2xpcHNlIEFQUDRNQyI+Ci0KLSAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZGVzY3JpcHRpb24iPgotICAgICAgW0VudGVyIEZlYXR1cmUgRGVzY3JpcHRpb24gaGVyZS5dCi0gICA8L2Rlc2NyaXB0aW9uPgotCi0gICA8Y29weXJpZ2h0IHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9jb3B5cmlnaHQiPgotICAgICAgKGMpIENvcHlyaWdodCBFY2xpcHNlIEFQUDRNQyBjb250cmlidXRvcnMuIDIwMTguIAotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAgIDwvY29weXJpZ2h0PgotCi0gICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbGljZW5zZSI+Ci0gICAgICBbRW50ZXIgTGljZW5zZSBEZXNjcmlwdGlvbiBoZXJlLl0KLSAgIDwvbGljZW5zZT4KLQotICAgPGluY2x1ZGVzCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZSIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJjb20uaW5jaHJvbi5yZWFsdGltZS5yb290IgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLm0ybSIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotPC9mZWF0dXJlPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRvLmluY2hyb24uZmVhdHVyZS9wb20ueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRvLmluY2hyb24uZmVhdHVyZS9wb20ueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTFhZTY2Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50by5pbmNocm9uLmZlYXR1cmUvcG9tLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0JPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9idWlsZC9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYnVpbGQvcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgotCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb248L2dyb3VwSWQ+Ci0JCTxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5idWlsZDwvYXJ0aWZhY3RJZD4KLQkJPHZlcnNpb24+MC4zLjAtU05BUFNIT1Q8L3ZlcnNpb24+Ci0JPC9wYXJlbnQ+Ci0KLQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlPC9hcnRpZmFjdElkPgotCTxwYWNrYWdpbmc+ZWNsaXBzZS1mZWF0dXJlPC9wYWNrYWdpbmc+Ci0KLTwvcHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWNhN2JkYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLmdpdGlnbm9yZSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlOTAyZTguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLmdpdGlnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLW91dHB1dC8qClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjczZjk4Mi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPmFwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLmlubGluZUpzckJ5dGVjb2RlPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udGFyZ2V0UGxhdGZvcm09MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hc3NlcnRJZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS44CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9DdXN0X01vZGVsVHJhbnNmb3JtYXRpb24ucHJvZHVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL0N1c3RfTW9kZWxUcmFuc2Zvcm1hdGlvbi5wcm9kdWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjhlYzExLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL0N1c3RfTW9kZWxUcmFuc2Zvcm1hdGlvbi5wcm9kdWN0CisrKyAvZGV2L251bGwKQEAgLTEsMTk0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08P3BkZSB2ZXJzaW9uPSIzLjUiPz4KLQotPHByb2R1Y3QgbmFtZT0iRXhhbXBsZTogU2FtcGxlIE1vZGVsIFRyYW5zZm9ybWF0aW9uIiB1aWQ9InRlc3QiIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLnByb2R1Y3QiIGFwcGxpY2F0aW9uPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLmFwcGxpY2F0aW9uIiB2ZXJzaW9uPSIxIiB1c2VGZWF0dXJlcz0iZmFsc2UiIGluY2x1ZGVMYXVuY2hlcnM9InRydWUiPgotCi0gICA8Y29uZmlnSW5pIHVzZT0iZGVmYXVsdCI+Ci0gICA8L2NvbmZpZ0luaT4KLQotICAgPGxhdW5jaGVyQXJncz4KLSAgICAgIDxwcm9ncmFtQXJncz4tLWlucHV0LnByb3BzICZxdW90OyR7d29ya3NwYWNlX2xvYzphcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcH0vaW5wdXQucHJvcGVydGllcyZxdW90OwotICAgICAgPC9wcm9ncmFtQXJncz4KLSAgICAgIDx2bUFyZ3NNYWM+LVhzdGFydE9uRmlyc3RUaHJlYWQgLURvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwuY2FyYm9uLnNtYWxsRm9udHMKLSAgICAgIDwvdm1BcmdzTWFjPgotICAgPC9sYXVuY2hlckFyZ3M+Ci0KLSAgIDx3aW5kb3dJbWFnZXMvPgotCi0gICA8bGF1bmNoZXI+Ci0gICAgICA8d2luIHVzZUljbz0iZmFsc2UiPgotICAgICAgICAgPGJtcC8+Ci0gICAgICA8L3dpbj4KLSAgIDwvbGF1bmNoZXI+Ci0KLSAgIDx2bT4KLSAgIDwvdm0+Ci0KLSAgIDxwbHVnaW5zPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcCIvPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybSIvPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydCIvPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0IiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJjb20uZ29vZ2xlLmd1YXZhIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJjb20uZ29vZ2xlLmluamVjdCIvPgotICAgICAgPHBsdWdpbiBpZD0iY29tLmlibS5pY3UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImphdmF4LmFubm90YXRpb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImphdmF4LmluamVjdCIvPgotICAgICAgPHBsdWdpbiBpZD0iamF2YXgueG1sIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmJhdGlrLmNvbnN0YW50cyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5iYXRpay5jc3MiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuYmF0aWsuaTE4biIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5iYXRpay51dGlsIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmJhdGlrLnV0aWwuZ3VpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMuY2xpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMuaW8iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5qeHBhdGgiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5sYW5nIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5jb21tb25zLm1hdGgzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28uY29tbWFuZCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLmNvbW1hbmQuc291cmNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28ucnVudGltZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLnJ1bnRpbWUuc291cmNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28uc2hlbGwiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZ29nby5zaGVsbC5zb3VyY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguc2NyIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LnNjci5zb3VyY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUubG9nNGoiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUueGVyY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLnhtbC5yZXNvbHZlciIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS54bWwuc2VyaWFsaXplciIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS54bWxncmFwaGljcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLmNvbnZlcnRlcnMubG9nNGouY29uZmlndXJhdGlvbiIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29tcGFyZS5jb3JlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmNvbW1hbmRzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmNvbnRlbnR0eXBlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmRhdGFiaW5kaW5nIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmRhdGFiaW5kaW5nLm9ic2VydmFibGUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuZGF0YWJpbmRpbmcucHJvcGVydHkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuZXhwcmVzc2lvbnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuZmlsZXN5c3RlbSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5maWxlc3lzdGVtLndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuam9icyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucnVudGltZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS52YXJpYWJsZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuY29tbWFuZHMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuY29udGV4dHMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuZGkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuZGkuYW5ub3RhdGlvbnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuZGkuZXh0ZW5zaW9ucyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQuY29yZS5kaS5leHRlbnNpb25zLnN1cHBsaWVyIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5jb3JlLnNlcnZpY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5lbWYueHBhdGgiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLmJpbmRpbmdzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS5jc3MuY29yZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuY3NzLnN3dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuY3NzLnN3dC50aGVtZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuZGkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLmRpYWxvZ3MiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLm1vZGVsLndvcmtiZW5jaCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuc2VydmljZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLndpZGdldHMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLndvcmtiZW5jaCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkud29ya2JlbmNoLmFkZG9ucy5zd3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLndvcmtiZW5jaC5yZW5kZXJlcnMuc3d0Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS53b3JrYmVuY2guc3d0Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS53b3JrYmVuY2gzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5jb21tb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5jb21tb24udWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lY29yZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLmNoYW5nZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhjb3JlLmxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVkaXQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lZGl0LnVpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYudHJhbnNhY3Rpb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi50cmFuc2FjdGlvbi51aSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLnZhbGlkYXRpb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi53b3Jrc3BhY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi53b3Jrc3BhY2UudWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guYXBwIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmJpZGkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guY29tbW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmRzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmV2ZW50Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnAyLmNvcmUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucDIuZW5naW5lIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnAyLm1ldGFkYXRhIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnAyLm1ldGFkYXRhLnJlcG9zaXRvcnkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucDIucmVwb3NpdG9yeSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5wcmVmZXJlbmNlcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5yZWdpb24iIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnJlZ2lzdHJ5Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnNlY3VyaXR5Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnNlY3VyaXR5LndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guc3VwcGxlbWVudCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC50cmFuc2Zvcm1zLmhvb2siIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnV0aWwiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gud2VhdmluZy5ob29rIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZngub3NnaSIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmhlbHAiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmpmYWNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5qZmFjZS5kYXRhYmluZGluZyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuamZhY2UudGV4dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaS5jb21wYXRpYmlsaXR5LnN0YXRlIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaS5zZXJ2aWNlcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaS5zZXJ2aWNlcy5zb3VyY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kudXRpbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LmVtZiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LmVtZi5lZGl0b3JzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguZW1mLmVkaXRvcnMuZm9ybXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5lbWYudWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5lbWYud29ya3NwYWNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguZW1mLndvcmtzcGFjZS51aSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnBsYXRmb3JtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbngucGxhdGZvcm0udWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnN3dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3d0LndpbjMyLndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnRleHQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5jb25zb2xlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5mb3JtcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudWkuaWRlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5uYXZpZ2F0b3IiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpLnZpZXdzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS52aWV3cy5wcm9wZXJ0aWVzLnRhYmJlZCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudWkud2luMzIiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS53b3JrYmVuY2giLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpLndvcmtiZW5jaC50ZXh0ZWRpdG9yIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS54dGVuZC5saWIiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZW5kLmxpYi5tYWNybyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UueHRleHQubG9nZ2luZyIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZXh0LnhiYXNlLmxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmpkb20iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy50dWthYW5pLnh6Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcudzNjLmNzcy5zYWMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy53M2MuZG9tLmV2ZW50cyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLnczYy5kb20uc21pbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLnczYy5kb20uc3ZnIi8+Ci0gICA8L3BsdWdpbnM+Ci0KLSAgIDxjb25maWd1cmF0aW9ucz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucnVudGltZSIgYXV0b1N0YXJ0PSJ0cnVlIiBzdGFydExldmVsPSIxIiAvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaSIgYXV0b1N0YXJ0PSJmYWxzZSIgc3RhcnRMZXZlbD0iMSIgLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kuc2VydmljZXMiIGF1dG9TdGFydD0iZmFsc2UiIHN0YXJ0TGV2ZWw9IjAiIC8+Ci0gICAgICA8cHJvcGVydHkgbmFtZT0iZXF1aW5veC51c2UuZHMiIHZhbHVlPSJmYWxzZSIgLz4KLSAgIDwvY29uZmlndXJhdGlvbnM+Ci0KLSAgIDxwcmVmZXJlbmNlc0luZm8+Ci0gICAgICA8dGFyZ2V0ZmlsZSBvdmVyd3JpdGU9ImZhbHNlIi8+Ci0gICA8L3ByZWZlcmVuY2VzSW5mbz4KLQotICAgPGNzc0luZm8+Ci0gICA8L2Nzc0luZm8+Ci0KLTwvcHJvZHVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNzQ5ODYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEFwcAotQnVuZGxlLVN5bWJvbGljTmFtZTogYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUF1dG9tYXRpYy1Nb2R1bGUtTmFtZTogYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAKLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRkMmU0ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1zb3VyY2UuLiA9IHNyYy8KLW91dHB1dC4uID0gYmluLwotYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIC4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL2lucHV0LnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9pbnB1dC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTNhMjY2Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtLmV4YW1wbGUudHJhbnNmb3JtLmN1c3QuYXBwL2lucHV0LnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1pbnB1dF9tb2RlbHNfZm9sZGVyPS4vaW5wdXQvYW1hbHRoZWFfbW9kZWxzCi1tMm1fb3V0cHV0X2ZvbGRlcj0uL291dHB1dC9tMm1fb3V0cHV0X21vZGVscwotbTJ0X291dHB1dF9mb2xkZXI9Li9vdXRwdXQvbTJ0X291dHB1dF90ZXh0X2ZpbGVzCi1sb2dfZmlsZT0uL291dHB1dC90cmFuc2Zvcm1hdGlvbi50eHQKLXRyYW5mb3JtYXRpb25Db25maWdJRHM9YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0MS5jb25maWcxClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG0uZXhhbXBsZS50cmFuc2Zvcm0uY3VzdC5hcHAvaW5wdXQvYW1hbHRoZWFfbW9kZWxzL2RlbW9jYXIuYW14bWkgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvZGVtb2Nhci5hbXhtaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc2NzIzYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvZGVtb2Nhci5hbXhtaQorKysgL2Rldi9udWxsCkBAIC0xLDc5OSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGFtOkFtYWx0aGVhIHhtbG5zOmFtPSJodHRwOi8vYXBwNG1jLmVjbGlwc2Uub3JnL2FtYWx0aGVhLzAuOS44IiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtaTp2ZXJzaW9uPSIyLjAiPgotICA8Y29tbW9uRWxlbWVudHM+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+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5jbGFzc3BhdGggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjYTdiZGIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC5sYXVuY2ggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLmxhdW5jaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFmMWU5Ni4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLmxhdW5jaAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgotPGxhdW5jaENvbmZpZ3VyYXRpb24gdHlwZT0ib3JnLmVjbGlwc2UuYW50LkFudEJ1aWxkZXJMYXVuY2hDb25maWd1cmF0aW9uVHlwZSI+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aS5BVFRSX1RBUkdFVFNfVVBEQVRFRCIgdmFsdWU9InRydWUiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuYW50LnVpLkRFRkFVTFRfVk1fSU5TVEFMTCIgdmFsdWU9ImZhbHNlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aVNFVF9JTlBVVEhBTkRMRVIiIHZhbHVlPSJmYWxzZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuQVRUUl9SRUZSRVNIX1NDT1BFIiB2YWx1ZT0iJHt3b3JraW5nX3NldDombHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90Oz8mZ3Q7JiMxMzsmIzEwOyZsdDtyZXNvdXJjZXMmZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDsvcmVzb3VyY2VzJmd0O30iLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5jYXB0dXJlX291dHB1dCIgdmFsdWU9ImZhbHNlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLnVpLkFUVFJfQ09OU09MRV9PVVRQVVRfT04iIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5BVFRSX0xBVU5DSF9JTl9CQUNLR1JPVU5EIiB2YWx1ZT0iZmFsc2UiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkNMQVNTUEFUSF9QUk9WSURFUiIgdmFsdWU9Im9yZy5lY2xpcHNlLmFudC51aS5BbnRDbGFzc3BhdGhQcm92aWRlciIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkRFRkFVTFRfQ0xBU1NQQVRIIiB2YWx1ZT0idHJ1ZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuUFJPSkVDVF9BVFRSIiB2YWx1ZT0iIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9CVUlMREVSX0VOQUJMRUQiIHZhbHVlPSJ0cnVlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0JVSUxEX1NDT1BFIiB2YWx1ZT0iJHt3b3JraW5nX3NldDombHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90Oz8mZ3Q7JiMxMzsmIzEwOyZsdDtyZXNvdXJjZXMmZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmNsYXNzcGF0aCZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5leHRlcm5hbFRvb2xCdWlsZGVycyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5naXRpZ25vcmUmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8ucHJvamVjdCZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5zZXR0aW5ncyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL0FQUDRNQ19FeGFtcGxlX1RyYW5zZm9ybWF0aW9uLnByb2R1Y3QmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9idWlsZC5wcm9wZXJ0aWVzJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvaW5wdXQmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9pbnB1dC5wcm9wZXJ0aWVzJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvTUVUQS1JTkYmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9vdXRwdXQmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9wbHVnaW4ueG1sJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvcG9tLnhtbCZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3NyYyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3RhcmdldCZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0xPQ0FUSU9OIiB2YWx1ZT0iJHtwcm9qZWN0X2xvYzovYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcH0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9SVU5fQlVJTERfS0lORFMiIHZhbHVlPSJpbmNyZW1lbnRhbCxhdXRvLCIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9UT09MX0FSR1VNRU5UUyIgdmFsdWU9Ii1EYnVpbGQucHJvamVjdD0ke3Byb2plY3RfbG9jOi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwfSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfVFJJR0dFUlNfQ09ORklHVVJFRCIgdmFsdWU9InRydWUiLz4KLTwvbGF1bmNoQ29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWI2Y2U4ZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTxwcm9qZWN0IG5hbWU9ImNvcHlFeGFtcGxlIiBkZWZhdWx0PSJtYWluIiBiYXNlZGlyPSIuLi8uLiI+Ci0KLQk8cHJvcGVydHkgbmFtZT0iaW5zdGFsbGVyIiB2YWx1ZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIgLz4KLQk8aW1wb3J0IGZpbGU9Ii4uLy4uLy4uLy4uL2J1aWxkLyR7aW5zdGFsbGVyfS9jb3B5RXhhbXBsZUxpYi5hbnQiIG9wdGlvbmFsPSJ0cnVlIiAvPgotCTxiYXNlbmFtZSBmaWxlPSIke2J1aWxkLnByb2plY3R9IiBwcm9wZXJ0eT0icHJvamVjdCIgLz4KLQotCTx0YXJnZXQgbmFtZT0ibWFpbiI+Ci0JCTxjb3B5RXhhbXBsZSBwcm9qZWN0PSIke3Byb2plY3R9IiAvPgotCTwvdGFyZ2V0PgotCi08L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5naXRpZ25vcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlOTAyZTguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotb3V0cHV0LyoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ0OTM2YS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcDwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5FeHRlcm5hbFRvb2xCdWlsZGVyPC9uYW1lPgotCQkJPHRyaWdnZXJzPmF1dG8sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPgotCQkJPGFyZ3VtZW50cz4KLQkJCQk8ZGljdGlvbmFyeT4KLQkJCQkJPGtleT5MYXVuY2hDb25maWdIYW5kbGU8L2tleT4KLQkJCQkJPHZhbHVlPiZsdDtwcm9qZWN0Jmd0Oy8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC5sYXVuY2g8L3ZhbHVlPgotCQkJCTwvZGljdGlvbmFyeT4KLQkJCQk8ZGljdGlvbmFyeT4KLQkJCQkJPGtleT5pbmNjbGVhbjwva2V5PgotCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+Ci0JCQkJPC9kaWN0aW9uYXJ5PgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzY4YTYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9FeGFtcGxlX1NhbXBsZV9Nb2RlbF9UcmFuc2Zvcm1hdGlvbi5wcm9kdWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9FeGFtcGxlX1NhbXBsZV9Nb2RlbF9UcmFuc2Zvcm1hdGlvbi5wcm9kdWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTIzMmQxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvRXhhbXBsZV9TYW1wbGVfTW9kZWxfVHJhbnNmb3JtYXRpb24ucHJvZHVjdAorKysgL2Rldi9udWxsCkBAIC0xLDE5MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPD9wZGUgdmVyc2lvbj0iMy41Ij8+Ci0KLTxwcm9kdWN0IG5hbWU9IkV4YW1wbGU6IFNhbXBsZSBNb2RlbCBUcmFuc2Zvcm1hdGlvbiIgdWlkPSJ0ZXN0IiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC5wcm9kdWN0IiBhcHBsaWNhdGlvbj0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC5hcHBsaWNhdGlvbiIgdmVyc2lvbj0iMSIgdXNlRmVhdHVyZXM9ImZhbHNlIiBpbmNsdWRlTGF1bmNoZXJzPSJ0cnVlIj4KLQotICAgPGNvbmZpZ0luaSB1c2U9ImRlZmF1bHQiPgotICAgPC9jb25maWdJbmk+Ci0KLSAgIDxsYXVuY2hlckFyZ3M+Ci0gICAgICA8cHJvZ3JhbUFyZ3M+LS1pbnB1dC5wcm9wcyAmcXVvdDske3dvcmtzcGFjZV9sb2M6YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcH0vaW5wdXQucHJvcGVydGllcyZxdW90OwotICAgICAgPC9wcm9ncmFtQXJncz4KLSAgICAgIDx2bUFyZ3NNYWM+LVhzdGFydE9uRmlyc3RUaHJlYWQgLURvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwuY2FyYm9uLnNtYWxsRm9udHMKLSAgICAgIDwvdm1BcmdzTWFjPgotICAgPC9sYXVuY2hlckFyZ3M+Ci0KLSAgIDx3aW5kb3dJbWFnZXMvPgotCi0gICA8bGF1bmNoZXI+Ci0gICAgICA8d2luIHVzZUljbz0iZmFsc2UiPgotICAgICAgICAgPGJtcC8+Ci0gICAgICA8L3dpbj4KLSAgIDwvbGF1bmNoZXI+Ci0KLSAgIDx2bT4KLSAgIDwvdm0+Ci0KLSAgIDxwbHVnaW5zPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcCIvPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybSIvPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydCIvPgotICAgICAgPHBsdWdpbiBpZD0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJjb20uZ29vZ2xlLmd1YXZhIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJjb20uZ29vZ2xlLmluamVjdCIvPgotICAgICAgPHBsdWdpbiBpZD0iY29tLmlibS5pY3UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImphdmF4LmFubm90YXRpb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9ImphdmF4LmluamVjdCIvPgotICAgICAgPHBsdWdpbiBpZD0iamF2YXgueG1sIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmJhdGlrLmNvbnN0YW50cyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5iYXRpay5jc3MiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuYmF0aWsuaTE4biIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5iYXRpay51dGlsIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmJhdGlrLnV0aWwuZ3VpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMuY2xpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMuaW8iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5qeHBhdGgiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5sYW5nIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5jb21tb25zLm1hdGgzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28uY29tbWFuZCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLmNvbW1hbmQuc291cmNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28ucnVudGltZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5nb2dvLnJ1bnRpbWUuc291cmNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmdvZ28uc2hlbGwiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZ29nby5zaGVsbC5zb3VyY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguc2NyIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LnNjci5zb3VyY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUubG9nNGoiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUueGVyY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLnhtbC5yZXNvbHZlciIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS54bWwuc2VyaWFsaXplciIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS54bWxncmFwaGljcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLmNvbnZlcnRlcnMubG9nNGouY29uZmlndXJhdGlvbiIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29tcGFyZS5jb3JlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmNvbW1hbmRzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmNvbnRlbnR0eXBlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmRhdGFiaW5kaW5nIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5jb3JlLmRhdGFiaW5kaW5nLm9ic2VydmFibGUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuZGF0YWJpbmRpbmcucHJvcGVydHkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuZXhwcmVzc2lvbnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuZmlsZXN5c3RlbSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5maWxlc3lzdGVtLndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUuam9icyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucnVudGltZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuY29yZS52YXJpYWJsZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuY29tbWFuZHMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuY29udGV4dHMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuZGkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuZGkuYW5ub3RhdGlvbnMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LmNvcmUuZGkuZXh0ZW5zaW9ucyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQuY29yZS5kaS5leHRlbnNpb25zLnN1cHBsaWVyIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5jb3JlLnNlcnZpY2VzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC5lbWYueHBhdGgiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLmJpbmRpbmdzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS5jc3MuY29yZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuY3NzLnN3dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuY3NzLnN3dC50aGVtZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuZGkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLmRpYWxvZ3MiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLm1vZGVsLndvcmtiZW5jaCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkuc2VydmljZXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLndpZGdldHMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLndvcmtiZW5jaCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZTQudWkud29ya2JlbmNoLmFkZG9ucy5zd3QiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmU0LnVpLndvcmtiZW5jaC5yZW5kZXJlcnMuc3d0Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS53b3JrYmVuY2guc3d0Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lNC51aS53b3JrYmVuY2gzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5jb21tb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5jb21tb24udWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lY29yZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLmNoYW5nZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhjb3JlLmxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLmVkaXQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi5lZGl0LnVpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lbWYudHJhbnNhY3Rpb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi50cmFuc2FjdGlvbi51aSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZW1mLnZhbGlkYXRpb24iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi53b3Jrc3BhY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVtZi53b3Jrc3BhY2UudWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guYXBwIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmJpZGkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guY29tbW9uIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmRzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LmV2ZW50Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnAyLmNvcmUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucDIuZW5naW5lIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnAyLm1ldGFkYXRhIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnAyLm1ldGFkYXRhLnJlcG9zaXRvcnkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gucDIucmVwb3NpdG9yeSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5wcmVmZXJlbmNlcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC5yZWdpb24iIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnJlZ2lzdHJ5Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnNlY3VyaXR5Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnNlY3VyaXR5LndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3guc3VwcGxlbWVudCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZXF1aW5veC50cmFuc2Zvcm1zLmhvb2siIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5lcXVpbm94LnV0aWwiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmVxdWlub3gud2VhdmluZy5ob29rIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuZngub3NnaSIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmhlbHAiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmpmYWNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5qZmFjZS5kYXRhYmluZGluZyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UuamZhY2UudGV4dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaS5jb21wYXRpYmlsaXR5LnN0YXRlIiBmcmFnbWVudD0idHJ1ZSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaS5zZXJ2aWNlcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaS5zZXJ2aWNlcy5zb3VyY2UiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kudXRpbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LmVtZiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LmVtZi5lZGl0b3JzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguZW1mLmVkaXRvcnMuZm9ybXMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5lbWYudWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5lbWYud29ya3NwYWNlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbnguZW1mLndvcmtzcGFjZS51aSIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3BoaW54LnBsYXRmb3JtIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS5zcGhpbngucGxhdGZvcm0udWkiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnN3dCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uuc3d0LndpbjMyLndpbjMyLng4Nl82NCIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnRleHQiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5jb25zb2xlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5mb3JtcyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudWkuaWRlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS5uYXZpZ2F0b3IiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpLnZpZXdzIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS52aWV3cy5wcm9wZXJ0aWVzLnRhYmJlZCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudWkud2luMzIiIGZyYWdtZW50PSJ0cnVlIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS51aS53b3JrYmVuY2giLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnVpLndvcmtiZW5jaC50ZXh0ZWRpdG9yIi8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS54dGVuZC5saWIiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZW5kLmxpYi5tYWNybyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UueHRleHQubG9nZ2luZyIgZnJhZ21lbnQ9InRydWUiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnh0ZXh0LnhiYXNlLmxpYiIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmpkb20iLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy50dWthYW5pLnh6Ii8+Ci0gICAgICA8cGx1Z2luIGlkPSJvcmcudzNjLmNzcy5zYWMiLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy53M2MuZG9tLmV2ZW50cyIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLnczYy5kb20uc21pbCIvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLnczYy5kb20uc3ZnIi8+Ci0gICA8L3BsdWdpbnM+Ci0KLSAgIDxjb25maWd1cmF0aW9ucz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLmNvcmUucnVudGltZSIgYXV0b1N0YXJ0PSJ0cnVlIiBzdGFydExldmVsPSIxIiAvPgotICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2Uub3NnaSIgYXV0b1N0YXJ0PSJmYWxzZSIgc3RhcnRMZXZlbD0iMSIgLz4KLSAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLm9zZ2kuc2VydmljZXMiIGF1dG9TdGFydD0iZmFsc2UiIHN0YXJ0TGV2ZWw9IjAiIC8+Ci0gICAgICA8cHJvcGVydHkgbmFtZT0iZXF1aW5veC51c2UuZHMiIHZhbHVlPSJmYWxzZSIgLz4KLSAgIDwvY29uZmlndXJhdGlvbnM+Ci0KLSAgIDxwcmVmZXJlbmNlc0luZm8+Ci0gICAgICA8dGFyZ2V0ZmlsZSBvdmVyd3JpdGU9ImZhbHNlIi8+Ci0gICA8L3ByZWZlcmVuY2VzSW5mbz4KLQotICAgPGNzc0luZm8+Ci0gICA8L2Nzc0luZm8+Ci0KLTwvcHJvZHVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTNmMTNkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEFQUDRNQyBUcmFuc2Zvcm1hdGlvbiBFeGFtcGxlIC0gQXBwbGljYXRpb24KLUJ1bmRsZS1TeW1ib2xpY05hbWU6IGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHA7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4zLjAucXVhbGlmaWVyCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOAotQnVuZGxlLVZlbmRvcjogRWNsaXBzZSBBUFA0TUMKLVJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24KLUF1dG9tYXRpYy1Nb2R1bGUtTmFtZTogYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9hYm91dC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRmNzgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjN2IyNWIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSMgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSMgCi0jICAgQ29udHJpYnV0b3JzOgotIyAgCSBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotc291cmNlLi4gPSBzcmMvCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwKLXNyYy5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+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+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2lucHV0LnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL2lucHV0LnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3MmFmYzEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9pbnB1dC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSMgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSMgCi0jICAgQ29udHJpYnV0b3JzOgotIyAgCSBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotaW5wdXRfbW9kZWxzX2ZvbGRlcj0uL2lucHV0L2FtYWx0aGVhX21vZGVscwotbTJtX291dHB1dF9mb2xkZXI9Li9vdXRwdXQvbTJtX291dHB1dF9tb2RlbHMKLW0ydF9vdXRwdXRfZm9sZGVyPS4vb3V0cHV0L20ydF9vdXRwdXRfdGV4dF9maWxlcwotbG9nX2ZpbGU9Li9vdXRwdXQvdHJhbnNmb3JtYXRpb24udHh0Ci10cmFuZm9ybWF0aW9uQ29uZmlnSURzPWFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0uY29uZmlnO2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY29uZmlnClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvZGVtb2Nhci5hbXhtaSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvaW5wdXQvYW1hbHRoZWFfbW9kZWxzL2RlbW9jYXIuYW14bWkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3NjcyM2IuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9pbnB1dC9hbWFsdGhlYV9tb2RlbHMvZGVtb2Nhci5hbXhtaQorKysgL2Rldi9udWxsCkBAIC0xLDc5OSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGFtOkFtYWx0aGVhIHhtbG5zOmFtPSJodHRwOi8vYXBwNG1jLmVjbGlwc2Uub3JnL2FtYWx0aGVhLzAuOS44IiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtaTp2ZXJzaW9uPSIyLjAiPgotICA8Y29tbW9uRWxlbWVudHM+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+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3BsdWdpbi54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3OGFkNjkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9wbHVnaW4ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/ZWNsaXBzZSB2ZXJzaW9uPSIzLjQiPz4KLTxwbHVnaW4+Ci0gICAgIDxleHRlbnNpb24KLSAgICAgICAgIGlkPSJhcHBsaWNhdGlvbiIKLSAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuYXBwbGljYXRpb25zIj4KLSAgICAgIDxhcHBsaWNhdGlvbgotICAgICAgICAgICAgdmlzaWJsZT0idHJ1ZSI+Ci0gICAgICAgICA8cnVuCi0gICAgICAgICAgICAgICBjbGFzcz0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC5TYW1wbGVBcHBsaWNhdGlvbiI+Ci0gICAgICAgICA8L3J1bj4KLSAgICAgIDwvYXBwbGljYXRpb24+Ci0gICA8L2V4dGVuc2lvbj4KLSAKLSAgICA8ZXh0ZW5zaW9uCi0gICAgICAgICBpZD0icHJvZHVjdCIKLSAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUucHJvZHVjdHMiPgotICAgICAgPHByb2R1Y3QKLSAgICAgICAgICAgIGFwcGxpY2F0aW9uPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwLmFwcGxpY2F0aW9uIgotICAgICAgICAgICAgbmFtZT0iRXhhbXBsZTogU2FtcGxlIE1vZGVsIFRyYW5zZm9ybWF0aW9uIj4KLSAgICAgICAgIDxwcm9wZXJ0eQotICAgICAgICAgICAgICAgbmFtZT0iYXBwTmFtZSIKLSAgICAgICAgICAgICAgIHZhbHVlPSJFeGFtcGxlOiBTYW1wbGUgTW9kZWwgVHJhbnNmb3JtYXRpb24iPgotICAgICAgICAgPC9wcm9wZXJ0eT4KLSAgICAgIDwvcHJvZHVjdD4KLSAgIDwvZXh0ZW5zaW9uPgotPC9wbHVnaW4+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5OTRlNjYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0JPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+Ci0JCTxncm91cElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbjwvZ3JvdXBJZD4KLQkJPGFydGlmYWN0SWQ+cGFyZW50PC9hcnRpZmFjdElkPgotCQk8dmVyc2lvbj4wLjMuMC1TTkFQU0hPVDwvdmVyc2lvbj4KLQk8L3BhcmVudD4KLQkKLQk8cHJvcGVydGllcz4KLQkJPHBsdWdpbi1pZD5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwPC9wbHVnaW4taWQ+Ci0JCTxleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb24+Li4vLi4vLi4vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXI8L2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbj4KLQk8L3Byb3BlcnRpZXM+IAkKLQotCTxhcnRpZmFjdElkPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHA8L2FydGlmYWN0SWQ+Ci0JPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KLQotCTxidWlsZD4KLQkJPHBsdWdpbnM+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1hbnRydW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KLQotCQkJCTxleGVjdXRpb25zPgotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPnJlcGxhY2UtYnVpbGQtdG9rZW48L2lkPgotCQkJCQkJPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgotCi0JCQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJCQk8dGFyZ2V0PgotCQkJCQkJCQkgPGNvcHkgdG9kaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iPgotCQkJCQkJCQkJPGZpbGVzZXQgZGlyPSIuLyI+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuZXh0ZXJuYWxUb29sQnVpbGRlcnMvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iZGF0YWJhc2UvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iYmluLyIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9InRhcmdldC8iIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UubXlseW4qIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMucHJlZnMiIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIqKi8uZ2l0aWdub3JlIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcG9tLnhtbCIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9IioqL3JlbGVhc2UuKiIgLz4KLQkJCQkJCQkJCTxpbmNsdWRlIG5hbWU9IioqIiAvPgotCQkJCQkJCQkJPC9maWxlc2V0PgotCQkJCQkJCQkgPC9jb3B5PiAKLQkJCQkJCQkJIAotCQkJCQkJCQkgCQkgPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0ic2ciCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0icyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLmVtZi5jZG8ucmVsZW5nLnZlcnNpb24uVmVyc2lvbkJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCQkJCQkJCTwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxpZD5hdXRvLWNsZWFuPC9pZD4KLQkJCQkJCTxwaGFzZT5jbGVhbjwvcGhhc2U+Ci0KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTx0YXJnZXQ+Ci0JCQkJCQkJCSA8ZGVsZXRlICBkaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iLz4KLQkJCQkJCSAgIDwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCTwvZXhlY3V0aW9ucz4KLQotCQkJPC9wbHVnaW4+Ci0JCTwvcGx1Z2lucz4KLQk8L2J1aWxkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvc3JjL2FwcDRtYy9leGFtcGxlL3RyYW5zZm9ybS9hcHAvU2FtcGxlQXBwbGljYXRpb24uamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAvc3JjL2FwcDRtYy9leGFtcGxlL3RyYW5zZm9ybS9hcHAvU2FtcGxlQXBwbGljYXRpb24uamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTgzM2RmMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwL3NyYy9hcHA0bWMvZXhhbXBsZS90cmFuc2Zvcm0vYXBwL1NhbXBsZUFwcGxpY2F0aW9uLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotIC8qKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHA7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGU7Ci1pbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwuUHJvcGVydGllczsKLQotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouTG9nZ2VyOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlLkFwcGxpY2F0aW9uOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVxdWlub3guYXBwLklBcHBsaWNhdGlvbkNvbnRleHQ7Ci0KLXB1YmxpYyBjbGFzcyBTYW1wbGVBcHBsaWNhdGlvbiBleHRlbmRzIEFwcGxpY2F0aW9uIHsKLQotCUBPdmVycmlkZQotCXB1YmxpYyBPYmplY3Qgc3RhcnQoSUFwcGxpY2F0aW9uQ29udGV4dCBjb250ZXh0KSB0aHJvd3MgRXhjZXB0aW9uIHsKLQkJcmV0dXJuIHN1cGVyLnN0YXJ0KGNvbnRleHQpOwotCX0KLQotCUBPdmVycmlkZQotCXByb3RlY3RlZCBQcm9wZXJ0aWVzIGdldElucHV0UGFyYW1ldGVycyhJQXBwbGljYXRpb25Db250ZXh0IGNvbnRleHQpIHRocm93cyBJT0V4Y2VwdGlvbiwgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsgCi0KLQotCQkgCi0JCVN0cmluZ1tdIGFyZ3MgPSAoU3RyaW5nW10pIGNvbnRleHQuZ2V0QXJndW1lbnRzKCkuZ2V0KCJhcHBsaWNhdGlvbi5hcmdzIik7Ci0KLQkJaWYgKGFyZ3MgIT0gbnVsbCAmJiBhcmdzLmxlbmd0aCA+IDApIHsKLQotCQkJU3RyaW5nIGlucHV0UHJvcHNGaWxlID0gYXJnc1sxXTsKLQotCQkJRmlsZSBwcm9wZXJ0aWVzRmlsZSA9IG5ldyBGaWxlKGlucHV0UHJvcHNGaWxlKTsKLQotCQkJUHJvcGVydGllcyBwcm9wZXJ0aWVzID0gbmV3IFByb3BlcnRpZXMoKTsKLQotCQkJcHJvcGVydGllcy5sb2FkKG5ldyBGaWxlSW5wdXRTdHJlYW0ocHJvcGVydGllc0ZpbGUpKTsKLQkJCQotCQkJLy9Ob3cgY2hlY2tpbmcgaWYgdGhlIHVzZXIgaGFzIHNwZWNpZmllZCBhYnNvbHV0ZSBwYXRocyBpbiB0aGUgcHJvcGVydGllcyBmaWxlID8KLQkJCQotCQkJT2JqZWN0IGlucHV0TW9kZWxzRm9sZGVyID0gcHJvcGVydGllcy5nZXQoImlucHV0X21vZGVsc19mb2xkZXIiKTsKLQkJCU9iamVjdCBtMm1fb3V0cHV0TW9kZWxzRm9sZGVyID0gcHJvcGVydGllcy5nZXQoIm0ybV9vdXRwdXRfZm9sZGVyIik7Ci0JCQlPYmplY3QgbTJ0X291dHB1dF9mb2xkZXIgPSBwcm9wZXJ0aWVzLmdldCgibTJ0X291dHB1dF9mb2xkZXIiKTsKLQkJCU9iamVjdCBsb2dGaWxlID0gcHJvcGVydGllcy5nZXQoImxvZ19maWxlIik7Ci0KLQkJCWlmKGlucHV0TW9kZWxzRm9sZGVyICE9bnVsbCkgewotCQkJCVN0cmluZyBwYXRoPWlucHV0TW9kZWxzRm9sZGVyLnRvU3RyaW5nKCk7Ci0KLQkJCQlTdHJpbmcgbmV3UGF0aD1uZXcgRmlsZShwYXRoKS5leGlzdHMoKT9wYXRoOm5ldyBGaWxlKHByb3BlcnRpZXNGaWxlLmdldFBhcmVudCgpK0ZpbGUuc2VwYXJhdG9yKyBwYXRoKS5nZXRDYW5vbmljYWxQYXRoKCkgIDsKLQkJCQotCQkJCXByb3BlcnRpZXMucHV0KCJpbnB1dF9tb2RlbHNfZm9sZGVyIiwgbmV3UGF0aCk7Ci0JCQkJCi0JCQl9Ci0JCQlpZihtMm1fb3V0cHV0TW9kZWxzRm9sZGVyICE9bnVsbCkgewotCQkJCVN0cmluZyBwYXRoPW0ybV9vdXRwdXRNb2RlbHNGb2xkZXIudG9TdHJpbmcoKTsKLQkJCQkKLQkJCQlTdHJpbmcgbmV3UGF0aD1uZXcgRmlsZShwYXRoKS5leGlzdHMoKT9wYXRoOm5ldyBGaWxlKHByb3BlcnRpZXNGaWxlLmdldFBhcmVudCgpK0ZpbGUuc2VwYXJhdG9yKyBwYXRoKS5nZXRDYW5vbmljYWxQYXRoKCk7Ci0JCQkJCi0JCQkJcHJvcGVydGllcy5wdXQoIm0ybV9vdXRwdXRfZm9sZGVyIiwgbmV3UGF0aCk7Ci0JCQkJCi0JCQl9Ci0JCQlpZihtMnRfb3V0cHV0X2ZvbGRlciAhPW51bGwpIHsKLQkJCQlTdHJpbmcgcGF0aD1tMnRfb3V0cHV0X2ZvbGRlci50b1N0cmluZygpOwotCQkJCQotCQkJCVN0cmluZyBuZXdQYXRoPW5ldyBGaWxlKHBhdGgpLmV4aXN0cygpP3BhdGg6bmV3IEZpbGUocHJvcGVydGllc0ZpbGUuZ2V0UGFyZW50KCkrRmlsZS5zZXBhcmF0b3IrIHBhdGgpLmdldENhbm9uaWNhbFBhdGgoKTsKLQkJCQkKLQkJCQlwcm9wZXJ0aWVzLnB1dCgibTJ0X291dHB1dF9mb2xkZXIiLCBuZXdQYXRoKTsKLQkJCQkKLQkJCX0KLQkJCWlmKGxvZ0ZpbGUgIT1udWxsKSB7Ci0JCQkJU3RyaW5nIHBhdGg9bG9nRmlsZS50b1N0cmluZygpOwotCQkJCQotCQkJCVN0cmluZyBuZXdQYXRoPW5ldyBGaWxlKHBhdGgpLmV4aXN0cygpP3BhdGg6bmV3IEZpbGUocHJvcGVydGllc0ZpbGUuZ2V0UGFyZW50KCkrRmlsZS5zZXBhcmF0b3IrIHBhdGgpLmdldENhbm9uaWNhbFBhdGgoKSA7Ci0JCQkJCi0JCQkJcHJvcGVydGllcy5wdXQoImxvZ19maWxlIiwgbmV3UGF0aCk7Ci0JCQkJCi0JCQl9Ci0JCQkKLQotCQkJcmV0dXJuIHByb3BlcnRpZXM7Ci0JCX0KLQotCQlyZXR1cm4gbnVsbDsKLQkKLQl9Ci0KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgTG9nZ2VyIGdldExvZ2dlcihQcm9wZXJ0aWVzIGlucHV0UGFyYW1ldGVycykgewotCQlyZXR1cm4gc3VwZXIuZ2V0TG9nZ2VyKGlucHV0UGFyYW1ldGVycyk7Ci0JfQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjgzMzdlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLmNsYXNzcGF0aAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxjbGFzc3BhdGg+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KYXZhU0UtMS44Ii8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ieHRlbmQtZ2VuIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Ci08L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0ubGF1bmNoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS5sYXVuY2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2YjNmOWUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS5sYXVuY2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KLTxsYXVuY2hDb25maWd1cmF0aW9uIHR5cGU9Im9yZy5lY2xpcHNlLmFudC5BbnRCdWlsZGVyTGF1bmNoQ29uZmlndXJhdGlvblR5cGUiPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWkuQVRUUl9UQVJHRVRTX1VQREFURUQiIHZhbHVlPSJ0cnVlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aS5ERUZBVUxUX1ZNX0lOU1RBTEwiIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWlTRVRfSU5QVVRIQU5ETEVSIiB2YWx1ZT0iZmFsc2UiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLkFUVFJfUkVGUkVTSF9TQ09QRSIgdmFsdWU9IiR7d29ya2luZ19zZXQ6Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cmVzb3VyY2VzJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuY2FwdHVyZV9vdXRwdXQiIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5BVFRSX0NPTlNPTEVfT1VUUFVUX09OIiB2YWx1ZT0iZmFsc2UiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuQVRUUl9MQVVOQ0hfSU5fQkFDS0dST1VORCIgdmFsdWU9ImZhbHNlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5DTEFTU1BBVEhfUFJPVklERVIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQudWkuQW50Q2xhc3NwYXRoUHJvdmlkZXIiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5ERUZBVUxUX0NMQVNTUEFUSCIgdmFsdWU9InRydWUiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLlBST0pFQ1RfQVRUUiIgdmFsdWU9IiIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfQlVJTERFUl9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9CVUlMRF9TQ09QRSIgdmFsdWU9IiR7d29ya2luZ19zZXQ6Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cmVzb3VyY2VzJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5jbGFzc3BhdGgmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uZXh0ZXJuYWxUb29sQnVpbGRlcnMmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uZ2l0aWdub3JlJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLnByb2plY3QmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uc2V0dGluZ3MmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9idWlsZC5wcm9wZXJ0aWVzJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vTUVUQS1JTkYmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9wbHVnaW4ueG1sJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vcG9tLnhtbCZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYyZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3RhcmdldCZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3h0ZW5kLWdlbiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0xPQ0FUSU9OIiB2YWx1ZT0iJHtwcm9qZWN0X2xvYzovYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybX0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9SVU5fQlVJTERfS0lORFMiIHZhbHVlPSJpbmNyZW1lbnRhbCxhdXRvLCIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9UT09MX0FSR1VNRU5UUyIgdmFsdWU9Ii1EYnVpbGQucHJvamVjdD0ke3Byb2plY3RfbG9jOi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtfSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfVFJJR0dFUlNfQ09ORklHVVJFRCIgdmFsdWU9InRydWUiLz4KLTwvbGF1bmNoQ29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWI2Y2U4ZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTxwcm9qZWN0IG5hbWU9ImNvcHlFeGFtcGxlIiBkZWZhdWx0PSJtYWluIiBiYXNlZGlyPSIuLi8uLiI+Ci0KLQk8cHJvcGVydHkgbmFtZT0iaW5zdGFsbGVyIiB2YWx1ZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIgLz4KLQk8aW1wb3J0IGZpbGU9Ii4uLy4uLy4uLy4uL2J1aWxkLyR7aW5zdGFsbGVyfS9jb3B5RXhhbXBsZUxpYi5hbnQiIG9wdGlvbmFsPSJ0cnVlIiAvPgotCTxiYXNlbmFtZSBmaWxlPSIke2J1aWxkLnByb2plY3R9IiBwcm9wZXJ0eT0icHJvamVjdCIgLz4KLQotCTx0YXJnZXQgbmFtZT0ibWFpbiI+Ci0JCTxjb3B5RXhhbXBsZSBwcm9qZWN0PSIke3Byb2plY3R9IiAvPgotCTwvdGFyZ2V0PgotCi08L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBkODQ4OS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybTwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnh0ZXh0LnVpLnNoYXJlZC54dGV4dEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXI8L25hbWU+Ci0JCQk8dHJpZ2dlcnM+YXV0byxmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+Ci0JCQk8YXJndW1lbnRzPgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PkxhdW5jaENvbmZpZ0hhbmRsZTwva2V5PgotCQkJCQk8dmFsdWU+Jmx0O3Byb2plY3QmZ3Q7Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtLmxhdW5jaDwvdmFsdWU+Ci0JCQkJPC9kaWN0aW9uYXJ5PgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PmluY2NsZWFuPC9rZXk+Ci0JCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4KLQkJCQk8L2RpY3Rpb25hcnk+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS54dGV4dC51aS5zaGFyZWQueHRleHROYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNjhhNjEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLmlubGluZUpzckJ5dGVjb2RlPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udGFyZ2V0UGxhdGZvcm09MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hc3NlcnRJZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS44CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU1ZDE5ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL01FVEEtSU5GL01BTklGRVNULk1GCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wCi1CdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogQVBQNE1DIFRyYW5zZm9ybWF0aW9uIEV4YW1wbGUgLSBNMk0KLUJ1bmRsZS1TeW1ib2xpY05hbWU6IGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm07c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4zLjAucXVhbGlmaWVyCi1CdW5kbGUtVmVuZG9yOiBFY2xpcHNlIEFQUDRNQwotQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEphdmFTRS0xLjgKLVJlcXVpcmUtQnVuZGxlOiBjb20uZ29vZ2xlLmluamVjdDtidW5kbGUtdmVyc2lvbj0iMy4wLjAiLAotIG9yZy5hcGFjaGUubG9nNGo7YnVuZGxlLXZlcnNpb249IjEuMi4xNSIsCi0gb3JnLmVjbGlwc2UuZW1mO2J1bmRsZS12ZXJzaW9uPSIyLjYuMCIsCi0gb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsO3Zpc2liaWxpdHk6PXJlZXhwb3J0LAotIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLAotIGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbAotQXV0b21hdGljLU1vZHVsZS1OYW1lOiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdlMzJjNS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1zb3VyY2UuLiA9IHNyYy8sXAotICAgICAgICAgICB4dGVuZC1nZW4vCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKLXNyYy5pbmNsdWRlcyA9IGVwbC0yLjAuaHRtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+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+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3BsdWdpbi54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhZWI0YWIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9wbHVnaW4ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/ZWNsaXBzZSB2ZXJzaW9uPSIzLjQiPz4KLTxwbHVnaW4+Ci0gPGV4dGVuc2lvbgotICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29uZmlndXJhdGlvbiI+Ci0gICAgPGNvbmZpZwotICAgICAgICAgIGVuYWJsZWQ9InRydWUiCi0gICAgICAgICAgaWQ9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0uY29uZmlnIgotICAgICAgICAgIG0ybV9jbGFzcz0iY29uZmlndXJhdGlvbi5NMk1UcmFuc2Zvcm1hdGlvbiIKLSAgICAgICAgICBtb2R1bGVfY2xhc3M9Im1vZHVsZS5EZWZhdWx0TTJNSW5qZWN0b3JNb2R1bGUiPgotICAgIDwvY29uZmlnPgotIDwvZXh0ZW5zaW9uPgotPC9wbHVnaW4+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxNjZlYWIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0JPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+Ci0JCTxncm91cElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbjwvZ3JvdXBJZD4KLQkJPGFydGlmYWN0SWQ+cGFyZW50PC9hcnRpZmFjdElkPgotCQk8dmVyc2lvbj4wLjMuMC1TTkFQU0hPVDwvdmVyc2lvbj4KLQk8L3BhcmVudD4KLQotCTxwcm9wZXJ0aWVzPgotCQk8cGx1Z2luLWlkPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm08L3BsdWdpbi1pZD4KLQkJPGV4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbj4uLi8uLi8uLi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlcjwvZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9uPgotCTwvcHJvcGVydGllcz4KLQotCTxhcnRpZmFjdElkPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm08L2FydGlmYWN0SWQ+Ci0JPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KLQotCTxidWlsZD4KLQkJPHBsdWdpbnM+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1hbnRydW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KLQotCQkJCTxleGVjdXRpb25zPgotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPnJlcGxhY2UtYnVpbGQtdG9rZW48L2lkPgotCQkJCQkJPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgotCi0JCQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJCQk8dGFyZ2V0PgotCQkJCQkJCQk8Y29weSB0b2Rpcj0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfSI+Ci0JCQkJCQkJCQk8ZmlsZXNldCBkaXI9Ii4vIj4KLQkJCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuZXh0ZXJuYWxUb29sQnVpbGRlcnMvIiAvPgotCQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9ImRhdGFiYXNlLyIgLz4KLQkJCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSJiaW4vIiAvPgotCQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9InRhcmdldC8iIC8+Ci0JCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLm15bHluKiIgLz4KLQkJCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLmFwaS50b29scy5wcmVmcyIgLz4KLQkJCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIqKi8uZ2l0aWdub3JlIiAvPgotCQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9IioqL3BvbS54bWwiIC8+Ci0JCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcmVsZWFzZS4qIiAvPgotCQkJCQkJCQkJCTxpbmNsdWRlIG5hbWU9IioqIiAvPgotCQkJCQkJCQkJPC9maWxlc2V0PgotCQkJCQkJCQk8L2NvcHk+Ci0KLQkJCQkJCQkJPHJlcGxhY2VyZWdleHAKLQkJCQkJCQkJCWZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkJCQkJCQlieWxpbmU9ImZhbHNlIiBmbGFncz0ic2ciCi0JCQkJCQkJCQltYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkJCQkJCQlyZXBsYWNlPSIiIC8+Ci0KLQkJCQkJCQkJPHJlcGxhY2VyZWdleHAKLQkJCQkJCQkJCWZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkJCQkJCQlieWxpbmU9ImZhbHNlIiBmbGFncz0icyIKLQkJCQkJCQkJCW1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMuYXBpQW5hbHlzaXNCdWlsZGVyLio/Jmx0Oy9idWlsZENvbW1hbmQ+IgotCQkJCQkJCQkJcmVwbGFjZT0iIiAvPgotCi0JCQkJCQkJCTxyZXBsYWNlcmVnZXhwCi0JCQkJCQkJCQlmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJCQkJCQkJYnlsaW5lPSJmYWxzZSIgZmxhZ3M9InMiCi0JCQkJCQkJCQltYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5lbWYuY2RvLnJlbGVuZy52ZXJzaW9uLlZlcnNpb25CdWlsZGVyLio/Jmx0Oy9idWlsZENvbW1hbmQ+IgotCQkJCQkJCQkJcmVwbGFjZT0iIiAvPgotCi0JCQkJCQkJCTxyZXBsYWNlcmVnZXhwCi0JCQkJCQkJCQlmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJCQkJCQkJYnlsaW5lPSJmYWxzZSIgZmxhZ3M9InMiCi0JCQkJCQkJCQltYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJCQkJCQkJcmVwbGFjZT0iIiAvPgotCi0JCQkJCQkJCTxyZXBsYWNlcmVnZXhwCi0JCQkJCQkJCQlmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJCQkJCQkJYnlsaW5lPSJmYWxzZSIgZmxhZ3M9InMiCi0JCQkJCQkJCQltYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5lbWYuY2RvLnJlbGVuZy52ZXJzaW9uLlZlcnNpb25OYXR1cmUmbHQ7L25hdHVyZT4iCi0JCQkJCQkJCQlyZXBsYWNlPSIiIC8+Ci0JCQkJCQkJPC90YXJnZXQ+Ci0JCQkJCQk8L2NvbmZpZ3VyYXRpb24+Ci0KLQkJCQkJCTxnb2Fscz4KLQkJCQkJCQk8Z29hbD5ydW48L2dvYWw+Ci0JCQkJCQk8L2dvYWxzPgotCQkJCQk8L2V4ZWN1dGlvbj4KLQotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPmF1dG8tY2xlYW48L2lkPgotCQkJCQkJPHBoYXNlPmNsZWFuPC9waGFzZT4KLQotCQkJCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCQkJPHRhcmdldD4KLQkJCQkJCQkJPGRlbGV0ZSBkaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iIC8+Ci0JCQkJCQkJPC90YXJnZXQ+Ci0JCQkJCQk8L2NvbmZpZ3VyYXRpb24+Ci0KLQkJCQkJCTxnb2Fscz4KLQkJCQkJCQk8Z29hbD5ydW48L2dvYWw+Ci0JCQkJCQk8L2dvYWxzPgotCQkJCQk8L2V4ZWN1dGlvbj4KLQotCQkJCTwvZXhlY3V0aW9ucz4KLQotCQkJPC9wbHVnaW4+Ci0KLQkJPC9wbHVnaW5zPgotCTwvYnVpbGQ+Ci08L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvY29uZmlndXJhdGlvbi9NMk1UcmFuc2Zvcm1hdGlvbi5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvY29uZmlndXJhdGlvbi9NMk1UcmFuc2Zvcm1hdGlvbi5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWUwNWFlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL2NvbmZpZ3VyYXRpb24vTTJNVHJhbnNmb3JtYXRpb24uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLSAvKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBjb25maWd1cmF0aW9uOwotCi1pbXBvcnQgamF2YS51dGlsLlByb3BlcnRpZXM7Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ2dlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWFGYWN0b3J5OwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGUuSU1vZGVsVG9Nb2RlbENvbmZpZzsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2U7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlU2V0OwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5pbXBsLlJlc291cmNlU2V0SW1wbDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pLmltcGwuWE1JUmVzb3VyY2VGYWN0b3J5SW1wbDsKLQotaW1wb3J0IFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZTsKLWltcG9ydCBtb2RlbC5sb2FkZXIuQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXI7Ci0KLXB1YmxpYyBjbGFzcyBNMk1UcmFuc2Zvcm1hdGlvbiBpbXBsZW1lbnRzIElNb2RlbFRvTW9kZWxDb25maWcgewotCi0JcHJpdmF0ZSBQcm9wZXJ0aWVzIHBhcmFtZXRlcnM7Ci0KLQlwcml2YXRlIExvZ2dlciBsb2dnZXIgIDsKLQotCXB1YmxpYyBNMk1UcmFuc2Zvcm1hdGlvbigpIHsKLQl9Ci0KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgUmVzb3VyY2VTZXQgZ2V0SW5wdXRSZXNvdXJjZVNldCgpIHsKLQotCQlpZiAocGFyYW1ldGVycyAhPSBudWxsKSB7Ci0KLQkJCVN0cmluZyBmb2xkZXJQYXRoID0gcGFyYW1ldGVycy5nZXRQcm9wZXJ0eSgiaW5wdXRfbW9kZWxzX2ZvbGRlciIpOwotCi0JCQlpZiAoZm9sZGVyUGF0aCAhPSBudWxsKSB7Ci0KLQkJCQlSZXNvdXJjZVNldCByZXNvdXJjZVNldCA9IG5ldyBBbWFsdGhlYU11bHRpRmlsZUxvYWRlcigpLmxvYWRNdWx0aXBsZUZpbGVzKGZvbGRlclBhdGgpOwotCi0JCQkJaWYocmVzb3VyY2VTZXQuZ2V0UmVzb3VyY2VzKCkuc2l6ZSgpPT0wKSB7Ci0JCQkJCWxvZ2dlci5lcnJvcigibm8gQW1hbHRoZWEgbW9kZWwgZmlsZXMgYXJlIGxvYWRlZC4gVmVyaWZ5IGlmIHRoZSBtb2RlbCB2ZXJzaW9uIGlzIDogIiArIEFtYWx0aGVhRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlQW1hbHRoZWEoKS5nZXRWZXJzaW9uKCkpOwotCQkJCX0KLQkJCQkKLQkJCQlyZXR1cm4gcmVzb3VyY2VTZXQ7Ci0JCQl9IGVsc2UgewotCQkJCWxvZ2dlci5lcnJvcigiaW5wdXRfbW9kZWxzX2ZvbGRlciBwYXJhbWV0ZXIgbm90IHNldCIsCi0JCQkJCQluZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oImlucHV0X21vZGVsc19mb2xkZXIgcHJvcGVydHkgbm90IHNldCIpKTsKLQkJCX0KLQotCQl9IGVsc2UgewotCQkJbG9nZ2VyLmVycm9yKCJQYXJhbWV0ZXJzIG9iamVjdCBub3Qgc2V0ICIsIG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigiUGFyYW1ldGVyIG9iamVjdCBpcyBudWxsIikpOwotCQl9Ci0JCXJldHVybiBudWxsOwotCX0KLQotCUBPdmVycmlkZQotCXB1YmxpYyBSZXNvdXJjZVNldCBnZXRPdXB1dFJlc291cmNlU2V0KCkgewotCi0JCVJlc291cmNlU2V0IG91dHB1dFJ1cmNlU2V0ID0gbmV3IFJlc291cmNlU2V0SW1wbCgpOwotCi0JCW91dHB1dFJ1cmNlU2V0LmdldFJlc291cmNlRmFjdG9yeVJlZ2lzdHJ5KCkuZ2V0RXh0ZW5zaW9uVG9GYWN0b3J5TWFwKCkKLQkJCQkucHV0KFJlc291cmNlLkZhY3RvcnkuUmVnaXN0cnkuREVGQVVMVF9FWFRFTlNJT04sIG5ldyBYTUlSZXNvdXJjZUZhY3RvcnlJbXBsKCkpOwotCi0JCW91dHB1dFJ1cmNlU2V0LmdldFBhY2thZ2VSZWdpc3RyeSgpLnB1dChTYW1wbGVNb2RlbFBhY2thZ2UuZU5TX1VSSSwgU2FtcGxlTW9kZWxQYWNrYWdlLmVJTlNUQU5DRSk7Ci0KLQkJcmV0dXJuIG91dHB1dFJ1cmNlU2V0OwotCX0KLQotCUBPdmVycmlkZQotCXB1YmxpYyB2b2lkIHNldFByb3BlcnRpZXMoUHJvcGVydGllcyBwYXJhbWV0ZXJzKSB7Ci0KLQkJdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVyczsKLQl9Ci0JCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgc2V0TG9nZ2VyKExvZ2dlciBsb2dnZXIpIHsKLQotCQl0aGlzLmxvZ2dlciA9IGxvZ2dlcjsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL21vZGVsL2xvYWRlci9BbWFsdGhlYU11bHRpRmlsZUxvYWRlci5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvbW9kZWwvbG9hZGVyL0FtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5MzVhZjcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvbW9kZWwvbG9hZGVyL0FtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgbW9kZWwubG9hZGVyOwotCi1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uRmlsZW5hbWVGaWx0ZXI7Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYVBhY2thZ2U7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLnNwaGlueC5BbWFsdGhlYVJlc291cmNlRmFjdG9yeTsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuVVJJOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQ7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLmltcGwuUmVzb3VyY2VTZXRJbXBsOwotaW1wb3J0IG9yZy5lY2xpcHNlLnNwaGlueC5lbWYucmVzb3VyY2UuRXh0ZW5kZWRSZXNvdXJjZVNldDsKLWltcG9ydCBvcmcuZWNsaXBzZS5zcGhpbnguZW1mLnJlc291cmNlLkV4dGVuZGVkUmVzb3VyY2VTZXRJbXBsOwotCi1wdWJsaWMgY2xhc3MgQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIgewotCi0JcHVibGljIFJlc291cmNlU2V0IGxvYWRNdWx0aXBsZUZpbGVzKFN0cmluZyBkaXJlY3RvcnlQYXRoKSB7Ci0KLQkJRmlsZSBmb2xkZXIgPSBuZXcgRmlsZShkaXJlY3RvcnlQYXRoKTsKLQotCQlpZiAoZm9sZGVyLmlzRGlyZWN0b3J5KCkpIHsKLQkJCUZpbGVbXSBsaXN0RmlsZXMgPSBmb2xkZXIubGlzdEZpbGVzKG5ldyBGaWxlbmFtZUZpbHRlcigpIHsKLQotCQkJCUBPdmVycmlkZQotCQkJCXB1YmxpYyBib29sZWFuIGFjY2VwdChGaWxlIGZpbGUsIFN0cmluZyBuYW1lKSB7Ci0KLQkJCQkJaWYgKG5hbWUuZW5kc1dpdGgoIi5hbXhtaSIpKSB7Ci0JCQkJCQlyZXR1cm4gdHJ1ZTsKLQkJCQkJfQotCi0JCQkJCXJldHVybiBmYWxzZTsKLQkJCQl9Ci0JCQl9KTsKLQotCQkJUmVzb3VyY2VTZXQgcmVzb3VyY2VTZXQgPSBpbml0aWFsaXplUmVzb3VyY2VTZXQoKTsKLQotCQkJbG9hZE11bHRpcGxlRmlsZXMocmVzb3VyY2VTZXQsIGxpc3RGaWxlcyk7Ci0KLQkJCXJldHVybiByZXNvdXJjZVNldDsKLQkJfQotCi0JCXJldHVybiBuZXcgUmVzb3VyY2VTZXRJbXBsKCk7Ci0KLQl9Ci0KLQlwcml2YXRlIExpc3Q8QW1hbHRoZWE+IGxvYWRNdWx0aXBsZUZpbGVzKFJlc291cmNlU2V0IHJlc291cmNlU2V0LCBGaWxlW10gbGlzdEZpbGVzKSB7Ci0KLQkJTGlzdDxBbWFsdGhlYT4gbW9kZWxzID0gbmV3IEFycmF5TGlzdDxBbWFsdGhlYT4oKTsKLQotCQlmb3IgKEZpbGUgYW14bWlGaWxlIDogbGlzdEZpbGVzKSB7Ci0KLQkJCWZpbmFsIFJlc291cmNlIHJlcyA9IHJlc291cmNlU2V0LmNyZWF0ZVJlc291cmNlKFVSSS5jcmVhdGVVUkkoImZpbGU6Ly8vLyIgKyBhbXhtaUZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpKTsKLQkJCXRyeSB7Ci0JCQkJcmVzLmxvYWQobnVsbCk7Ci0JCQkJZm9yIChmaW5hbCBFT2JqZWN0IGNvbnRlbnQgOiByZXMuZ2V0Q29udGVudHMoKSkgewotCQkJCQlpZiAoY29udGVudCBpbnN0YW5jZW9mIEFtYWx0aGVhKSB7Ci0JCQkJCQltb2RlbHMuYWRkKChBbWFsdGhlYSkgY29udGVudCk7Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Ci0JCQkJLy8gaWdub3JlCi0JCQl9Ci0JCX0KLQkJcmV0dXJuIG1vZGVsczsKLQl9Ci0KLQlwcml2YXRlIHN0YXRpYyBSZXNvdXJjZVNldCBpbml0aWFsaXplUmVzb3VyY2VTZXQoKSB7Ci0JCWZpbmFsIEV4dGVuZGVkUmVzb3VyY2VTZXQgcmVzU2V0ID0gbmV3IEV4dGVuZGVkUmVzb3VyY2VTZXRJbXBsKCk7Ci0JCXJlc1NldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpLnB1dCgiYW14bWkiLCBuZXcgQW1hbHRoZWFSZXNvdXJjZUZhY3RvcnkoKSk7Ci0JCUFtYWx0aGVhUGFja2FnZS5lSU5TVEFOQ0UuZUNsYXNzKCk7IC8vIHJlZ2lzdGVyIHRoZSBwYWNrYWdlCi0KLQkJcmV0dXJuIHJlc1NldDsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL21vZHVsZS9EZWZhdWx0TTJNSW5qZWN0b3JNb2R1bGUuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL21vZHVsZS9EZWZhdWx0TTJNSW5qZWN0b3JNb2R1bGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjczNWM2Yi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy9tb2R1bGUvRGVmYXVsdE0yTUluamVjdG9yTW9kdWxlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgbW9kdWxlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLk1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyOwotCi1pbXBvcnQgdGVtcGxhdGVzLkFtYWx0aGVhTW9kZWwyTW9kZWxUcmFuc2Zvcm1lcjsKLQotcHVibGljIGNsYXNzIERlZmF1bHRNMk1JbmplY3Rvck1vZHVsZSBleHRlbmRzIEFic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZSB7Ci0KLQotCUBPdmVycmlkZQotCXByb3RlY3RlZCB2b2lkIGluaXRpYWxpemVCYXNlQ29uZmlndXJhdGlvbigpIHsKLQkJYmluZChNb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lci5jbGFzcykudG8oQW1hbHRoZWFNb2RlbDJNb2RlbFRyYW5zZm9ybWVyLmNsYXNzKTsKLQl9Ci0KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplVHJhbnNmb3JtZXJPYmplY3RzKCkgewotCQkvLyBhZGQgY3VzdG9tIHRyYW5zZm9ybWVyIGJpbmRpbmcgaW4gdGhpcyBtZXRob2QKLQkJCi0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvQW1hbHRoZWFNb2RlbDJNb2RlbFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL0FtYWx0aGVhTW9kZWwyTW9kZWxUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJlZjFkYS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvQW1hbHRoZWFNb2RlbDJNb2RlbFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBhY2thZ2UgdGVtcGxhdGVzCi0KLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3RvcnkKLWltcG9ydCBjb20uZ29vZ2xlLmluamVjdC5JbmplY3QKLWltcG9ydCBqYXZhLmlvLkZpbGUKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWEKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuSFdNb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5NYXBwaW5nTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuT1NNb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLk1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldAotCi1jbGFzcyBBbWFsdGhlYU1vZGVsMk1vZGVsVHJhbnNmb3JtZXIgZXh0ZW5kcyBNb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lciB7Ci0KLQkvKi0gRmFjdG9yeSBpbml0aWFpemF0aW9uICovCi0JdmFsIG91dHB1dE1vZGVsRmFjdG9yeSA9IFNhbXBsZU1vZGVsRmFjdG9yeS5lSU5TVEFOQ0UKLQotCS8qLSBUcmFuc2Zvcm1lciBjbGFzc2VzIGluaXRpYWl6YXRpb24gKi8KLQlASW5qZWN0IGV4dGVuc2lvbiBTV1RyYW5zZm9ybWVyIHN3Ci0KLQlASW5qZWN0IGV4dGVuc2lvbiBIV1RyYW5zZm9ybWVyIGh3Ci0KLQlASW5qZWN0IGV4dGVuc2lvbiBPU1RyYW5zZm9ybWVyIG9zCi0KLQlASW5qZWN0IGV4dGVuc2lvbiBNYXBwaW5nVHJhbnNmb3JtZXIgbXQKLQotCW92ZXJyaWRlIG0ybVRyYW5zZm9ybWF0aW9uKFJlc291cmNlU2V0IGlucHV0UmVzb3VyY2VTZXQsIFJlc291cmNlU2V0IG91dHB1dFJlc291cmNlU2V0KSB7Ci0KLQkJdmFyIGludCBmaWxlSW5kZXggPSAxCi0KLQkJZm9yIChyZXNvdXJjZSA6IGlucHV0UmVzb3VyY2VTZXQucmVzb3VyY2VzKSB7Ci0JCQlmb3IgKGNvbnRlbnQgOiByZXNvdXJjZS5jb250ZW50cykgewotCQkJCS8vIGNvbnRlbnQgaXMgYSBBbWFsdGhlYSBtb2RlbAotCQkJCWxvZ2dlci5pbmZvKCJQcm9jZXNzaW5nIGZpbGUgOiAiICsgcmVzb3VyY2UuVVJJKQotCi0JCQkJdmFsIHNpbXVsYXRpb25Nb2RlbFJvb3QgPSB0cmFuc2Zvcm0oY29udGVudCBhcyBBbWFsdGhlYSkKLQotCQkJCXZhbCBvdXRfdXJpID0gVVJJLmNyZWF0ZUZpbGVVUkkoCi0JCQkJCWdldFByb3BlcnR5KCJtMm1fb3V0cHV0X2ZvbGRlciIpICsgRmlsZS5zZXBhcmF0b3IgKyBmaWxlSW5kZXgrKyArICIucm9vdCIpCi0KLQkJCQl2YWwgb3V0X3Jlc291cmNlID0gb3V0cHV0UmVzb3VyY2VTZXQuY3JlYXRlUmVzb3VyY2Uob3V0X3VyaSkKLQotCQkJCW91dF9yZXNvdXJjZS5jb250ZW50cy5hZGQoc2ltdWxhdGlvbk1vZGVsUm9vdCkKLQotCQkJCW91dF9yZXNvdXJjZS5zYXZlKG51bGwpCi0KLQkJCQlsb2dnZXIuaW5mbygiVHJhbnNmb3JtZWQgbW9kZWwgZmlsZSBnZW5lcmF0ZWQgYXQgOiAiICsgb3V0X3VyaSkKLQotCQkJfQotCQl9Ci0JfQotCi0JZGVmIGNyZWF0ZSBvdXRwdXRNb2RlbEZhY3RvcnkuY3JlYXRlTW9kZWwgdHJhbnNmb3JtKEFtYWx0aGVhIGFtYWx0aGVhKSB7Ci0KLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoU1dUcmFuc2Zvcm1lciwgc3cpCi0KLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoSFdUcmFuc2Zvcm1lciwgaHcpCi0KLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoT1NUcmFuc2Zvcm1lciwgb3MpCi0KLQkJY3VzdG9tT2Jqc1N0b3JlLmluamVjdE1lbWJlcnMoTWFwcGluZ1RyYW5zZm9ybWVyLCBtdCkKLQotCQlody50cmFuc2Zyb21IV01vZGVsKGFtYWx0aGVhLmh3TW9kZWwgYXMgSFdNb2RlbCwgaXQpCi0KLQkJb3MudHJhbnNmcm9tT1NNb2RlbChhbWFsdGhlYS5vc01vZGVsIGFzIE9TTW9kZWwsIGl0KQotCi0JCW10LnRyYW5zZnJvbU1hcHBpbmdNb2RlbChhbWFsdGhlYS5tYXBwaW5nTW9kZWwgYXMgTWFwcGluZ01vZGVsLCBpdCkKLQotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL0hXVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvSFdUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBjYTFkNi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvSFdUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1wYWNrYWdlIHRlbXBsYXRlcwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTW9kZWwKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3RvcnkKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWFGYWN0b3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkhXTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuTWVtb3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuQWJzdHJhY3RUcmFuc2Zvcm1lcgotCi1wdWJsaWMgY2xhc3MgSFdUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0VHJhbnNmb3JtZXIgewotCi0JZGVmIE9TVHJhbnNmb3JtZXIgZ2V0T1MoKSB7Ci0JCXJldHVybiBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoT1NUcmFuc2Zvcm1lcikKLQl9Ci0KLQkvKi0gRmFjdG9yeSBpbml0aWFsaXphdGlvbiAqLwotCXZhbCBvdXRwdXRNb2RlbEZhY3RvcnkgPSBTYW1wbGVNb2RlbEZhY3RvcnkuZUlOU1RBTkNFCi0KLQl2YWwgYW1hbHRoZWFGYWN0b3J5ID0gQW1hbHRoZWFGYWN0b3J5LmVJTlNUQU5DRQotCi0JcHVibGljIGRlZiB0cmFuc2Zyb21IV01vZGVsKEhXTW9kZWwgYW1hbHRoZWFNb2RlbCwgTW9kZWwgc2ltdWxhdGlvbk1vZGVsKSB7Ci0vLwkgCWZvcihhbWFsdGhlYUVjdTphbWFsdGhlYU1vZGVsPy5zeXN0ZW0/LmVjdXMpewotLy8JIAkJCi0vLwkgCQlmb3IoYW1hbHRoZWFNaWNyb0NvbnRyb2xsZXI6IGFtYWx0aGVhRWN1Py5taWNyb2NvbnRyb2xsZXJzKXsKLS8vCSAJCQkKLS8vCSAJCQlmb3IobWVtb3J5OiBhbWFsdGhlYU1pY3JvQ29udHJvbGxlcj8ubWVtb3JpZXMpewotLy8JIAkJCQkKLS8vCSAJCQl2YWwgc2ltdWxhdGlvbk1vZGVsTWVtb3J5ID0JY3JlYXRlTWVtb3J5KG1lbW9yeSk7Ci0vLwkgCQkJCi0vLwkgCQkJc2ltdWxhdGlvbk1vZGVsLm1lbW9yaWVzLmFkZChzaW11bGF0aW9uTW9kZWxNZW1vcnkpCi0vLwkgCQkJCQotLy8JIAkJCX0gCi0vLwkgCQkJCi0vLwkgCQl9Ci0vLwkgCX0KLQl9Ci0KLQlwdWJsaWMgZGVmIGNyZWF0ZSBvdXRwdXRNb2RlbEZhY3RvcnkuY3JlYXRlTWVtb3J5IGNyZWF0ZU1lbW9yeShNZW1vcnkgYW1sdE1lbW9yeSkgewotCQluYW1lID0gYW1sdE1lbW9yeS5uYW1lCi0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvTGFiZWxUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9MYWJlbFRyYW5zZm9ybWVyLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOWM2MGU1Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9MYWJlbFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBhY2thZ2UgdGVtcGxhdGVzCi0KLWNsYXNzIExhYmVsVHJhbnNmb3JtZXIgewotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL01hcHBpbmdUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9NYXBwaW5nVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkMGYzMTkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL01hcHBpbmdUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1wYWNrYWdlIHRlbXBsYXRlcwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTW9kZWwKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3RvcnkKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWFGYWN0b3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLk1hcHBpbmdNb2RlbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5UYXNrU2NoZWR1bGVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuQWJzdHJhY3RUcmFuc2Zvcm1lcgotCi1wdWJsaWMgY2xhc3MgTWFwcGluZ1RyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2Zvcm1lciB7Ci0KLQlkZWYgSFdUcmFuc2Zvcm1lciBod1RyYW5zZm9ybWVyKCkgewotCQlyZXR1cm4gY3VzdG9tT2Jqc1N0b3JlLmdldEluc3RhbmNlKEhXVHJhbnNmb3JtZXIpCi0JfQotCi0JZGVmIE9TVHJhbnNmb3JtZXIgb3NUcmFuc2Zvcm1lcigpIHsKLQkJcmV0dXJuIGN1c3RvbU9ianNTdG9yZS5nZXRJbnN0YW5jZShPU1RyYW5zZm9ybWVyKQotCX0KLQotCS8qLSBGYWN0b3J5IGluaXRpYWxpemF0aW9uICovCi0JdmFsIG91dHB1dE1vZGVsRmFjdG9yeSA9IFNhbXBsZU1vZGVsRmFjdG9yeS5lSU5TVEFOQ0UKLQotCXZhbCBhbWFsdGhlYUZhY3RvcnkgPSBBbWFsdGhlYUZhY3RvcnkuZUlOU1RBTkNFCi0KLQlwdWJsaWMgZGVmIHRyYW5zZnJvbU1hcHBpbmdNb2RlbChNYXBwaW5nTW9kZWwgYW1sdE1hcHBpbmdNb2RlbCwgTW9kZWwgc2ltdWxhdGlvbk1vZGVsKSB7Ci0KLQkJYW1sdE1hcHBpbmdNb2RlbD8uc2NoZWR1bGVyQWxsb2NhdGlvbj8uZm9yRWFjaCBbIGFtbHRTQSB8Ci0KLQkJCWlmIChhbWx0U0Euc2NoZWR1bGVyIGluc3RhbmNlb2YgVGFza1NjaGVkdWxlcikgewotCQkJCXZhbCBzaW11bGF0aW9uTW9kZWxTY2hlZHVsZXIgPSBvc1RyYW5zZm9ybWVyLmNyZWF0ZVNjaGVkdWxlcihhbWx0U0Euc2NoZWR1bGVyIGFzIFRhc2tTY2hlZHVsZXIpCi0KLQkJCQlpZiAoc2ltdWxhdGlvbk1vZGVsU2NoZWR1bGVyLmVDb250YWluZXIgPT09IG51bGwpIHsKLQkJCQkJc2ltdWxhdGlvbk1vZGVsLnNjaGVkdWxlcnMuYWRkKHNpbXVsYXRpb25Nb2RlbFNjaGVkdWxlcikKLQkJCQl9Ci0KLQkJCX0KLQotCQldCi0KLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMm0vc3JjL3RlbXBsYXRlcy9PU1RyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL09TVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMGJkMGUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL09TVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJILgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMKLQotaW1wb3J0IFNhbXBsZU1vZGVsLk1vZGVsCi1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxGYWN0b3J5Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLk9TTW9kZWwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuVGFza1NjaGVkdWxlcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLkFic3RyYWN0VHJhbnNmb3JtZXIKLQotcHVibGljIGNsYXNzIE9TVHJhbnNmb3JtZXIgZXh0ZW5kcyBBYnN0cmFjdFRyYW5zZm9ybWVyIHsKLQotCS8qLSBGYWN0b3J5IGluaXRpYWl6YXRpb24gKi8KLQl2YWwgb3V0cHV0TW9kZWxGYWN0b3J5ID0gU2FtcGxlTW9kZWxGYWN0b3J5LmVJTlNUQU5DRQotCi0JcHVibGljIGRlZiB0cmFuc2Zyb21PU01vZGVsKE9TTW9kZWwgYW1hbHRoZWFPU01vZGVsLCBNb2RlbCBzaW11bGF0aW9uTW9kZWwpIHsKLQotCQlhbWFsdGhlYU9TTW9kZWwub3BlcmF0aW5nU3lzdGVtcy5mb3JFYWNoIFsgYW1sdE9zIHwKLQotCQkJYW1sdE9zLnRhc2tTY2hlZHVsZXJzLmZvckVhY2ggWwotCQkJCXZhciBzaW11bGF0aW9uU2NoZWR1bGVyID0gY3JlYXRlU2NoZWR1bGVyKGl0KQotCi0JCQkJaWYgKHNpbXVsYXRpb25TY2hlZHVsZXIuZUNvbnRhaW5lciA9PT0gbnVsbCkgewotCQkJCQlzaW11bGF0aW9uTW9kZWwuc2NoZWR1bGVycy5hZGQoc2ltdWxhdGlvblNjaGVkdWxlcikKLQkJCQl9Ci0JCQldCi0KLQkJXQotCi0JfQotCi0JZGVmIGNyZWF0ZSBvdXRwdXRNb2RlbEZhY3RvcnkuY3JlYXRlU2NoZWR1bGVyIGNyZWF0ZVNjaGVkdWxlcihUYXNrU2NoZWR1bGVyIGFtbHRUcykgewotCi0JCW5hbWUgPSBhbWx0VHMubmFtZQotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS9zcmMvdGVtcGxhdGVzL1NXVHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvU1dUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjEwNDQ4Yi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtL3NyYy90ZW1wbGF0ZXMvU1dUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1wYWNrYWdlIHRlbXBsYXRlcwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuQWJzdHJhY3RUcmFuc2Zvcm1lcgotCi1wdWJsaWMgY2xhc3MgU1dUcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0VHJhbnNmb3JtZXIgewotCi0JU3RyaW5nIG5hbWUKLQotCXB1YmxpYyBkZWYgU3RyaW5nIGdldE5hbWUoKSB7Ci0JCXJldHVybiBuYW1lOwotCX0KLQotCXB1YmxpYyBkZWYgdm9pZCBzZXROYW1lKFN0cmluZyBuYW1lKSB7Ci0JCXRoaXMubmFtZSA9IG5hbWU7Ci0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvLmNsYXNzcGF0aCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjgzMzdlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0phdmFTRS0xLjgiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJ4dGVuZC1nZW4iLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0Ly5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0Ly5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjIxZWQzLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdDwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnh0ZXh0LnVpLnNoYXJlZC54dGV4dEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS54dGV4dC51aS5zaGFyZWQueHRleHROYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzY4YTYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLmlubGluZUpzckJ5dGVjb2RlPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udGFyZ2V0UGxhdGZvcm09MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hc3NlcnRJZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS44CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkM2Q4ZjkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L01FVEEtSU5GL01BTklGRVNULk1GCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjAKLUJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKLUJ1bmRsZS1OYW1lOiBDdXN0Ci1CdW5kbGUtU3ltYm9saWNOYW1lOiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3Q7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMS4wLjAucXVhbGlmaWVyCi1GcmFnbWVudC1Ib3N0OiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0O2J1bmRsZS12ZXJzaW9uPSIwLjMuMCIKLUF1dG9tYXRpYy1Nb2R1bGUtTmFtZTogYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0Ci1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L2J1aWxkLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTMwMjNlMS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotc291cmNlLi4gPSBzcmMvCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIGZyYWdtZW50LnhtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L2ZyYWdtZW50LnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC9mcmFnbWVudC54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4M2YzMDUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L2ZyYWdtZW50LnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08P2VjbGlwc2UgdmVyc2lvbj0iMy40Ij8+Ci08ZnJhZ21lbnQ+Ci0gICA8ZXh0ZW5zaW9uCi0gICAgICAgICBwb2ludD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvbmZpZ3VyYXRpb24iPgotICAgICAgPGNvbmZpZwotICAgICAgICAgICAgZW5hYmxlZD0idHJ1ZSIKLSAgICAgICAgICAgIGlkPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QxLmNvbmZpZzEiCi0gICAgICAgICAgICBtMnRfY2xhc3M9ImNvbmZpZ3VyYXRpb24uTTJUVHJhbnNmb3JtYXRpb24iCi0gICAgICAgICAgICBtb2R1bGVfY2xhc3M9ImN1c3Rtb2R1bGUuQ3VzdE0yVEluamVjdG9yTW9kdWxlIj4KLSAgICAgIDwvY29uZmlnPgotICAgPC9leHRlbnNpb24+Ci0KLTwvZnJhZ21lbnQ+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3Qvc3JjL2N1c3RUZW1wbGF0ZXMvQ3VzdFRyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L3NyYy9jdXN0VGVtcGxhdGVzL0N1c3RUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjUwYzE2Zi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3Qvc3JjL2N1c3RUZW1wbGF0ZXMvQ3VzdFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotcGFja2FnZSBjdXN0VGVtcGxhdGVzCi0KLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuQW1hbHRoZWEKLWltcG9ydCB0ZW1wbGF0ZXMuTTJUX091dHB1dF9UcmFuc2Zvcm1lcgotCi1jbGFzcyBDdXN0VHJhbnNmb3JtZXIgZXh0ZW5kcyBNMlRfT3V0cHV0X1RyYW5zZm9ybWVyIHsKLQkvKioKLQkgKiBDcmVhdGVzIG91dHB1dCB3aXRoIGEgInRlbXBsYXRlIG9ubHkiIHN0eWxlIChsaWtlIFhwYW5kL1h0ZW5kKS4KLQkgKi8KLQkgIG92ZXJyaWRlIFN0cmluZyBnZW5lcmF0ZU91dHB1dDEoQW1hbHRoZWEgYW1hbHRoZWEpICcnJwotCQkgQ3VzdG9tZXIgdGVtcGxhdGUKLQkJIKtzdXBlci5nZW5lcmF0ZU91dHB1dDEoYW1hbHRoZWEpuwotCScnJwotCi0KLQkvKioKLQkgKiBDcmVhdGVzIG91dHB1dCB3aXRoIGEgY29tYmluYXRpb24gb2YgdGVtcGxhdGUgYW5kIGZ1bmN0aW9ucy4KLQkgKiBUaGlzIGFsbG93cyBhIG1vcmUgZmxleGlibGUgdXNlIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFuZCBsYW1iZGFzLgotCSAqLwotCW92ZXJyaWRlIFN0cmluZyBnZW5lcmF0ZU91dHB1dDIoQW1hbHRoZWEgYW1hbHRoZWEpICcnJwotCUN1c3RvbWVyIHRlbXBsYXRlCi0Jq3N1cGVyLmdlbmVyYXRlT3V0cHV0MihhbWFsdGhlYSm7Ci0JJycnCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L3NyYy9jdXN0bW9kdWxlL0N1c3RNMlRJbmplY3Rvck1vZHVsZS5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5jdXN0L3NyYy9jdXN0bW9kdWxlL0N1c3RNMlRJbmplY3Rvck1vZHVsZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDBhNTBmLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY3VzdC9zcmMvY3VzdG1vZHVsZS9DdXN0TTJUSW5qZWN0b3JNb2R1bGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLSAvKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKiAKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBjdXN0bW9kdWxlOwotCi1pbXBvcnQgY3VzdFRlbXBsYXRlcy5DdXN0VHJhbnNmb3JtZXI7Ci1pbXBvcnQgbW9kdWxlLkRlZmF1bHRNMlRJbmplY3Rvck1vZHVsZTsKLWltcG9ydCB0ZW1wbGF0ZXMuTTJUX091dHB1dF9UcmFuc2Zvcm1lcjsKLQotcHVibGljIGNsYXNzIEN1c3RNMlRJbmplY3Rvck1vZHVsZSBleHRlbmRzIERlZmF1bHRNMlRJbmplY3Rvck1vZHVsZSB7Ci0KLQotCUBPdmVycmlkZQotCXByb3RlY3RlZCB2b2lkIGluaXRpYWxpemVCYXNlQ29uZmlndXJhdGlvbigpIHsKLQkJc3VwZXIuaW5pdGlhbGl6ZUJhc2VDb25maWd1cmF0aW9uKCk7Ci0JCWJpbmQoTTJUX091dHB1dF9UcmFuc2Zvcm1lci5jbGFzcykudG8oQ3VzdFRyYW5zZm9ybWVyLmNsYXNzKTsKLQl9Ci0KLSAKLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmNsYXNzcGF0aCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDI4MzM3ZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9Inh0ZW5kLWdlbiIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmxhdW5jaCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQubGF1bmNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWY4Yjg1Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQubGF1bmNoCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Ci08bGF1bmNoQ29uZmlndXJhdGlvbiB0eXBlPSJvcmcuZWNsaXBzZS5hbnQuQW50QnVpbGRlckxhdW5jaENvbmZpZ3VyYXRpb25UeXBlIj4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuYW50LnVpLkFUVFJfVEFSR0VUU19VUERBVEVEIiB2YWx1ZT0idHJ1ZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWkuREVGQVVMVF9WTV9JTlNUQUxMIiB2YWx1ZT0iZmFsc2UiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuYW50LnVpU0VUX0lOUFVUSEFORExFUiIgdmFsdWU9ImZhbHNlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5BVFRSX1JFRlJFU0hfU0NPUEUiIHZhbHVlPSIke3dvcmtpbmdfc2V0OiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3Jlc291cmNlcyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24mcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0Oy9yZXNvdXJjZXMmZ3Q7fSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLmNhcHR1cmVfb3V0cHV0IiB2YWx1ZT0iZmFsc2UiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuQVRUUl9DT05TT0xFX09VVFBVVF9PTiIgdmFsdWU9ImZhbHNlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLnVpLkFUVFJfTEFVTkNIX0lOX0JBQ0tHUk9VTkQiIHZhbHVlPSJmYWxzZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuQ0xBU1NQQVRIX1BST1ZJREVSIiB2YWx1ZT0ib3JnLmVjbGlwc2UuYW50LnVpLkFudENsYXNzcGF0aFByb3ZpZGVyIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuREVGQVVMVF9DTEFTU1BBVEgiIHZhbHVlPSJ0cnVlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5QUk9KRUNUX0FUVFIiIHZhbHVlPSIiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0JVSUxERVJfRU5BQkxFRCIgdmFsdWU9InRydWUiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfQlVJTERfU0NPUEUiIHZhbHVlPSIke3dvcmtpbmdfc2V0OiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3Jlc291cmNlcyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8mcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uY2xhc3NwYXRoJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmV4dGVybmFsVG9vbEJ1aWxkZXJzJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLmdpdGlnbm9yZSZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5wcm9qZWN0JnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLnNldHRpbmdzJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvYnVpbGQucHJvcGVydGllcyZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L01FVEEtSU5GJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvcGx1Z2luLnhtbCZxdW90OyB0eXBlPSZxdW90OzEmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3BvbS54bWwmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC90YXJnZXQmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC94dGVuZC1nZW4mcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0Oy9yZXNvdXJjZXMmZ3Q7fSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9MT0NBVElPTiIgdmFsdWU9IiR7cHJvamVjdF9sb2M6L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnR9Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfUlVOX0JVSUxEX0tJTkRTIiB2YWx1ZT0iaW5jcmVtZW50YWwsYXV0bywiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfVE9PTF9BUkdVTUVOVFMiIHZhbHVlPSItRGJ1aWxkLnByb2plY3Q9JHtwcm9qZWN0X2xvYzovYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydH0iLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX1RSSUdHRVJTX0NPTkZJR1VSRUQiIHZhbHVlPSJ0cnVlIi8+Ci08L2xhdW5jaENvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9jb3B5RXhhbXBsZS5hbnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNmNlOGUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvY29weUV4YW1wbGUuYW50CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08cHJvamVjdCBuYW1lPSJjb3B5RXhhbXBsZSIgZGVmYXVsdD0ibWFpbiIgYmFzZWRpcj0iLi4vLi4iPgotCi0JPHByb3BlcnR5IG5hbWU9Imluc3RhbGxlciIgdmFsdWU9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIiIC8+Ci0JPGltcG9ydCBmaWxlPSIuLi8uLi8uLi8uLi9idWlsZC8ke2luc3RhbGxlcn0vY29weUV4YW1wbGVMaWIuYW50IiBvcHRpb25hbD0idHJ1ZSIgLz4KLQk8YmFzZW5hbWUgZmlsZT0iJHtidWlsZC5wcm9qZWN0fSIgcHJvcGVydHk9InByb2plY3QiIC8+Ci0KLQk8dGFyZ2V0IG5hbWU9Im1haW4iPgotCQk8Y29weUV4YW1wbGUgcHJvamVjdD0iJHtwcm9qZWN0fSIgLz4KLQk8L3RhcmdldD4KLQotPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlZDgzZDcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQ8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS54dGV4dC51aS5zaGFyZWQueHRleHRCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5FeHRlcm5hbFRvb2xCdWlsZGVyPC9uYW1lPgotCQkJPHRyaWdnZXJzPmF1dG8sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPgotCQkJPGFyZ3VtZW50cz4KLQkJCQk8ZGljdGlvbmFyeT4KLQkJCQkJPGtleT5MYXVuY2hDb25maWdIYW5kbGU8L2tleT4KLQkJCQkJPHZhbHVlPiZsdDtwcm9qZWN0Jmd0Oy8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC5sYXVuY2g8L3ZhbHVlPgotCQkJCTwvZGljdGlvbmFyeT4KLQkJCQk8ZGljdGlvbmFyeT4KLQkJCQkJPGtleT5pbmNjbGVhbjwva2V5PgotCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+Ci0JCQkJPC9kaWN0aW9uYXJ5PgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0TmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzY4YTYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3ZThjODQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEFQUDRNQyBUcmFuc2Zvcm1hdGlvbiBFeGFtcGxlIC0gTTJUCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0O3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMy4wLnF1YWxpZmllcgotQnVuZGxlLVZlbmRvcjogRWNsaXBzZSBBUFA0TUMKLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44Ci1SZXF1aXJlLUJ1bmRsZTogY29tLmdvb2dsZS5pbmplY3Q7YnVuZGxlLXZlcnNpb249IjMuMC4wIiwKLSBvcmcuYXBhY2hlLmxvZzRqO2J1bmRsZS12ZXJzaW9uPSIxLjIuMTUiLAotIG9yZy5lY2xpcHNlLmVtZjtidW5kbGUtdmVyc2lvbj0iMi42LjAiLAotIG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbDt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKLSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucwotRXhwb3J0LVBhY2thZ2U6IG1vZHVsZQotQXV0b21hdGljLU1vZHVsZS1OYW1lOiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdlMzJjNS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1zb3VyY2UuLiA9IHNyYy8sXAotICAgICAgICAgICB4dGVuZC1nZW4vCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKLXNyYy5pbmNsdWRlcyA9IGVwbC0yLjAuaHRtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+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+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3BsdWdpbi54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlZDRiMTkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9wbHVnaW4ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/ZWNsaXBzZSB2ZXJzaW9uPSIzLjQiPz4KLTxwbHVnaW4+Ci0gPGV4dGVuc2lvbgotICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29uZmlndXJhdGlvbiI+Ci0gICAgPGNvbmZpZwotICAgICAgICAgIGVuYWJsZWQ9InRydWUiCi0gICAgICAgICAgaWQ9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQuY29uZmlnIgotICAgICAgICAgIG0ydF9jbGFzcz0iY29uZmlndXJhdGlvbi5NMlRUcmFuc2Zvcm1hdGlvbiIKLSAgICAgICAgICBtb2R1bGVfY2xhc3M9Im1vZHVsZS5EZWZhdWx0TTJUSW5qZWN0b3JNb2R1bGUiPgotICAgIDwvY29uZmlnPgotIDwvZXh0ZW5zaW9uPgotPC9wbHVnaW4+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiMDFiZGYuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0JPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+Ci0JCTxncm91cElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbjwvZ3JvdXBJZD4KLQkJPGFydGlmYWN0SWQ+cGFyZW50PC9hcnRpZmFjdElkPgotCQk8dmVyc2lvbj4wLjMuMC1TTkFQU0hPVDwvdmVyc2lvbj4KLQk8L3BhcmVudD4KLQkKLQk8cHJvcGVydGllcz4KLQkJPHBsdWdpbi1pZD5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0PC9wbHVnaW4taWQ+Ci0JCTxleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb24+Li4vLi4vLi4vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXI8L2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbj4KLQk8L3Byb3BlcnRpZXM+IAkKLQotCTxhcnRpZmFjdElkPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQ8L2FydGlmYWN0SWQ+Ci0JPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KLQotCTxidWlsZD4KLQkJPHBsdWdpbnM+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1hbnRydW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KLQotCQkJCTxleGVjdXRpb25zPgotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPnJlcGxhY2UtYnVpbGQtdG9rZW48L2lkPgotCQkJCQkJPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgotCi0JCQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJCQk8dGFyZ2V0PgotCQkJCQkJCQkgPGNvcHkgdG9kaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iPgotCQkJCQkJCQkJPGZpbGVzZXQgZGlyPSIuLyI+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuZXh0ZXJuYWxUb29sQnVpbGRlcnMvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iZGF0YWJhc2UvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iYmluLyIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9InRhcmdldC8iIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UubXlseW4qIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMucHJlZnMiIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIqKi8uZ2l0aWdub3JlIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcG9tLnhtbCIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9IioqL3JlbGVhc2UuKiIgLz4KLQkJCQkJCQkJCTxpbmNsdWRlIG5hbWU9IioqIiAvPgotCQkJCQkJCQkJPC9maWxlc2V0PgotCQkJCQkJCQkgPC9jb3B5PiAKLQkJCQkJCQkJIAotCQkJCQkJCQkgCQkgPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0ic2ciCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0icyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLmVtZi5jZG8ucmVsZW5nLnZlcnNpb24uVmVyc2lvbkJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCQkJCQkJCTwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxpZD5hdXRvLWNsZWFuPC9pZD4KLQkJCQkJCTxwaGFzZT5jbGVhbjwvcGhhc2U+Ci0KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTx0YXJnZXQ+Ci0JCQkJCQkJCSA8ZGVsZXRlICBkaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iLz4KLQkJCQkJCSAgIDwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCTwvZXhlY3V0aW9ucz4KLQotCQkJPC9wbHVnaW4+Ci0JCTwvcGx1Z2lucz4KLQk8L2J1aWxkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL2NvbmZpZ3VyYXRpb24vTTJUVHJhbnNmb3JtYXRpb24uamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL2NvbmZpZ3VyYXRpb24vTTJUVHJhbnNmb3JtYXRpb24uamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmZkMjY4NC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYy9jb25maWd1cmF0aW9uL00yVFRyYW5zZm9ybWF0aW9uLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgY29uZmlndXJhdGlvbjsKLQotaW1wb3J0IGphdmEudXRpbC5Qcm9wZXJ0aWVzOwotCi1pbXBvcnQgb3JnLmFwYWNoZS5sb2c0ai5Mb2dnZXI7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhRmFjdG9yeTsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLklNb2RlbFRvVGV4dENvbmZpZzsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQ7Ci0KLWltcG9ydCBtb2RlbC5sb2FkZXIuQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXI7Ci0KLXB1YmxpYyBjbGFzcyBNMlRUcmFuc2Zvcm1hdGlvbiBpbXBsZW1lbnRzIElNb2RlbFRvVGV4dENvbmZpZyB7Ci0KLQlwcml2YXRlIFByb3BlcnRpZXMgcGFyYW1ldGVyczsKLQotCXByaXZhdGUgTG9nZ2VyIGxvZ2dlciAgOwotCi0JcHVibGljIE0yVFRyYW5zZm9ybWF0aW9uKCkgewotCQkvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWIKLQl9Ci0KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgUmVzb3VyY2VTZXQgZ2V0SW5wdXRSZXNvdXJjZVNldCgpIHsKLQotCQlpZiAocGFyYW1ldGVycyAhPSBudWxsKSB7Ci0KLQkJCVN0cmluZyBmb2xkZXJQYXRoID0gcGFyYW1ldGVycy5nZXRQcm9wZXJ0eSgiaW5wdXRfbW9kZWxzX2ZvbGRlciIpOwotCi0JCQlpZiAoZm9sZGVyUGF0aCAhPSBudWxsKSB7Ci0KLQkJCQlSZXNvdXJjZVNldCByZXNvdXJjZVNldCA9IG5ldyBBbWFsdGhlYU11bHRpRmlsZUxvYWRlcigpLmxvYWRNdWx0aXBsZUZpbGVzKGZvbGRlclBhdGgpOwotCi0JCQkJaWYocmVzb3VyY2VTZXQuZ2V0UmVzb3VyY2VzKCkuc2l6ZSgpPT0wKSB7Ci0JCQkJCWxvZ2dlci5lcnJvcigibm8gQW1hbHRoZWEgbW9kZWwgZmlsZXMgYXJlIGxvYWRlZC4gVmVyaWZ5IGlmIHRoZSBtb2RlbCB2ZXJzaW9uIGlzIDogIiArIEFtYWx0aGVhRmFjdG9yeS5lSU5TVEFOQ0UuY3JlYXRlQW1hbHRoZWEoKS5nZXRWZXJzaW9uKCkpOwotCQkJCX0KLQkJCQkKLQkJCQlyZXR1cm4gcmVzb3VyY2VTZXQ7Ci0JCQl9IGVsc2UgewotCQkJCWxvZ2dlci5lcnJvcigiaW5wdXRfbW9kZWxzX2ZvbGRlciBwYXJhbWV0ZXIgbm90IHNldCIsCi0JCQkJCQluZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oImlucHV0X21vZGVsc19mb2xkZXIgcHJvcGVydHkgbm90IHNldCIpKTsKLQkJCX0KLQotCQl9IGVsc2UgewotCQkJbG9nZ2VyLmVycm9yKCJQYXJhbWV0ZXJzIG9iamVjdCBub3Qgc2V0ICIsIG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigiUGFyYW1ldGVyIG9iamVjdCBpcyBudWxsIikpOwotCQl9Ci0JCXJldHVybiBudWxsOwotCX0KLQotCUBPdmVycmlkZQotCXB1YmxpYyB2b2lkIHNldFByb3BlcnRpZXMoUHJvcGVydGllcyBwYXJhbWV0ZXJzKSB7Ci0KLQkJdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVyczsKLQl9Ci0JCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgc2V0TG9nZ2VyKExvZ2dlciBsb2dnZXIpIHsKLQotCQl0aGlzLmxvZ2dlciA9IGxvZ2dlcjsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL21vZGVsL2xvYWRlci9BbWFsdGhlYU11bHRpRmlsZUxvYWRlci5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMvbW9kZWwvbG9hZGVyL0FtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5MzVhZjcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMvbW9kZWwvbG9hZGVyL0FtYWx0aGVhTXVsdGlGaWxlTG9hZGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgbW9kZWwubG9hZGVyOwotCi1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uRmlsZW5hbWVGaWx0ZXI7Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYVBhY2thZ2U7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLnNwaGlueC5BbWFsdGhlYVJlc291cmNlRmFjdG9yeTsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuVVJJOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQ7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLmltcGwuUmVzb3VyY2VTZXRJbXBsOwotaW1wb3J0IG9yZy5lY2xpcHNlLnNwaGlueC5lbWYucmVzb3VyY2UuRXh0ZW5kZWRSZXNvdXJjZVNldDsKLWltcG9ydCBvcmcuZWNsaXBzZS5zcGhpbnguZW1mLnJlc291cmNlLkV4dGVuZGVkUmVzb3VyY2VTZXRJbXBsOwotCi1wdWJsaWMgY2xhc3MgQW1hbHRoZWFNdWx0aUZpbGVMb2FkZXIgewotCi0JcHVibGljIFJlc291cmNlU2V0IGxvYWRNdWx0aXBsZUZpbGVzKFN0cmluZyBkaXJlY3RvcnlQYXRoKSB7Ci0KLQkJRmlsZSBmb2xkZXIgPSBuZXcgRmlsZShkaXJlY3RvcnlQYXRoKTsKLQotCQlpZiAoZm9sZGVyLmlzRGlyZWN0b3J5KCkpIHsKLQkJCUZpbGVbXSBsaXN0RmlsZXMgPSBmb2xkZXIubGlzdEZpbGVzKG5ldyBGaWxlbmFtZUZpbHRlcigpIHsKLQotCQkJCUBPdmVycmlkZQotCQkJCXB1YmxpYyBib29sZWFuIGFjY2VwdChGaWxlIGZpbGUsIFN0cmluZyBuYW1lKSB7Ci0KLQkJCQkJaWYgKG5hbWUuZW5kc1dpdGgoIi5hbXhtaSIpKSB7Ci0JCQkJCQlyZXR1cm4gdHJ1ZTsKLQkJCQkJfQotCi0JCQkJCXJldHVybiBmYWxzZTsKLQkJCQl9Ci0JCQl9KTsKLQotCQkJUmVzb3VyY2VTZXQgcmVzb3VyY2VTZXQgPSBpbml0aWFsaXplUmVzb3VyY2VTZXQoKTsKLQotCQkJbG9hZE11bHRpcGxlRmlsZXMocmVzb3VyY2VTZXQsIGxpc3RGaWxlcyk7Ci0KLQkJCXJldHVybiByZXNvdXJjZVNldDsKLQkJfQotCi0JCXJldHVybiBuZXcgUmVzb3VyY2VTZXRJbXBsKCk7Ci0KLQl9Ci0KLQlwcml2YXRlIExpc3Q8QW1hbHRoZWE+IGxvYWRNdWx0aXBsZUZpbGVzKFJlc291cmNlU2V0IHJlc291cmNlU2V0LCBGaWxlW10gbGlzdEZpbGVzKSB7Ci0KLQkJTGlzdDxBbWFsdGhlYT4gbW9kZWxzID0gbmV3IEFycmF5TGlzdDxBbWFsdGhlYT4oKTsKLQotCQlmb3IgKEZpbGUgYW14bWlGaWxlIDogbGlzdEZpbGVzKSB7Ci0KLQkJCWZpbmFsIFJlc291cmNlIHJlcyA9IHJlc291cmNlU2V0LmNyZWF0ZVJlc291cmNlKFVSSS5jcmVhdGVVUkkoImZpbGU6Ly8vLyIgKyBhbXhtaUZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpKTsKLQkJCXRyeSB7Ci0JCQkJcmVzLmxvYWQobnVsbCk7Ci0JCQkJZm9yIChmaW5hbCBFT2JqZWN0IGNvbnRlbnQgOiByZXMuZ2V0Q29udGVudHMoKSkgewotCQkJCQlpZiAoY29udGVudCBpbnN0YW5jZW9mIEFtYWx0aGVhKSB7Ci0JCQkJCQltb2RlbHMuYWRkKChBbWFsdGhlYSkgY29udGVudCk7Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Ci0JCQkJLy8gaWdub3JlCi0JCQl9Ci0JCX0KLQkJcmV0dXJuIG1vZGVsczsKLQl9Ci0KLQlwcml2YXRlIHN0YXRpYyBSZXNvdXJjZVNldCBpbml0aWFsaXplUmVzb3VyY2VTZXQoKSB7Ci0JCWZpbmFsIEV4dGVuZGVkUmVzb3VyY2VTZXQgcmVzU2V0ID0gbmV3IEV4dGVuZGVkUmVzb3VyY2VTZXRJbXBsKCk7Ci0JCXJlc1NldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpLnB1dCgiYW14bWkiLCBuZXcgQW1hbHRoZWFSZXNvdXJjZUZhY3RvcnkoKSk7Ci0JCUFtYWx0aGVhUGFja2FnZS5lSU5TVEFOQ0UuZUNsYXNzKCk7IC8vIHJlZ2lzdGVyIHRoZSBwYWNrYWdlCi0KLQkJcmV0dXJuIHJlc1NldDsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL21vZHVsZS9EZWZhdWx0TTJUSW5qZWN0b3JNb2R1bGUuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL21vZHVsZS9EZWZhdWx0TTJUSW5qZWN0b3JNb2R1bGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2UxYmNiOS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYy9tb2R1bGUvRGVmYXVsdE0yVEluamVjdG9yTW9kdWxlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0gLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICogCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2UgbW9kdWxlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLk1vZGVsMlRleHRSb290VHJhbnNmb3JtZXI7Ci0KLWltcG9ydCB0ZW1wbGF0ZXMuQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXI7Ci0KLXB1YmxpYyBjbGFzcyBEZWZhdWx0TTJUSW5qZWN0b3JNb2R1bGUgZXh0ZW5kcyBBYnN0cmFjdFRyYW5zZm9ybWF0aW9uSW5qZWN0b3JNb2R1bGUgewotCi0KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplQmFzZUNvbmZpZ3VyYXRpb24oKSB7Ci0JCWJpbmQoTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lci5jbGFzcykudG8oQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXIuY2xhc3MpOwotCX0KLQotCUBPdmVycmlkZQotCXByb3RlY3RlZCB2b2lkIGluaXRpYWxpemVUcmFuc2Zvcm1lck9iamVjdHMoKSB7Ci0JCS8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQkJCi0JfQotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYy90ZW1wbGF0ZXMvQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXIueHRlbmQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0L3NyYy90ZW1wbGF0ZXMvQW1hbHRoZWFNb2RlbDJUZXh0VHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlYTUyY2UuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMvdGVtcGxhdGVzL0FtYWx0aGVhTW9kZWwyVGV4dFRyYW5zZm9ybWVyLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gKiAKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBhY2thZ2UgdGVtcGxhdGVzCi0KLWltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkV3JpdGVyCi1pbXBvcnQgamF2YS5pby5GaWxlCi1pbXBvcnQgamF2YS5pby5GaWxlV3JpdGVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lcgotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldAotCi1jbGFzcyBBbWFsdGhlYU1vZGVsMlRleHRUcmFuc2Zvcm1lciBleHRlbmRzIE1vZGVsMlRleHRSb290VHJhbnNmb3JtZXIgewotCi0Jb3ZlcnJpZGUgbTJ0VHJhbnNmb3JtYXRpb24oUmVzb3VyY2VTZXQgaW5wdXRSZXNvdXJjZVNldCkgewotCi0JCWZvciAocmVzb3VyY2UgOiBpbnB1dFJlc291cmNlU2V0LnJlc291cmNlcykgewotCQkJZm9yIChtb2RlbCA6IHJlc291cmNlLmNvbnRlbnRzKSB7Ci0JCQkJLy8gVE9ETzogbW9kZWwgaXMgYSBBbWFsdGhlYSBtb2RlbAotCQkJCS8vIGNoZWNrIGphdmFkb2MgOiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy94dGVuZC9kb2N1bWVudGF0aW9uLzIwNF9hY3RpdmVhbm5vdGF0aW9ucy5odG1sI2FjdGl2ZS1hbm5vdGF0aW9ucy1leHByZXNzaW9uIAotCQkJCWdldExvZ2dlci5pbmZvKCJQcm9jZXNzaW5nIGZpbGUgOiAiICsgcmVzb3VyY2UuVVJJKQotCi0JCQkJdmFyIFN0cmluZyBvdXRwdXRGb2xkZXIgPSBnZXRQcm9wZXJ0eSgibTJ0X291dHB1dF9mb2xkZXIiKTsKLQkJCQl2YWwgdGV4dEdlbmVyYXRvciA9IG5ldyBNMlRfT3V0cHV0X1RyYW5zZm9ybWVyCi0KLQkJCQkvLyA9PT09PSBvdXRwdXQgMSA9PT09PQotCQkJCQotCQkJCXZhciBvdXRwdXRGaWxlMSA9IG5ldyBGaWxlKG91dHB1dEZvbGRlciwiMS50eHQiKQotCQkJCW91dHB1dEZpbGUxLnBhcmVudEZpbGUubWtkaXJzCi0JCQkJb3V0cHV0RmlsZTEuY3JlYXRlTmV3RmlsZQotCi0JCQkJaWYgKG1vZGVsIGluc3RhbmNlb2YgQW1hbHRoZWEpIHsKLQkJCQkJdmFsIHRleHQgPSB0ZXh0R2VuZXJhdG9yLmdlbmVyYXRlT3V0cHV0MShtb2RlbCkKLQotCQkJCQkvKnNhdmluZyBidWZmZXIgaW50byBmaWxlICovCi0JCQkJCXZhbCBidWZmZXJlZFdyaXRlciA9IG5ldyBCdWZmZXJlZFdyaXRlcihuZXcgRmlsZVdyaXRlcihvdXRwdXRGaWxlMSkpCi0JCQkJCWJ1ZmZlcmVkV3JpdGVyLndyaXRlKHRleHQpCi0JCQkJCWJ1ZmZlcmVkV3JpdGVyLmNsb3NlCi0JCQkJfQotCQkJCQotCQkJCS8vID09PT09IG91dHB1dCAyID09PT09Ci0JCQkJCi0JCQkJdmFyIG91dHB1dEZpbGUyID0gbmV3IEZpbGUob3V0cHV0Rm9sZGVyICwgIjIudHh0IikKLQkJCQlvdXRwdXRGaWxlMi5wYXJlbnRGaWxlLm1rZGlycwotCQkJCW91dHB1dEZpbGUyLmNyZWF0ZU5ld0ZpbGUKLQotCQkJCWlmIChtb2RlbCBpbnN0YW5jZW9mIEFtYWx0aGVhKSB7Ci0JCQkJCXZhbCB0ZXh0ID0gdGV4dEdlbmVyYXRvci5nZW5lcmF0ZU91dHB1dDIobW9kZWwpCi0KLQkJCQkJLypzYXZpbmcgYnVmZmVyIGludG8gZmlsZSAqLwotCQkJCQl2YWwgYnVmZmVyZWRXcml0ZXIgPSBuZXcgQnVmZmVyZWRXcml0ZXIobmV3IEZpbGVXcml0ZXIob3V0cHV0RmlsZTIpKQotCQkJCQlidWZmZXJlZFdyaXRlci53cml0ZSh0ZXh0KQotCQkJCQlidWZmZXJlZFdyaXRlci5jbG9zZQotCQkJCX0KLQotCi0JCQkJLy8gVE9ETzogc2F2ZSB0aGUgZmlsZSBoZXJlCi0JCQkJbG9nZ2VyLmluZm8oIlNjcmlwdCBmaWxlIGdlbmVyYXRlZCBhdCA6ICIgKyBvdXRwdXRGb2xkZXIpCi0JCQl9Ci0JCX0KLQotCX0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvc3JjL3RlbXBsYXRlcy9NMlRfT3V0cHV0X1RyYW5zZm9ybWVyLnh0ZW5kIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMvdGVtcGxhdGVzL00yVF9PdXRwdXRfVHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzMTg2YzUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydC9zcmMvdGVtcGxhdGVzL00yVF9PdXRwdXRfVHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJILgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotcGFja2FnZSB0ZW1wbGF0ZXMKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5BbWFsdGhlYQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC5SdW5uYWJsZUNhbGwKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMuYW1hbHRoZWEubW9kZWwuVGFzawotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC51dGlsLk1vZGVsVXRpbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy5hbWFsdGhlYS5tb2RlbC51dGlsLlNvZnR3YXJlVXRpbAotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLkFic3RyYWN0VHJhbnNmb3JtZXIKLQotY2xhc3MgTTJUX091dHB1dF9UcmFuc2Zvcm1lciBleHRlbmRzIEFic3RyYWN0VHJhbnNmb3JtZXIgewotCi0JLyoqCi0JICogQ3JlYXRlcyBvdXRwdXQgd2l0aCBhICJ0ZW1wbGF0ZSBvbmx5IiBzdHlsZSAobGlrZSBYcGFuZC9YdGVuZCkuCi0JICovCi0JZGVmIFN0cmluZyBnZW5lcmF0ZU91dHB1dDEoQW1hbHRoZWEgYW1hbHRoZWEpICcnJwotCQmrdmFyIHN3TW9kZWw9YW1hbHRoZWEuc3dNb2RlbLsKLQkJCi0JCS8vIGdlbmVyYXRpbmcgaW5mbyBhYm91dCB0YXNrcyBhbmQgcnVubmFibGVzIChpbiBleGVjdXRpb24gb3JkZXIpCi0JCQotCQmrRk9SIHRhc2sgOiBzd01vZGVsLnRhc2tzuwotCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCQlUYXNrOiCrdGFzay5uYW1luwotCQkKLQkJCat2YXIgZ3JhcGhFbnRyaWVzPXRhc2suYWN0aXZpdHlHcmFwaC5pdGVtc7sKLQkJCatGT1IgZ3JhcGhFbnRyeTogZ3JhcGhFbnRyaWVzuwotCQkJCatJRiBncmFwaEVudHJ5IGluc3RhbmNlb2YgUnVubmFibGVDYWxsuwotCQkJCQkJCUFzc29jaWF0ZWQgUnVubmFibGU6IKsoZ3JhcGhFbnRyeSBhcyAgUnVubmFibGVDYWxsKS5ydW5uYWJsZS5uYW1luwotCQkJCatFTkRJRrsKLQkJCatFTkRGT1K7Ci0JCatFTkRGT1K7Ci0JCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JJycnCi0KLQotCS8qKgotCSAqIENyZWF0ZXMgb3V0cHV0IHdpdGggYSBjb21iaW5hdGlvbiBvZiB0ZW1wbGF0ZSBhbmQgZnVuY3Rpb25zLgotCSAqIFRoaXMgYWxsb3dzIGEgbW9yZSBmbGV4aWJsZSB1c2Ugb2YgdXRpbGl0eSBmdW5jdGlvbnMgYW5kIGxhbWJkYXMuCi0JICovCi0JZGVmIFN0cmluZyBnZW5lcmF0ZU91dHB1dDIoQW1hbHRoZWEgYW1hbHRoZWEpICcnJwotCQkKLQkJLy8gZ2VuZXJhdGluZyBpbmZvIGFib3V0IHRhc2tzIGFuZCBydW5uYWJsZXMgKGluIGFscGhhYmV0aWMgb3JkZXIpCi0JCQotCQmrRk9SIHRhc2sgOiBNb2RlbFV0aWwuZ2V0T3JDcmVhdGVTd01vZGVsKGFtYWx0aGVhKS50YXNrc7sKLQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkJVGFzazogq3Rhc2submFtZbsKLQkJCi0JCQmrRk9SIG5hbWU6IHJ1bm5hYmxlTmFtZXNPZih0YXNrKbsKLQkJCQlBc3NvY2lhdGVkIFJ1bm5hYmxlOiCrbmFtZbsKLQkJCatFTkRGT1K7Ci0JCatFTkRGT1K7Ci0JCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JJycnCi0JCQotCWRlZiBydW5uYWJsZU5hbWVzT2YoVGFzayB0YXNrKSB7Ci0JCVNvZnR3YXJlVXRpbC5jb2xsZWN0QWN0aXZpdHlHcmFwaEl0ZW1zKHRhc2suYWN0aXZpdHlHcmFwaCwgbnVsbCwgW2UgfCBlIGluc3RhbmNlb2YgUnVubmFibGVDYWxsXSkKLQkJCS5tYXBbZSB8IChlIGFzIFJ1bm5hYmxlQ2FsbCkucnVubmFibGUubmFtZV0KLQkJCS5zb3J0Ci0JfQotCQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5jbGFzc3BhdGggYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjJmMzA2NC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLmNsYXNzcGF0aAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxjbGFzc3BhdGg+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KYXZhU0UtMS44Ii8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Ci08L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLmxhdW5jaCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLmxhdW5jaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmYwNWMwNS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC5sYXVuY2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KLTxsYXVuY2hDb25maWd1cmF0aW9uIHR5cGU9Im9yZy5lY2xpcHNlLmFudC5BbnRCdWlsZGVyTGF1bmNoQ29uZmlndXJhdGlvblR5cGUiPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWkuQVRUUl9UQVJHRVRTX1VQREFURUQiIHZhbHVlPSJ0cnVlIi8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmFudC51aS5ERUZBVUxUX1ZNX0lOU1RBTEwiIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWlTRVRfSU5QVVRIQU5ETEVSIiB2YWx1ZT0iZmFsc2UiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLkFUVFJfUkVGUkVTSF9TQ09QRSIgdmFsdWU9IiR7d29ya2luZ19zZXQ6Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cmVzb3VyY2VzJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuY2FwdHVyZV9vdXRwdXQiIHZhbHVlPSJmYWxzZSIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5BVFRSX0NPTlNPTEVfT1VUUFVUX09OIiB2YWx1ZT0iZmFsc2UiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuQVRUUl9MQVVOQ0hfSU5fQkFDS0dST1VORCIgdmFsdWU9ImZhbHNlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5DTEFTU1BBVEhfUFJPVklERVIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQudWkuQW50Q2xhc3NwYXRoUHJvdmlkZXIiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5ERUZBVUxUX0NMQVNTUEFUSCIgdmFsdWU9InRydWUiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLlBST0pFQ1RfQVRUUiIgdmFsdWU9IiIvPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfQlVJTERFUl9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9CVUlMRF9TQ09QRSIgdmFsdWU9IiR7d29ya2luZ19zZXQ6Jmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7cmVzb3VyY2VzJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvJnF1b3Q7IHR5cGU9JnF1b3Q7MiZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uY2xhc3NwYXRoJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5naXRpZ25vcmUmcXVvdDsgdHlwZT0mcXVvdDsxJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5wcm9qZWN0JnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9idWlsZC5wcm9wZXJ0aWVzJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9NRVRBLUlORiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7aXRlbSBwYXRoPSZxdW90Oy9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvbW9kZWwmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3BsdWdpbi5wcm9wZXJ0aWVzJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wbHVnaW4ueG1sJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wb20ueG1sJnF1b3Q7IHR5cGU9JnF1b3Q7MSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDtpdGVtIHBhdGg9JnF1b3Q7L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3RhcmdldCZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX0xPQ0FUSU9OIiB2YWx1ZT0iJHtwcm9qZWN0X2xvYzovYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsfS8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvY29weUV4YW1wbGUuYW50Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX1JVTl9CVUlMRF9LSU5EUyIgdmFsdWU9ImluY3JlbWVudGFsLGF1dG8sIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX1RPT0xfQVJHVU1FTlRTIiB2YWx1ZT0iLURidWlsZC5wcm9qZWN0PSR7cHJvamVjdF9sb2M6L2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbH0iLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX1RSSUdHRVJTX0NPTkZJR1VSRUQiIHZhbHVlPSJ0cnVlIi8+Ci08L2xhdW5jaENvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2NvcHlFeGFtcGxlLmFudCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvY29weUV4YW1wbGUuYW50CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjZjZThlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvY29weUV4YW1wbGUuYW50CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08cHJvamVjdCBuYW1lPSJjb3B5RXhhbXBsZSIgZGVmYXVsdD0ibWFpbiIgYmFzZWRpcj0iLi4vLi4iPgotCi0JPHByb3BlcnR5IG5hbWU9Imluc3RhbGxlciIgdmFsdWU9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIiIC8+Ci0JPGltcG9ydCBmaWxlPSIuLi8uLi8uLi8uLi9idWlsZC8ke2luc3RhbGxlcn0vY29weUV4YW1wbGVMaWIuYW50IiBvcHRpb25hbD0idHJ1ZSIgLz4KLQk8YmFzZW5hbWUgZmlsZT0iJHtidWlsZC5wcm9qZWN0fSIgcHJvcGVydHk9InByb2plY3QiIC8+Ci0KLQk8dGFyZ2V0IG5hbWU9Im1haW4iPgotCQk8Y29weUV4YW1wbGUgcHJvamVjdD0iJHtwcm9qZWN0fSIgLz4KLQk8L3RhcmdldD4KLQotPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2E5ZWMwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPmFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbDwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5FeHRlcm5hbFRvb2xCdWlsZGVyPC9uYW1lPgotCQkJPHRyaWdnZXJzPmF1dG8sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPgotCQkJPGFyZ3VtZW50cz4KLQkJCQk8ZGljdGlvbmFyeT4KLQkJCQkJPGtleT5MYXVuY2hDb25maWdIYW5kbGU8L2tleT4KLQkJCQkJPHZhbHVlPiZsdDtwcm9qZWN0Jmd0Oy8uZXh0ZXJuYWxUb29sQnVpbGRlcnMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsLmxhdW5jaDwvdmFsdWU+Ci0JCQkJPC9kaWN0aW9uYXJ5PgotCQkJCTxkaWN0aW9uYXJ5PgotCQkJCQk8a2V5PmluY2NsZWFuPC9rZXk+Ci0JCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4KLQkJCQk8L2RpY3Rpb25hcnk+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTgwYjdlYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjAKLUJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKLUJ1bmRsZS1OYW1lOiBBUFA0TUMgVHJhbnNmb3JtYXRpb24gRXhhbXBsZSAtU2FtcGxlIE1vZGVsCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWw7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4zLjAucXVhbGlmaWVyCi1CdW5kbGUtQ2xhc3NQYXRoOiAuCi1CdW5kbGUtVmVuZG9yOiBFY2xpcHNlIEFQUDRNQwotQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOAotRXhwb3J0LVBhY2thZ2U6IFNhbXBsZU1vZGVsLAotIFNhbXBsZU1vZGVsLmltcGwsCi0gU2FtcGxlTW9kZWwudXRpbAotUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKLSBvcmcuZWNsaXBzZS5lbWYuZWNvcmU7dmlzaWJpbGl0eTo9cmVleHBvcnQKLUJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5Ci1BdXRvbWF0aWMtTW9kdWxlLU5hbWU6IGFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWJkMTk1Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotIyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgUm9iZXJ0IEJvc2NoIEdtYkguCi0jICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0jICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0jICAqCi0jICAqIENvbnRyaWJ1dG9yczoKLSMgICogICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLWJpbi5pbmNsdWRlcyA9IC4sXAotICAgICAgICAgICAgICAgbW9kZWwvLFwKLSAgICAgICAgICAgICAgIE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICBwbHVnaW4ueG1sLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi5wcm9wZXJ0aWVzLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sCi1qYXJzLmNvbXBpbGUub3JkZXIgPSAuCi1zb3VyY2UuLiA9IHNyYy8KLW91dHB1dC4uID0gYmluLwotc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+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+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9tb2RlbC9TYW1wbGUuZWNvcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvbW9kZWwvU2FtcGxlLmVjb3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjA1YzQyLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9tb2RlbC9TYW1wbGUuZWNvcmUKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGVjb3JlOkVQYWNrYWdlIHhtaTp2ZXJzaW9uPSIyLjAiIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIgbmFtZT0iU2FtcGxlTW9kZWwiIG5zVVJJPSJodHRwOi8vU2FtcGxlTW9kZWwvMC4zLjAiIG5zUHJlZml4PSJTYW1wbGVNb2RlbCI+Ci0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iTW9kZWwiPgotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJydW5uYWJsZXMiIHVwcGVyQm91bmQ9Ii0xIgotICAgICAgICBlVHlwZT0iIy8vUnVubmFibGUiIGNvbnRhaW5tZW50PSJ0cnVlIi8+Ci0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImxhYmVscyIgdXBwZXJCb3VuZD0iLTEiCi0gICAgICAgIGVUeXBlPSIjLy9MYWJlbCIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFtZT0ibWVtb3JpZXMiIHVwcGVyQm91bmQ9Ii0xIgotICAgICAgICBlVHlwZT0iIy8vTWVtb3J5IiBjb250YWlubWVudD0idHJ1ZSIvPgotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJzY2hlZHVsZXJzIiB1cHBlckJvdW5kPSItMSIKLSAgICAgICAgZVR5cGU9IiMvL1NjaGVkdWxlciIgY29udGFpbm1lbnQ9InRydWUiLz4KLSAgPC9lQ2xhc3NpZmllcnM+Ci0gIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iUnVubmFibGUiPgotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJsYWJlbHMiIGVUeXBlPSIjLy9MYWJlbCIvPgotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gIDwvZUNsYXNzaWZpZXJzPgotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkxhYmVsIj4KLSAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0ibmFtZSIgZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVN0cmluZyIvPgotICA8L2VDbGFzc2lmaWVycz4KLSAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNZW1vcnkiPgotICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJuYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+Ci0gIDwvZUNsYXNzaWZpZXJzPgotICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNjaGVkdWxlciI+Ci0gICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9Im5hbWUiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4KLSAgPC9lQ2xhc3NpZmllcnM+Ci08L2Vjb3JlOkVQYWNrYWdlPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL21vZGVsL1NhbXBsZS5nZW5tb2RlbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9tb2RlbC9TYW1wbGUuZ2VubW9kZWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExZTdiOWQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL21vZGVsL1NhbXBsZS5nZW5tb2RlbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Z2VubW9kZWw6R2VuTW9kZWwgeG1pOnZlcnNpb249IjIuMCIgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIKLSAgICB4bWxuczpnZW5tb2RlbD0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCIgbW9kZWxEaXJlY3Rvcnk9Ii9vcmcuZWNsaXBzZS5hcHA0bWMuc2FtcGxlLm1vZGVsL3NyYyIgbW9kZWxQbHVnaW5JRD0ib3JnLmVjbGlwc2UuYXBwNG1jLnNhbXBsZS5tb2RlbCIKLSAgICBtb2RlbE5hbWU9IlNhbXBsZSIgcm9vdEV4dGVuZHNDbGFzcz0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuTWluaW1hbEVPYmplY3RJbXBsJENvbnRhaW5lciIKLSAgICBpbXBvcnRlcklEPSJvcmcuZWNsaXBzZS5lbWYuaW1wb3J0ZXIuZWNvcmUiIGNvbXBsaWFuY2VMZXZlbD0iOC4wIiBjb3B5cmlnaHRGaWVsZHM9ImZhbHNlIgotICAgIG9wZXJhdGlvblJlZmxlY3Rpb249InRydWUiIGltcG9ydE9yZ2FuaXppbmc9InRydWUiPgotICA8Zm9yZWlnbk1vZGVsPlNhbXBsZS5lY29yZTwvZm9yZWlnbk1vZGVsPgotICA8Z2VuUGFja2FnZXMgcHJlZml4PSJTYW1wbGVNb2RlbCIgZGlzcG9zYWJsZVByb3ZpZGVyRmFjdG9yeT0idHJ1ZSIgZWNvcmVQYWNrYWdlPSJTYW1wbGUuZWNvcmUjLyI+Ci0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iU2FtcGxlLmVjb3JlIy8vTW9kZWwiPgotICAgICAgPGdlbkZlYXR1cmVzIHByb3BlcnR5PSJOb25lIiBjaGlsZHJlbj0idHJ1ZSIgY3JlYXRlQ2hpbGQ9InRydWUiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RVJlZmVyZW5jZSBTYW1wbGUuZWNvcmUjLy9Nb2RlbC9ydW5uYWJsZXMiLz4KLSAgICAgIDxnZW5GZWF0dXJlcyBwcm9wZXJ0eT0iTm9uZSIgY2hpbGRyZW49InRydWUiIGNyZWF0ZUNoaWxkPSJ0cnVlIiBlY29yZUZlYXR1cmU9ImVjb3JlOkVSZWZlcmVuY2UgU2FtcGxlLmVjb3JlIy8vTW9kZWwvbGFiZWxzIi8+Ci0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFNhbXBsZS5lY29yZSMvL01vZGVsL21lbW9yaWVzIi8+Ci0gICAgICA8Z2VuRmVhdHVyZXMgcHJvcGVydHk9Ik5vbmUiIGNoaWxkcmVuPSJ0cnVlIiBjcmVhdGVDaGlsZD0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFNhbXBsZS5lY29yZSMvL01vZGVsL3NjaGVkdWxlcnMiLz4KLSAgICA8L2dlbkNsYXNzZXM+Ci0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iU2FtcGxlLmVjb3JlIy8vUnVubmFibGUiPgotICAgICAgPGdlbkZlYXR1cmVzIG5vdGlmeT0iZmFsc2UiIGNyZWF0ZUNoaWxkPSJmYWxzZSIgcHJvcGVydHlTb3J0Q2hvaWNlcz0idHJ1ZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFUmVmZXJlbmNlIFNhbXBsZS5lY29yZSMvL1J1bm5hYmxlL2xhYmVscyIvPgotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFNhbXBsZS5lY29yZSMvL1J1bm5hYmxlL25hbWUiLz4KLSAgICA8L2dlbkNsYXNzZXM+Ci0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iU2FtcGxlLmVjb3JlIy8vTGFiZWwiPgotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFNhbXBsZS5lY29yZSMvL0xhYmVsL25hbWUiLz4KLSAgICA8L2dlbkNsYXNzZXM+Ci0gICAgPGdlbkNsYXNzZXMgZWNvcmVDbGFzcz0iU2FtcGxlLmVjb3JlIy8vTWVtb3J5Ij4KLSAgICAgIDxnZW5GZWF0dXJlcyBjcmVhdGVDaGlsZD0iZmFsc2UiIGVjb3JlRmVhdHVyZT0iZWNvcmU6RUF0dHJpYnV0ZSBTYW1wbGUuZWNvcmUjLy9NZW1vcnkvbmFtZSIvPgotICAgIDwvZ2VuQ2xhc3Nlcz4KLSAgICA8Z2VuQ2xhc3NlcyBlY29yZUNsYXNzPSJTYW1wbGUuZWNvcmUjLy9TY2hlZHVsZXIiPgotICAgICAgPGdlbkZlYXR1cmVzIGNyZWF0ZUNoaWxkPSJmYWxzZSIgZWNvcmVGZWF0dXJlPSJlY29yZTpFQXR0cmlidXRlIFNhbXBsZS5lY29yZSMvL1NjaGVkdWxlci9uYW1lIi8+Ci0gICAgPC9nZW5DbGFzc2VzPgotICA8L2dlblBhY2thZ2VzPgotPC9nZW5tb2RlbDpHZW5Nb2RlbD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wbHVnaW4ucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wbHVnaW4ucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU3NThjZi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvcGx1Z2luLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0jIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICAqIENvcHlyaWdodCAoYykgMjAxNyBSb2JlcnQgQm9zY2ggR21iSC4KLSMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSMgICoKLSMgICogQ29udHJpYnV0b3JzOgotIyAgKiAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotcGx1Z2luTmFtZSA9IFNhbXBsZSBNb2RlbAotcHJvdmlkZXJOYW1lID0gd3d3LmV4YW1wbGUub3JnCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvcGx1Z2luLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wbHVnaW4ueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Y2I5ZDhmLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wbHVnaW4ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/ZWNsaXBzZSB2ZXJzaW9uPSIzLjAiPz4KLQotPCEtLQotIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gICogQ29weXJpZ2h0IChjKSAyMDE3IFJvYmVydCBCb3NjaCBHbWJILgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gICoKLSAgKiBDb250cmlidXRvcnM6Ci0gICogICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS0tPgotCi08cGx1Z2luPgotCi0gICA8ZXh0ZW5zaW9uIHBvaW50PSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUuZ2VuZXJhdGVkX3BhY2thZ2UiPgotICAgICAgPCEtLSBAZ2VuZXJhdGVkIFNhbXBsZSAtLT4KLSAgICAgIDxwYWNrYWdlCi0gICAgICAgICAgICB1cmk9Imh0dHA6Ly9TYW1wbGVNb2RlbC8wLjMuMCIKLSAgICAgICAgICAgIGNsYXNzPSJTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UiCi0gICAgICAgICAgICBnZW5Nb2RlbD0ibW9kZWwvU2FtcGxlLmdlbm1vZGVsIi8+Ci0gICA8L2V4dGVuc2lvbj4KLQotPC9wbHVnaW4+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvcG9tLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wb20ueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjAyNzRlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0JPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotCi0JPHBhcmVudD4KLQkJPHJlbGF0aXZlUGF0aD4uLi8uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+Ci0JCTxncm91cElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbjwvZ3JvdXBJZD4KLQkJPGFydGlmYWN0SWQ+cGFyZW50PC9hcnRpZmFjdElkPgotCQk8dmVyc2lvbj4wLjMuMC1TTkFQU0hPVDwvdmVyc2lvbj4KLQk8L3BhcmVudD4KLQkKLQk8cHJvcGVydGllcz4KLQkJPHBsdWdpbi1pZD5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWw8L3BsdWdpbi1pZD4KLQkJPGV4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbj4uLi8uLi8uLi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlcjwvZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9uPgotCTwvcHJvcGVydGllcz4gCi0JCi0KLQk8YXJ0aWZhY3RJZD5hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWw8L2FydGlmYWN0SWQ+Ci0JPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KLQotCTxidWlsZD4KLQkJPHBsdWdpbnM+Ci0JCQk8cGx1Z2luPgotCQkJCTxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1hbnRydW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KLQotCQkJCTxleGVjdXRpb25zPgotCQkJCQk8ZXhlY3V0aW9uPgotCQkJCQkJPGlkPnJlcGxhY2UtYnVpbGQtdG9rZW48L2lkPgotCQkJCQkJPHBoYXNlPmdlbmVyYXRlLXNvdXJjZXM8L3BoYXNlPgotCi0JCQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJCQk8dGFyZ2V0PgotCQkJCQkJCQkgPGNvcHkgdG9kaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iPgotCQkJCQkJCQkJPGZpbGVzZXQgZGlyPSIuLyI+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuZXh0ZXJuYWxUb29sQnVpbGRlcnMvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iZGF0YWJhc2UvIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iYmluLyIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9InRhcmdldC8iIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIuc2V0dGluZ3Mvb3JnLmVjbGlwc2UubXlseW4qIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMucHJlZnMiIC8+Ci0JCQkJCQkJCQk8ZXhjbHVkZSBuYW1lPSIqKi8uZ2l0aWdub3JlIiAvPgotCQkJCQkJCQkJPGV4Y2x1ZGUgbmFtZT0iKiovcG9tLnhtbCIgLz4KLQkJCQkJCQkJCTxleGNsdWRlIG5hbWU9IioqL3JlbGVhc2UuKiIgLz4KLQkJCQkJCQkJCTxpbmNsdWRlIG5hbWU9IioqIiAvPgotCQkJCQkJCQkJPC9maWxlc2V0PgotCQkJCQkJCQkgPC9jb3B5PiAKLQkJCQkJCQkJIAotCQkJCQkJCQkgCQkgPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0ic2ciCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkV4dGVybmFsVG9vbEJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy1pbnN0YWxsZXItbG9jYXRpb259L2V4YW1wbGVzLyR7cGx1Z2luLWlkfS8ucHJvamVjdCIKLQkJCSAgICAgICAgICAgICAgIGJ5bGluZT0iZmFsc2UiCi0JCQkgICAgICAgICAgICAgICBmbGFncz0icyIKLQkJCSAgICAgICAgICAgICAgIG1hdGNoPSJccyombHQ7YnVpbGRDb21tYW5kPlxzKyZsdDtuYW1lPm9yZy5lY2xpcHNlLmVtZi5jZG8ucmVsZW5nLnZlcnNpb24uVmVyc2lvbkJ1aWxkZXIuKj8mbHQ7L2J1aWxkQ29tbWFuZD4iCi0JCQkgICAgICAgICAgICAgICByZXBsYWNlPSIiIC8+Ci0KLQkJCTxyZXBsYWNlcmVnZXhwIGZpbGU9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O25hdHVyZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLWluc3RhbGxlci1sb2NhdGlvbn0vZXhhbXBsZXMvJHtwbHVnaW4taWR9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCQkJCQkJCTwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxpZD5hdXRvLWNsZWFuPC9pZD4KLQkJCQkJCTxwaGFzZT5jbGVhbjwvcGhhc2U+Ci0KLQkJCQkJCTxjb25maWd1cmF0aW9uPgotCQkJCQkJCTx0YXJnZXQ+Ci0JCQkJCQkJCSA8ZGVsZXRlICBkaXI9IiR7ZXhhbXBsZXMtaW5zdGFsbGVyLWxvY2F0aW9ufS9leGFtcGxlcy8ke3BsdWdpbi1pZH0iLz4KLQkJCQkJCSAgIDwvdGFyZ2V0PgotCQkJCQkJPC9jb25maWd1cmF0aW9uPgotCi0JCQkJCQk8Z29hbHM+Ci0JCQkJCQkJPGdvYWw+cnVuPC9nb2FsPgotCQkJCQkJPC9nb2Fscz4KLQkJCQkJPC9leGVjdXRpb24+Ci0JCQkJCQotCQkJCTwvZXhlY3V0aW9ucz4KLQotCQkJPC9wbHVnaW4+Ci0JCTwvcGx1Z2lucz4KLQk8L2J1aWxkPgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvTGFiZWwuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvTGFiZWwuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjkxZGNkYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL0xhYmVsLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5MYWJlbDwvYj48L2VtPicuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqCi0gKiA8cD4KLSAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKLSAqIDwvcD4KLSAqIDx1bD4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5MYWJlbCNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4KLSAqIDwvdWw+Ci0gKgotICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0TGFiZWwoKQotICogQG1vZGVsCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBpbnRlcmZhY2UgTGFiZWwgZXh0ZW5kcyBFT2JqZWN0IHsKLQkvKioKLQkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8cD4KLQkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZSBpc24ndCBjbGVhciwKLQkgKiB0aGVyZSByZWFsbHkgc2hvdWxkIGJlIG1vcmUgb2YgYSBkZXNjcmlwdGlvbiBoZXJlLi4uCi0JICogPC9wPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSAnPGVtPk5hbWU8L2VtPicgYXR0cmlidXRlLgotCSAqIEBzZWUgI3NldE5hbWUoU3RyaW5nKQotCSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldExhYmVsX05hbWUoKQotCSAqIEBtb2RlbAotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlTdHJpbmcgZ2V0TmFtZSgpOwotCi0JLyoqCi0JICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuTGFiZWwjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUuCi0JICogQHNlZSAjZ2V0TmFtZSgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXZvaWQgc2V0TmFtZShTdHJpbmcgdmFsdWUpOwotCi19IC8vIExhYmVsCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL01lbW9yeS5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9NZW1vcnkuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQxODJkZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL01lbW9yeS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWw7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+TWVtb3J5PC9iPjwvZW0+Jy4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICoKLSAqIDxwPgotICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOgotICogPC9wPgotICogPHVsPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLk1lbW9yeSNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4KLSAqIDwvdWw+Ci0gKgotICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0TWVtb3J5KCkKLSAqIEBtb2RlbAotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgaW50ZXJmYWNlIE1lbW9yeSBleHRlbmRzIEVPYmplY3QgewotCS8qKgotCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDxwPgotCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPk5hbWU8L2VtPicgYXR0cmlidXRlIGlzbid0IGNsZWFyLAotCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4KLQkgKiA8L3A+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUuCi0JICogQHNlZSAjc2V0TmFtZShTdHJpbmcpCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0TWVtb3J5X05hbWUoKQotCSAqIEBtb2RlbAotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlTdHJpbmcgZ2V0TmFtZSgpOwotCi0JLyoqCi0JICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuTWVtb3J5I2dldE5hbWUgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSAnPGVtPk5hbWU8L2VtPicgYXR0cmlidXRlLgotCSAqIEBzZWUgI2dldE5hbWUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQl2b2lkIHNldE5hbWUoU3RyaW5nIHZhbHVlKTsKLQotfSAvLyBNZW1vcnkKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvTW9kZWwuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvTW9kZWwuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxMTNlMC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL01vZGVsLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5FTGlzdDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5Nb2RlbDwvYj48L2VtPicuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqCi0gKiA8cD4KLSAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKLSAqIDwvcD4KLSAqIDx1bD4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5Nb2RlbCNnZXRSdW5uYWJsZXMgPGVtPlJ1bm5hYmxlczwvZW0+fTwvbGk+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0TGFiZWxzIDxlbT5MYWJlbHM8L2VtPn08L2xpPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLk1vZGVsI2dldE1lbW9yaWVzIDxlbT5NZW1vcmllczwvZW0+fTwvbGk+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0U2NoZWR1bGVycyA8ZW0+U2NoZWR1bGVyczwvZW0+fTwvbGk+Ci0gKiA8L3VsPgotICoKLSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldE1vZGVsKCkKLSAqIEBtb2RlbAotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgaW50ZXJmYWNlIE1vZGVsIGV4dGVuZHMgRU9iamVjdCB7Ci0JLyoqCi0JICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+UnVubmFibGVzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiBUaGUgbGlzdCBjb250ZW50cyBhcmUgb2YgdHlwZSB7QGxpbmsgU2FtcGxlTW9kZWwuUnVubmFibGV9LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPHA+Ci0JICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+UnVubmFibGVzPC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0IGlzbid0IGNsZWFyLAotCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4KLQkgKiA8L3A+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+UnVubmFibGVzPC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldE1vZGVsX1J1bm5hYmxlcygpCi0JICogQG1vZGVsIGNvbnRhaW5tZW50PSJ0cnVlIgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFTGlzdDxTYW1wbGVNb2RlbC5SdW5uYWJsZT4gZ2V0UnVubmFibGVzKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5MYWJlbHM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIFRoZSBsaXN0IGNvbnRlbnRzIGFyZSBvZiB0eXBlIHtAbGluayBTYW1wbGVNb2RlbC5MYWJlbH0uCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8cD4KLQkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5MYWJlbHM8L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgaXNuJ3QgY2xlYXIsCi0JICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLgotCSAqIDwvcD4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5MYWJlbHM8L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0TW9kZWxfTGFiZWxzKCkKLQkgKiBAbW9kZWwgY29udGFpbm1lbnQ9InRydWUiCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVMaXN0PExhYmVsPiBnZXRMYWJlbHMoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPk1lbW9yaWVzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiBUaGUgbGlzdCBjb250ZW50cyBhcmUgb2YgdHlwZSB7QGxpbmsgU2FtcGxlTW9kZWwuTWVtb3J5fS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDxwPgotCSAqIElmIHRoZSBtZWFuaW5nIG9mIHRoZSAnPGVtPk1lbW9yaWVzPC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0IGlzbid0IGNsZWFyLAotCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4KLQkgKiA8L3A+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+TWVtb3JpZXM8L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UjZ2V0TW9kZWxfTWVtb3JpZXMoKQotCSAqIEBtb2RlbCBjb250YWlubWVudD0idHJ1ZSIKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRUxpc3Q8TWVtb3J5PiBnZXRNZW1vcmllcygpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+U2NoZWR1bGVyczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogVGhlIGxpc3QgY29udGVudHMgYXJlIG9mIHR5cGUge0BsaW5rIFNhbXBsZU1vZGVsLlNjaGVkdWxlcn0uCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8cD4KLQkgKiBJZiB0aGUgbWVhbmluZyBvZiB0aGUgJzxlbT5TY2hlZHVsZXJzPC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0IGlzbid0IGNsZWFyLAotCSAqIHRoZXJlIHJlYWxseSBzaG91bGQgYmUgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIGhlcmUuLi4KLQkgKiA8L3A+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+U2NoZWR1bGVyczwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRNb2RlbF9TY2hlZHVsZXJzKCkKLQkgKiBAbW9kZWwgY29udGFpbm1lbnQ9InRydWUiCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVMaXN0PFNjaGVkdWxlcj4gZ2V0U2NoZWR1bGVycygpOwotCi19IC8vIE1vZGVsCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL1J1bm5hYmxlLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL1J1bm5hYmxlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlNzM0YTkuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9SdW5uYWJsZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWw7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+UnVubmFibGU8L2I+PC9lbT4nLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKgotICogPHA+Ci0gKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6Ci0gKiA8L3A+Ci0gKiA8dWw+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuUnVubmFibGUjZ2V0TGFiZWxzIDxlbT5MYWJlbHM8L2VtPn08L2xpPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLlJ1bm5hYmxlI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRSdW5uYWJsZSgpCi0gKiBAbW9kZWwKLSAqIEBnZW5lcmF0ZWQKLSAqLwotcHVibGljIGludGVyZmFjZSBSdW5uYWJsZSBleHRlbmRzIEVPYmplY3QgewotCS8qKgotCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPkxhYmVsczwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPHA+Ci0JICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+TGFiZWxzPC9lbT4nIHJlZmVyZW5jZSBpc24ndCBjbGVhciwKLQkgKiB0aGVyZSByZWFsbHkgc2hvdWxkIGJlIG1vcmUgb2YgYSBkZXNjcmlwdGlvbiBoZXJlLi4uCi0JICogPC9wPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSAnPGVtPkxhYmVsczwvZW0+JyByZWZlcmVuY2UuCi0JICogQHNlZSAjc2V0TGFiZWxzKExhYmVsKQotCSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2dldFJ1bm5hYmxlX0xhYmVscygpCi0JICogQG1vZGVsCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUxhYmVsIGdldExhYmVscygpOwotCi0JLyoqCi0JICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuUnVubmFibGUjZ2V0TGFiZWxzIDxlbT5MYWJlbHM8L2VtPn0nIHJlZmVyZW5jZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSAnPGVtPkxhYmVsczwvZW0+JyByZWZlcmVuY2UuCi0JICogQHNlZSAjZ2V0TGFiZWxzKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0Jdm9pZCBzZXRMYWJlbHMoTGFiZWwgdmFsdWUpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPHA+Ci0JICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUgaXNuJ3QgY2xlYXIsCi0JICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLgotCSAqIDwvcD4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiBAc2VlICNzZXROYW1lKFN0cmluZykKLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRSdW5uYWJsZV9OYW1lKCkKLQkgKiBAbW9kZWwKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JU3RyaW5nIGdldE5hbWUoKTsKLQotCS8qKgotCSAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLlJ1bm5hYmxlI2dldE5hbWUgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSAnPGVtPk5hbWU8L2VtPicgYXR0cmlidXRlLgotCSAqIEBzZWUgI2dldE5hbWUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQl2b2lkIHNldE5hbWUoU3RyaW5nIHZhbHVlKTsKLQotfSAvLyBSdW5uYWJsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9TYW1wbGVNb2RlbEZhY3RvcnkuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvU2FtcGxlTW9kZWxGYWN0b3J5LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5YTcyNDguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9TYW1wbGVNb2RlbEZhY3RvcnkuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVGYWN0b3J5OwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBUaGUgPGI+RmFjdG9yeTwvYj4gZm9yIHRoZSBtb2RlbC4KLSAqIEl0IHByb3ZpZGVzIGEgY3JlYXRlIG1ldGhvZCBmb3IgZWFjaCBub24tYWJzdHJhY3QgY2xhc3Mgb2YgdGhlIG1vZGVsLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZQotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgaW50ZXJmYWNlIFNhbXBsZU1vZGVsRmFjdG9yeSBleHRlbmRzIEVGYWN0b3J5IHsKLQkvKioKLQkgKiBUaGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBmYWN0b3J5LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCVNhbXBsZU1vZGVsRmFjdG9yeSBlSU5TVEFOQ0UgPSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsRmFjdG9yeUltcGwuaW5pdCgpOwotCi0JLyoqCi0JICogUmV0dXJucyBhIG5ldyBvYmplY3Qgb2YgY2xhc3MgJzxlbT5Nb2RlbDwvZW0+Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gYSBuZXcgb2JqZWN0IG9mIGNsYXNzICc8ZW0+TW9kZWw8L2VtPicuCi0JICogQGdlbmVyYXRlZAotCSAqLwotCU1vZGVsIGNyZWF0ZU1vZGVsKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIGEgbmV3IG9iamVjdCBvZiBjbGFzcyAnPGVtPlJ1bm5hYmxlPC9lbT4nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiBhIG5ldyBvYmplY3Qgb2YgY2xhc3MgJzxlbT5SdW5uYWJsZTwvZW0+Jy4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JUnVubmFibGUgY3JlYXRlUnVubmFibGUoKTsKLQotCS8qKgotCSAqIFJldHVybnMgYSBuZXcgb2JqZWN0IG9mIGNsYXNzICc8ZW0+TGFiZWw8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIGEgbmV3IG9iamVjdCBvZiBjbGFzcyAnPGVtPkxhYmVsPC9lbT4nLgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlMYWJlbCBjcmVhdGVMYWJlbCgpOwotCi0JLyoqCi0JICogUmV0dXJucyBhIG5ldyBvYmplY3Qgb2YgY2xhc3MgJzxlbT5NZW1vcnk8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIGEgbmV3IG9iamVjdCBvZiBjbGFzcyAnPGVtPk1lbW9yeTwvZW0+Jy4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JTWVtb3J5IGNyZWF0ZU1lbW9yeSgpOwotCi0JLyoqCi0JICogUmV0dXJucyBhIG5ldyBvYmplY3Qgb2YgY2xhc3MgJzxlbT5TY2hlZHVsZXI8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIGEgbmV3IG9iamVjdCBvZiBjbGFzcyAnPGVtPlNjaGVkdWxlcjwvZW0+Jy4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JU2NoZWR1bGVyIGNyZWF0ZVNjaGVkdWxlcigpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgcGFja2FnZSBzdXBwb3J0ZWQgYnkgdGhpcyBmYWN0b3J5LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgcGFja2FnZSBzdXBwb3J0ZWQgYnkgdGhpcyBmYWN0b3J5LgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlTYW1wbGVNb2RlbFBhY2thZ2UgZ2V0U2FtcGxlTW9kZWxQYWNrYWdlKCk7Ci0KLX0gLy9TYW1wbGVNb2RlbEZhY3RvcnkKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvU2FtcGxlTW9kZWxQYWNrYWdlLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL1NhbXBsZU1vZGVsUGFja2FnZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2IzOTEzLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvU2FtcGxlTW9kZWxQYWNrYWdlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1NzcgKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWw7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUF0dHJpYnV0ZTsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUGFja2FnZTsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVJlZmVyZW5jZTsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogVGhlIDxiPlBhY2thZ2U8L2I+IGZvciB0aGUgbW9kZWwuCi0gKiBJdCBjb250YWlucyBhY2Nlc3NvcnMgZm9yIHRoZSBtZXRhIG9iamVjdHMgdG8gcmVwcmVzZW50Ci0gKiA8dWw+Ci0gKiAgIDxsaT5lYWNoIGNsYXNzLDwvbGk+Ci0gKiAgIDxsaT5lYWNoIGZlYXR1cmUgb2YgZWFjaCBjbGFzcyw8L2xpPgotICogICA8bGk+ZWFjaCBvcGVyYXRpb24gb2YgZWFjaCBjbGFzcyw8L2xpPgotICogICA8bGk+ZWFjaCBlbnVtLDwvbGk+Ci0gKiAgIDxsaT5hbmQgZWFjaCBkYXRhIHR5cGU8L2xpPgotICogPC91bD4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3RvcnkKLSAqIEBtb2RlbCBraW5kPSJwYWNrYWdlIgotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgaW50ZXJmYWNlIFNhbXBsZU1vZGVsUGFja2FnZSBleHRlbmRzIEVQYWNrYWdlIHsKLQkvKioKLQkgKiBUaGUgcGFja2FnZSBuYW1lLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCVN0cmluZyBlTkFNRSA9ICJTYW1wbGVNb2RlbCI7Ci0KLQkvKioKLQkgKiBUaGUgcGFja2FnZSBuYW1lc3BhY2UgVVJJLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCVN0cmluZyBlTlNfVVJJID0gImh0dHA6Ly9TYW1wbGVNb2RlbC8wLjMuMCI7Ci0KLQkvKioKLQkgKiBUaGUgcGFja2FnZSBuYW1lc3BhY2UgbmFtZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlTdHJpbmcgZU5TX1BSRUZJWCA9ICJTYW1wbGVNb2RlbCI7Ci0KLQkvKioKLQkgKiBUaGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBwYWNrYWdlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCVNhbXBsZU1vZGVsUGFja2FnZSBlSU5TVEFOQ0UgPSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwuaW5pdCgpOwotCi0JLyoqCi0JICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5pbXBsLk1vZGVsSW1wbCA8ZW0+TW9kZWw8L2VtPn0nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLk1vZGVsSW1wbAotCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TYW1wbGVNb2RlbFBhY2thZ2VJbXBsI2dldE1vZGVsKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JaW50IE1PREVMID0gMDsKLQotCS8qKgotCSAqIFRoZSBmZWF0dXJlIGlkIGZvciB0aGUgJzxlbT48Yj5SdW5uYWJsZXM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1PREVMX19SVU5OQUJMRVMgPSAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxhYmVsczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTU9ERUxfX0xBQkVMUyA9IDE7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TWVtb3JpZXM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1PREVMX19NRU1PUklFUyA9IDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+U2NoZWR1bGVyczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgTU9ERUxfX1NDSEVEVUxFUlMgPSAzOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSAnPGVtPk1vZGVsPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1PREVMX0ZFQVRVUkVfQ09VTlQgPSA0OwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBvcGVyYXRpb25zIG9mIHRoZSAnPGVtPk1vZGVsPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1PREVMX09QRVJBVElPTl9DT1VOVCA9IDA7Ci0KLQkvKioKLQkgKiBUaGUgbWV0YSBvYmplY3QgaWQgZm9yIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuUnVubmFibGVJbXBsIDxlbT5SdW5uYWJsZTwvZW0+fScgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuUnVubmFibGVJbXBsCi0JICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0UnVubmFibGUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlpbnQgUlVOTkFCTEUgPSAxOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPkxhYmVsczwvYj48L2VtPicgcmVmZXJlbmNlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFJVTk5BQkxFX19MQUJFTFMgPSAwOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBSVU5OQUJMRV9fTkFNRSA9IDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIHN0cnVjdHVyYWwgZmVhdHVyZXMgb2YgdGhlICc8ZW0+UnVubmFibGU8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUlVOTkFCTEVfRkVBVFVSRV9DT1VOVCA9IDI7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgb2YgdGhlICc8ZW0+UnVubmFibGU8L2VtPicgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlpbnQgUlVOTkFCTEVfT1BFUkFUSU9OX0NPVU5UID0gMDsKLQotCS8qKgotCSAqIFRoZSBtZXRhIG9iamVjdCBpZCBmb3IgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5MYWJlbEltcGwgPGVtPkxhYmVsPC9lbT59JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5MYWJlbEltcGwKLQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCNnZXRMYWJlbCgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCWludCBMQUJFTCA9IDI7Ci0KLQkvKioKLQkgKiBUaGUgZmVhdHVyZSBpZCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IExBQkVMX19OQU1FID0gMDsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygc3RydWN0dXJhbCBmZWF0dXJlcyBvZiB0aGUgJzxlbT5MYWJlbDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMQUJFTF9GRUFUVVJFX0NPVU5UID0gMTsKLQotCS8qKgotCSAqIFRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBvZiB0aGUgJzxlbT5MYWJlbDwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBMQUJFTF9PUEVSQVRJT05fQ09VTlQgPSAwOwotCi0JLyoqCi0JICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5pbXBsLk1lbW9yeUltcGwgPGVtPk1lbW9yeTwvZW0+fScgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuTWVtb3J5SW1wbAotCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TYW1wbGVNb2RlbFBhY2thZ2VJbXBsI2dldE1lbW9yeSgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCWludCBNRU1PUlkgPSAzOwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNRU1PUllfX05BTUUgPSAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSAnPGVtPk1lbW9yeTwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBNRU1PUllfRkVBVFVSRV9DT1VOVCA9IDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgb2YgdGhlICc8ZW0+TWVtb3J5PC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IE1FTU9SWV9PUEVSQVRJT05fQ09VTlQgPSAwOwotCi0JLyoqCi0JICogVGhlIG1ldGEgb2JqZWN0IGlkIGZvciB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5pbXBsLlNjaGVkdWxlckltcGwgPGVtPlNjaGVkdWxlcjwvZW0+fScgY2xhc3MuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuU2NoZWR1bGVySW1wbAotCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TYW1wbGVNb2RlbFBhY2thZ2VJbXBsI2dldFNjaGVkdWxlcigpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCWludCBTQ0hFRFVMRVIgPSA0OwotCi0JLyoqCi0JICogVGhlIGZlYXR1cmUgaWQgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTQ0hFRFVMRVJfX05BTUUgPSAwOwotCi0JLyoqCi0JICogVGhlIG51bWJlciBvZiBzdHJ1Y3R1cmFsIGZlYXR1cmVzIG9mIHRoZSAnPGVtPlNjaGVkdWxlcjwvZW0+JyBjbGFzcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCWludCBTQ0hFRFVMRVJfRkVBVFVSRV9DT1VOVCA9IDE7Ci0KLQkvKioKLQkgKiBUaGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgb2YgdGhlICc8ZW0+U2NoZWR1bGVyPC9lbT4nIGNsYXNzLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JaW50IFNDSEVEVUxFUl9PUEVSQVRJT05fQ09VTlQgPSAwOwotCi0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJ3tAbGluayBTYW1wbGVNb2RlbC5Nb2RlbCA8ZW0+TW9kZWw8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIGNsYXNzICc8ZW0+TW9kZWw8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5Nb2RlbAotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFQ2xhc3MgZ2V0TW9kZWwoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgJ3tAbGluayBTYW1wbGVNb2RlbC5Nb2RlbCNnZXRSdW5uYWJsZXMgPGVtPlJ1bm5hYmxlczwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0ICc8ZW0+UnVubmFibGVzPC9lbT4nLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0UnVubmFibGVzKCkKLQkgKiBAc2VlICNnZXRNb2RlbCgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVSZWZlcmVuY2UgZ2V0TW9kZWxfUnVubmFibGVzKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0ICd7QGxpbmsgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0TGFiZWxzIDxlbT5MYWJlbHM8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdCAnPGVtPkxhYmVsczwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLk1vZGVsI2dldExhYmVscygpCi0JICogQHNlZSAjZ2V0TW9kZWwoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFUmVmZXJlbmNlIGdldE1vZGVsX0xhYmVscygpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdCAne0BsaW5rIFNhbXBsZU1vZGVsLk1vZGVsI2dldE1lbW9yaWVzIDxlbT5NZW1vcmllczwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0ICc8ZW0+TWVtb3JpZXM8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5Nb2RlbCNnZXRNZW1vcmllcygpCi0JICogQHNlZSAjZ2V0TW9kZWwoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFUmVmZXJlbmNlIGdldE1vZGVsX01lbW9yaWVzKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0ICd7QGxpbmsgU2FtcGxlTW9kZWwuTW9kZWwjZ2V0U2NoZWR1bGVycyA8ZW0+U2NoZWR1bGVyczwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0ICc8ZW0+U2NoZWR1bGVyczwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLk1vZGVsI2dldFNjaGVkdWxlcnMoKQotCSAqIEBzZWUgI2dldE1vZGVsKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRVJlZmVyZW5jZSBnZXRNb2RlbF9TY2hlZHVsZXJzKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJ3tAbGluayBTYW1wbGVNb2RlbC5SdW5uYWJsZSA8ZW0+UnVubmFibGU8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIGNsYXNzICc8ZW0+UnVubmFibGU8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5SdW5uYWJsZQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFQ2xhc3MgZ2V0UnVubmFibGUoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgcmVmZXJlbmNlICd7QGxpbmsgU2FtcGxlTW9kZWwuUnVubmFibGUjZ2V0TGFiZWxzIDxlbT5MYWJlbHM8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSByZWZlcmVuY2UgJzxlbT5MYWJlbHM8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5SdW5uYWJsZSNnZXRMYWJlbHMoKQotCSAqIEBzZWUgI2dldFJ1bm5hYmxlKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRVJlZmVyZW5jZSBnZXRSdW5uYWJsZV9MYWJlbHMoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgYXR0cmlidXRlICd7QGxpbmsgU2FtcGxlTW9kZWwuUnVubmFibGUjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAnPGVtPk5hbWU8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5SdW5uYWJsZSNnZXROYW1lKCkKLQkgKiBAc2VlICNnZXRSdW5uYWJsZSgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUVBdHRyaWJ1dGUgZ2V0UnVubmFibGVfTmFtZSgpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIGNsYXNzICd7QGxpbmsgU2FtcGxlTW9kZWwuTGFiZWwgPGVtPkxhYmVsPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciBjbGFzcyAnPGVtPkxhYmVsPC9lbT4nLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTGFiZWwKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRUNsYXNzIGdldExhYmVsKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAne0BsaW5rIFNhbXBsZU1vZGVsLkxhYmVsI2dldE5hbWUgPGVtPk5hbWU8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBhdHRyaWJ1dGUgJzxlbT5OYW1lPC9lbT4nLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTGFiZWwjZ2V0TmFtZSgpCi0JICogQHNlZSAjZ2V0TGFiZWwoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFQXR0cmlidXRlIGdldExhYmVsX05hbWUoKTsKLQotCS8qKgotCSAqIFJldHVybnMgdGhlIG1ldGEgb2JqZWN0IGZvciBjbGFzcyAne0BsaW5rIFNhbXBsZU1vZGVsLk1lbW9yeSA8ZW0+TWVtb3J5PC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciBjbGFzcyAnPGVtPk1lbW9yeTwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLk1lbW9yeQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFQ2xhc3MgZ2V0TWVtb3J5KCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAne0BsaW5rIFNhbXBsZU1vZGVsLk1lbW9yeSNnZXROYW1lIDxlbT5OYW1lPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG1ldGEgb2JqZWN0IGZvciB0aGUgYXR0cmlidXRlICc8ZW0+TmFtZTwvZW0+Jy4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLk1lbW9yeSNnZXROYW1lKCkKLQkgKiBAc2VlICNnZXRNZW1vcnkoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlFQXR0cmlidXRlIGdldE1lbW9yeV9OYW1lKCk7Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJ3tAbGluayBTYW1wbGVNb2RlbC5TY2hlZHVsZXIgPGVtPlNjaGVkdWxlcjwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgY2xhc3MgJzxlbT5TY2hlZHVsZXI8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TY2hlZHVsZXIKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRUNsYXNzIGdldFNjaGVkdWxlcigpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgbWV0YSBvYmplY3QgZm9yIHRoZSBhdHRyaWJ1dGUgJ3tAbGluayBTYW1wbGVNb2RlbC5TY2hlZHVsZXIjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBtZXRhIG9iamVjdCBmb3IgdGhlIGF0dHJpYnV0ZSAnPGVtPk5hbWU8L2VtPicuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5TY2hlZHVsZXIjZ2V0TmFtZSgpCi0JICogQHNlZSAjZ2V0U2NoZWR1bGVyKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JRUF0dHJpYnV0ZSBnZXRTY2hlZHVsZXJfTmFtZSgpOwotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgZmFjdG9yeSB0aGF0IGNyZWF0ZXMgdGhlIGluc3RhbmNlcyBvZiB0aGUgbW9kZWwuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBmYWN0b3J5IHRoYXQgY3JlYXRlcyB0aGUgaW5zdGFuY2VzIG9mIHRoZSBtb2RlbC4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JU2FtcGxlTW9kZWxGYWN0b3J5IGdldFNhbXBsZU1vZGVsRmFjdG9yeSgpOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBEZWZpbmVzIGxpdGVyYWxzIGZvciB0aGUgbWV0YSBvYmplY3RzIHRoYXQgcmVwcmVzZW50Ci0JICogPHVsPgotCSAqICAgPGxpPmVhY2ggY2xhc3MsPC9saT4KLQkgKiAgIDxsaT5lYWNoIGZlYXR1cmUgb2YgZWFjaCBjbGFzcyw8L2xpPgotCSAqICAgPGxpPmVhY2ggb3BlcmF0aW9uIG9mIGVhY2ggY2xhc3MsPC9saT4KLQkgKiAgIDxsaT5lYWNoIGVudW0sPC9saT4KLQkgKiAgIDxsaT5hbmQgZWFjaCBkYXRhIHR5cGU8L2xpPgotCSAqIDwvdWw+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCWludGVyZmFjZSBMaXRlcmFscyB7Ci0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5Nb2RlbEltcGwgPGVtPk1vZGVsPC9lbT59JyBjbGFzcy4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5Nb2RlbEltcGwKLQkJICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0TW9kZWwoKQotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFQ2xhc3MgTU9ERUwgPSBlSU5TVEFOQ0UuZ2V0TW9kZWwoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPlJ1bm5hYmxlczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgZmVhdHVyZS4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBnZW5lcmF0ZWQKLQkJICovCi0JCUVSZWZlcmVuY2UgTU9ERUxfX1JVTk5BQkxFUyA9IGVJTlNUQU5DRS5nZXRNb2RlbF9SdW5uYWJsZXMoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPkxhYmVsczwvYj48L2VtPicgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QgZmVhdHVyZS4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBnZW5lcmF0ZWQKLQkJICovCi0JCUVSZWZlcmVuY2UgTU9ERUxfX0xBQkVMUyA9IGVJTlNUQU5DRS5nZXRNb2RlbF9MYWJlbHMoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPk1lbW9yaWVzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdCBmZWF0dXJlLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRVJlZmVyZW5jZSBNT0RFTF9fTUVNT1JJRVMgPSBlSU5TVEFOQ0UuZ2V0TW9kZWxfTWVtb3JpZXMoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPlNjaGVkdWxlcnM8L2I+PC9lbT4nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0IGZlYXR1cmUuCi0JCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFUmVmZXJlbmNlIE1PREVMX19TQ0hFRFVMRVJTID0gZUlOU1RBTkNFLmdldE1vZGVsX1NjaGVkdWxlcnMoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuUnVubmFibGVJbXBsIDxlbT5SdW5uYWJsZTwvZW0+fScgY2xhc3MuCi0JCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuUnVubmFibGVJbXBsCi0JCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TYW1wbGVNb2RlbFBhY2thZ2VJbXBsI2dldFJ1bm5hYmxlKCkKLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRUNsYXNzIFJVTk5BQkxFID0gZUlOU1RBTkNFLmdldFJ1bm5hYmxlKCk7Ci0KLQkJLyoqCi0JCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJzxlbT48Yj5MYWJlbHM8L2I+PC9lbT4nIHJlZmVyZW5jZSBmZWF0dXJlLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRVJlZmVyZW5jZSBSVU5OQUJMRV9fTEFCRUxTID0gZUlOU1RBTkNFLmdldFJ1bm5hYmxlX0xhYmVscygpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlIGZlYXR1cmUuCi0JCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCQkgKiBAZ2VuZXJhdGVkCi0JCSAqLwotCQlFQXR0cmlidXRlIFJVTk5BQkxFX19OQU1FID0gZUlOU1RBTkNFLmdldFJ1bm5hYmxlX05hbWUoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuTGFiZWxJbXBsIDxlbT5MYWJlbDwvZW0+fScgY2xhc3MuCi0JCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCQkgKiBAc2VlIFNhbXBsZU1vZGVsLmltcGwuTGFiZWxJbXBsCi0JCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TYW1wbGVNb2RlbFBhY2thZ2VJbXBsI2dldExhYmVsKCkKLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRUNsYXNzIExBQkVMID0gZUlOU1RBTkNFLmdldExhYmVsKCk7Ci0KLQkJLyoqCi0JCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUgZmVhdHVyZS4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBnZW5lcmF0ZWQKLQkJICovCi0JCUVBdHRyaWJ1dGUgTEFCRUxfX05BTUUgPSBlSU5TVEFOQ0UuZ2V0TGFiZWxfTmFtZSgpOwotCi0JCS8qKgotCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICd7QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5NZW1vcnlJbXBsIDxlbT5NZW1vcnk8L2VtPn0nIGNsYXNzLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLk1lbW9yeUltcGwKLQkJICogQHNlZSBTYW1wbGVNb2RlbC5pbXBsLlNhbXBsZU1vZGVsUGFja2FnZUltcGwjZ2V0TWVtb3J5KCkKLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRUNsYXNzIE1FTU9SWSA9IGVJTlNUQU5DRS5nZXRNZW1vcnkoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAnPGVtPjxiPk5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZSBmZWF0dXJlLgotCQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkJICogQGdlbmVyYXRlZAotCQkgKi8KLQkJRUF0dHJpYnV0ZSBNRU1PUllfX05BTUUgPSBlSU5TVEFOQ0UuZ2V0TWVtb3J5X05hbWUoKTsKLQotCQkvKioKLQkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAne0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuU2NoZWR1bGVySW1wbCA8ZW0+U2NoZWR1bGVyPC9lbT59JyBjbGFzcy4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TY2hlZHVsZXJJbXBsCi0JCSAqIEBzZWUgU2FtcGxlTW9kZWwuaW1wbC5TYW1wbGVNb2RlbFBhY2thZ2VJbXBsI2dldFNjaGVkdWxlcigpCi0JCSAqIEBnZW5lcmF0ZWQKLQkJICovCi0JCUVDbGFzcyBTQ0hFRFVMRVIgPSBlSU5TVEFOQ0UuZ2V0U2NoZWR1bGVyKCk7Ci0KLQkJLyoqCi0JCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUgZmVhdHVyZS4KLQkJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JCSAqIEBnZW5lcmF0ZWQKLQkJICovCi0JCUVBdHRyaWJ1dGUgU0NIRURVTEVSX19OQU1FID0gZUlOU1RBTkNFLmdldFNjaGVkdWxlcl9OYW1lKCk7Ci0KLQl9Ci0KLX0gLy9TYW1wbGVNb2RlbFBhY2thZ2UKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvU2NoZWR1bGVyLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL1NjaGVkdWxlci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTE0ODM5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvU2NoZWR1bGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5TY2hlZHVsZXI8L2I+PC9lbT4nLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKgotICogPHA+Ci0gKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6Ci0gKiA8L3A+Ci0gKiA8dWw+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuU2NoZWR1bGVyI2dldE5hbWUgPGVtPk5hbWU8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRTY2hlZHVsZXIoKQotICogQG1vZGVsCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBpbnRlcmZhY2UgU2NoZWR1bGVyIGV4dGVuZHMgRU9iamVjdCB7Ci0JLyoqCi0JICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+TmFtZTwvYj48L2VtPicgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPHA+Ci0JICogSWYgdGhlIG1lYW5pbmcgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUgaXNuJ3QgY2xlYXIsCi0JICogdGhlcmUgcmVhbGx5IHNob3VsZCBiZSBtb3JlIG9mIGEgZGVzY3JpcHRpb24gaGVyZS4uLgotCSAqIDwvcD4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT5OYW1lPC9lbT4nIGF0dHJpYnV0ZS4KLQkgKiBAc2VlICNzZXROYW1lKFN0cmluZykKLQkgKiBAc2VlIFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZSNnZXRTY2hlZHVsZXJfTmFtZSgpCi0JICogQG1vZGVsCi0JICogQGdlbmVyYXRlZAotCSAqLwotCVN0cmluZyBnZXROYW1lKCk7Ci0KLQkvKioKLQkgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgJ3tAbGluayBTYW1wbGVNb2RlbC5TY2hlZHVsZXIjZ2V0TmFtZSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlICc8ZW0+TmFtZTwvZW0+JyBhdHRyaWJ1dGUuCi0JICogQHNlZSAjZ2V0TmFtZSgpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXZvaWQgc2V0TmFtZShTdHJpbmcgdmFsdWUpOwotCi19IC8vIFNjaGVkdWxlcgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL0xhYmVsSW1wbC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL0xhYmVsSW1wbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTZiM2NmLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9MYWJlbEltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbC5pbXBsOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTGFiZWw7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLk1pbmltYWxFT2JqZWN0SW1wbDsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIG9iamVjdCAnPGVtPjxiPkxhYmVsPC9iPjwvZW0+Jy4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICogPHA+Ci0gKiBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZDoKLSAqIDwvcD4KLSAqIDx1bD4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5pbXBsLkxhYmVsSW1wbCNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4KLSAqIDwvdWw+Ci0gKgotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgY2xhc3MgTGFiZWxJbXBsIGV4dGVuZHMgTWluaW1hbEVPYmplY3RJbXBsLkNvbnRhaW5lciBpbXBsZW1lbnRzIExhYmVsIHsKLQkvKioKLQkgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TmFtZSgpIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXROYW1lKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FX0VERUZBVUxUID0gbnVsbDsKLQotCS8qKgotCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSAjZ2V0TmFtZSgpCi0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JcHJvdGVjdGVkIFN0cmluZyBuYW1lID0gTkFNRV9FREVGQVVMVDsKLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByb3RlY3RlZCBMYWJlbEltcGwoKSB7Ci0JCXN1cGVyKCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIEVDbGFzcyBlU3RhdGljQ2xhc3MoKSB7Ci0JCXJldHVybiBTYW1wbGVNb2RlbFBhY2thZ2UuTGl0ZXJhbHMuTEFCRUw7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFN0cmluZyBnZXROYW1lKCkgewotCQlyZXR1cm4gbmFtZTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgdm9pZCBzZXROYW1lKFN0cmluZyBuZXdOYW1lKSB7Ci0JCVN0cmluZyBvbGROYW1lID0gbmFtZTsKLQkJbmFtZSA9IG5ld05hbWU7Ci0JCWlmIChlTm90aWZpY2F0aW9uUmVxdWlyZWQoKSkKLQkJCWVOb3RpZnkobmV3IEVOb3RpZmljYXRpb25JbXBsKHRoaXMsIE5vdGlmaWNhdGlvbi5TRVQsIFNhbXBsZU1vZGVsUGFja2FnZS5MQUJFTF9fTkFNRSwgb2xkTmFtZSwgbmFtZSkpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBPYmplY3QgZUdldChpbnQgZmVhdHVyZUlELCBib29sZWFuIHJlc29sdmUsIGJvb2xlYW4gY29yZVR5cGUpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLkxBQkVMX19OQU1FOgotCQkJCXJldHVybiBnZXROYW1lKCk7Ci0JCX0KLQkJcmV0dXJuIHN1cGVyLmVHZXQoZmVhdHVyZUlELCByZXNvbHZlLCBjb3JlVHlwZSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgZVNldChpbnQgZmVhdHVyZUlELCBPYmplY3QgbmV3VmFsdWUpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLkxBQkVMX19OQU1FOgotCQkJCXNldE5hbWUoKFN0cmluZyluZXdWYWx1ZSk7Ci0JCQkJcmV0dXJuOwotCQl9Ci0JCXN1cGVyLmVTZXQoZmVhdHVyZUlELCBuZXdWYWx1ZSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgZVVuc2V0KGludCBmZWF0dXJlSUQpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLkxBQkVMX19OQU1FOgotCQkJCXNldE5hbWUoTkFNRV9FREVGQVVMVCk7Ci0JCQkJcmV0dXJuOwotCQl9Ci0JCXN1cGVyLmVVbnNldChmZWF0dXJlSUQpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBib29sZWFuIGVJc1NldChpbnQgZmVhdHVyZUlEKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5MQUJFTF9fTkFNRToKLQkJCQlyZXR1cm4gTkFNRV9FREVGQVVMVCA9PSBudWxsID8gbmFtZSAhPSBudWxsIDogIU5BTUVfRURFRkFVTFQuZXF1YWxzKG5hbWUpOwotCQl9Ci0JCXJldHVybiBzdXBlci5lSXNTZXQoZmVhdHVyZUlEKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewotCQlpZiAoZUlzUHJveHkoKSkgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCk7Ci0KLQkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7Ci0JCXJlc3VsdC5hcHBlbmQoIiAobmFtZTogIik7Ci0JCXJlc3VsdC5hcHBlbmQobmFtZSk7Ci0JCXJlc3VsdC5hcHBlbmQoJyknKTsKLQkJcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwotCX0KLQotfSAvL0xhYmVsSW1wbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL01lbW9yeUltcGwuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9NZW1vcnlJbXBsLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNWIxYzUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL01lbW9yeUltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbC5pbXBsOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTWVtb3J5OwotaW1wb3J0IFNhbXBsZU1vZGVsLlNhbXBsZU1vZGVsUGFja2FnZTsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5NaW5pbWFsRU9iamVjdEltcGw7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5NZW1vcnk8L2I+PC9lbT4nLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiA8cD4KLSAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOgotICogPC9wPgotICogPHVsPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuTWVtb3J5SW1wbCNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4KLSAqIDwvdWw+Ci0gKgotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgY2xhc3MgTWVtb3J5SW1wbCBleHRlbmRzIE1pbmltYWxFT2JqZWN0SW1wbC5Db250YWluZXIgaW1wbGVtZW50cyBNZW1vcnkgewotCS8qKgotCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXROYW1lKCkgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldE5hbWUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUVfRURFRkFVTFQgPSBudWxsOwotCi0JLyoqCi0JICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TmFtZSgpIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXROYW1lKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgU3RyaW5nIG5hbWUgPSBOQU1FX0VERUZBVUxUOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJvdGVjdGVkIE1lbW9yeUltcGwoKSB7Ci0JCXN1cGVyKCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIEVDbGFzcyBlU3RhdGljQ2xhc3MoKSB7Ci0JCXJldHVybiBTYW1wbGVNb2RlbFBhY2thZ2UuTGl0ZXJhbHMuTUVNT1JZOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKLQkJcmV0dXJuIG5hbWU7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmV3TmFtZSkgewotCQlTdHJpbmcgb2xkTmFtZSA9IG5hbWU7Ci0JCW5hbWUgPSBuZXdOYW1lOwotCQlpZiAoZU5vdGlmaWNhdGlvblJlcXVpcmVkKCkpCi0JCQllTm90aWZ5KG5ldyBFTm90aWZpY2F0aW9uSW1wbCh0aGlzLCBOb3RpZmljYXRpb24uU0VULCBTYW1wbGVNb2RlbFBhY2thZ2UuTUVNT1JZX19OQU1FLCBvbGROYW1lLCBuYW1lKSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIE9iamVjdCBlR2V0KGludCBmZWF0dXJlSUQsIGJvb2xlYW4gcmVzb2x2ZSwgYm9vbGVhbiBjb3JlVHlwZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTUVNT1JZX19OQU1FOgotCQkJCXJldHVybiBnZXROYW1lKCk7Ci0JCX0KLQkJcmV0dXJuIHN1cGVyLmVHZXQoZmVhdHVyZUlELCByZXNvbHZlLCBjb3JlVHlwZSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgZVNldChpbnQgZmVhdHVyZUlELCBPYmplY3QgbmV3VmFsdWUpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1FTU9SWV9fTkFNRToKLQkJCQlzZXROYW1lKChTdHJpbmcpbmV3VmFsdWUpOwotCQkJCXJldHVybjsKLQkJfQotCQlzdXBlci5lU2V0KGZlYXR1cmVJRCwgbmV3VmFsdWUpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyB2b2lkIGVVbnNldChpbnQgZmVhdHVyZUlEKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NRU1PUllfX05BTUU6Ci0JCQkJc2V0TmFtZShOQU1FX0VERUZBVUxUKTsKLQkJCQlyZXR1cm47Ci0JCX0KLQkJc3VwZXIuZVVuc2V0KGZlYXR1cmVJRCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIGJvb2xlYW4gZUlzU2V0KGludCBmZWF0dXJlSUQpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1FTU9SWV9fTkFNRToKLQkJCQlyZXR1cm4gTkFNRV9FREVGQVVMVCA9PSBudWxsID8gbmFtZSAhPSBudWxsIDogIU5BTUVfRURFRkFVTFQuZXF1YWxzKG5hbWUpOwotCQl9Ci0JCXJldHVybiBzdXBlci5lSXNTZXQoZmVhdHVyZUlEKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewotCQlpZiAoZUlzUHJveHkoKSkgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCk7Ci0KLQkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7Ci0JCXJlc3VsdC5hcHBlbmQoIiAobmFtZTogIik7Ci0JCXJlc3VsdC5hcHBlbmQobmFtZSk7Ci0JCXJlc3VsdC5hcHBlbmQoJyknKTsKLQkJcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwotCX0KLQotfSAvL01lbW9yeUltcGwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9Nb2RlbEltcGwuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9Nb2RlbEltcGwuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZmY2RjYy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvTW9kZWxJbXBsLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyNjIgKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWwuaW1wbDsKLQotaW1wb3J0IFNhbXBsZU1vZGVsLkxhYmVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLk1lbW9yeTsKLWltcG9ydCBTYW1wbGVNb2RlbC5Nb2RlbDsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2U7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2NoZWR1bGVyOwotCi1pbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb25DaGFpbjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5FTGlzdDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLk1pbmltYWxFT2JqZWN0SW1wbDsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLkVPYmplY3RDb250YWlubWVudEVMaXN0OwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLkludGVybmFsRUxpc3Q7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5Nb2RlbDwvYj48L2VtPicuCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqIDxwPgotICogVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQ6Ci0gKiA8L3A+Ci0gKiA8dWw+Ci0gKiAgIDxsaT57QGxpbmsgU2FtcGxlTW9kZWwuaW1wbC5Nb2RlbEltcGwjZ2V0UnVubmFibGVzIDxlbT5SdW5uYWJsZXM8L2VtPn08L2xpPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuTW9kZWxJbXBsI2dldExhYmVscyA8ZW0+TGFiZWxzPC9lbT59PC9saT4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5pbXBsLk1vZGVsSW1wbCNnZXRNZW1vcmllcyA8ZW0+TWVtb3JpZXM8L2VtPn08L2xpPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuTW9kZWxJbXBsI2dldFNjaGVkdWxlcnMgPGVtPlNjaGVkdWxlcnM8L2VtPn08L2xpPgotICogPC91bD4KLSAqCi0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBjbGFzcyBNb2RlbEltcGwgZXh0ZW5kcyBNaW5pbWFsRU9iamVjdEltcGwuQ29udGFpbmVyIGltcGxlbWVudHMgTW9kZWwgewotCS8qKgotCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldFJ1bm5hYmxlcygpIDxlbT5SdW5uYWJsZXM8L2VtPn0nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSAjZ2V0UnVubmFibGVzKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgRUxpc3Q8U2FtcGxlTW9kZWwuUnVubmFibGU+IHJ1bm5hYmxlczsKLQotCS8qKgotCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldExhYmVscygpIDxlbT5MYWJlbHM8L2VtPn0nIGNvbnRhaW5tZW50IHJlZmVyZW5jZSBsaXN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSAjZ2V0TGFiZWxzKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgRUxpc3Q8TGFiZWw+IGxhYmVsczsKLQotCS8qKgotCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE1lbW9yaWVzKCkgPGVtPk1lbW9yaWVzPC9lbT59JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldE1lbW9yaWVzKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgRUxpc3Q8TWVtb3J5PiBtZW1vcmllczsKLQotCS8qKgotCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldFNjaGVkdWxlcnMoKSA8ZW0+U2NoZWR1bGVyczwvZW0+fScgY29udGFpbm1lbnQgcmVmZXJlbmNlIGxpc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXRTY2hlZHVsZXJzKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgRUxpc3Q8U2NoZWR1bGVyPiBzY2hlZHVsZXJzOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJvdGVjdGVkIE1vZGVsSW1wbCgpIHsKLQkJc3VwZXIoKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgRUNsYXNzIGVTdGF0aWNDbGFzcygpIHsKLQkJcmV0dXJuIFNhbXBsZU1vZGVsUGFja2FnZS5MaXRlcmFscy5NT0RFTDsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUxpc3Q8U2FtcGxlTW9kZWwuUnVubmFibGU+IGdldFJ1bm5hYmxlcygpIHsKLQkJaWYgKHJ1bm5hYmxlcyA9PSBudWxsKSB7Ci0JCQlydW5uYWJsZXMgPSBuZXcgRU9iamVjdENvbnRhaW5tZW50RUxpc3Q8U2FtcGxlTW9kZWwuUnVubmFibGU+KFNhbXBsZU1vZGVsLlJ1bm5hYmxlLmNsYXNzLCB0aGlzLCBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1JVTk5BQkxFUyk7Ci0JCX0KLQkJcmV0dXJuIHJ1bm5hYmxlczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUxpc3Q8TGFiZWw+IGdldExhYmVscygpIHsKLQkJaWYgKGxhYmVscyA9PSBudWxsKSB7Ci0JCQlsYWJlbHMgPSBuZXcgRU9iamVjdENvbnRhaW5tZW50RUxpc3Q8TGFiZWw+KExhYmVsLmNsYXNzLCB0aGlzLCBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX0xBQkVMUyk7Ci0JCX0KLQkJcmV0dXJuIGxhYmVsczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUxpc3Q8TWVtb3J5PiBnZXRNZW1vcmllcygpIHsKLQkJaWYgKG1lbW9yaWVzID09IG51bGwpIHsKLQkJCW1lbW9yaWVzID0gbmV3IEVPYmplY3RDb250YWlubWVudEVMaXN0PE1lbW9yeT4oTWVtb3J5LmNsYXNzLCB0aGlzLCBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX01FTU9SSUVTKTsKLQkJfQotCQlyZXR1cm4gbWVtb3JpZXM7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEVMaXN0PFNjaGVkdWxlcj4gZ2V0U2NoZWR1bGVycygpIHsKLQkJaWYgKHNjaGVkdWxlcnMgPT0gbnVsbCkgewotCQkJc2NoZWR1bGVycyA9IG5ldyBFT2JqZWN0Q29udGFpbm1lbnRFTGlzdDxTY2hlZHVsZXI+KFNjaGVkdWxlci5jbGFzcywgdGhpcywgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19TQ0hFRFVMRVJTKTsKLQkJfQotCQlyZXR1cm4gc2NoZWR1bGVyczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgTm90aWZpY2F0aW9uQ2hhaW4gZUludmVyc2VSZW1vdmUoSW50ZXJuYWxFT2JqZWN0IG90aGVyRW5kLCBpbnQgZmVhdHVyZUlELCBOb3RpZmljYXRpb25DaGFpbiBtc2dzKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fUlVOTkFCTEVTOgotCQkJCXJldHVybiAoKEludGVybmFsRUxpc3Q8Pz4pZ2V0UnVubmFibGVzKCkpLmJhc2ljUmVtb3ZlKG90aGVyRW5kLCBtc2dzKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19MQUJFTFM6Ci0JCQkJcmV0dXJuICgoSW50ZXJuYWxFTGlzdDw/PilnZXRMYWJlbHMoKSkuYmFzaWNSZW1vdmUob3RoZXJFbmQsIG1zZ3MpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX01FTU9SSUVTOgotCQkJCXJldHVybiAoKEludGVybmFsRUxpc3Q8Pz4pZ2V0TWVtb3JpZXMoKSkuYmFzaWNSZW1vdmUob3RoZXJFbmQsIG1zZ3MpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1NDSEVEVUxFUlM6Ci0JCQkJcmV0dXJuICgoSW50ZXJuYWxFTGlzdDw/PilnZXRTY2hlZHVsZXJzKCkpLmJhc2ljUmVtb3ZlKG90aGVyRW5kLCBtc2dzKTsKLQkJfQotCQlyZXR1cm4gc3VwZXIuZUludmVyc2VSZW1vdmUob3RoZXJFbmQsIGZlYXR1cmVJRCwgbXNncyk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIE9iamVjdCBlR2V0KGludCBmZWF0dXJlSUQsIGJvb2xlYW4gcmVzb2x2ZSwgYm9vbGVhbiBjb3JlVHlwZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1JVTk5BQkxFUzoKLQkJCQlyZXR1cm4gZ2V0UnVubmFibGVzKCk7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fTEFCRUxTOgotCQkJCXJldHVybiBnZXRMYWJlbHMoKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19NRU1PUklFUzoKLQkJCQlyZXR1cm4gZ2V0TWVtb3JpZXMoKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19TQ0hFRFVMRVJTOgotCQkJCXJldHVybiBnZXRTY2hlZHVsZXJzKCk7Ci0JCX0KLQkJcmV0dXJuIHN1cGVyLmVHZXQoZmVhdHVyZUlELCByZXNvbHZlLCBjb3JlVHlwZSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQFN1cHByZXNzV2FybmluZ3MoInVuY2hlY2tlZCIpCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgZVNldChpbnQgZmVhdHVyZUlELCBPYmplY3QgbmV3VmFsdWUpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19SVU5OQUJMRVM6Ci0JCQkJZ2V0UnVubmFibGVzKCkuY2xlYXIoKTsKLQkJCQlnZXRSdW5uYWJsZXMoKS5hZGRBbGwoKENvbGxlY3Rpb248PyBleHRlbmRzIFNhbXBsZU1vZGVsLlJ1bm5hYmxlPiluZXdWYWx1ZSk7Ci0JCQkJcmV0dXJuOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX0xBQkVMUzoKLQkJCQlnZXRMYWJlbHMoKS5jbGVhcigpOwotCQkJCWdldExhYmVscygpLmFkZEFsbCgoQ29sbGVjdGlvbjw/IGV4dGVuZHMgTGFiZWw+KW5ld1ZhbHVlKTsKLQkJCQlyZXR1cm47Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fTUVNT1JJRVM6Ci0JCQkJZ2V0TWVtb3JpZXMoKS5jbGVhcigpOwotCQkJCWdldE1lbW9yaWVzKCkuYWRkQWxsKChDb2xsZWN0aW9uPD8gZXh0ZW5kcyBNZW1vcnk+KW5ld1ZhbHVlKTsKLQkJCQlyZXR1cm47Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fU0NIRURVTEVSUzoKLQkJCQlnZXRTY2hlZHVsZXJzKCkuY2xlYXIoKTsKLQkJCQlnZXRTY2hlZHVsZXJzKCkuYWRkQWxsKChDb2xsZWN0aW9uPD8gZXh0ZW5kcyBTY2hlZHVsZXI+KW5ld1ZhbHVlKTsKLQkJCQlyZXR1cm47Ci0JCX0KLQkJc3VwZXIuZVNldChmZWF0dXJlSUQsIG5ld1ZhbHVlKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgdm9pZCBlVW5zZXQoaW50IGZlYXR1cmVJRCkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1JVTk5BQkxFUzoKLQkJCQlnZXRSdW5uYWJsZXMoKS5jbGVhcigpOwotCQkJCXJldHVybjsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19MQUJFTFM6Ci0JCQkJZ2V0TGFiZWxzKCkuY2xlYXIoKTsKLQkJCQlyZXR1cm47Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fTUVNT1JJRVM6Ci0JCQkJZ2V0TWVtb3JpZXMoKS5jbGVhcigpOwotCQkJCXJldHVybjsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19TQ0hFRFVMRVJTOgotCQkJCWdldFNjaGVkdWxlcnMoKS5jbGVhcigpOwotCQkJCXJldHVybjsKLQkJfQotCQlzdXBlci5lVW5zZXQoZmVhdHVyZUlEKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgYm9vbGVhbiBlSXNTZXQoaW50IGZlYXR1cmVJRCkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1JVTk5BQkxFUzoKLQkJCQlyZXR1cm4gcnVubmFibGVzICE9IG51bGwgJiYgIXJ1bm5hYmxlcy5pc0VtcHR5KCk7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5NT0RFTF9fTEFCRUxTOgotCQkJCXJldHVybiBsYWJlbHMgIT0gbnVsbCAmJiAhbGFiZWxzLmlzRW1wdHkoKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMX19NRU1PUklFUzoKLQkJCQlyZXR1cm4gbWVtb3JpZXMgIT0gbnVsbCAmJiAhbWVtb3JpZXMuaXNFbXB0eSgpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuTU9ERUxfX1NDSEVEVUxFUlM6Ci0JCQkJcmV0dXJuIHNjaGVkdWxlcnMgIT0gbnVsbCAmJiAhc2NoZWR1bGVycy5pc0VtcHR5KCk7Ci0JCX0KLQkJcmV0dXJuIHN1cGVyLmVJc1NldChmZWF0dXJlSUQpOwotCX0KLQotfSAvL01vZGVsSW1wbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1J1bm5hYmxlSW1wbC5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1J1bm5hYmxlSW1wbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzEyNTE3Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9SdW5uYWJsZUltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDIyNCArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbC5pbXBsOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuTGFiZWw7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuSW50ZXJuYWxFT2JqZWN0OwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuTWluaW1hbEVPYmplY3RJbXBsOwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgb2JqZWN0ICc8ZW0+PGI+UnVubmFibGU8L2I+PC9lbT4nLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiA8cD4KLSAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOgotICogPC9wPgotICogPHVsPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuUnVubmFibGVJbXBsI2dldExhYmVscyA8ZW0+TGFiZWxzPC9lbT59PC9saT4KLSAqICAgPGxpPntAbGluayBTYW1wbGVNb2RlbC5pbXBsLlJ1bm5hYmxlSW1wbCNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4KLSAqIDwvdWw+Ci0gKgotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgY2xhc3MgUnVubmFibGVJbXBsIGV4dGVuZHMgTWluaW1hbEVPYmplY3RJbXBsLkNvbnRhaW5lciBpbXBsZW1lbnRzIFNhbXBsZU1vZGVsLlJ1bm5hYmxlIHsKLQkvKioKLQkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRMYWJlbHMoKSA8ZW0+TGFiZWxzPC9lbT59JyByZWZlcmVuY2UuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXRMYWJlbHMoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBMYWJlbCBsYWJlbHM7Ci0KLQkvKioKLQkgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TmFtZSgpIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXROYW1lKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FX0VERUZBVUxUID0gbnVsbDsKLQotCS8qKgotCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHNlZSAjZ2V0TmFtZSgpCi0JICogQGdlbmVyYXRlZAotCSAqIEBvcmRlcmVkCi0JICovCi0JcHJvdGVjdGVkIFN0cmluZyBuYW1lID0gTkFNRV9FREVGQVVMVDsKLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByb3RlY3RlZCBSdW5uYWJsZUltcGwoKSB7Ci0JCXN1cGVyKCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIEVDbGFzcyBlU3RhdGljQ2xhc3MoKSB7Ci0JCXJldHVybiBTYW1wbGVNb2RlbFBhY2thZ2UuTGl0ZXJhbHMuUlVOTkFCTEU7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIExhYmVsIGdldExhYmVscygpIHsKLQkJaWYgKGxhYmVscyAhPSBudWxsICYmIGxhYmVscy5lSXNQcm94eSgpKSB7Ci0JCQlJbnRlcm5hbEVPYmplY3Qgb2xkTGFiZWxzID0gKEludGVybmFsRU9iamVjdClsYWJlbHM7Ci0JCQlsYWJlbHMgPSAoTGFiZWwpZVJlc29sdmVQcm94eShvbGRMYWJlbHMpOwotCQkJaWYgKGxhYmVscyAhPSBvbGRMYWJlbHMpIHsKLQkJCQlpZiAoZU5vdGlmaWNhdGlvblJlcXVpcmVkKCkpCi0JCQkJCWVOb3RpZnkobmV3IEVOb3RpZmljYXRpb25JbXBsKHRoaXMsIE5vdGlmaWNhdGlvbi5SRVNPTFZFLCBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX0xBQkVMUywgb2xkTGFiZWxzLCBsYWJlbHMpKTsKLQkJCX0KLQkJfQotCQlyZXR1cm4gbGFiZWxzOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBMYWJlbCBiYXNpY0dldExhYmVscygpIHsKLQkJcmV0dXJuIGxhYmVsczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgdm9pZCBzZXRMYWJlbHMoTGFiZWwgbmV3TGFiZWxzKSB7Ci0JCUxhYmVsIG9sZExhYmVscyA9IGxhYmVsczsKLQkJbGFiZWxzID0gbmV3TGFiZWxzOwotCQlpZiAoZU5vdGlmaWNhdGlvblJlcXVpcmVkKCkpCi0JCQllTm90aWZ5KG5ldyBFTm90aWZpY2F0aW9uSW1wbCh0aGlzLCBOb3RpZmljYXRpb24uU0VULCBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX0xBQkVMUywgb2xkTGFiZWxzLCBsYWJlbHMpKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7Ci0JCXJldHVybiBuYW1lOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIG5ld05hbWUpIHsKLQkJU3RyaW5nIG9sZE5hbWUgPSBuYW1lOwotCQluYW1lID0gbmV3TmFtZTsKLQkJaWYgKGVOb3RpZmljYXRpb25SZXF1aXJlZCgpKQotCQkJZU5vdGlmeShuZXcgRU5vdGlmaWNhdGlvbkltcGwodGhpcywgTm90aWZpY2F0aW9uLlNFVCwgU2FtcGxlTW9kZWxQYWNrYWdlLlJVTk5BQkxFX19OQU1FLCBvbGROYW1lLCBuYW1lKSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIE9iamVjdCBlR2V0KGludCBmZWF0dXJlSUQsIGJvb2xlYW4gcmVzb2x2ZSwgYm9vbGVhbiBjb3JlVHlwZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX0xBQkVMUzoKLQkJCQlpZiAocmVzb2x2ZSkgcmV0dXJuIGdldExhYmVscygpOwotCQkJCXJldHVybiBiYXNpY0dldExhYmVscygpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX05BTUU6Ci0JCQkJcmV0dXJuIGdldE5hbWUoKTsKLQkJfQotCQlyZXR1cm4gc3VwZXIuZUdldChmZWF0dXJlSUQsIHJlc29sdmUsIGNvcmVUeXBlKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgdm9pZCBlU2V0KGludCBmZWF0dXJlSUQsIE9iamVjdCBuZXdWYWx1ZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX0xBQkVMUzoKLQkJCQlzZXRMYWJlbHMoKExhYmVsKW5ld1ZhbHVlKTsKLQkJCQlyZXR1cm47Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTkFNRToKLQkJCQlzZXROYW1lKChTdHJpbmcpbmV3VmFsdWUpOwotCQkJCXJldHVybjsKLQkJfQotCQlzdXBlci5lU2V0KGZlYXR1cmVJRCwgbmV3VmFsdWUpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyB2b2lkIGVVbnNldChpbnQgZmVhdHVyZUlEKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5SVU5OQUJMRV9fTEFCRUxTOgotCQkJCXNldExhYmVscygoTGFiZWwpbnVsbCk7Ci0JCQkJcmV0dXJuOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX05BTUU6Ci0JCQkJc2V0TmFtZShOQU1FX0VERUZBVUxUKTsKLQkJCQlyZXR1cm47Ci0JCX0KLQkJc3VwZXIuZVVuc2V0KGZlYXR1cmVJRCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIGJvb2xlYW4gZUlzU2V0KGludCBmZWF0dXJlSUQpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLlJVTk5BQkxFX19MQUJFTFM6Ci0JCQkJcmV0dXJuIGxhYmVscyAhPSBudWxsOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEVfX05BTUU6Ci0JCQkJcmV0dXJuIE5BTUVfRURFRkFVTFQgPT0gbnVsbCA/IG5hbWUgIT0gbnVsbCA6ICFOQU1FX0VERUZBVUxULmVxdWFscyhuYW1lKTsKLQkJfQotCQlyZXR1cm4gc3VwZXIuZUlzU2V0KGZlYXR1cmVJRCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKLQkJaWYgKGVJc1Byb3h5KCkpIHJldHVybiBzdXBlci50b1N0cmluZygpOwotCi0JCVN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOwotCQlyZXN1bHQuYXBwZW5kKCIgKG5hbWU6ICIpOwotCQlyZXN1bHQuYXBwZW5kKG5hbWUpOwotCQlyZXN1bHQuYXBwZW5kKCcpJyk7Ci0JCXJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKLQl9Ci0KLX0gLy9SdW5uYWJsZUltcGwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9TYW1wbGVNb2RlbEZhY3RvcnlJbXBsLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvU2FtcGxlTW9kZWxGYWN0b3J5SW1wbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDk2MmExLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9TYW1wbGVNb2RlbEZhY3RvcnlJbXBsLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWwuaW1wbDsKLQotaW1wb3J0IFNhbXBsZU1vZGVsLkxhYmVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLk1lbW9yeTsKLWltcG9ydCBTYW1wbGVNb2RlbC5Nb2RlbDsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3Rvcnk7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlOwotaW1wb3J0IFNhbXBsZU1vZGVsLlNjaGVkdWxlcjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRUZhY3RvcnlJbXBsOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnBsdWdpbi5FY29yZVBsdWdpbjsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIDxiPkZhY3Rvcnk8L2I+LgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiBAZ2VuZXJhdGVkCi0gKi8KLXB1YmxpYyBjbGFzcyBTYW1wbGVNb2RlbEZhY3RvcnlJbXBsIGV4dGVuZHMgRUZhY3RvcnlJbXBsIGltcGxlbWVudHMgU2FtcGxlTW9kZWxGYWN0b3J5IHsKLQkvKioKLQkgKiBDcmVhdGVzIHRoZSBkZWZhdWx0IGZhY3RvcnkgaW1wbGVtZW50YXRpb24uCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIHN0YXRpYyBTYW1wbGVNb2RlbEZhY3RvcnkgaW5pdCgpIHsKLQkJdHJ5IHsKLQkJCVNhbXBsZU1vZGVsRmFjdG9yeSB0aGVTYW1wbGVNb2RlbEZhY3RvcnkgPSAoU2FtcGxlTW9kZWxGYWN0b3J5KUVQYWNrYWdlLlJlZ2lzdHJ5LklOU1RBTkNFLmdldEVGYWN0b3J5KFNhbXBsZU1vZGVsUGFja2FnZS5lTlNfVVJJKTsKLQkJCWlmICh0aGVTYW1wbGVNb2RlbEZhY3RvcnkgIT0gbnVsbCkgewotCQkJCXJldHVybiB0aGVTYW1wbGVNb2RlbEZhY3Rvcnk7Ci0JCQl9Ci0JCX0KLQkJY2F0Y2ggKEV4Y2VwdGlvbiBleGNlcHRpb24pIHsKLQkJCUVjb3JlUGx1Z2luLklOU1RBTkNFLmxvZyhleGNlcHRpb24pOwotCQl9Ci0JCXJldHVybiBuZXcgU2FtcGxlTW9kZWxGYWN0b3J5SW1wbCgpOwotCX0KLQotCS8qKgotCSAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgdGhlIGZhY3RvcnkuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFNhbXBsZU1vZGVsRmFjdG9yeUltcGwoKSB7Ci0JCXN1cGVyKCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIEVPYmplY3QgY3JlYXRlKEVDbGFzcyBlQ2xhc3MpIHsKLQkJc3dpdGNoIChlQ2xhc3MuZ2V0Q2xhc3NpZmllcklEKCkpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMOiByZXR1cm4gY3JlYXRlTW9kZWwoKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLlJVTk5BQkxFOiByZXR1cm4gY3JlYXRlUnVubmFibGUoKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLkxBQkVMOiByZXR1cm4gY3JlYXRlTGFiZWwoKTsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1FTU9SWTogcmV0dXJuIGNyZWF0ZU1lbW9yeSgpOwotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuU0NIRURVTEVSOiByZXR1cm4gY3JlYXRlU2NoZWR1bGVyKCk7Ci0JCQlkZWZhdWx0OgotCQkJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRoZSBjbGFzcyAnIiArIGVDbGFzcy5nZXROYW1lKCkgKyAiJyBpcyBub3QgYSB2YWxpZCBjbGFzc2lmaWVyIik7Ci0JCX0KLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgTW9kZWwgY3JlYXRlTW9kZWwoKSB7Ci0JCU1vZGVsSW1wbCBtb2RlbCA9IG5ldyBNb2RlbEltcGwoKTsKLQkJcmV0dXJuIG1vZGVsOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBTYW1wbGVNb2RlbC5SdW5uYWJsZSBjcmVhdGVSdW5uYWJsZSgpIHsKLQkJUnVubmFibGVJbXBsIHJ1bm5hYmxlID0gbmV3IFJ1bm5hYmxlSW1wbCgpOwotCQlyZXR1cm4gcnVubmFibGU7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIExhYmVsIGNyZWF0ZUxhYmVsKCkgewotCQlMYWJlbEltcGwgbGFiZWwgPSBuZXcgTGFiZWxJbXBsKCk7Ci0JCXJldHVybiBsYWJlbDsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgTWVtb3J5IGNyZWF0ZU1lbW9yeSgpIHsKLQkJTWVtb3J5SW1wbCBtZW1vcnkgPSBuZXcgTWVtb3J5SW1wbCgpOwotCQlyZXR1cm4gbWVtb3J5OwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBTY2hlZHVsZXIgY3JlYXRlU2NoZWR1bGVyKCkgewotCQlTY2hlZHVsZXJJbXBsIHNjaGVkdWxlciA9IG5ldyBTY2hlZHVsZXJJbXBsKCk7Ci0JCXJldHVybiBzY2hlZHVsZXI7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFNhbXBsZU1vZGVsUGFja2FnZSBnZXRTYW1wbGVNb2RlbFBhY2thZ2UoKSB7Ci0JCXJldHVybiAoU2FtcGxlTW9kZWxQYWNrYWdlKWdldEVQYWNrYWdlKCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZGVwcmVjYXRlZAotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlARGVwcmVjYXRlZAotCXB1YmxpYyBzdGF0aWMgU2FtcGxlTW9kZWxQYWNrYWdlIGdldFBhY2thZ2UoKSB7Ci0JCXJldHVybiBTYW1wbGVNb2RlbFBhY2thZ2UuZUlOU1RBTkNFOwotCX0KLQotfSAvL1NhbXBsZU1vZGVsRmFjdG9yeUltcGwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9TYW1wbGVNb2RlbFBhY2thZ2VJbXBsLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL2ltcGwvU2FtcGxlTW9kZWxQYWNrYWdlSW1wbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODYwNDcxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9TYW1wbGVNb2RlbFBhY2thZ2VJbXBsLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwzNDkgKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWwuaW1wbDsKLQotaW1wb3J0IFNhbXBsZU1vZGVsLkxhYmVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLk1lbW9yeTsKLWltcG9ydCBTYW1wbGVNb2RlbC5Nb2RlbDsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbEZhY3Rvcnk7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlOwotaW1wb3J0IFNhbXBsZU1vZGVsLlNjaGVkdWxlcjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQXR0cmlidXRlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUmVmZXJlbmNlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRVBhY2thZ2VJbXBsOwotCi0vKioKLSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgPGI+UGFja2FnZTwvYj4uCi0gKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLSAqIEBnZW5lcmF0ZWQKLSAqLwotcHVibGljIGNsYXNzIFNhbXBsZU1vZGVsUGFja2FnZUltcGwgZXh0ZW5kcyBFUGFja2FnZUltcGwgaW1wbGVtZW50cyBTYW1wbGVNb2RlbFBhY2thZ2UgewotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByaXZhdGUgRUNsYXNzIG1vZGVsRUNsYXNzID0gbnVsbDsKLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByaXZhdGUgRUNsYXNzIHJ1bm5hYmxlRUNsYXNzID0gbnVsbDsKLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByaXZhdGUgRUNsYXNzIGxhYmVsRUNsYXNzID0gbnVsbDsKLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByaXZhdGUgRUNsYXNzIG1lbW9yeUVDbGFzcyA9IG51bGw7Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcml2YXRlIEVDbGFzcyBzY2hlZHVsZXJFQ2xhc3MgPSBudWxsOwotCi0JLyoqCi0JICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGUgbW9kZWwgPGI+UGFja2FnZTwvYj4sIHJlZ2lzdGVyZWQgd2l0aAotCSAqIHtAbGluayBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVBhY2thZ2UuUmVnaXN0cnkgRVBhY2thZ2UuUmVnaXN0cnl9IGJ5IHRoZSBwYWNrYWdlCi0JICogcGFja2FnZSBVUkkgdmFsdWUuCi0JICogPHA+Tm90ZTogdGhlIGNvcnJlY3Qgd2F5IHRvIGNyZWF0ZSB0aGUgcGFja2FnZSBpcyB2aWEgdGhlIHN0YXRpYwotCSAqIGZhY3RvcnkgbWV0aG9kIHtAbGluayAjaW5pdCBpbml0KCl9LCB3aGljaCBhbHNvIHBlcmZvcm1zCi0JICogaW5pdGlhbGl6YXRpb24gb2YgdGhlIHBhY2thZ2UsIG9yIHJldHVybnMgdGhlIHJlZ2lzdGVyZWQgcGFja2FnZSwKLQkgKiBpZiBvbmUgYWxyZWFkeSBleGlzdHMuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlIG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUGFja2FnZS5SZWdpc3RyeQotCSAqIEBzZWUgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlI2VOU19VUkkKLQkgKiBAc2VlICNpbml0KCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJpdmF0ZSBTYW1wbGVNb2RlbFBhY2thZ2VJbXBsKCkgewotCQlzdXBlcihlTlNfVVJJLCBTYW1wbGVNb2RlbEZhY3RvcnkuZUlOU1RBTkNFKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzSW5pdGVkID0gZmFsc2U7Ci0KLQkvKioKLQkgKiBDcmVhdGVzLCByZWdpc3RlcnMsIGFuZCBpbml0aWFsaXplcyB0aGUgPGI+UGFja2FnZTwvYj4gZm9yIHRoaXMgbW9kZWwsIGFuZCBmb3IgYW55IG90aGVycyB1cG9uIHdoaWNoIGl0IGRlcGVuZHMuCi0JICogCi0JICogPHA+VGhpcyBtZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHtAbGluayBTYW1wbGVNb2RlbFBhY2thZ2UjZUlOU1RBTkNFfSB3aGVuIHRoYXQgZmllbGQgaXMgYWNjZXNzZWQuCi0JICogQ2xpZW50cyBzaG91bGQgbm90IGludm9rZSBpdCBkaXJlY3RseS4gSW5zdGVhZCwgdGhleSBzaG91bGQgc2ltcGx5IGFjY2VzcyB0aGF0IGZpZWxkIHRvIG9idGFpbiB0aGUgcGFja2FnZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2VOU19VUkkKLQkgKiBAc2VlICNjcmVhdGVQYWNrYWdlQ29udGVudHMoKQotCSAqIEBzZWUgI2luaXRpYWxpemVQYWNrYWdlQ29udGVudHMoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgc3RhdGljIFNhbXBsZU1vZGVsUGFja2FnZSBpbml0KCkgewotCQlpZiAoaXNJbml0ZWQpIHJldHVybiAoU2FtcGxlTW9kZWxQYWNrYWdlKUVQYWNrYWdlLlJlZ2lzdHJ5LklOU1RBTkNFLmdldEVQYWNrYWdlKFNhbXBsZU1vZGVsUGFja2FnZS5lTlNfVVJJKTsKLQotCQkvLyBPYnRhaW4gb3IgY3JlYXRlIGFuZCByZWdpc3RlciBwYWNrYWdlCi0JCVNhbXBsZU1vZGVsUGFja2FnZUltcGwgdGhlU2FtcGxlTW9kZWxQYWNrYWdlID0gKFNhbXBsZU1vZGVsUGFja2FnZUltcGwpKEVQYWNrYWdlLlJlZ2lzdHJ5LklOU1RBTkNFLmdldChlTlNfVVJJKSBpbnN0YW5jZW9mIFNhbXBsZU1vZGVsUGFja2FnZUltcGwgPyBFUGFja2FnZS5SZWdpc3RyeS5JTlNUQU5DRS5nZXQoZU5TX1VSSSkgOiBuZXcgU2FtcGxlTW9kZWxQYWNrYWdlSW1wbCgpKTsKLQotCQlpc0luaXRlZCA9IHRydWU7Ci0KLQkJLy8gQ3JlYXRlIHBhY2thZ2UgbWV0YS1kYXRhIG9iamVjdHMKLQkJdGhlU2FtcGxlTW9kZWxQYWNrYWdlLmNyZWF0ZVBhY2thZ2VDb250ZW50cygpOwotCi0JCS8vIEluaXRpYWxpemUgY3JlYXRlZCBtZXRhLWRhdGEKLQkJdGhlU2FtcGxlTW9kZWxQYWNrYWdlLmluaXRpYWxpemVQYWNrYWdlQ29udGVudHMoKTsKLQotCQkvLyBNYXJrIG1ldGEtZGF0YSB0byBpbmRpY2F0ZSBpdCBjYW4ndCBiZSBjaGFuZ2VkCi0JCXRoZVNhbXBsZU1vZGVsUGFja2FnZS5mcmVlemUoKTsKLQotICAKLQkJLy8gVXBkYXRlIHRoZSByZWdpc3RyeSBhbmQgcmV0dXJuIHRoZSBwYWNrYWdlCi0JCUVQYWNrYWdlLlJlZ2lzdHJ5LklOU1RBTkNFLnB1dChTYW1wbGVNb2RlbFBhY2thZ2UuZU5TX1VSSSwgdGhlU2FtcGxlTW9kZWxQYWNrYWdlKTsKLQkJcmV0dXJuIHRoZVNhbXBsZU1vZGVsUGFja2FnZTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUNsYXNzIGdldE1vZGVsKCkgewotCQlyZXR1cm4gbW9kZWxFQ2xhc3M7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEVSZWZlcmVuY2UgZ2V0TW9kZWxfUnVubmFibGVzKCkgewotCQlyZXR1cm4gKEVSZWZlcmVuY2UpbW9kZWxFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgwKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRVJlZmVyZW5jZSBnZXRNb2RlbF9MYWJlbHMoKSB7Ci0JCXJldHVybiAoRVJlZmVyZW5jZSltb2RlbEVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDEpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBFUmVmZXJlbmNlIGdldE1vZGVsX01lbW9yaWVzKCkgewotCQlyZXR1cm4gKEVSZWZlcmVuY2UpbW9kZWxFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgyKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRVJlZmVyZW5jZSBnZXRNb2RlbF9TY2hlZHVsZXJzKCkgewotCQlyZXR1cm4gKEVSZWZlcmVuY2UpbW9kZWxFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgzKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUNsYXNzIGdldFJ1bm5hYmxlKCkgewotCQlyZXR1cm4gcnVubmFibGVFQ2xhc3M7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEVSZWZlcmVuY2UgZ2V0UnVubmFibGVfTGFiZWxzKCkgewotCQlyZXR1cm4gKEVSZWZlcmVuY2UpcnVubmFibGVFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgwKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUF0dHJpYnV0ZSBnZXRSdW5uYWJsZV9OYW1lKCkgewotCQlyZXR1cm4gKEVBdHRyaWJ1dGUpcnVubmFibGVFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgxKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUNsYXNzIGdldExhYmVsKCkgewotCQlyZXR1cm4gbGFiZWxFQ2xhc3M7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEVBdHRyaWJ1dGUgZ2V0TGFiZWxfTmFtZSgpIHsKLQkJcmV0dXJuIChFQXR0cmlidXRlKWxhYmVsRUNsYXNzLmdldEVTdHJ1Y3R1cmFsRmVhdHVyZXMoKS5nZXQoMCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEVDbGFzcyBnZXRNZW1vcnkoKSB7Ci0JCXJldHVybiBtZW1vcnlFQ2xhc3M7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEVBdHRyaWJ1dGUgZ2V0TWVtb3J5X05hbWUoKSB7Ci0JCXJldHVybiAoRUF0dHJpYnV0ZSltZW1vcnlFQ2xhc3MuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlcygpLmdldCgwKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUNsYXNzIGdldFNjaGVkdWxlcigpIHsKLQkJcmV0dXJuIHNjaGVkdWxlckVDbGFzczsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgRUF0dHJpYnV0ZSBnZXRTY2hlZHVsZXJfTmFtZSgpIHsKLQkJcmV0dXJuIChFQXR0cmlidXRlKXNjaGVkdWxlckVDbGFzcy5nZXRFU3RydWN0dXJhbEZlYXR1cmVzKCkuZ2V0KDApOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBTYW1wbGVNb2RlbEZhY3RvcnkgZ2V0U2FtcGxlTW9kZWxGYWN0b3J5KCkgewotCQlyZXR1cm4gKFNhbXBsZU1vZGVsRmFjdG9yeSlnZXRFRmFjdG9yeUluc3RhbmNlKCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJpdmF0ZSBib29sZWFuIGlzQ3JlYXRlZCA9IGZhbHNlOwotCi0JLyoqCi0JICogQ3JlYXRlcyB0aGUgbWV0YS1tb2RlbCBvYmplY3RzIGZvciB0aGUgcGFja2FnZS4gIFRoaXMgbWV0aG9kIGlzCi0JICogZ3VhcmRlZCB0byBoYXZlIG5vIGFmZmVjdCBvbiBhbnkgaW52b2NhdGlvbiBidXQgaXRzIGZpcnN0LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyB2b2lkIGNyZWF0ZVBhY2thZ2VDb250ZW50cygpIHsKLQkJaWYgKGlzQ3JlYXRlZCkgcmV0dXJuOwotCQlpc0NyZWF0ZWQgPSB0cnVlOwotCi0JCS8vIENyZWF0ZSBjbGFzc2VzIGFuZCB0aGVpciBmZWF0dXJlcwotCQltb2RlbEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhNT0RFTCk7Ci0JCWNyZWF0ZUVSZWZlcmVuY2UobW9kZWxFQ2xhc3MsIE1PREVMX19SVU5OQUJMRVMpOwotCQljcmVhdGVFUmVmZXJlbmNlKG1vZGVsRUNsYXNzLCBNT0RFTF9fTEFCRUxTKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShtb2RlbEVDbGFzcywgTU9ERUxfX01FTU9SSUVTKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShtb2RlbEVDbGFzcywgTU9ERUxfX1NDSEVEVUxFUlMpOwotCi0JCXJ1bm5hYmxlRUNsYXNzID0gY3JlYXRlRUNsYXNzKFJVTk5BQkxFKTsKLQkJY3JlYXRlRVJlZmVyZW5jZShydW5uYWJsZUVDbGFzcywgUlVOTkFCTEVfX0xBQkVMUyk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUocnVubmFibGVFQ2xhc3MsIFJVTk5BQkxFX19OQU1FKTsKLQotCQlsYWJlbEVDbGFzcyA9IGNyZWF0ZUVDbGFzcyhMQUJFTCk7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUobGFiZWxFQ2xhc3MsIExBQkVMX19OQU1FKTsKLQotCQltZW1vcnlFQ2xhc3MgPSBjcmVhdGVFQ2xhc3MoTUVNT1JZKTsKLQkJY3JlYXRlRUF0dHJpYnV0ZShtZW1vcnlFQ2xhc3MsIE1FTU9SWV9fTkFNRSk7Ci0KLQkJc2NoZWR1bGVyRUNsYXNzID0gY3JlYXRlRUNsYXNzKFNDSEVEVUxFUik7Ci0JCWNyZWF0ZUVBdHRyaWJ1dGUoc2NoZWR1bGVyRUNsYXNzLCBTQ0hFRFVMRVJfX05BTUUpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXByaXZhdGUgYm9vbGVhbiBpc0luaXRpYWxpemVkID0gZmFsc2U7Ci0KLQkvKioKLQkgKiBDb21wbGV0ZSB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHBhY2thZ2UgYW5kIGl0cyBtZXRhLW1vZGVsLiAgVGhpcwotCSAqIG1ldGhvZCBpcyBndWFyZGVkIHRvIGhhdmUgbm8gYWZmZWN0IG9uIGFueSBpbnZvY2F0aW9uIGJ1dCBpdHMgZmlyc3QuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIHZvaWQgaW5pdGlhbGl6ZVBhY2thZ2VDb250ZW50cygpIHsKLQkJaWYgKGlzSW5pdGlhbGl6ZWQpIHJldHVybjsKLQkJaXNJbml0aWFsaXplZCA9IHRydWU7Ci0KLQkJLy8gSW5pdGlhbGl6ZSBwYWNrYWdlCi0JCXNldE5hbWUoZU5BTUUpOwotCQlzZXROc1ByZWZpeChlTlNfUFJFRklYKTsKLQkJc2V0TnNVUkkoZU5TX1VSSSk7Ci0KLQkJLy8gQ3JlYXRlIHR5cGUgcGFyYW1ldGVycwotCi0JCS8vIFNldCBib3VuZHMgZm9yIHR5cGUgcGFyYW1ldGVycwotCi0JCS8vIEFkZCBzdXBlcnR5cGVzIHRvIGNsYXNzZXMKLQotCQkvLyBJbml0aWFsaXplIGNsYXNzZXMsIGZlYXR1cmVzLCBhbmQgb3BlcmF0aW9uczsgYWRkIHBhcmFtZXRlcnMKLQkJaW5pdEVDbGFzcyhtb2RlbEVDbGFzcywgTW9kZWwuY2xhc3MsICJNb2RlbCIsICFJU19BQlNUUkFDVCwgIUlTX0lOVEVSRkFDRSwgSVNfR0VORVJBVEVEX0lOU1RBTkNFX0NMQVNTKTsKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0TW9kZWxfUnVubmFibGVzKCksIHRoaXMuZ2V0UnVubmFibGUoKSwgbnVsbCwgInJ1bm5hYmxlcyIsIG51bGwsIDAsIC0xLCBNb2RlbC5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0TW9kZWxfTGFiZWxzKCksIHRoaXMuZ2V0TGFiZWwoKSwgbnVsbCwgImxhYmVscyIsIG51bGwsIDAsIC0xLCBNb2RlbC5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCBJU19DT01QT1NJVEUsICFJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsKLQkJaW5pdEVSZWZlcmVuY2UoZ2V0TW9kZWxfTWVtb3JpZXMoKSwgdGhpcy5nZXRNZW1vcnkoKSwgbnVsbCwgIm1lbW9yaWVzIiwgbnVsbCwgMCwgLTEsIE1vZGVsLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCQlpbml0RVJlZmVyZW5jZShnZXRNb2RlbF9TY2hlZHVsZXJzKCksIHRoaXMuZ2V0U2NoZWR1bGVyKCksIG51bGwsICJzY2hlZHVsZXJzIiwgbnVsbCwgMCwgLTEsIE1vZGVsLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsIElTX0NPTVBPU0lURSwgIUlTX1JFU09MVkVfUFJPWElFUywgIUlTX1VOU0VUVEFCTEUsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCi0JCWluaXRFQ2xhc3MocnVubmFibGVFQ2xhc3MsIFNhbXBsZU1vZGVsLlJ1bm5hYmxlLmNsYXNzLCAiUnVubmFibGUiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UsIElTX0dFTkVSQVRFRF9JTlNUQU5DRV9DTEFTUyk7Ci0JCWluaXRFUmVmZXJlbmNlKGdldFJ1bm5hYmxlX0xhYmVscygpLCB0aGlzLmdldExhYmVsKCksIG51bGwsICJsYWJlbHMiLCBudWxsLCAwLCAxLCBTYW1wbGVNb2RlbC5SdW5uYWJsZS5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfQ09NUE9TSVRFLCBJU19SRVNPTFZFX1BST1hJRVMsICFJU19VTlNFVFRBQkxFLCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsKLQkJaW5pdEVBdHRyaWJ1dGUoZ2V0UnVubmFibGVfTmFtZSgpLCBlY29yZVBhY2thZ2UuZ2V0RVN0cmluZygpLCAibmFtZSIsIG51bGwsIDAsIDEsIFNhbXBsZU1vZGVsLlJ1bm5hYmxlLmNsYXNzLCAhSVNfVFJBTlNJRU5ULCAhSVNfVk9MQVRJTEUsIElTX0NIQU5HRUFCTEUsICFJU19VTlNFVFRBQkxFLCAhSVNfSUQsIElTX1VOSVFVRSwgIUlTX0RFUklWRUQsIElTX09SREVSRUQpOwotCi0JCWluaXRFQ2xhc3MobGFiZWxFQ2xhc3MsIExhYmVsLmNsYXNzLCAiTGFiZWwiLCAhSVNfQUJTVFJBQ1QsICFJU19JTlRFUkZBQ0UsIElTX0dFTkVSQVRFRF9JTlNUQU5DRV9DTEFTUyk7Ci0JCWluaXRFQXR0cmlidXRlKGdldExhYmVsX05hbWUoKSwgZWNvcmVQYWNrYWdlLmdldEVTdHJpbmcoKSwgIm5hbWUiLCBudWxsLCAwLCAxLCBMYWJlbC5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsKLQotCQlpbml0RUNsYXNzKG1lbW9yeUVDbGFzcywgTWVtb3J5LmNsYXNzLCAiTWVtb3J5IiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFLCBJU19HRU5FUkFURURfSU5TVEFOQ0VfQ0xBU1MpOwotCQlpbml0RUF0dHJpYnV0ZShnZXRNZW1vcnlfTmFtZSgpLCBlY29yZVBhY2thZ2UuZ2V0RVN0cmluZygpLCAibmFtZSIsIG51bGwsIDAsIDEsIE1lbW9yeS5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsKLQotCQlpbml0RUNsYXNzKHNjaGVkdWxlckVDbGFzcywgU2NoZWR1bGVyLmNsYXNzLCAiU2NoZWR1bGVyIiwgIUlTX0FCU1RSQUNULCAhSVNfSU5URVJGQUNFLCBJU19HRU5FUkFURURfSU5TVEFOQ0VfQ0xBU1MpOwotCQlpbml0RUF0dHJpYnV0ZShnZXRTY2hlZHVsZXJfTmFtZSgpLCBlY29yZVBhY2thZ2UuZ2V0RVN0cmluZygpLCAibmFtZSIsIG51bGwsIDAsIDEsIFNjaGVkdWxlci5jbGFzcywgIUlTX1RSQU5TSUVOVCwgIUlTX1ZPTEFUSUxFLCBJU19DSEFOR0VBQkxFLCAhSVNfVU5TRVRUQUJMRSwgIUlTX0lELCBJU19VTklRVUUsICFJU19ERVJJVkVELCBJU19PUkRFUkVEKTsKLQotCQkvLyBDcmVhdGUgcmVzb3VyY2UKLQkJY3JlYXRlUmVzb3VyY2UoZU5TX1VSSSk7Ci0JfQotCi19IC8vU2FtcGxlTW9kZWxQYWNrYWdlSW1wbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1NjaGVkdWxlckltcGwuamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvaW1wbC9TY2hlZHVsZXJJbXBsLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4N2RjYzcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLnNhbXBsZW1vZGVsL3NyYy9TYW1wbGVNb2RlbC9pbXBsL1NjaGVkdWxlckltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi0vKioKLSAqLwotcGFja2FnZSBTYW1wbGVNb2RlbC5pbXBsOwotCi1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlOwotaW1wb3J0IFNhbXBsZU1vZGVsLlNjaGVkdWxlcjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7Ci0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5NaW5pbWFsRU9iamVjdEltcGw7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCBvYmplY3QgJzxlbT48Yj5TY2hlZHVsZXI8L2I+PC9lbT4nLgotICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0gKiA8cD4KLSAqIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkOgotICogPC9wPgotICogPHVsPgotICogICA8bGk+e0BsaW5rIFNhbXBsZU1vZGVsLmltcGwuU2NoZWR1bGVySW1wbCNnZXROYW1lIDxlbT5OYW1lPC9lbT59PC9saT4KLSAqIDwvdWw+Ci0gKgotICogQGdlbmVyYXRlZAotICovCi1wdWJsaWMgY2xhc3MgU2NoZWR1bGVySW1wbCBleHRlbmRzIE1pbmltYWxFT2JqZWN0SW1wbC5Db250YWluZXIgaW1wbGVtZW50cyBTY2hlZHVsZXIgewotCS8qKgotCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXROYW1lKCkgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBzZWUgI2dldE5hbWUoKQotCSAqIEBnZW5lcmF0ZWQKLQkgKiBAb3JkZXJlZAotCSAqLwotCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUVfRURFRkFVTFQgPSBudWxsOwotCi0JLyoqCi0JICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TmFtZSgpIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAc2VlICNnZXROYW1lKCkKLQkgKiBAZ2VuZXJhdGVkCi0JICogQG9yZGVyZWQKLQkgKi8KLQlwcm90ZWN0ZWQgU3RyaW5nIG5hbWUgPSBOQU1FX0VERUZBVUxUOwotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHJvdGVjdGVkIFNjaGVkdWxlckltcGwoKSB7Ci0JCXN1cGVyKCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIEVDbGFzcyBlU3RhdGljQ2xhc3MoKSB7Ci0JCXJldHVybiBTYW1wbGVNb2RlbFBhY2thZ2UuTGl0ZXJhbHMuU0NIRURVTEVSOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKLQkJcmV0dXJuIG5hbWU7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmV3TmFtZSkgewotCQlTdHJpbmcgb2xkTmFtZSA9IG5hbWU7Ci0JCW5hbWUgPSBuZXdOYW1lOwotCQlpZiAoZU5vdGlmaWNhdGlvblJlcXVpcmVkKCkpCi0JCQllTm90aWZ5KG5ldyBFTm90aWZpY2F0aW9uSW1wbCh0aGlzLCBOb3RpZmljYXRpb24uU0VULCBTYW1wbGVNb2RlbFBhY2thZ2UuU0NIRURVTEVSX19OQU1FLCBvbGROYW1lLCBuYW1lKSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIE9iamVjdCBlR2V0KGludCBmZWF0dXJlSUQsIGJvb2xlYW4gcmVzb2x2ZSwgYm9vbGVhbiBjb3JlVHlwZSkgewotCQlzd2l0Y2ggKGZlYXR1cmVJRCkgewotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuU0NIRURVTEVSX19OQU1FOgotCQkJCXJldHVybiBnZXROYW1lKCk7Ci0JCX0KLQkJcmV0dXJuIHN1cGVyLmVHZXQoZmVhdHVyZUlELCByZXNvbHZlLCBjb3JlVHlwZSk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgZVNldChpbnQgZmVhdHVyZUlELCBPYmplY3QgbmV3VmFsdWUpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLlNDSEVEVUxFUl9fTkFNRToKLQkJCQlzZXROYW1lKChTdHJpbmcpbmV3VmFsdWUpOwotCQkJCXJldHVybjsKLQkJfQotCQlzdXBlci5lU2V0KGZlYXR1cmVJRCwgbmV3VmFsdWUpOwotCX0KLQotCS8qKgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyB2b2lkIGVVbnNldChpbnQgZmVhdHVyZUlEKSB7Ci0JCXN3aXRjaCAoZmVhdHVyZUlEKSB7Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5TQ0hFRFVMRVJfX05BTUU6Ci0JCQkJc2V0TmFtZShOQU1FX0VERUZBVUxUKTsKLQkJCQlyZXR1cm47Ci0JCX0KLQkJc3VwZXIuZVVuc2V0KGZlYXR1cmVJRCk7Ci0JfQotCi0JLyoqCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JQE92ZXJyaWRlCi0JcHVibGljIGJvb2xlYW4gZUlzU2V0KGludCBmZWF0dXJlSUQpIHsKLQkJc3dpdGNoIChmZWF0dXJlSUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLlNDSEVEVUxFUl9fTkFNRToKLQkJCQlyZXR1cm4gTkFNRV9FREVGQVVMVCA9PSBudWxsID8gbmFtZSAhPSBudWxsIDogIU5BTUVfRURFRkFVTFQuZXF1YWxzKG5hbWUpOwotCQl9Ci0JCXJldHVybiBzdXBlci5lSXNTZXQoZmVhdHVyZUlEKTsKLQl9Ci0KLQkvKioKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewotCQlpZiAoZUlzUHJveHkoKSkgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCk7Ci0KLQkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7Ci0JCXJlc3VsdC5hcHBlbmQoIiAobmFtZTogIik7Ci0JCXJlc3VsdC5hcHBlbmQobmFtZSk7Ci0JCXJlc3VsdC5hcHBlbmQoJyknKTsKLQkJcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwotCX0KLQotfSAvL1NjaGVkdWxlckltcGwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvdXRpbC9TYW1wbGVNb2RlbEFkYXB0ZXJGYWN0b3J5LmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL3V0aWwvU2FtcGxlTW9kZWxBZGFwdGVyRmFjdG9yeS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDBmYzNkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvdXRpbC9TYW1wbGVNb2RlbEFkYXB0ZXJGYWN0b3J5LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxOTYgKzAsMCBAQAotLyoqCi0gKi8KLXBhY2thZ2UgU2FtcGxlTW9kZWwudXRpbDsKLQotaW1wb3J0IFNhbXBsZU1vZGVsLkxhYmVsOwotaW1wb3J0IFNhbXBsZU1vZGVsLk1lbW9yeTsKLWltcG9ydCBTYW1wbGVNb2RlbC5Nb2RlbDsKLWltcG9ydCBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2U7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2NoZWR1bGVyOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuQWRhcHRlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmllcjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5LmltcGwuQWRhcHRlckZhY3RvcnlJbXBsOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7Ci0KLS8qKgotICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLSAqIFRoZSA8Yj5BZGFwdGVyIEZhY3Rvcnk8L2I+IGZvciB0aGUgbW9kZWwuCi0gKiBJdCBwcm92aWRlcyBhbiBhZGFwdGVyIDxjb2RlPmNyZWF0ZVhYWDwvY29kZT4gbWV0aG9kIGZvciBlYWNoIGNsYXNzIG9mIHRoZSBtb2RlbC4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UKLSAqIEBnZW5lcmF0ZWQKLSAqLwotcHVibGljIGNsYXNzIFNhbXBsZU1vZGVsQWRhcHRlckZhY3RvcnkgZXh0ZW5kcyBBZGFwdGVyRmFjdG9yeUltcGwgewotCS8qKgotCSAqIFRoZSBjYWNoZWQgbW9kZWwgcGFja2FnZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcm90ZWN0ZWQgc3RhdGljIFNhbXBsZU1vZGVsUGFja2FnZSBtb2RlbFBhY2thZ2U7Ci0KLQkvKioKLQkgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIHRoZSBhZGFwdGVyIGZhY3RvcnkuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFNhbXBsZU1vZGVsQWRhcHRlckZhY3RvcnkoKSB7Ci0JCWlmIChtb2RlbFBhY2thZ2UgPT0gbnVsbCkgewotCQkJbW9kZWxQYWNrYWdlID0gU2FtcGxlTW9kZWxQYWNrYWdlLmVJTlNUQU5DRTsKLQkJfQotCX0KLQotCS8qKgotCSAqIFJldHVybnMgd2hldGhlciB0aGlzIGZhY3RvcnkgaXMgYXBwbGljYWJsZSBmb3IgdGhlIHR5cGUgb2YgdGhlIG9iamVjdC4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIFRoaXMgaW1wbGVtZW50YXRpb24gcmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgb2JqZWN0IGlzIGVpdGhlciB0aGUgbW9kZWwncyBwYWNrYWdlIG9yIGlzIGFuIGluc3RhbmNlIG9iamVjdCBvZiB0aGUgbW9kZWwuCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB3aGV0aGVyIHRoaXMgZmFjdG9yeSBpcyBhcHBsaWNhYmxlIGZvciB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0LgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgYm9vbGVhbiBpc0ZhY3RvcnlGb3JUeXBlKE9iamVjdCBvYmplY3QpIHsKLQkJaWYgKG9iamVjdCA9PSBtb2RlbFBhY2thZ2UpIHsKLQkJCXJldHVybiB0cnVlOwotCQl9Ci0JCWlmIChvYmplY3QgaW5zdGFuY2VvZiBFT2JqZWN0KSB7Ci0JCQlyZXR1cm4gKChFT2JqZWN0KW9iamVjdCkuZUNsYXNzKCkuZ2V0RVBhY2thZ2UoKSA9PSBtb2RlbFBhY2thZ2U7Ci0JCX0KLQkJcmV0dXJuIGZhbHNlOwotCX0KLQotCS8qKgotCSAqIFRoZSBzd2l0Y2ggdGhhdCBkZWxlZ2F0ZXMgdG8gdGhlIDxjb2RlPmNyZWF0ZVhYWDwvY29kZT4gbWV0aG9kcy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcm90ZWN0ZWQgU2FtcGxlTW9kZWxTd2l0Y2g8QWRhcHRlcj4gbW9kZWxTd2l0Y2ggPQotCQluZXcgU2FtcGxlTW9kZWxTd2l0Y2g8QWRhcHRlcj4oKSB7Ci0JCQlAT3ZlcnJpZGUKLQkJCXB1YmxpYyBBZGFwdGVyIGNhc2VNb2RlbChNb2RlbCBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlTW9kZWxBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlAT3ZlcnJpZGUKLQkJCXB1YmxpYyBBZGFwdGVyIGNhc2VSdW5uYWJsZShTYW1wbGVNb2RlbC5SdW5uYWJsZSBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlUnVubmFibGVBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlAT3ZlcnJpZGUKLQkJCXB1YmxpYyBBZGFwdGVyIGNhc2VMYWJlbChMYWJlbCBvYmplY3QpIHsKLQkJCQlyZXR1cm4gY3JlYXRlTGFiZWxBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlAT3ZlcnJpZGUKLQkJCXB1YmxpYyBBZGFwdGVyIGNhc2VNZW1vcnkoTWVtb3J5IG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVNZW1vcnlBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlAT3ZlcnJpZGUKLQkJCXB1YmxpYyBBZGFwdGVyIGNhc2VTY2hlZHVsZXIoU2NoZWR1bGVyIG9iamVjdCkgewotCQkJCXJldHVybiBjcmVhdGVTY2hlZHVsZXJBZGFwdGVyKCk7Ci0JCQl9Ci0JCQlAT3ZlcnJpZGUKLQkJCXB1YmxpYyBBZGFwdGVyIGRlZmF1bHRDYXNlKEVPYmplY3Qgb2JqZWN0KSB7Ci0JCQkJcmV0dXJuIGNyZWF0ZUVPYmplY3RBZGFwdGVyKCk7Ci0JCQl9Ci0JCX07Ci0KLQkvKioKLQkgKiBDcmVhdGVzIGFuIGFkYXB0ZXIgZm9yIHRoZSA8Y29kZT50YXJnZXQ8L2NvZGU+LgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIHRhcmdldCB0aGUgb2JqZWN0IHRvIGFkYXB0LgotCSAqIEByZXR1cm4gdGhlIGFkYXB0ZXIgZm9yIHRoZSA8Y29kZT50YXJnZXQ8L2NvZGU+LgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwdWJsaWMgQWRhcHRlciBjcmVhdGVBZGFwdGVyKE5vdGlmaWVyIHRhcmdldCkgewotCQlyZXR1cm4gbW9kZWxTd2l0Y2guZG9Td2l0Y2goKEVPYmplY3QpdGFyZ2V0KTsKLQl9Ci0KLQotCS8qKgotCSAqIENyZWF0ZXMgYSBuZXcgYWRhcHRlciBmb3IgYW4gb2JqZWN0IG9mIGNsYXNzICd7QGxpbmsgU2FtcGxlTW9kZWwuTW9kZWwgPGVtPk1vZGVsPC9lbT59Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIFRoaXMgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGwgc28gdGhhdCB3ZSBjYW4gZWFzaWx5IGlnbm9yZSBjYXNlczsKLQkgKiBpdCdzIHVzZWZ1bCB0byBpZ25vcmUgYSBjYXNlIHdoZW4gaW5oZXJpdGFuY2Ugd2lsbCBjYXRjaCBhbGwgdGhlIGNhc2VzIGFueXdheS4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBuZXcgYWRhcHRlci4KLQkgKiBAc2VlIFNhbXBsZU1vZGVsLk1vZGVsCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZU1vZGVsQWRhcHRlcigpIHsKLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0JLyoqCi0JICogQ3JlYXRlcyBhIG5ldyBhZGFwdGVyIGZvciBhbiBvYmplY3Qgb2YgY2xhc3MgJ3tAbGluayBTYW1wbGVNb2RlbC5SdW5uYWJsZSA8ZW0+UnVubmFibGU8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbCBzbyB0aGF0IHdlIGNhbiBlYXNpbHkgaWdub3JlIGNhc2VzOwotCSAqIGl0J3MgdXNlZnVsIHRvIGlnbm9yZSBhIGNhc2Ugd2hlbiBpbmhlcml0YW5jZSB3aWxsIGNhdGNoIGFsbCB0aGUgY2FzZXMgYW55d2F5LgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG5ldyBhZGFwdGVyLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuUnVubmFibGUKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIEFkYXB0ZXIgY3JlYXRlUnVubmFibGVBZGFwdGVyKCkgewotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLQkvKioKLQkgKiBDcmVhdGVzIGEgbmV3IGFkYXB0ZXIgZm9yIGFuIG9iamVjdCBvZiBjbGFzcyAne0BsaW5rIFNhbXBsZU1vZGVsLkxhYmVsIDxlbT5MYWJlbDwvZW0+fScuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsIHNvIHRoYXQgd2UgY2FuIGVhc2lseSBpZ25vcmUgY2FzZXM7Ci0JICogaXQncyB1c2VmdWwgdG8gaWdub3JlIGEgY2FzZSB3aGVuIGluaGVyaXRhbmNlIHdpbGwgY2F0Y2ggYWxsIHRoZSBjYXNlcyBhbnl3YXkuCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbmV3IGFkYXB0ZXIuCi0JICogQHNlZSBTYW1wbGVNb2RlbC5MYWJlbAotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgQWRhcHRlciBjcmVhdGVMYWJlbEFkYXB0ZXIoKSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotCS8qKgotCSAqIENyZWF0ZXMgYSBuZXcgYWRhcHRlciBmb3IgYW4gb2JqZWN0IG9mIGNsYXNzICd7QGxpbmsgU2FtcGxlTW9kZWwuTWVtb3J5IDxlbT5NZW1vcnk8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbCBzbyB0aGF0IHdlIGNhbiBlYXNpbHkgaWdub3JlIGNhc2VzOwotCSAqIGl0J3MgdXNlZnVsIHRvIGlnbm9yZSBhIGNhc2Ugd2hlbiBpbmhlcml0YW5jZSB3aWxsIGNhdGNoIGFsbCB0aGUgY2FzZXMgYW55d2F5LgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG5ldyBhZGFwdGVyLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuTWVtb3J5Ci0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZU1lbW9yeUFkYXB0ZXIoKSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotCS8qKgotCSAqIENyZWF0ZXMgYSBuZXcgYWRhcHRlciBmb3IgYW4gb2JqZWN0IG9mIGNsYXNzICd7QGxpbmsgU2FtcGxlTW9kZWwuU2NoZWR1bGVyIDxlbT5TY2hlZHVsZXI8L2VtPn0nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbCBzbyB0aGF0IHdlIGNhbiBlYXNpbHkgaWdub3JlIGNhc2VzOwotCSAqIGl0J3MgdXNlZnVsIHRvIGlnbm9yZSBhIGNhc2Ugd2hlbiBpbmhlcml0YW5jZSB3aWxsIGNhdGNoIGFsbCB0aGUgY2FzZXMgYW55d2F5LgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEByZXR1cm4gdGhlIG5ldyBhZGFwdGVyLgotCSAqIEBzZWUgU2FtcGxlTW9kZWwuU2NoZWR1bGVyCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZVNjaGVkdWxlckFkYXB0ZXIoKSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotCS8qKgotCSAqIENyZWF0ZXMgYSBuZXcgYWRhcHRlciBmb3IgdGhlIGRlZmF1bHQgY2FzZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIFRoaXMgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGwuCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHJldHVybiB0aGUgbmV3IGFkYXB0ZXIuCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZUVPYmplY3RBZGFwdGVyKCkgewotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLX0gLy9TYW1wbGVNb2RlbEFkYXB0ZXJGYWN0b3J5CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2V4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uc2FtcGxlbW9kZWwvc3JjL1NhbXBsZU1vZGVsL3V0aWwvU2FtcGxlTW9kZWxTd2l0Y2guamF2YSBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvdXRpbC9TYW1wbGVNb2RlbFN3aXRjaC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjJhMjI2Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC9zcmMvU2FtcGxlTW9kZWwvdXRpbC9TYW1wbGVNb2RlbFN3aXRjaC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTk4ICswLDAgQEAKLS8qKgotICovCi1wYWNrYWdlIFNhbXBsZU1vZGVsLnV0aWw7Ci0KLWltcG9ydCBTYW1wbGVNb2RlbC5MYWJlbDsKLWltcG9ydCBTYW1wbGVNb2RlbC5NZW1vcnk7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuTW9kZWw7Ci1pbXBvcnQgU2FtcGxlTW9kZWwuU2FtcGxlTW9kZWxQYWNrYWdlOwotaW1wb3J0IFNhbXBsZU1vZGVsLlNjaGVkdWxlcjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUGFja2FnZTsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLlN3aXRjaDsKLQotLyoqCi0gKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotICogVGhlIDxiPlN3aXRjaDwvYj4gZm9yIHRoZSBtb2RlbCdzIGluaGVyaXRhbmNlIGhpZXJhcmNoeS4KLSAqIEl0IHN1cHBvcnRzIHRoZSBjYWxsIHtAbGluayAjZG9Td2l0Y2goRU9iamVjdCkgZG9Td2l0Y2gob2JqZWN0KX0KLSAqIHRvIGludm9rZSB0aGUgPGNvZGU+Y2FzZVhYWDwvY29kZT4gbWV0aG9kIGZvciBlYWNoIGNsYXNzIG9mIHRoZSBtb2RlbCwKLSAqIHN0YXJ0aW5nIHdpdGggdGhlIGFjdHVhbCBjbGFzcyBvZiB0aGUgb2JqZWN0Ci0gKiBhbmQgcHJvY2VlZGluZyB1cCB0aGUgaW5oZXJpdGFuY2UgaGllcmFyY2h5Ci0gKiB1bnRpbCBhIG5vbi1udWxsIHJlc3VsdCBpcyByZXR1cm5lZCwKLSAqIHdoaWNoIGlzIHRoZSByZXN1bHQgb2YgdGhlIHN3aXRjaC4KLSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotICogQHNlZSBTYW1wbGVNb2RlbC5TYW1wbGVNb2RlbFBhY2thZ2UKLSAqIEBnZW5lcmF0ZWQKLSAqLwotcHVibGljIGNsYXNzIFNhbXBsZU1vZGVsU3dpdGNoPFQ+IGV4dGVuZHMgU3dpdGNoPFQ+IHsKLQkvKioKLQkgKiBUaGUgY2FjaGVkIG1vZGVsIHBhY2thZ2UKLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwcm90ZWN0ZWQgc3RhdGljIFNhbXBsZU1vZGVsUGFja2FnZSBtb2RlbFBhY2thZ2U7Ci0KLQkvKioKLQkgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIHRoZSBzd2l0Y2guCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFNhbXBsZU1vZGVsU3dpdGNoKCkgewotCQlpZiAobW9kZWxQYWNrYWdlID09IG51bGwpIHsKLQkJCW1vZGVsUGFja2FnZSA9IFNhbXBsZU1vZGVsUGFja2FnZS5lSU5TVEFOQ0U7Ci0JCX0KLQl9Ci0KLQkvKioKLQkgKiBDaGVja3Mgd2hldGhlciB0aGlzIGlzIGEgc3dpdGNoIGZvciB0aGUgZ2l2ZW4gcGFja2FnZS4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSBlUGFja2FnZSB0aGUgcGFja2FnZSBpbiBxdWVzdGlvbi4KLQkgKiBAcmV0dXJuIHdoZXRoZXIgdGhpcyBpcyBhIHN3aXRjaCBmb3IgdGhlIGdpdmVuIHBhY2thZ2UuCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXByb3RlY3RlZCBib29sZWFuIGlzU3dpdGNoRm9yKEVQYWNrYWdlIGVQYWNrYWdlKSB7Ci0JCXJldHVybiBlUGFja2FnZSA9PSBtb2RlbFBhY2thZ2U7Ci0JfQotCi0JLyoqCi0JICogQ2FsbHMgPGNvZGU+Y2FzZVhYWDwvY29kZT4gZm9yIGVhY2ggY2xhc3Mgb2YgdGhlIG1vZGVsIHVudGlsIG9uZSByZXR1cm5zIGEgbm9uIG51bGwgcmVzdWx0OyBpdCB5aWVsZHMgdGhhdCByZXN1bHQuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcmV0dXJuIHRoZSBmaXJzdCBub24tbnVsbCByZXN1bHQgcmV0dXJuZWQgYnkgYSA8Y29kZT5jYXNlWFhYPC9jb2RlPiBjYWxsLgotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlAT3ZlcnJpZGUKLQlwcm90ZWN0ZWQgVCBkb1N3aXRjaChpbnQgY2xhc3NpZmllcklELCBFT2JqZWN0IHRoZUVPYmplY3QpIHsKLQkJc3dpdGNoIChjbGFzc2lmaWVySUQpIHsKLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1PREVMOiB7Ci0JCQkJTW9kZWwgbW9kZWwgPSAoTW9kZWwpdGhlRU9iamVjdDsKLQkJCQlUIHJlc3VsdCA9IGNhc2VNb2RlbChtb2RlbCk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuUlVOTkFCTEU6IHsKLQkJCQlTYW1wbGVNb2RlbC5SdW5uYWJsZSBydW5uYWJsZSA9IChTYW1wbGVNb2RlbC5SdW5uYWJsZSl0aGVFT2JqZWN0OwotCQkJCVQgcmVzdWx0ID0gY2FzZVJ1bm5hYmxlKHJ1bm5hYmxlKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQljYXNlIFNhbXBsZU1vZGVsUGFja2FnZS5MQUJFTDogewotCQkJCUxhYmVsIGxhYmVsID0gKExhYmVsKXRoZUVPYmplY3Q7Ci0JCQkJVCByZXN1bHQgPSBjYXNlTGFiZWwobGFiZWwpOwotCQkJCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCQkJcmV0dXJuIHJlc3VsdDsKLQkJCX0KLQkJCWNhc2UgU2FtcGxlTW9kZWxQYWNrYWdlLk1FTU9SWTogewotCQkJCU1lbW9yeSBtZW1vcnkgPSAoTWVtb3J5KXRoZUVPYmplY3Q7Ci0JCQkJVCByZXN1bHQgPSBjYXNlTWVtb3J5KG1lbW9yeSk7Ci0JCQkJaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBkZWZhdWx0Q2FzZSh0aGVFT2JqZWN0KTsKLQkJCQlyZXR1cm4gcmVzdWx0OwotCQkJfQotCQkJY2FzZSBTYW1wbGVNb2RlbFBhY2thZ2UuU0NIRURVTEVSOiB7Ci0JCQkJU2NoZWR1bGVyIHNjaGVkdWxlciA9IChTY2hlZHVsZXIpdGhlRU9iamVjdDsKLQkJCQlUIHJlc3VsdCA9IGNhc2VTY2hlZHVsZXIoc2NoZWR1bGVyKTsKLQkJCQlpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IGRlZmF1bHRDYXNlKHRoZUVPYmplY3QpOwotCQkJCXJldHVybiByZXN1bHQ7Ci0JCQl9Ci0JCQlkZWZhdWx0OiByZXR1cm4gZGVmYXVsdENhc2UodGhlRU9iamVjdCk7Ci0JCX0KLQl9Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5Nb2RlbDwvZW0+Jy4KLQkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPgotCSAqIFRoaXMgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsOwotCSAqIHJldHVybmluZyBhIG5vbi1udWxsIHJlc3VsdCB3aWxsIHRlcm1pbmF0ZSB0aGUgc3dpdGNoLgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSBvYmplY3QgdGhlIHRhcmdldCBvZiB0aGUgc3dpdGNoLgotCSAqIEByZXR1cm4gdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPk1vZGVsPC9lbT4nLgotCSAqIEBzZWUgI2RvU3dpdGNoKG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0KSBkb1N3aXRjaChFT2JqZWN0KQotCSAqIEBnZW5lcmF0ZWQKLQkgKi8KLQlwdWJsaWMgVCBjYXNlTW9kZWwoTW9kZWwgb2JqZWN0KSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotCS8qKgotCSAqIFJldHVybnMgdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPlJ1bm5hYmxlPC9lbT4nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGw7Ci0JICogcmV0dXJuaW5nIGEgbm9uLW51bGwgcmVzdWx0IHdpbGwgdGVybWluYXRlIHRoZSBzd2l0Y2guCi0JICogPCEtLSBlbmQtdXNlci1kb2MgLS0+Ci0JICogQHBhcmFtIG9iamVjdCB0aGUgdGFyZ2V0IG9mIHRoZSBzd2l0Y2guCi0JICogQHJldHVybiB0aGUgcmVzdWx0IG9mIGludGVycHJldGluZyB0aGUgb2JqZWN0IGFzIGFuIGluc3RhbmNlIG9mICc8ZW0+UnVubmFibGU8L2VtPicuCi0JICogQHNlZSAjZG9Td2l0Y2gob3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3QpIGRvU3dpdGNoKEVPYmplY3QpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBUIGNhc2VSdW5uYWJsZShTYW1wbGVNb2RlbC5SdW5uYWJsZSBvYmplY3QpIHsKLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0JLyoqCi0JICogUmV0dXJucyB0aGUgcmVzdWx0IG9mIGludGVycHJldGluZyB0aGUgb2JqZWN0IGFzIGFuIGluc3RhbmNlIG9mICc8ZW0+TGFiZWw8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbDsKLQkgKiByZXR1cm5pbmcgYSBub24tbnVsbCByZXN1bHQgd2lsbCB0ZXJtaW5hdGUgdGhlIHN3aXRjaC4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcGFyYW0gb2JqZWN0IHRoZSB0YXJnZXQgb2YgdGhlIHN3aXRjaC4KLQkgKiBAcmV0dXJuIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5MYWJlbDwvZW0+Jy4KLQkgKiBAc2VlICNkb1N3aXRjaChvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdCkgZG9Td2l0Y2goRU9iamVjdCkKLQkgKiBAZ2VuZXJhdGVkCi0JICovCi0JcHVibGljIFQgY2FzZUxhYmVsKExhYmVsIG9iamVjdCkgewotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5NZW1vcnk8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbDsKLQkgKiByZXR1cm5pbmcgYSBub24tbnVsbCByZXN1bHQgd2lsbCB0ZXJtaW5hdGUgdGhlIHN3aXRjaC4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcGFyYW0gb2JqZWN0IHRoZSB0YXJnZXQgb2YgdGhlIHN3aXRjaC4KLQkgKiBAcmV0dXJuIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5NZW1vcnk8L2VtPicuCi0JICogQHNlZSAjZG9Td2l0Y2gob3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3QpIGRvU3dpdGNoKEVPYmplY3QpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBUIGNhc2VNZW1vcnkoTWVtb3J5IG9iamVjdCkgewotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5TY2hlZHVsZXI8L2VtPicuCi0JICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4KLQkgKiBUaGlzIGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbDsKLQkgKiByZXR1cm5pbmcgYSBub24tbnVsbCByZXN1bHQgd2lsbCB0ZXJtaW5hdGUgdGhlIHN3aXRjaC4KLQkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4KLQkgKiBAcGFyYW0gb2JqZWN0IHRoZSB0YXJnZXQgb2YgdGhlIHN3aXRjaC4KLQkgKiBAcmV0dXJuIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5TY2hlZHVsZXI8L2VtPicuCi0JICogQHNlZSAjZG9Td2l0Y2gob3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3QpIGRvU3dpdGNoKEVPYmplY3QpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCXB1YmxpYyBUIGNhc2VTY2hlZHVsZXIoU2NoZWR1bGVyIG9iamVjdCkgewotCQlyZXR1cm4gbnVsbDsKLQl9Ci0KLQkvKioKLQkgKiBSZXR1cm5zIHRoZSByZXN1bHQgb2YgaW50ZXJwcmV0aW5nIHRoZSBvYmplY3QgYXMgYW4gaW5zdGFuY2Ugb2YgJzxlbT5FT2JqZWN0PC9lbT4nLgotCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+Ci0JICogVGhpcyBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGw7Ci0JICogcmV0dXJuaW5nIGEgbm9uLW51bGwgcmVzdWx0IHdpbGwgdGVybWluYXRlIHRoZSBzd2l0Y2gsIGJ1dCB0aGlzIGlzIHRoZSBsYXN0IGNhc2UgYW55d2F5LgotCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPgotCSAqIEBwYXJhbSBvYmplY3QgdGhlIHRhcmdldCBvZiB0aGUgc3dpdGNoLgotCSAqIEByZXR1cm4gdGhlIHJlc3VsdCBvZiBpbnRlcnByZXRpbmcgdGhlIG9iamVjdCBhcyBhbiBpbnN0YW5jZSBvZiAnPGVtPkVPYmplY3Q8L2VtPicuCi0JICogQHNlZSAjZG9Td2l0Y2gob3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3QpCi0JICogQGdlbmVyYXRlZAotCSAqLwotCUBPdmVycmlkZQotCXB1YmxpYyBUIGRlZmF1bHRDYXNlKEVPYmplY3Qgb2JqZWN0KSB7Ci0JCXJldHVybiBudWxsOwotCX0KLQotfSAvL1NhbXBsZU1vZGVsU3dpdGNoCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5mZWF0dXJlLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkuZmVhdHVyZS8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTYyY2FlMi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5mZWF0dXJlLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmZlYXR1cmU8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlTmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5mZWF0dXJlL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5mZWF0dXJlL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkuZmVhdHVyZS9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjM2OWFhOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1iaW4uaW5jbHVkZXMgPSBmZWF0dXJlLnhtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbAotc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmZlYXR1cmUvZXBsLTIuMC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkuZmVhdHVyZS9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkuZmVhdHVyZS9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+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+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmZlYXR1cmUvZmVhdHVyZS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5mZWF0dXJlL2ZlYXR1cmUueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDFhNzY0Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGZlYXR1cmUKLSAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkuZmVhdHVyZSIKLSAgICAgIGxhYmVsPSJBUFA0TUMgTW9kZWwgVHJhbnNmb3JtYXRpb24gRXh0ZXJuYWwgTGlicyBGZWF0dXJlIgotICAgICAgdmVyc2lvbj0iMC4zLjAucXVhbGlmaWVyIgotICAgICAgcHJvdmlkZXItbmFtZT0iRWNsaXBzZSBBUFA0TUMiPgotCi0gICA8ZGVzY3JpcHRpb24gdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Rlc2NyaXB0aW9uIj4KLSAgICAgIFtFbnRlciBGZWF0dXJlIERlc2NyaXB0aW9uIGhlcmUuXQotICAgPC9kZXNjcmlwdGlvbj4KLQotICAgPGNvcHlyaWdodCB1cmw9Imh0dHBzOi8vcHJvamVjdHMuZWNsaXBzZS5vcmcvcHJvamVjdHMvdGVjaG5vbG9neS5hcHA0bWMiPgotICAgICAgKGMpIENvcHlyaWdodCBFY2xpcHNlIEFQUDRNQyBjb250cmlidXRvcnMuIDIwMTguIAotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAgIDwvY29weXJpZ2h0PgotCi0gICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbGljZW5zZSI+Ci0gICAgICBbRW50ZXIgTGljZW5zZSBEZXNjcmlwdGlvbiBoZXJlLl0KLSAgIDwvbGljZW5zZT4KLQotPC9mZWF0dXJlPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmM0MTczLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTw/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+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZS9mZWF0dXJlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTFiYmNhOC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb3JlLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGZlYXR1cmUKLSAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlIgotICAgICAgbGFiZWw9IkFQUDRNQyBNb2RlbCBUcmFuc2Zvcm1hdGlvbiBDb3JlIEZlYXR1cmUiCi0gICAgICB2ZXJzaW9uPSIwLjMuMC5xdWFsaWZpZXIiCi0gICAgICBwcm92aWRlci1uYW1lPSJFY2xpcHNlIEFQUDRNQyIKLSAgICAgIGxpY2Vuc2UtZmVhdHVyZS12ZXJzaW9uPSIxLjAuMS5xdWFsaWZpZXIiPgotCi0gICA8ZGVzY3JpcHRpb24gdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Rlc2NyaXB0aW9uIj4KLSAgICAgIFtFbnRlciBGZWF0dXJlIERlc2NyaXB0aW9uIGhlcmUuXQotICAgPC9kZXNjcmlwdGlvbj4KLQotICAgPGNvcHlyaWdodCB1cmw9Imh0dHBzOi8vcHJvamVjdHMuZWNsaXBzZS5vcmcvcHJvamVjdHMvdGVjaG5vbG9neS5hcHA0bWMiPgotICAgICAgKGMpIENvcHlyaWdodCBFY2xpcHNlIEFQUDRNQyBjb250cmlidXRvcnMuIDIwMTguIAotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAgIDwvY29weXJpZ2h0PgotCi0gICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbGljZW5zZSI+Ci0gICAgICBbRW50ZXIgTGljZW5zZSBEZXNjcmlwdGlvbiBoZXJlLl0KLSAgIDwvbGljZW5zZT4KLQotICAgPGluY2x1ZGVzCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmZlYXR1cmUiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24iCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLTwvZmVhdHVyZT4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjYxM2NkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZTwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVOYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KLTx0aXRsZT5BYm91dDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keSBsYW5nPSJFTi1VUyI+Ci0JPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+Ci0KLQk8cD5Ob3ZlbWJlciAzMCwgMjAxNzwvcD4KLQk8aDM+TGljZW5zZTwvaDM+Ci0KLQk8cD4KLQkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluCi0JCSgmcXVvdDtDb250ZW50JnF1b3Q7KS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50Ci0JCWlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UKLQkJUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUgRVBMIGlzCi0JCWF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCi0JCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC4KLQk8L3A+Ci0KLQk8cD4KLQkJSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZQotCQlGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyBiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkKLQkJKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5Ci0JCWFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlCi0JCVJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuIElmIG5vIHN1Y2gKLQkJbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkCi0JCWJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlCi0JCWNvZGUgaW4gdGhlIENvbnRlbnQgYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhCi0JCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnLyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uCi0JPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzY5YWE4Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIyAgQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0jICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotIyAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0jIAotIyAgIENvbnRyaWJ1dG9yczoKLSMgIAkgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSMgCi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLWJpbi5pbmNsdWRlcyA9IGZlYXR1cmUueG1sLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sCi1zcmMuaW5jbHVkZXMgPSBhYm91dC5odG1sLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9lcGwtMi4wLmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlL2VwbC0yLjAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM3YTE4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL2ZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlL2VwbC0yLjAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+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+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmZlYXR1cmUvZmVhdHVyZS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzMWU4YzcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9mZWF0dXJlcy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08ZmVhdHVyZQotICAgICAgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlIgotICAgICAgbGFiZWw9IkFQUDRNQyBNb2RlbCBUcmFuc2Zvcm1hdGlvbiBFeGFtcGxlcyBGZWF0dXJlIgotICAgICAgdmVyc2lvbj0iMC4zLjAucXVhbGlmaWVyIgotICAgICAgcHJvdmlkZXItbmFtZT0iRWNsaXBzZSBBUFA0TUMiPgotCi0gICA8ZGVzY3JpcHRpb24gdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Rlc2NyaXB0aW9uIj4KLSAgICAgIFtFbnRlciBGZWF0dXJlIERlc2NyaXB0aW9uIGhlcmUuXQotICAgPC9kZXNjcmlwdGlvbj4KLQotICAgPGNvcHlyaWdodCB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vY29weXJpZ2h0Ij4KLSAgICAgIChjKSBDb3B5cmlnaHQgRWNsaXBzZSBBUFA0TUMgY29udHJpYnV0b3JzLiAyMDE4LiAKLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gICA8L2NvcHlyaWdodD4KLQotICAgPGxpY2Vuc2UgdXJsPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2xpY2Vuc2UiPgotICAgICAgW0VudGVyIExpY2Vuc2UgRGVzY3JpcHRpb24gaGVyZS5dCi0gICA8L2xpY2Vuc2U+Ci0KLSAgIDxpbmNsdWRlcwotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb3JlLmZlYXR1cmUiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotPC9mZWF0dXJlPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi8uY2xhc3NwYXRoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjgzMzdlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vLmNsYXNzcGF0aAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxjbGFzc3BhdGg+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KYXZhU0UtMS44Ii8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ieHRlbmQtZ2VuIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Ci08L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjE1YjVhLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb248L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS54dGV4dC51aS5zaGFyZWQueHRleHRCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0TmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzY4YTYxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczNWRjNzQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEFQUDRNQyBUcmFuc2Zvcm1hdGlvbiBCYXNlIEFwcGxpY2F0aW9uCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb247c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4zLjAucXVhbGlmaWVyCi1CdW5kbGUtVmVuZG9yOiBFY2xpcHNlIEFQUDRNQwotUmVxdWlyZS1CdW5kbGU6IG9yZy5hcGFjaGUubG9nNGo7YnVuZGxlLXZlcnNpb249IjEuMi4xNSI7dmlzaWJpbGl0eTo9cmVleHBvcnQsCi0gY29tLmdvb2dsZS5ndWF2YSwKLSBjb20uZ29vZ2xlLmluamVjdDtidW5kbGUtdmVyc2lvbj0iMy4wLjAiO3Zpc2liaWxpdHk6PXJlZXhwb3J0LAotIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKLSBvcmcuZWNsaXBzZS5lbWYuZWNvcmU7dmlzaWJpbGl0eTo9cmVleHBvcnQsCi0gb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaTt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKLSBvcmcuZWNsaXBzZS54dGV4dC54YmFzZS5saWIsCi0gb3JnLmVjbGlwc2UueHRlbmQubGliLAotIG9yZy5lY2xpcHNlLnh0ZW5kLmxpYi5tYWNybywKLSBvcmcuZWNsaXBzZS5zcGhpbnguZW1mLmVkaXRvcnMuZm9ybXMsCi0gb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMKLUJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKYXZhU0UtMS44Ci1FeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UKLUF1dG9tYXRpYy1Nb2R1bGUtTmFtZTogb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmFhMGNmNC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1zb3VyY2UuLiA9IHNyYy8sXAotICAgICAgICAgICB4dGVuZC1nZW4vCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICAuLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKLXNyYy5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZXBsLTIuMC5odG1sCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+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+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3BsdWdpbi54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViZmMxZWEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9wbHVnaW4ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/ZWNsaXBzZSB2ZXJzaW9uPSIzLjQiPz4KLTxwbHVnaW4+Ci0KLSAgIDxleHRlbnNpb24KLSAgICAgICAgIGlkPSJhcHBsaWNhdGlvbiIKLSAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuYXBwbGljYXRpb25zIj4KLSAgICAgIDxhcHBsaWNhdGlvbgotICAgICAgICAgICAgdmlzaWJsZT0idHJ1ZSI+Ci0gICAgICAgICA8cnVuCi0gICAgICAgICAgICAgICBjbGFzcz0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UuQXBwbGljYXRpb24iPgotICAgICAgICAgPC9ydW4+Ci0gICAgICA8L2FwcGxpY2F0aW9uPgotICAgPC9leHRlbnNpb24+Ci0gCi0gICA8ZXh0ZW5zaW9uCi0gICAgICAgICBpZD0icHJvZHVjdCIKLSAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUucHJvZHVjdHMiPgotICAgICAgPHByb2R1Y3QKLSAgICAgICAgICAgIGFwcGxpY2F0aW9uPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24uYXBwbGljYXRpb24iCi0gICAgICAgICAgICBuYW1lPSJBUFA0TUNUcmFuc2Zvcm1hdGlvbiI+Ci0gICAgICAgICA8cHJvcGVydHkKLSAgICAgICAgICAgICAgIG5hbWU9ImFwcE5hbWUiCi0gICAgICAgICAgICAgICB2YWx1ZT0iQVBQNE1DVHJhbnNmb3JtYXRpb24iPgotICAgICAgICAgPC9wcm9wZXJ0eT4KLSAgICAgIDwvcHJvZHVjdD4KLSAgIDwvZXh0ZW5zaW9uPgotCi08L3BsdWdpbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL0FwcGxpY2F0aW9uLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9BcHBsaWNhdGlvbi5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjUyNjdiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL0FwcGxpY2F0aW9uLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2U7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGU7Ci1pbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwuUHJvcGVydGllczsKLQotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouQ29uc29sZUFwcGVuZGVyOwotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouRmlsZUFwcGVuZGVyOwotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouTGV2ZWw7Ci1pbXBvcnQgb3JnLmFwYWNoZS5sb2c0ai5Mb2dNYW5hZ2VyOwotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouTG9nZ2VyOwotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouUGF0dGVybkxheW91dDsKLWltcG9ydCBvcmcuZWNsaXBzZS5lcXVpbm94LmFwcC5JQXBwbGljYXRpb247Ci1pbXBvcnQgb3JnLmVjbGlwc2UuZXF1aW5veC5hcHAuSUFwcGxpY2F0aW9uQ29udGV4dDsKLQotLyoqCi0gKiBUaGlzIGNsYXNzIGNvbnRyb2xzIGFsbCBhc3BlY3RzIG9mIHRoZSBhcHBsaWNhdGlvbidzIGV4ZWN1dGlvbgotICovCi1wdWJsaWMgY2xhc3MgQXBwbGljYXRpb24gaW1wbGVtZW50cyBJQXBwbGljYXRpb24gewotCi0JQE92ZXJyaWRlCi0JcHVibGljIE9iamVjdCBzdGFydChJQXBwbGljYXRpb25Db250ZXh0IGNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gewotCi0JCVByb3BlcnRpZXMgaW5wdXRQYXJhbWV0ZXJzID0gZ2V0SW5wdXRQYXJhbWV0ZXJzKGNvbnRleHQpOwotCi0JCWlmIChpbnB1dFBhcmFtZXRlcnMgIT0gbnVsbCkgewotCi0JCQlMb2dnZXIgbG9nZ2VyID0gZ2V0TG9nZ2VyKGlucHV0UGFyYW1ldGVycyk7Ci0KLQkJCWxvZ2dlci5pbmZvKCJTdGFydGluZyBNb2RlbCB0cmFuc2Zvcm1hdGlvbiAuLi4iKTsKLQotCQkJRXhlY3V0ZVRyYW5zZm9ybWF0aW9uLnN0YXJ0KGxvZ2dlciwgaW5wdXRQYXJhbWV0ZXJzKTsKLQotCQkJbG9nZ2VyLnJlbW92ZUFsbEFwcGVuZGVycygpOwotCQl9IGVsc2UgewotCQkJU3lzdGVtLm91dC5wcmludGxuKAotCQkJCQkiRVJST1IgISEgVW5hYmxlIHRvIHN0YXJ0IHRyYW5zZm9ybWF0aW9uIGFzIHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlIG5vdCBzZXQgaW4gaW5wdXQgcHJvcGVydGllcyBmaWxlIik7Ci0KLQkJCXJldHVybiBJbnRlZ2VyLnZhbHVlT2YoLTEpOwotCQl9Ci0KLQkJcmV0dXJuIElBcHBsaWNhdGlvbi5FWElUX09LOwotCX0KLQotCXByb3RlY3RlZCBMb2dnZXIgZ2V0TG9nZ2VyKFByb3BlcnRpZXMgaW5wdXRQYXJhbWV0ZXJzKSB7Ci0KLQkJU3RyaW5nIGxvZ0ZpbGVQYXRoID0gaW5wdXRQYXJhbWV0ZXJzLmdldFByb3BlcnR5KCJsb2dfZmlsZSIpOwotCi0JCW9yZy5hcGFjaGUubG9nNGouTG9nZ2VyIGxvZ2dlciA9IExvZ01hbmFnZXIuZ2V0TG9nZ2VyKCJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24iKTsKLQotCQlsb2dnZXIuc2V0TGV2ZWwoTGV2ZWwuSU5GTyk7Ci0JCXRyeSB7Ci0JCQlsb2dnZXIucmVtb3ZlQWxsQXBwZW5kZXJzKCk7Ci0JCQkvKi0gSWYgcmVxdWlyZWQgdXNlIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBpbiBwYXR0ZXJuIGxheW91dCAlZCAlLTVwICV0ICVjICglRjolTCkgJW0iICovCi0JCQlsb2dnZXIuYWRkQXBwZW5kZXIoCi0JCQkJCW5ldyBGaWxlQXBwZW5kZXIobmV3IFBhdHRlcm5MYXlvdXQoIiVke3l5eXktTU0tZGRfSEhfbW1fc3N9IC0gJS01cDogICVtJW4iKSwgbG9nRmlsZVBhdGgsIGZhbHNlKSk7Ci0KLQkJCWxvZ2dlci5hZGRBcHBlbmRlcihuZXcgQ29uc29sZUFwcGVuZGVyKG5ldyBQYXR0ZXJuTGF5b3V0KCIlZHt5eXl5LU1NLWRkX0hIX21tX3NzfSAtICUtNXA6ICAlbSVuIikpKTsKLQotCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Ci0KLQkJCVN5c3RlbS5vdXQucHJpbnRsbigiaW52YWxpZCBsb2cgZmlsZSBwYXRoICIgKyBsb2dGaWxlUGF0aCArICIgc3BlY2lmaWVkIGluIHRoZSBpbnB1dC5wcm9wZXJ0aWVzIGZpbGUgIik7Ci0JCQllLnByaW50U3RhY2tUcmFjZSgpOwotCQl9Ci0KLQkJcmV0dXJuIGxvZ2dlcjsKLQl9Ci0KLQlwcm90ZWN0ZWQgUHJvcGVydGllcyBnZXRJbnB1dFBhcmFtZXRlcnMoSUFwcGxpY2F0aW9uQ29udGV4dCBjb250ZXh0KSB0aHJvd3MgSU9FeGNlcHRpb24sIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0KLQkJU3RyaW5nIHByb3BlcnR5ID0gU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLmRpciIpOwotCi0JCVN5c3RlbS5vdXQucHJpbnRsbihwcm9wZXJ0eSk7Ci0JCVN0cmluZ1tdIGFyZ3MgPSAoU3RyaW5nW10pIGNvbnRleHQuZ2V0QXJndW1lbnRzKCkuZ2V0KCJhcHBsaWNhdGlvbi5hcmdzIik7Ci0KLQkJaWYgKGFyZ3MgIT0gbnVsbCAmJiBhcmdzLmxlbmd0aCA+IDApIHsKLQotCQkJU3RyaW5nIGlucHV0UHJvcHNGaWxlID0gYXJnc1sxXTsKLQotCQkJRmlsZSBmaWxlID0gbmV3IEZpbGUoaW5wdXRQcm9wc0ZpbGUpOwotCi0JCQlQcm9wZXJ0aWVzIHByb3BlcnRpZXMgPSBuZXcgUHJvcGVydGllcygpOwotCi0JCQlwcm9wZXJ0aWVzLmxvYWQobmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlKSk7Ci0KLQkJCXJldHVybiBwcm9wZXJ0aWVzOwotCQl9Ci0KLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0JQE92ZXJyaWRlCi0JcHVibGljIHZvaWQgc3RvcCgpIHsKLQkJLy8gbm90aGluZyB0byBkbwotCX0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL0V4ZWN1dGVUcmFuc2Zvcm1hdGlvbi54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL0V4ZWN1dGVUcmFuc2Zvcm1hdGlvbi54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2FjY2NjMy4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9FeGVjdXRlVHJhbnNmb3JtYXRpb24ueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwxMzIgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uLmJhc2UKLQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0Lkd1aWNlCi1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0b3IKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0Ci1pbXBvcnQgamF2YS51dGlsLkxpc3QKLWltcG9ydCBqYXZhLnV0aWwuTWFwCi1pbXBvcnQgamF2YS51dGlsLlByb3BlcnRpZXMKLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ2dlcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLkN1c3RvbU9iamVjdHNTdG9yZQotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzLk1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMuTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lcgotCi1jbGFzcyBFeGVjdXRlVHJhbnNmb3JtYXRpb24gewotCi0JZGVmIHN0YXRpYyB2b2lkIHN0YXJ0KExvZ2dlciBsb2dnZXIsIFByb3BlcnRpZXMgcHJvcGVydGllcykgewotCi0JCXZhciBNYXA8U3RyaW5nLCBUcmFuc2Zvcm1hdGlvbkNvbmZpZz4gZW5hYmxlZFRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbnMgPSBFeHRlbnNpb25FeGVjdXRpb24uCi0JCQlnZXRFbmFibGVkVHJhbnNmb3JtYXRpb25Db25maWdFbGVtZW50c0Zyb21FeHRlbnNpb25zKGxvZ2dlcik7Ci0KLQkJdmFyIExpc3Q8VHJhbnNmb3JtYXRpb25Db25maWc+IGNvbmZpZ3VyZWRUcmFuc2Zvcm1hdGlvbnMgPSBnZXRUcmFuc2Zvcm1hdGlvbkVsZW1lbnRzU3BlY2lmaWVkQnlVc2VyKAotCQkJZW5hYmxlZFRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbnMsIHByb3BlcnRpZXMsIGxvZ2dlcik7Ci0KLQkJaWYgKGNvbmZpZ3VyZWRUcmFuc2Zvcm1hdGlvbnMuc2l6ZSA9PSAwKSB7Ci0KLQkJCXZhciBtc2cgPSAiQ29uZmlndXJlZCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29uZmlndXJhdGlvbiBhcmUgbm90IGVuYWJsZWQgKG9yKSB0aGV5IGFyZSBub3QgZGVmaW5lZCIKLQotCQkJbG9nZ2VyLmVycm9yKG1zZywgbmV3IFJ1bnRpbWVFeGNlcHRpb24obXNnKSkKLQotCQl9Ci0KLQkJZm9yICh0cmFuc2Zvcm1hdGlvbkNvbmZpZyA6IGNvbmZpZ3VyZWRUcmFuc2Zvcm1hdGlvbnMpIHsKLQotCQkJdmFsIGluamVjdG9yID0gR3VpY2U6OmNyZWF0ZUluamVjdG9yKHRyYW5zZm9ybWF0aW9uQ29uZmlnLmluamVjdG9yTW9kdWxlKQotCi0JCQkvKi0tIEluamVjdGlvbiBvZiBjcmVhdGVkIG9iamVjdHMgaW50byBHb29nbGUgR3VpY2UgLS0gICovCi0JCQlpbmplY3RQcmVDcmVhdGVkT2JqZWN0cyhpbmplY3RvciwgcHJvcGVydGllcykKLQotCQkJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0JCQl2YWwgbW9kZWwyTW9kZWxUcmFuc2Zvcm1lciA9IGluamVjdG9yLmdldEluc3RhbmNlKHR5cGVvZihNb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lcikpOwotCi0JCQkvKi0gTTJNIHRyYW5zZm9ybWF0aW9uICovCi0JCQl2YXIgbTJtQ29uZmlnID0gdHJhbnNmb3JtYXRpb25Db25maWcubW9kZWwyTW9kZWxDb25maWc7Ci0KLQkJCWlmIChtMm1Db25maWcgIT09IG51bGwgJiYgbW9kZWwyTW9kZWxUcmFuc2Zvcm1lciAhPT0gbnVsbCkgewotCi0JCQkJbTJtQ29uZmlnLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzCi0KLQkJCQltMm1Db25maWcubG9nZ2VyID0gbG9nZ2VyCi0JCQkJCi0JCQkJTW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXIucHJvcGVydGllcz1wcm9wZXJ0aWVzCQkJCQotCQkJCQkJCQkKLQkJCQlNb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lci5pbmplY3Rvcj1pbmplY3RvcgotCi0JCQkJTW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXIubG9nZ2VyPWxvZ2dlcgotCi0JCQkJbW9kZWwyTW9kZWxUcmFuc2Zvcm1lci5tMm1UcmFuc2Zvcm1hdGlvbihtMm1Db25maWcuaW5wdXRSZXNvdXJjZVNldCwgbTJtQ29uZmlnLm91cHV0UmVzb3VyY2VTZXQpCi0JCQl9Ci0KLQkJCS8qLSBNMlQgdHJhbnNmb3JtYXRpb24gKi8KLQkJCXZhbCBtb2RlbDJUZXh0VHJhbnNmb3JtZXIgPSBpbmplY3Rvci5nZXRJbnN0YW5jZSh0eXBlb2YoTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lcikpOwotCi0JCQl2YXIgbTJ0Q29uZmlnID0gdHJhbnNmb3JtYXRpb25Db25maWcubW9kZWwyVGV4dENvbmZpZzsKLQotCQkJaWYgKG0ydENvbmZpZyAhPT0gbnVsbCAmJiBtb2RlbDJUZXh0VHJhbnNmb3JtZXIgIT09IG51bGwpIHsKLQotCQkJCW0ydENvbmZpZy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcwotCQkJCQotCQkJCW0ydENvbmZpZy5sb2dnZXIgPSBsb2dnZXIKLQkJCQkKLQkJCQlNb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyLnByb3BlcnRpZXM9cHJvcGVydGllcwotCi0JCQkJTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lci5pbmplY3Rvcj1pbmplY3RvcgotCi0JCQkJbW9kZWwyVGV4dFRyYW5zZm9ybWVyLm0ydFRyYW5zZm9ybWF0aW9uKG0ydENvbmZpZy5pbnB1dFJlc291cmNlU2V0KQotCQkJfQotCi0JCX0KLQotCX0KLQotCWRlZiBzdGF0aWMgTGlzdDxUcmFuc2Zvcm1hdGlvbkNvbmZpZz4gZ2V0VHJhbnNmb3JtYXRpb25FbGVtZW50c1NwZWNpZmllZEJ5VXNlcigKLQkJTWFwPFN0cmluZywgVHJhbnNmb3JtYXRpb25Db25maWc+IG1hcCwgUHJvcGVydGllcyBwcm9wZXJ0aWVzLCBMb2dnZXIgbG9nZ2VyKSB7Ci0KLQkJdmFsIExpc3Q8VHJhbnNmb3JtYXRpb25Db25maWc+IHRyYW5zZm9ybWF0aW9uQ29uZmlnRWxlbWVudHMgPSBuZXcgQXJyYXlMaXN0Ci0KLQkJaWYgKHByb3BlcnRpZXMuY29udGFpbnNLZXkoInRyYW5mb3JtYXRpb25Db25maWdJRHMiKSkgewotCi0JCQl2YWwgdHJhbnNmb3JtYXRpb25Db25maWdJRHMgPSAocHJvcGVydGllcy5nZXQoInRyYW5mb3JtYXRpb25Db25maWdJRHMiKSBhcyBTdHJpbmcpLnNwbGl0KCJcXDsiKQotCi0JCQlmb3IgKGlkIDogdHJhbnNmb3JtYXRpb25Db25maWdJRHMpIHsKLQotCQkJCXZhbCB0cmFuc0NvbmZpZyA9IG1hcC5nZXQoaWQpCi0KLQkJCQlpZiAodHJhbnNDb25maWcgIT09IG51bGwpIHsKLQkJCQkJdHJhbnNmb3JtYXRpb25Db25maWdFbGVtZW50cy5hZGQodHJhbnNDb25maWcpCi0JCQkJfQotCi0JCQl9Ci0JCX0gZWxzZSB7Ci0JCQlsb2dnZXIuZXJyb3IoIklucHV0IHByb3BlcnRpZXMgZmlsZSBkb2Vzbid0IGNvbnRhaW4ga2V5IHdpdGggbmFtZTogXCJ0cmFuZm9ybWF0aW9uQ29uZmlnSURzXCIgIiwKLQkJCQluZXcgRXhjZXB0aW9uKCJNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlciA6IFwidHJhbmZvcm1hdGlvbkNvbmZpZ0lEc1wiIikpCi0JCX0KLQotCQlyZXR1cm4gdHJhbnNmb3JtYXRpb25Db25maWdFbGVtZW50cwotCX0KLQotCXByb3RlY3RlZCBkZWYgc3RhdGljIHZvaWQgaW5qZWN0UHJlQ3JlYXRlZE9iamVjdHMoSW5qZWN0b3IgaW5qZWN0b3IsIE9iamVjdC4uLiBpbnB1dE9ianMpIHsKLQotCQl2YWwgY3VzdG9tT2JqZWN0c1N0b3JlID0gaW5qZWN0b3IuZ2V0SW5zdGFuY2UoQ3VzdG9tT2JqZWN0c1N0b3JlKQotCi0JCWZvciAoZWxlbWVudCA6IGlucHV0T2JqcykgewotCQkJY3VzdG9tT2JqZWN0c1N0b3JlLmluamVjdE1lbWJlcnMoZWxlbWVudC5jbGFzcywgZWxlbWVudCkKLQkJfQotCX0KLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2FwcGxpY2F0aW9uL2Jhc2UvRXh0ZW5zaW9uRXhlY3V0aW9uLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9FeHRlbnNpb25FeGVjdXRpb24uamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE2NTRiZi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9FeHRlbnNpb25FeGVjdXRpb24uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI3MiArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlOwotCi1pbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7Ci1pbXBvcnQgamF2YS51dGlsLk1hcDsKLWltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ2dlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5BYnN0cmFjdFRyYW5zZm9ybWF0aW9uSW5qZWN0b3JNb2R1bGU7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuZXhlY3V0aW9udHlwZS5JTW9kZWxUb01vZGVsQ29uZmlnOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGUuSU1vZGVsVG9UZXh0Q29uZmlnOwotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5Db3JlRXhjZXB0aW9uOwotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5JQ29uZmlndXJhdGlvbkVsZW1lbnQ7Ci1pbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLklFeHRlbnNpb25Qb2ludDsKLWltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSUV4dGVuc2lvblJlZ2lzdHJ5OwotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5QbGF0Zm9ybTsKLQotcHVibGljIGNsYXNzIEV4dGVuc2lvbkV4ZWN1dGlvbiB7Ci0KLQlwcm90ZWN0ZWQgc3RhdGljIE1hcDxTdHJpbmcsIFRyYW5zZm9ybWF0aW9uQ29uZmlnPiBnZXRFbmFibGVkVHJhbnNmb3JtYXRpb25Db25maWdFbGVtZW50c0Zyb21FeHRlbnNpb25zKAotCQkJTG9nZ2VyIGxvZ2dlcikgdGhyb3dzIENvcmVFeGNlcHRpb24gewotCi0JCWZpbmFsIElFeHRlbnNpb25SZWdpc3RyeSByZWdpc3RyeSA9IFBsYXRmb3JtLmdldEV4dGVuc2lvblJlZ2lzdHJ5KCk7Ci0KLQkJZmluYWwgSUV4dGVuc2lvblBvaW50IGV4dGVuc2lvblBvaW50ID0gcmVnaXN0cnkKLQkJCQkuZ2V0RXh0ZW5zaW9uUG9pbnQoIm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb25maWd1cmF0aW9uIik7Ci0KLQkJZmluYWwgSUNvbmZpZ3VyYXRpb25FbGVtZW50W10gZXh0ZW5zaW9ucyA9IGV4dGVuc2lvblBvaW50LmdldENvbmZpZ3VyYXRpb25FbGVtZW50cygpOwotCi0JCU1hcDxTdHJpbmcsIFRyYW5zZm9ybWF0aW9uQ29uZmlnPiBpZF9vYmpfTWFwID0gbmV3IExpbmtlZEhhc2hNYXA8U3RyaW5nLCBUcmFuc2Zvcm1hdGlvbkNvbmZpZz4oKTsKLQotCQlmb3IgKGZpbmFsIElDb25maWd1cmF0aW9uRWxlbWVudCBpQ29uZmlndXJhdGlvbkVsZW1lbnQgOiBleHRlbnNpb25zKSB7Ci0KLQkJCWZpbmFsIFN0cmluZyBpZCA9IGlDb25maWd1cmF0aW9uRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIik7Ci0KLQkJCWZpbmFsIFN0cmluZyBpc0VuYWJsZWQgPSBpQ29uZmlndXJhdGlvbkVsZW1lbnQuZ2V0QXR0cmlidXRlKCJlbmFibGVkIik7Ci0KLQkJCWxvZ2dlci5pbmZvKCJUYW5zZm9ybWF0aW9uIGNvbmZpZ3VyYXRpb24gOiBcIiIgKyBpZCArICJcIiBpc0VuYWJsZWQgOiAiICsgaXNFbmFibGVkKTsKLQotCQkJaWYgKEJvb2xlYW4ucGFyc2VCb29sZWFuKGlzRW5hYmxlZCkpIHsKLQotCQkJCVRyYW5zZm9ybWF0aW9uQ29uZmlnIGNvbmZpZyA9IG5ldyBUcmFuc2Zvcm1hdGlvbkNvbmZpZygpOwotCi0JCQkJZmluYWwgT2JqZWN0IG1vZHVsZSA9IGlDb25maWd1cmF0aW9uRWxlbWVudC5jcmVhdGVFeGVjdXRhYmxlRXh0ZW5zaW9uKCJtb2R1bGVfY2xhc3MiKTsKLQotCQkJCU9iamVjdCBtMm0gPSBudWxsOwotCi0JCQkJaWYgKGlDb25maWd1cmF0aW9uRWxlbWVudC5nZXRBdHRyaWJ1dGUoIm0ybV9jbGFzcyIpICE9IG51bGwpIHsKLQkJCQkJbTJtID0gaUNvbmZpZ3VyYXRpb25FbGVtZW50LmNyZWF0ZUV4ZWN1dGFibGVFeHRlbnNpb24oIm0ybV9jbGFzcyIpOwotCQkJCX0KLQotCQkJCU9iamVjdCBtMnQgPSBudWxsOwotCi0JCQkJaWYgKGlDb25maWd1cmF0aW9uRWxlbWVudC5nZXRBdHRyaWJ1dGUoIm0ydF9jbGFzcyIpICE9IG51bGwpIHsKLQkJCQkJbTJ0ID0gaUNvbmZpZ3VyYXRpb25FbGVtZW50LmNyZWF0ZUV4ZWN1dGFibGVFeHRlbnNpb24oIm0ydF9jbGFzcyIpOwotCQkJCX0KLQotCQkJCWNvbmZpZy5zZXRJZChpZCk7Ci0KLQkJCQljb25maWcuc2V0SW5qZWN0b3JNb2R1bGUoKEFic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZSkgbW9kdWxlKTsKLQotCQkJCWNvbmZpZy5zZXRNb2RlbDJNb2RlbENvbmZpZygoSU1vZGVsVG9Nb2RlbENvbmZpZykgbTJtKTsKLQotLy8JCQkJKChJTW9kZWxUb01vZGVsQ29uZmlnKSBtMm0pLnNldExvZ2dlcihsb2dnZXIpOwotCi0JCQkJY29uZmlnLnNldE1vZGVsMlRleHRDb25maWcoKElNb2RlbFRvVGV4dENvbmZpZykgbTJ0KTsKLQotLy8JCQkJKChJTW9kZWxUb1RleHRDb25maWcpIG0ybSkuc2V0TG9nZ2VyKGxvZ2dlcik7Ci0KLQkJCQlpZF9vYmpfTWFwLnB1dChpZCwgY29uZmlnKTsKLQotCQkJfQotCi0JCX0KLQotCQlyZXR1cm4gaWRfb2JqX01hcDsKLQotCX0KLQotCUBEZXByZWNhdGVkCi0JcHJvdGVjdGVkIHN0YXRpYyBJTW9kZWxUb1RleHRDb25maWcgZ2V0TTJURnJvbUV4dGVuc2lvbihMb2dnZXIgbG9nZ2VyKSB0aHJvd3MgQ29yZUV4Y2VwdGlvbiB7Ci0KLQkJZmluYWwgSUV4dGVuc2lvblJlZ2lzdHJ5IHJlZ2lzdHJ5ID0gUGxhdGZvcm0uZ2V0RXh0ZW5zaW9uUmVnaXN0cnkoKTsKLQotCQlmaW5hbCBJRXh0ZW5zaW9uUG9pbnQgZXh0ZW5zaW9uUG9pbnQgPSByZWdpc3RyeQotCQkJCS5nZXRFeHRlbnNpb25Qb2ludCgib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMubTJ0Iik7Ci0KLQkJZmluYWwgSUNvbmZpZ3VyYXRpb25FbGVtZW50W10gZXh0ZW5zaW9ucyA9IGV4dGVuc2lvblBvaW50LmdldENvbmZpZ3VyYXRpb25FbGVtZW50cygpOwotCi0JCU1hcDxTdHJpbmcsIElNb2RlbFRvVGV4dENvbmZpZz4gaWRfb2JqX01hcCA9IG5ldyBMaW5rZWRIYXNoTWFwPFN0cmluZywgSU1vZGVsVG9UZXh0Q29uZmlnPigpOwotCi0JCWZvciAoZmluYWwgSUNvbmZpZ3VyYXRpb25FbGVtZW50IGlDb25maWd1cmF0aW9uRWxlbWVudCA6IGV4dGVuc2lvbnMpIHsKLQotCQkJZmluYWwgU3RyaW5nIGlkID0gaUNvbmZpZ3VyYXRpb25FbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKTsKLQotCQkJZmluYWwgU3RyaW5nIGlzRW5hYmxlZCA9IGlDb25maWd1cmF0aW9uRWxlbWVudC5nZXRBdHRyaWJ1dGUoImVuYWJsZWQiKTsKLQotCQkJaWYgKEJvb2xlYW4ucGFyc2VCb29sZWFuKGlzRW5hYmxlZCkpIHsKLQotCQkJCWZpbmFsIE9iamVjdCBtb2R1bGUgPSBpQ29uZmlndXJhdGlvbkVsZW1lbnQuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbigiY2xhc3MiKTsKLQotCQkJCWlkX29ial9NYXAucHV0KGlkLCAoSU1vZGVsVG9UZXh0Q29uZmlnKSBtb2R1bGUpOwotCi0JCQl9Ci0KLQkJfQotCi0JCWlmIChpZF9vYmpfTWFwLnNpemUoKSA+IDEpIHsKLQotCQkJU3RyaW5nIGVuYWJsZWRJZHMgPSAiLS0tICIgKyBpZF9vYmpfTWFwLmtleVNldCgpLnN0cmVhbSgpLmZpbHRlcihzIC0+IChzICE9IG51bGwgJiYgIXMuaXNFbXB0eSgpKSkKLQkJCQkJLmNvbGxlY3QoQ29sbGVjdG9ycy5qb2luaW5nKCIsIiArIFN5c3RlbS5nZXRQcm9wZXJ0eSgibGluZS5zZXBhcmF0b3IiKSArICItLS0gIikpOwotCi0JCQlsb2dnZXIuZXJyb3IoCi0JCQkJCSJNdWx0aXBsZSBNMlQgY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQuIEJhc2VkIG9uIHRoZSBzdGFuZGFyZCAtIG9ubHkgb25lIGNvbmZpZ3VyYXRpb24gZm9yIE0yVCB0cmFuc29mcm1hdGlvbiAtICBzaG91bGQgYmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwcm9kdWN0IgotCQkJCQkJCSsgU3lzdGVtLmdldFByb3BlcnR5KCJsaW5lLnNlcGFyYXRvciIpCi0JCQkJCQkJKyAiQmVsb3cgYXJlIHRoZSBNMlQgY29uZmlndXJhdGlvbiBpZHMgd2hpY2ggYXJlIGVuYWJsZWQgOiAiCi0JCQkJCQkJKyBTeXN0ZW0uZ2V0UHJvcGVydHkoImxpbmUuc2VwYXJhdG9yIikgKyBlbmFibGVkSWRzKTsKLQotCQkJU3RyaW5nIGZpcnN0TTJUX0lkID0gaWRfb2JqX01hcC5rZXlTZXQoKS5pdGVyYXRvcigpLm5leHQoKTsKLQotCQkJbG9nZ2VyLndhcm4oIioqIE0yVCBjb25maWd1cmF0aW9uIGlkIDogXCIiICsgZmlyc3RNMlRfSWQgKyAiXCIgaXMgZW5hYmxlZCIpOwotCi0JCQlyZXR1cm4gaWRfb2JqX01hcC5nZXQoZmlyc3RNMlRfSWQpOwotCi0JCX0gZWxzZSBpZiAoaWRfb2JqX01hcC5zaXplKCkgPT0gMSkgewotCi0JCQlTdHJpbmcgaWQgPSBpZF9vYmpfTWFwLmtleVNldCgpLml0ZXJhdG9yKCkubmV4dCgpOwotCi0JCQlsb2dnZXIuaW5mbygiKiogTTJUIENvbmZpZ3VyYXRpb24gaWQgOiBcIiIgKyBpZCArICJcIiBpcyBlbmFibGVkIik7Ci0KLQkJCXJldHVybiBpZF9vYmpfTWFwLmdldChpZCk7Ci0JCX0KLQotCQkvKi0gZGVmYXVsdCBjYXNlICovCi0JCXJldHVybiBudWxsOwotCi0JfQotCi0JQERlcHJlY2F0ZWQKLQlwcm90ZWN0ZWQgc3RhdGljIElNb2RlbFRvTW9kZWxDb25maWcgZ2V0TTJNRXh0ZW5zaW9uKExvZ2dlciBsb2dnZXIpIHRocm93cyBDb3JlRXhjZXB0aW9uIHsKLQotCQlmaW5hbCBJRXh0ZW5zaW9uUmVnaXN0cnkgcmVnaXN0cnkgPSBQbGF0Zm9ybS5nZXRFeHRlbnNpb25SZWdpc3RyeSgpOwotCi0JCWZpbmFsIElFeHRlbnNpb25Qb2ludCBleHRlbnNpb25Qb2ludCA9IHJlZ2lzdHJ5Ci0JCQkJLmdldEV4dGVuc2lvblBvaW50KCJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5tMm0iKTsKLQotCQlmaW5hbCBJQ29uZmlndXJhdGlvbkVsZW1lbnRbXSBleHRlbnNpb25zID0gZXh0ZW5zaW9uUG9pbnQuZ2V0Q29uZmlndXJhdGlvbkVsZW1lbnRzKCk7Ci0KLQkJTWFwPFN0cmluZywgSU1vZGVsVG9Nb2RlbENvbmZpZz4gaWRfT2JqX01hcCA9IG5ldyBMaW5rZWRIYXNoTWFwPFN0cmluZywgSU1vZGVsVG9Nb2RlbENvbmZpZz4oKTsKLQotCQlmb3IgKGZpbmFsIElDb25maWd1cmF0aW9uRWxlbWVudCBpQ29uZmlndXJhdGlvbkVsZW1lbnQgOiBleHRlbnNpb25zKSB7Ci0KLQkJCWZpbmFsIFN0cmluZyBpZCA9IGlDb25maWd1cmF0aW9uRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIik7Ci0KLQkJCWZpbmFsIFN0cmluZyBpc0VuYWJsZWQgPSBpQ29uZmlndXJhdGlvbkVsZW1lbnQuZ2V0QXR0cmlidXRlKCJlbmFibGVkIik7Ci0KLQkJCWlmIChCb29sZWFuLnBhcnNlQm9vbGVhbihpc0VuYWJsZWQpKSB7Ci0KLQkJCQlmaW5hbCBPYmplY3QgbW9kdWxlID0gaUNvbmZpZ3VyYXRpb25FbGVtZW50LmNyZWF0ZUV4ZWN1dGFibGVFeHRlbnNpb24oImNsYXNzIik7Ci0KLQkJCQlpZF9PYmpfTWFwLnB1dChpZCwgKElNb2RlbFRvTW9kZWxDb25maWcpIG1vZHVsZSk7Ci0KLQkJCX0KLQotCQl9Ci0KLQkJaWYgKGlkX09ial9NYXAuc2l6ZSgpID4gMSkgewotCi0JCQlTdHJpbmcgZW5hYmxlZElkcyA9ICItLS0gIiArIGlkX09ial9NYXAua2V5U2V0KCkuc3RyZWFtKCkuZmlsdGVyKHMgLT4gKHMgIT0gbnVsbCAmJiAhcy5pc0VtcHR5KCkpKQotCQkJCQkuY29sbGVjdChDb2xsZWN0b3JzLmpvaW5pbmcoIiwiICsgU3lzdGVtLmdldFByb3BlcnR5KCJsaW5lLnNlcGFyYXRvciIpICsgIi0tLSAiKSk7Ci0KLQkJCWxvZ2dlci5lcnJvcigKLQkJCQkJIk11bHRpcGxlIE0yTSBjb25maWd1cmF0aW9ucyBhcmUgZW5hYmxlZC4gQmFzZWQgb24gdGhlIHN0YW5kYXJkIG9ubHkgb25lIE0yTSBjb25maWd1cmF0aW9ucyBzaG91bGQgYmUgZW5hYmxlZCBmb3IgYSBzcGVjaWZpYyBwcm9kdWN0IgotCQkJCQkJCSsgU3lzdGVtLmdldFByb3BlcnR5KCJsaW5lLnNlcGFyYXRvciIpICsgIkJlbG93IGFyZSB0aGUgTTJNIG1vZHVsZSBpZHMgd2hpY2ggYXJlIGVuYWJsZWQgOiAiCi0JCQkJCQkJKyBTeXN0ZW0uZ2V0UHJvcGVydHkoImxpbmUuc2VwYXJhdG9yIikgKyBlbmFibGVkSWRzKTsKLQotCQkJU3RyaW5nIGZpcnN0TTJNX21vZHVsZUlkID0gaWRfT2JqX01hcC5rZXlTZXQoKS5pdGVyYXRvcigpLm5leHQoKTsKLQotCQkJbG9nZ2VyLndhcm4oIioqIE0yTSBjb25maWd1cmF0aW9uIGlkIDogXCIiICsgZmlyc3RNMk1fbW9kdWxlSWQgKyAiXCIgaXMgZW5hYmxlZCIpOwotCi0JCQlyZXR1cm4gaWRfT2JqX01hcC5nZXQoZmlyc3RNMk1fbW9kdWxlSWQpOwotCi0JCX0gZWxzZSBpZiAoaWRfT2JqX01hcC5zaXplKCkgPT0gMSkgewotCi0JCQlTdHJpbmcgaWQgPSBpZF9PYmpfTWFwLmtleVNldCgpLml0ZXJhdG9yKCkubmV4dCgpOwotCi0JCQlsb2dnZXIuaW5mbygiKiogTTJNIGNvbmZpZ3VyYXRpb24gaWQgOiBcIiIgKyBpZCArICJcIiBpcyBlbmFibGVkIik7Ci0KLQkJCXJldHVybiBpZF9PYmpfTWFwLmdldChpZCk7Ci0JCX0KLQotCQkvKi0gZGVmYXVsdCBjYXNlICovCi0JCXJldHVybiBudWxsOwotCi0JfQotCi0JQERlcHJlY2F0ZWQKLQlwcm90ZWN0ZWQgc3RhdGljIEFic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZSBnZXRJbmplY3Rpb25Nb2R1bGVGcm9tRXh0ZW5zaW9uKExvZ2dlciBsb2dnZXIpCi0JCQl0aHJvd3MgQ29yZUV4Y2VwdGlvbiB7Ci0KLQkJZmluYWwgSUV4dGVuc2lvblJlZ2lzdHJ5IHJlZ2lzdHJ5ID0gUGxhdGZvcm0uZ2V0RXh0ZW5zaW9uUmVnaXN0cnkoKTsKLQotCQlmaW5hbCBJRXh0ZW5zaW9uUG9pbnQgZXh0ZW5zaW9uUG9pbnQgPSByZWdpc3RyeQotCQkJCS5nZXRFeHRlbnNpb25Qb2ludCgib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMubW9kdWxlIik7Ci0KLQkJZmluYWwgSUNvbmZpZ3VyYXRpb25FbGVtZW50W10gZXh0ZW5zaW9ucyA9IGV4dGVuc2lvblBvaW50LmdldENvbmZpZ3VyYXRpb25FbGVtZW50cygpOwotCi0JCU1hcDxTdHJpbmcsIEFic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZT4gaWRfTW9kdWxlX01hcCA9IG5ldyBMaW5rZWRIYXNoTWFwPFN0cmluZywgQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlPigpOwotCi0JCWZvciAoZmluYWwgSUNvbmZpZ3VyYXRpb25FbGVtZW50IGlDb25maWd1cmF0aW9uRWxlbWVudCA6IGV4dGVuc2lvbnMpIHsKLQotCQkJZmluYWwgU3RyaW5nIGlkID0gaUNvbmZpZ3VyYXRpb25FbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKTsKLQotCQkJZmluYWwgU3RyaW5nIGlzRW5hYmxlZCA9IGlDb25maWd1cmF0aW9uRWxlbWVudC5nZXRBdHRyaWJ1dGUoImVuYWJsZWQiKTsKLQotCQkJaWYgKEJvb2xlYW4ucGFyc2VCb29sZWFuKGlzRW5hYmxlZCkpIHsKLQotCQkJCWZpbmFsIE9iamVjdCBtb2R1bGUgPSBpQ29uZmlndXJhdGlvbkVsZW1lbnQuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbigiY2xhc3MiKTsKLQotCQkJCWlkX01vZHVsZV9NYXAucHV0KGlkLCAoQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlKSBtb2R1bGUpOwotCi0JCQl9Ci0KLQkJfQotCi0JCWlmIChpZF9Nb2R1bGVfTWFwLnNpemUoKSA+IDEpIHsKLQotCQkJU3RyaW5nIGVuYWJsZWRJZHMgPSAiLS0tICIgKyBpZF9Nb2R1bGVfTWFwLmtleVNldCgpLnN0cmVhbSgpLmZpbHRlcihzIC0+IChzICE9IG51bGwgJiYgIXMuaXNFbXB0eSgpKSkKLQkJCQkJLmNvbGxlY3QoQ29sbGVjdG9ycy5qb2luaW5nKCIsIiArIFN5c3RlbS5nZXRQcm9wZXJ0eSgibGluZS5zZXBhcmF0b3IiKSArICItLS0gIikpOwotCi0JCQlsb2dnZXIuZXJyb3IoCi0JCQkJCSJNdWx0aXBsZSB0cmFuc2Zvcm1hdGlvbiBpbmplY3RvciBtb2R1bGVzIGFyZSBlbmFibGVkLiBCYXNlZCBvbiB0aGUgc3RhbmRhcmQgY29uZmlndXJhdGlvbiBmb3IgTTJNIHRyYW5zb2ZybWF0aW9uIC0gb25seSBvbmUgbW9kdWxlIHNob3VsZCBiZSBlbmFibGVkIGZvciBhIHNwZWNpZmljIHByb2R1Y3QiCi0JCQkJCQkJKyBTeXN0ZW0uZ2V0UHJvcGVydHkoImxpbmUuc2VwYXJhdG9yIikgKyAiQmVsb3cgYXJlIHRoZSBNMk0gbW9kdWxlIGlkcyB3aGljaCBhcmUgZW5hYmxlZCA6ICIKLQkJCQkJCQkrIFN5c3RlbS5nZXRQcm9wZXJ0eSgibGluZS5zZXBhcmF0b3IiKSArIGVuYWJsZWRJZHMpOwotCi0JCQlTdHJpbmcgZmlyc3RNMk1fbW9kdWxlSWQgPSBpZF9Nb2R1bGVfTWFwLmtleVNldCgpLml0ZXJhdG9yKCkubmV4dCgpOwotCi0JCQlsb2dnZXIud2FybigiKiogTTJNIGluamVjdG9yIG1vZHVsZSBvZiBpZCA6IFwiIiArIGZpcnN0TTJNX21vZHVsZUlkICsgIlwiIGlzIGVuYWJsZWQiKTsKLQotCQkJcmV0dXJuIGlkX01vZHVsZV9NYXAuZ2V0KGZpcnN0TTJNX21vZHVsZUlkKTsKLQotCQl9IGVsc2UgaWYgKGlkX01vZHVsZV9NYXAuc2l6ZSgpID09IDEpIHsKLQotCQkJU3RyaW5nIGlkID0gaWRfTW9kdWxlX01hcC5rZXlTZXQoKS5pdGVyYXRvcigpLm5leHQoKTsKLQotCQkJbG9nZ2VyLmluZm8oIioqIE0yTSBpbmplY3RvciBtb2R1bGUgb2YgaWQgOiBcIiIgKyBpZCArICJcIiBpcyBlbmFibGVkIik7Ci0KLQkJCXJldHVybiBpZF9Nb2R1bGVfTWFwLmdldChpZCk7Ci0KLQkJfSBlbHNlIHsKLQkJCWxvZ2dlci5pbmZvKCIqKiBEZWZhdWx0IE0yTSBpbmplY3RvciBtb2R1bGUgaXMgZW5hYmxlZCIpOwotCQl9Ci0KLQkJLyotIGRlZmF1bHQgY2FzZSAqLwotCQlyZXR1cm4gbnVsbDsKLQotCX0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL1RyYW5zZm9ybWF0aW9uQ29uZmlnLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmFwcGxpY2F0aW9uL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vYXBwbGljYXRpb24vYmFzZS9UcmFuc2Zvcm1hdGlvbkNvbmZpZy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTBlZmMwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24vc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9hcHBsaWNhdGlvbi9iYXNlL1RyYW5zZm9ybWF0aW9uQ29uZmlnLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqIAotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqIAotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5hcHBsaWNhdGlvbi5iYXNlOwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlOwotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGUuSU1vZGVsVG9Nb2RlbENvbmZpZzsKLWltcG9ydCBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLklNb2RlbFRvVGV4dENvbmZpZzsKLQotcHVibGljIGNsYXNzIFRyYW5zZm9ybWF0aW9uQ29uZmlnIHsKLQotCXByaXZhdGUgU3RyaW5nIGlkOwotCi0JcHJpdmF0ZSBBYnN0cmFjdFRyYW5zZm9ybWF0aW9uSW5qZWN0b3JNb2R1bGUgaW5qZWN0b3JNb2R1bGU7Ci0KLQlwcml2YXRlIElNb2RlbFRvTW9kZWxDb25maWcgbW9kZWwyTW9kZWxDb25maWc7Ci0KLQlwcml2YXRlIElNb2RlbFRvVGV4dENvbmZpZyBtb2RlbDJUZXh0Q29uZmlnOwotCi0JcHVibGljIEFic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZSBnZXRJbmplY3Rvck1vZHVsZSgpIHsKLQkJcmV0dXJuIGluamVjdG9yTW9kdWxlOwotCX0KLQotCXB1YmxpYyB2b2lkIHNldEluamVjdG9yTW9kdWxlKEFic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZSBpbmplY3Rvck1vZHVsZSkgewotCQl0aGlzLmluamVjdG9yTW9kdWxlID0gaW5qZWN0b3JNb2R1bGU7Ci0JfQotCi0JcHVibGljIElNb2RlbFRvTW9kZWxDb25maWcgZ2V0TW9kZWwyTW9kZWxDb25maWcoKSB7Ci0JCXJldHVybiBtb2RlbDJNb2RlbENvbmZpZzsKLQl9Ci0KLQlwdWJsaWMgdm9pZCBzZXRNb2RlbDJNb2RlbENvbmZpZyhJTW9kZWxUb01vZGVsQ29uZmlnIG1vZGVsMk1vZGVsQ29uZmlnKSB7Ci0JCXRoaXMubW9kZWwyTW9kZWxDb25maWcgPSBtb2RlbDJNb2RlbENvbmZpZzsKLQl9Ci0KLQlwdWJsaWMgSU1vZGVsVG9UZXh0Q29uZmlnIGdldE1vZGVsMlRleHRDb25maWcoKSB7Ci0JCXJldHVybiBtb2RlbDJUZXh0Q29uZmlnOwotCX0KLQotCXB1YmxpYyB2b2lkIHNldE1vZGVsMlRleHRDb25maWcoSU1vZGVsVG9UZXh0Q29uZmlnIG1vZGVsMlRleHRDb25maWcpIHsKLQkJdGhpcy5tb2RlbDJUZXh0Q29uZmlnID0gbW9kZWwyVGV4dENvbmZpZzsKLQl9Ci0KLQlwdWJsaWMgU3RyaW5nIGdldElkKCkgewotCQlyZXR1cm4gaWQ7Ci0JfQotCi0JcHVibGljIHZvaWQgc2V0SWQoU3RyaW5nIGlkKSB7Ci0JCXRoaXMuaWQgPSBpZDsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy8uY2xhc3NwYXRoIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyODMzN2UuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9Inh0ZW5kLWdlbiIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnByb2plY3QgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4ZjRkMzQuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnM8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS54dGV4dC51aS5zaGFyZWQueHRleHRCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UueHRleHQudWkuc2hhcmVkLnh0ZXh0TmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuOAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuOApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL01FVEEtSU5GL01BTklGRVNULk1GIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDhjYjkzLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEFQUDRNQyBUcmFuc2Zvcm1hdGlvbiBFeHRlbnNpb25zCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjMuMC5xdWFsaWZpZXIKLUJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgQVBQNE1DCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOAotUmVxdWlyZS1CdW5kbGU6IG9yZy5hcGFjaGUubG9nNGo7YnVuZGxlLXZlcnNpb249IjEuMi4xNSI7dmlzaWJpbGl0eTo9cmVleHBvcnQsCi0gY29tLmdvb2dsZS5pbmplY3Q7YnVuZGxlLXZlcnNpb249IjMuMC4wIjt2aXNpYmlsaXR5Oj1yZWV4cG9ydCwKLSBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCi0gb3JnLmVjbGlwc2UuZW1mLmVjb3JlO3Zpc2liaWxpdHk6PXJlZXhwb3J0LAotIG9yZy5lY2xpcHNlLmVtZi5lY29yZS54bWk7dmlzaWJpbGl0eTo9cmVleHBvcnQsCi0gb3JnLmVjbGlwc2UueHRleHQueGJhc2UubGliO3Zpc2liaWxpdHk6PXJlZXhwb3J0LAotIG9yZy5lY2xpcHNlLmVtZjtidW5kbGUtdmVyc2lvbj0iMi42LjAiO3Zpc2liaWxpdHk6PXJlZXhwb3J0Ci1FeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMsCi0gb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuYmFzZS50ZW1wbGF0ZXMsCi0gb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuZXhlY3V0aW9udHlwZQotQXV0b21hdGljLU1vZHVsZS1OYW1lOiBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvYWJvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQk8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KLQotCTxwPk5vdmVtYmVyIDMwLCAyMDE3PC9wPgotCTxoMz5MaWNlbnNlPC9oMz4KLQotCTxwPgotCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4KLQkJKCZxdW90O0NvbnRlbnQmcXVvdDspLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQKLQkJaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZQotCQlQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMKLQkJYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KLQkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgotCTwvcD4KLQotCTxwPgotCQlJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlCi0JCUZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eQotCQkoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKLQkJYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiBDaGVjayB0aGUKLQkJUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaAotCQlsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQKLQkJYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UKLQkJY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEKLQkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi4KLQk8L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvYnVpbGQucHJvcGVydGllcyBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYWM3ZGM5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0jICBDb3B5cmlnaHQgKGMpIDIwMTggUm9iZXJ0IEJvc2NoIEdtYkggYW5kIG90aGVycy4KLSMgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSMgCi0jICAgQ29udHJpYnV0b3JzOgotIyAgCSBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotc291cmNlLi4gPSBzcmMvLFwKLSAgICAgICAgICAgeHRlbmQtZ2VuLwotb3V0cHV0Li4gPSBiaW4vCi1iaW4uaW5jbHVkZXMgPSBNRVRBLUlORi8sXAotICAgICAgICAgICAgICAgLixcCi0gICAgICAgICAgICAgICBwbHVnaW4ueG1sLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sCi1zcmMuaW5jbHVkZXMgPSBhYm91dC5odG1sLFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL2VwbC0yLjAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+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+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3BsdWdpbi54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvcGx1Z2luLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDAyOGUyMi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvcGx1Z2luLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTw/ZWNsaXBzZSB2ZXJzaW9uPSIzLjQiPz4KLTxwbHVnaW4+Ci0gICA8ZXh0ZW5zaW9uLXBvaW50IGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29uZmlndXJhdGlvbiIgbmFtZT0idHJhbnNmb3JtYXRpb24uY29uZmlndXJhdGlvbiIgc2NoZW1hPSJzY2hlbWEvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvbmZpZ3VyYXRpb24uZXhzZCIvPgotCi08L3BsdWdpbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zY2hlbWEvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvbmZpZ3VyYXRpb24uZXhzZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zY2hlbWEvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvbmZpZ3VyYXRpb24uZXhzZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY0YmMyYi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc2NoZW1hL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5jb25maWd1cmF0aW9uLmV4c2QKKysrIC9kZXYvbnVsbApAQCAtMSwxMzkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KLTwhLS0gU2NoZW1hIGZpbGUgd3JpdHRlbiBieSBQREUgLS0+Ci08c2NoZW1hIHRhcmdldE5hbWVzcGFjZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+Ci08YW5ub3RhdGlvbj4KLSAgICAgIDxhcHBpbmZvPgotICAgICAgICAgPG1ldGEuc2NoZW1hIHBsdWdpbj0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMiIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29uZmlndXJhdGlvbiIgbmFtZT0idHJhbnNmb3JtYXRpb24uY29uZmlndXJhdGlvbiIvPgotICAgICAgPC9hcHBpbmZvPgotICAgICAgPGRvY3VtZW50YXRpb24+Ci0gICAgICAgICBbRW50ZXIgZGVzY3JpcHRpb24gb2YgdGhpcyBleHRlbnNpb24gcG9pbnQuXQotICAgICAgPC9kb2N1bWVudGF0aW9uPgotICAgPC9hbm5vdGF0aW9uPgotCi0gICA8ZWxlbWVudCBuYW1lPSJleHRlbnNpb24iPgotICAgICAgPGFubm90YXRpb24+Ci0gICAgICAgICA8YXBwaW5mbz4KLSAgICAgICAgICAgIDxtZXRhLmVsZW1lbnQgLz4KLSAgICAgICAgIDwvYXBwaW5mbz4KLSAgICAgIDwvYW5ub3RhdGlvbj4KLSAgICAgIDxjb21wbGV4VHlwZT4KLSAgICAgICAgIDxjaG9pY2U+Ci0gICAgICAgICAgICA8ZWxlbWVudCByZWY9ImNvbmZpZyIvPgotICAgICAgICAgPC9jaG9pY2U+Ci0gICAgICAgICA8YXR0cmlidXRlIG5hbWU9InBvaW50IiB0eXBlPSJzdHJpbmciIHVzZT0icmVxdWlyZWQiPgotICAgICAgICAgICAgPGFubm90YXRpb24+Ci0gICAgICAgICAgICAgICA8ZG9jdW1lbnRhdGlvbj4KLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgPC9kb2N1bWVudGF0aW9uPgotICAgICAgICAgICAgPC9hbm5vdGF0aW9uPgotICAgICAgICAgPC9hdHRyaWJ1dGU+Ci0gICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgPGFubm90YXRpb24+Ci0gICAgICAgICAgICAgICA8ZG9jdW1lbnRhdGlvbj4KLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgPC9kb2N1bWVudGF0aW9uPgotICAgICAgICAgICAgPC9hbm5vdGF0aW9uPgotICAgICAgICAgPC9hdHRyaWJ1dGU+Ci0gICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICA8YW5ub3RhdGlvbj4KLSAgICAgICAgICAgICAgIDxkb2N1bWVudGF0aW9uPgotICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICA8L2RvY3VtZW50YXRpb24+Ci0gICAgICAgICAgICAgICA8YXBwaW5mbz4KLSAgICAgICAgICAgICAgICAgIDxtZXRhLmF0dHJpYnV0ZSB0cmFuc2xhdGFibGU9InRydWUiLz4KLSAgICAgICAgICAgICAgIDwvYXBwaW5mbz4KLSAgICAgICAgICAgIDwvYW5ub3RhdGlvbj4KLSAgICAgICAgIDwvYXR0cmlidXRlPgotICAgICAgPC9jb21wbGV4VHlwZT4KLSAgIDwvZWxlbWVudD4KLQotICAgPGVsZW1lbnQgbmFtZT0iY29uZmlnIj4KLSAgICAgIDxjb21wbGV4VHlwZT4KLSAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9InN0cmluZyIgdXNlPSJyZXF1aXJlZCI+Ci0gICAgICAgICAgICA8YW5ub3RhdGlvbj4KLSAgICAgICAgICAgICAgIDxkb2N1bWVudGF0aW9uPgotICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICA8L2RvY3VtZW50YXRpb24+Ci0gICAgICAgICAgICAgICA8YXBwaW5mbz4KLSAgICAgICAgICAgICAgICAgIDxtZXRhLmF0dHJpYnV0ZSBraW5kPSJpZGVudGlmaWVyIi8+Ci0gICAgICAgICAgICAgICA8L2FwcGluZm8+Ci0gICAgICAgICAgICA8L2Fubm90YXRpb24+Ci0gICAgICAgICA8L2F0dHJpYnV0ZT4KLSAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZW5hYmxlZCIgdHlwZT0iYm9vbGVhbiIgdXNlPSJyZXF1aXJlZCI+Ci0gICAgICAgICAgICA8YW5ub3RhdGlvbj4KLSAgICAgICAgICAgICAgIDxkb2N1bWVudGF0aW9uPgotICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICA8L2RvY3VtZW50YXRpb24+Ci0gICAgICAgICAgICA8L2Fubm90YXRpb24+Ci0gICAgICAgICA8L2F0dHJpYnV0ZT4KLSAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibW9kdWxlX2NsYXNzIiB0eXBlPSJzdHJpbmciIHVzZT0icmVxdWlyZWQiPgotICAgICAgICAgICAgPGFubm90YXRpb24+Ci0gICAgICAgICAgICAgICA8ZG9jdW1lbnRhdGlvbj4KLSAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgPC9kb2N1bWVudGF0aW9uPgotICAgICAgICAgICAgICAgPGFwcGluZm8+Ci0gICAgICAgICAgICAgICAgICA8bWV0YS5hdHRyaWJ1dGUga2luZD0iamF2YSIgYmFzZWRPbj0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlOiIvPgotICAgICAgICAgICAgICAgPC9hcHBpbmZvPgotICAgICAgICAgICAgPC9hbm5vdGF0aW9uPgotICAgICAgICAgPC9hdHRyaWJ1dGU+Ci0gICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im0ybV9jbGFzcyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgIDxhbm5vdGF0aW9uPgotICAgICAgICAgICAgICAgPGRvY3VtZW50YXRpb24+Ci0gICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIDwvZG9jdW1lbnRhdGlvbj4KLSAgICAgICAgICAgICAgIDxhcHBpbmZvPgotICAgICAgICAgICAgICAgICAgPG1ldGEuYXR0cmlidXRlIGtpbmQ9ImphdmEiIGJhc2VkT249IjpvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlLklNb2RlbFRvTW9kZWxDb25maWciLz4KLSAgICAgICAgICAgICAgIDwvYXBwaW5mbz4KLSAgICAgICAgICAgIDwvYW5ub3RhdGlvbj4KLSAgICAgICAgIDwvYXR0cmlidXRlPgotICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtMnRfY2xhc3MiIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICA8YW5ub3RhdGlvbj4KLSAgICAgICAgICAgICAgIDxkb2N1bWVudGF0aW9uPgotICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICA8L2RvY3VtZW50YXRpb24+Ci0gICAgICAgICAgICAgICA8YXBwaW5mbz4KLSAgICAgICAgICAgICAgICAgIDxtZXRhLmF0dHJpYnV0ZSBraW5kPSJqYXZhIiBiYXNlZE9uPSI6b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMuZXhlY3V0aW9udHlwZS5JTW9kZWxUb1RleHRDb25maWciLz4KLSAgICAgICAgICAgICAgIDwvYXBwaW5mbz4KLSAgICAgICAgICAgIDwvYW5ub3RhdGlvbj4KLSAgICAgICAgIDwvYXR0cmlidXRlPgotICAgICAgPC9jb21wbGV4VHlwZT4KLSAgIDwvZWxlbWVudD4KLQotICAgPGFubm90YXRpb24+Ci0gICAgICA8YXBwaW5mbz4KLSAgICAgICAgIDxtZXRhLnNlY3Rpb24gdHlwZT0ic2luY2UiLz4KLSAgICAgIDwvYXBwaW5mbz4KLSAgICAgIDxkb2N1bWVudGF0aW9uPgotICAgICAgICAgW0VudGVyIHRoZSBmaXJzdCByZWxlYXNlIGluIHdoaWNoIHRoaXMgZXh0ZW5zaW9uIHBvaW50IGFwcGVhcnMuXQotICAgICAgPC9kb2N1bWVudGF0aW9uPgotICAgPC9hbm5vdGF0aW9uPgotCi0gICA8YW5ub3RhdGlvbj4KLSAgICAgIDxhcHBpbmZvPgotICAgICAgICAgPG1ldGEuc2VjdGlvbiB0eXBlPSJleGFtcGxlcyIvPgotICAgICAgPC9hcHBpbmZvPgotICAgICAgPGRvY3VtZW50YXRpb24+Ci0gICAgICAgICBbRW50ZXIgZXh0ZW5zaW9uIHBvaW50IHVzYWdlIGV4YW1wbGUgaGVyZS5dCi0gICAgICA8L2RvY3VtZW50YXRpb24+Ci0gICA8L2Fubm90YXRpb24+Ci0KLSAgIDxhbm5vdGF0aW9uPgotICAgICAgPGFwcGluZm8+Ci0gICAgICAgICA8bWV0YS5zZWN0aW9uIHR5cGU9ImFwaWluZm8iLz4KLSAgICAgIDwvYXBwaW5mbz4KLSAgICAgIDxkb2N1bWVudGF0aW9uPgotICAgICAgICAgW0VudGVyIEFQSSBpbmZvcm1hdGlvbiBoZXJlLl0KLSAgICAgIDwvZG9jdW1lbnRhdGlvbj4KLSAgIDwvYW5ub3RhdGlvbj4KLQotICAgPGFubm90YXRpb24+Ci0gICAgICA8YXBwaW5mbz4KLSAgICAgICAgIDxtZXRhLnNlY3Rpb24gdHlwZT0iaW1wbGVtZW50YXRpb24iLz4KLSAgICAgIDwvYXBwaW5mbz4KLSAgICAgIDxkb2N1bWVudGF0aW9uPgotICAgICAgICAgW0VudGVyIGluZm9ybWF0aW9uIGFib3V0IHN1cHBsaWVkIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgZXh0ZW5zaW9uIHBvaW50Ll0KLSAgICAgIDwvZG9jdW1lbnRhdGlvbj4KLSAgIDwvYW5ub3RhdGlvbj4KLQotCi08L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL0Fic3RyYWN0VHJhbnNmb3JtYXRpb25JbmplY3Rvck1vZHVsZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGFhOTU5Li4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9uczsKLQotaW1wb3J0IGNvbS5nb29nbGUuaW5qZWN0LkFic3RyYWN0TW9kdWxlOwotCi1wdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUcmFuc2Zvcm1hdGlvbkluamVjdG9yTW9kdWxlIGV4dGVuZHMgQWJzdHJhY3RNb2R1bGUgewotCi0JCi0JQE92ZXJyaWRlCi0JcHJvdGVjdGVkIHZvaWQgY29uZmlndXJlKCkgewotCQlpbml0aWFsaXplQmFzZUNvbmZpZ3VyYXRpb24oKTsKLQkJaW5pdGlhbGl6ZVRyYW5zZm9ybWVyT2JqZWN0cygpOwotCX0KLQkKLQlhYnN0cmFjdCBwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplQmFzZUNvbmZpZ3VyYXRpb24oKSA7Ci0JYWJzdHJhY3QgcHJvdGVjdGVkIHZvaWQgaW5pdGlhbGl6ZVRyYW5zZm9ybWVyT2JqZWN0cygpOwotCi19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL0N1c3RvbU9iamVjdHNTdG9yZS54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvQ3VzdG9tT2JqZWN0c1N0b3JlLnh0ZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTVhNWIyLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvQ3VzdG9tT2JqZWN0c1N0b3JlLnh0ZW5kCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFJvYmVydCBCb3NjaCBHbWJILgotICogCi0gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0gKgotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjAKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0KLXBhY2thZ2Ugb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMKLQotaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwCi0KLWNsYXNzIEN1c3RvbU9iamVjdHNTdG9yZSB7Ci0KLQlwcml2YXRlIHZhciBjbHNfaW5zdGFuY2VfbWFwID0gbmV3IEhhc2hNYXAoKTsKLQotCXByaXZhdGUgdmFyICBkYXRhX21hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOwotCi0JCi0JcHVibGljIGRlZiA8VD4gVCBnZXRJbnN0YW5jZShPYmplY3QgY2xzKSB7Ci0KLQkJdmFsIHZhbHVlID0gY2xzX2luc3RhbmNlX21hcC5nZXQoY2xzKTsKLQotCQlyZXR1cm4gdmFsdWUgYXMgVAotCX0KLQotCXB1YmxpYyBkZWYgPFQ+IHZvaWQgaW5qZWN0TWVtYmVycyhPYmplY3QgY2xzLCBUIGluc3RhbmNlKSB7Ci0JCWNsc19pbnN0YW5jZV9tYXAucHV0KGNscywgaW5zdGFuY2UpOwotCi0JfQotCQotCXB1YmxpYyBkZWYgPFQ+IHZvaWQgaW5kZXhEYXRhKFN0cmluZyBrZXksIFQgdmFsdWUpewotCQkKLQkJZGF0YV9tYXAucHV0KGtleSwgdmFsdWUpOwkJCi0JfQotCQotCXB1YmxpYyBkZWYgPFQ+IGdldERhdGEoU3RyaW5nIGtleSl7Ci0JCWRhdGFfbWFwLmdldChrZXkpIGFzIFQKLQl9Ci0KLQlwdWJsaWMgZGVmIHZvaWQgY2xlYXJDYWNoZSgpIHsKLQkJY2xzX2luc3RhbmNlX21hcC5jbGVhcgotCX0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvQWJzdHJhY3RUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvQWJzdHJhY3RUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQxNDIwNC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2Jhc2UvdGVtcGxhdGVzL0Fic3RyYWN0VHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcwotCi1pbXBvcnQgamF2YS51dGlsLlByb3BlcnRpZXMKLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ01hbmFnZXIKLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ2dlcgotaW1wb3J0IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLkN1c3RvbU9iamVjdHNTdG9yZQotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouQ29uc29sZUFwcGVuZGVyCi1pbXBvcnQgb3JnLmFwYWNoZS5sb2c0ai5QYXR0ZXJuTGF5b3V0Ci1pbXBvcnQgY29tLmdvb2dsZS5pbmplY3QuSW5qZWN0b3IKLQotcHVibGljIGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHJhbnNmb3JtZXJ7Ci0JCi0Jc3RhdGljIHB1YmxpYyBDdXN0b21PYmplY3RzU3RvcmUgY3VzdG9tT2Jqc1N0b3JlID0gbmV3IEN1c3RvbU9iamVjdHNTdG9yZQotCi0Jc3RhdGljIHB1YmxpYyBMb2dnZXIgbG9nZ2VyCi0KLSAgICBzdGF0aWMgcHVibGljIFByb3BlcnRpZXMgcHJvcGVydGllcwotCQotCXN0YXRpYyBwdWJsaWMgSW5qZWN0b3IgaW5qZWN0b3IKLQotCS8qKgotCSAqIFByb3ZpZGVzIExvZzRKIGxvZ2dlciB3aGljaCBjYW4gYmUgdXNlZCBieSB0aGUgY29ycmVzcG9uZGluZyBUcmFuc2Zvcm1lciBjbGFzc2VzLgotCSAqIE5vdGU6IFJvb3QgTG9nZ2VyIGlzIGluaXRpYWxpemVkIGR1cmluZyB0aGUgc3RhcnR1cCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgQXBwZW5kZXJzIGFyZSBob29rZWQgdG8gaXQgYWNjb3JkaW5nbHkuCi0JICogSW4gY2FzZSwgaWYgdXNlciBzcGVjaWZpYyBhcHBlbmRlcnMgYXJlIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBsb2dnZXIsIHRoaXMgbWV0aG9kIHNob3VsZCBiZSBvdmVycmlkZGVuIGFuZCBuZXcgQXBwZW5kZXJzIHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgbG9nZ2VyIAotCSAqIAotCSAqLwotCXByb3RlY3RlZCBkZWYgTG9nZ2VyIGdldExvZ2dlcigpIHsKLQkJaWYgKGxvZ2dlciA9PT0gbnVsbCkgewotCQkJbG9nZ2VyID0gY3JlYXRlTG9nZ2VyCi0JCQlsb2dnZXIuYWRkQXBwZW5kZXIobmV3IENvbnNvbGVBcHBlbmRlcihuZXcgUGF0dGVybkxheW91dCkpCi0JCX0KLQkJcmV0dXJuIGxvZ2dlcgotCX0KLQotCXByb3RlY3RlZCBkZWYgTG9nZ2VyIGNyZWF0ZUxvZ2dlcigpewotCQkJbG9nZ2VyID0gTG9nTWFuYWdlci5nZXRMb2dnZXIoImNvbS5ib3NjaC5tMm0uYXBwNG1jLnNpbXVsYXRpb24iKTsKLQkJCi0JfQotCXByb3RlY3RlZCBkZWYgU3RyaW5nIGdldFByb3BlcnR5KFN0cmluZyBwcm9wS2V5KSB7Ci0KLQkJaWYgKHByb3BlcnRpZXMgPT09IG51bGwpIHsKLQotCQkJaWYgKGN1c3RvbU9ianNTdG9yZSAhPT0gbnVsbCkgewotCQkJCXByb3BlcnRpZXMgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoUHJvcGVydGllcykKLQkJCQlpZiAocHJvcGVydGllcyA9PT0gbnVsbCkgewotCQkJCQl0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oCi0JCQkJCQkiUHJvcGVydGllcyBvYmplY3Qgbm90IHNldCBpbiBDdXN0b21PYmplY3RzU3RvcmUgOiBWZXJpZnkgdGhlIGN1c3RvbSBHb29nbGUgR3VpY2UgTW9kdWxlIGNvbmZpZ3VyYXRpb24gIikKLQkJCQl9Ci0KLQkJCX0gZWxzZSB7Ci0JCQkJdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKAotCQkJCQkiQ3VzdG9tT2JqZWN0c1N0b3JlIG9iamVjdCBub3QgYmluZGVkOiBWZXJpZnkgdGhlIGN1c3RvbSBHb29nbGUgR3VpY2UgTW9kdWxlIGNvbmZpZ3VyYXRpb24gIikKLQkJCX0KLQkJfQotCi0JCXZhbCB2YWx1ZSA9IHByb3BlcnRpZXMuZ2V0KHByb3BLZXkpCi0KLQkJaWYgKHZhbHVlID09PSBudWxsKSB7Ci0JCQl0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oIlJlcXVlc3QgaW5wdXQga2V5IDogXCIiICsgcHJvcEtleSArCi0JCQkJIlwiIG5vdCBzdXBwbGllZCBpbiB0aGUgaW5wdXQgcHJvcGVydGllcyBmaWxlIikKLQkJfQotCi0JCXJldHVybiB2YWx1ZS50b1N0cmluZwotCi0JfQotCi0vKiAJcHVibGljIGRlZiBkb0dlbmVyYXRlKCkgJycnCi0gKiAJIAotICogCQmrICB2YWwgaW5zdGFuY2UgPSBjdXN0b21PYmpzU3RvcmUuZ2V0SW5zdGFuY2UoUHJvcGVydGllcym7Ci0gKiAJCatpbnN0YW5jZS5nZXQoImxvZ19maWxlIim7Ci0gKiAJCatnZXRMb2dnZXIud2FybigibG9nZ2luZyBpbmZvIGFib3V0IHRyYW5zZm9ybWF0aW9uIG9mIDoiK3RoaXMuY2xhc3MubmFtZSkJuwotICogCSAtLS0tLS0tLS0tPiCrdGhpcy5jbGFzcy5uYW1luwotICogCSA9PT09PT09PT09PT09PT0+IKtwcm9wZXJ0aWVzLmdldCgibG9nX2ZpbGUiKbsKLSAqIAknJycKLSAqLwotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9iYXNlL3RlbXBsYXRlcy9Nb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvTW9kZWwyTW9kZWxSb290VHJhbnNmb3JtZXIueHRlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjMjY0YjcuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9iYXNlL3RlbXBsYXRlcy9Nb2RlbDJNb2RlbFJvb3RUcmFuc2Zvcm1lci54dGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLS8qKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKgotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmJhc2UudGVtcGxhdGVzCi0KLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQKLQotcHVibGljIGNsYXNzIE1vZGVsMk1vZGVsUm9vdFRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2Zvcm1lciB7Ci0KLQlwdWJsaWMgZGVmIHZvaWQgbTJtVHJhbnNmb3JtYXRpb24oUmVzb3VyY2VTZXQgaW5wdXRSZXNvdXJjZVNldCwgUmVzb3VyY2VTZXQgb3V0cHV0UmVzb3VyY2VTZXQpIHsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lci54dGVuZCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvYmFzZS90ZW1wbGF0ZXMvTW9kZWwyVGV4dFJvb3RUcmFuc2Zvcm1lci54dGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTg5NDczYS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2Jhc2UvdGVtcGxhdGVzL01vZGVsMlRleHRSb290VHJhbnNmb3JtZXIueHRlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5iYXNlLnRlbXBsYXRlcwotCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlU2V0Ci0KLXB1YmxpYyBjbGFzcyBNb2RlbDJUZXh0Um9vdFRyYW5zZm9ybWVyIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2Zvcm1lciB7Ci0KLQlwdWJsaWMgZGVmIHZvaWQgbTJ0VHJhbnNmb3JtYXRpb24oUmVzb3VyY2VTZXQgaW5wdXRSZXNvdXJjZVNldCkgewotCX0KLX0KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvZXhlY3V0aW9udHlwZS9JTW9kZWxUb01vZGVsQ29uZmlnLmphdmEgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BsdWdpbnMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMvc3JjL29yZy9lY2xpcHNlL2FwcDRtYy90cmFuc2Zvcm1hdGlvbi9leHRlbnNpb25zL2V4ZWN1dGlvbnR5cGUvSU1vZGVsVG9Nb2RlbENvbmZpZy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmZjMDQyLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvZXhlY3V0aW9udHlwZS9JTW9kZWxUb01vZGVsQ29uZmlnLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0vKioKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgUm9iZXJ0IEJvc2NoIEdtYkguCi0gKiAKLSAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUKLSAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wCi0gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KLSAqCi0gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBSb2JlcnQgQm9zY2ggR21iSCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLQotcGFja2FnZSBvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy5leGVjdXRpb250eXBlOwotCi1pbXBvcnQgamF2YS51dGlsLlByb3BlcnRpZXM7Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmxvZzRqLkxvZ2dlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQ7Ci0KLXB1YmxpYyBpbnRlcmZhY2UgSU1vZGVsVG9Nb2RlbENvbmZpZyB7Ci0KLQlwdWJsaWMgUmVzb3VyY2VTZXQgZ2V0SW5wdXRSZXNvdXJjZVNldCgpOwotCi0JcHVibGljIFJlc291cmNlU2V0IGdldE91cHV0UmVzb3VyY2VTZXQoKTsKLQotCXB1YmxpYyB2b2lkIHNldFByb3BlcnRpZXMoUHJvcGVydGllcyBwYXJhbWV0ZXJzKTsKLQotCXB1YmxpYyB2b2lkIHNldExvZ2dlcihMb2dnZXIgbG9nZ2VyKTsKLQotfQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9leGVjdXRpb250eXBlL0lNb2RlbFRvVGV4dENvbmZpZy5qYXZhIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wbHVnaW5zL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zL3NyYy9vcmcvZWNsaXBzZS9hcHA0bWMvdHJhbnNmb3JtYXRpb24vZXh0ZW5zaW9ucy9leGVjdXRpb250eXBlL0lNb2RlbFRvVGV4dENvbmZpZy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZGZhODdlLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcGx1Z2lucy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXh0ZW5zaW9ucy9zcmMvb3JnL2VjbGlwc2UvYXBwNG1jL3RyYW5zZm9ybWF0aW9uL2V4dGVuc2lvbnMvZXhlY3V0aW9udHlwZS9JTW9kZWxUb1RleHRDb25maWcuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS8qKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBSb2JlcnQgQm9zY2ggR21iSC4KLSAqIAotICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZQotICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotICoKLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wCi0gKgotICogQ29udHJpYnV0b3JzOgotICogICAgIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotCi1wYWNrYWdlIG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leHRlbnNpb25zLmV4ZWN1dGlvbnR5cGU7Ci0KLWltcG9ydCBqYXZhLnV0aWwuUHJvcGVydGllczsKLQotaW1wb3J0IG9yZy5hcGFjaGUubG9nNGouTG9nZ2VyOwotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsKLQotcHVibGljIGludGVyZmFjZSBJTW9kZWxUb1RleHRDb25maWcgewotCi0JcHVibGljIFJlc291cmNlU2V0IGdldElucHV0UmVzb3VyY2VTZXQoKTsKLQotCXB1YmxpYyB2b2lkIHNldFByb3BlcnRpZXMoUHJvcGVydGllcyBwYXJhbWV0ZXJzKTsKLQkKLQlwdWJsaWMgdm9pZCBzZXRMb2dnZXIoTG9nZ2VyIGxvZ2dlcik7Ci19CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhOTZlMjAuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgotCi0gIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KLQotICA8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb248L2dyb3VwSWQ+Ci0gIDxhcnRpZmFjdElkPnBhcmVudDwvYXJ0aWZhY3RJZD4KLSAgPHZlcnNpb24+MC4zLjAtU05BUFNIT1Q8L3ZlcnNpb24+Ci0gICAKLSAgPHBhY2thZ2luZz5wb208L3BhY2thZ2luZz4KLSAgCi0gIDxuYW1lPk1vZGVsIFRyYW5zZm9ybWF0aW9uPC9uYW1lPgotIAotICA8cHJvcGVydGllcz4KLSAgICA8dHljaG8udmVyc2lvbj4xLjYuMDwvdHljaG8udmVyc2lvbj4KLSAgICAKLSAgICA8cHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz5VVEYtODwvcHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz4KLSAgICA8cHJvamVjdC5yZXBvcnRpbmcub3V0cHV0RW5jb2Rpbmc+VVRGLTg8L3Byb2plY3QucmVwb3J0aW5nLm91dHB1dEVuY29kaW5nPgotICA8L3Byb3BlcnRpZXM+Ci0gCi0JPHBsdWdpblJlcG9zaXRvcmllcz4KLQkJPHBsdWdpblJlcG9zaXRvcnk+Ci0JCQk8aWQ+Y2JpPC9pZD4KLQkJCTx1cmw+aHR0cHM6Ly9yZXBvLmVjbGlwc2Uub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL2NiaS1yZWxlYXNlcy88L3VybD4KLQkJCTxyZWxlYXNlcz4KLQkJCQk8ZW5hYmxlZD50cnVlPC9lbmFibGVkPgotCQkJPC9yZWxlYXNlcz4KLQkJCTxzbmFwc2hvdHM+Ci0JCQkJPGVuYWJsZWQ+ZmFsc2U8L2VuYWJsZWQ+Ci0JCQk8L3NuYXBzaG90cz4KLQkJPC9wbHVnaW5SZXBvc2l0b3J5PgotCTwvcGx1Z2luUmVwb3NpdG9yaWVzPgotCi0JPG1vZHVsZXM+Ci0KLQkJPCEtLSBleGFtcGxlIHBsdWdpbnMgLS0+Ci0JCTxtb2R1bGU+ZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbDwvbW9kdWxlPgotCQk8bW9kdWxlPmV4YW1wbGVzL3NhbXBsZS1tb2RlbC10cmFuc2Zvcm1hdGlvbi9hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtPC9tb2R1bGU+Ci0JCTxtb2R1bGU+ZXhhbXBsZXMvc2FtcGxlLW1vZGVsLXRyYW5zZm9ybWF0aW9uL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQ8L21vZHVsZT4KLQkJPG1vZHVsZT5leGFtcGxlcy9zYW1wbGUtbW9kZWwtdHJhbnNmb3JtYXRpb24vYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcDwvbW9kdWxlPgotCi0JCTwhLS0gQW1sdDJJbmNocm9uIHRyYW5zZm9ybWF0aW9uIHBsdWdpbnMgLS0+Ci0JCTwhLS0KLQkJPG1vZHVsZT5leGFtcGxlcy9hbWx0MmluY2hyb24vY29tLmluY2hyb24ucmVhbHRpbWUucm9vdDwvbW9kdWxlPgotCQk8bW9kdWxlPmV4YW1wbGVzL2FtbHQyaW5jaHJvbi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24uYXBwPC9tb2R1bGU+Ci0JCTxtb2R1bGU+ZXhhbXBsZXMvYW1sdDJpbmNocm9uL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm0udG8uaW5jaHJvbi5tMm08L21vZHVsZT4KLQkJPG1vZHVsZT5leGFtcGxlcy9hbWx0MmluY2hyb24vb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLjNyZHBhcnR5LmxpYnM8L21vZHVsZT4KLQkJLS0+Ci0KLQkJPCEtLSBjb3JlIC0tPgotICAJCTxtb2R1bGU+cGx1Z2luczwvbW9kdWxlPgotCQk8bW9kdWxlPmZlYXR1cmVzPC9tb2R1bGU+Ci0JCTxtb2R1bGU+cmVsZW5nPC9tb2R1bGU+Ci0JPC9tb2R1bGVzPgotICAKLSAgCTxidWlsZD4KLQotCQk8cGx1Z2lucz4KLQkJCTxwbHVnaW4+Ci0JCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UueHRlbmQ8L2dyb3VwSWQ+Ci0JCQkJPGFydGlmYWN0SWQ+eHRlbmQtbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPjIuMjAuMDwvdmVyc2lvbj4KLQkJCQk8ZXhlY3V0aW9ucz4KLQkJCQkJPGV4ZWN1dGlvbj4KLQkJCQkJCTxnb2Fscz4KLQkJCQkJCQk8Z29hbD5jb21waWxlPC9nb2FsPgotCQkJCQkJCTxnb2FsPnh0ZW5kLWluc3RhbGwtZGVidWctaW5mbzwvZ29hbD4KLQkJCQkJCQk8Z29hbD50ZXN0Q29tcGlsZTwvZ29hbD4KLQkJCQkJCQk8Z29hbD54dGVuZC10ZXN0LWluc3RhbGwtZGVidWctaW5mbzwvZ29hbD4KLQkJCQkJCTwvZ29hbHM+Ci0JCQkJCTwvZXhlY3V0aW9uPgotCQkJCTwvZXhlY3V0aW9ucz4KLQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJPG91dHB1dERpcmVjdG9yeT4ke2Jhc2VkaXJ9L3h0ZW5kLWdlbjwvb3V0cHV0RGlyZWN0b3J5PgotCQkJCQk8dGVzdE91dHB1dERpcmVjdG9yeT4ke2Jhc2VkaXJ9L3h0ZW5kLWdlbjwvdGVzdE91dHB1dERpcmVjdG9yeT4KLQkJCQk8L2NvbmZpZ3VyYXRpb24+Ci0JCQk8L3BsdWdpbj4KLQotCQkJPHBsdWdpbj4KLQkJCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS50eWNobzwvZ3JvdXBJZD4KLQkJCQk8YXJ0aWZhY3RJZD50eWNoby1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+Ci0JCQkJPHZlcnNpb24+JHt0eWNoby52ZXJzaW9ufTwvdmVyc2lvbj4KLQkJCQk8ZXh0ZW5zaW9ucz50cnVlPC9leHRlbnNpb25zPgotCQkJPC9wbHVnaW4+Ci0KLQkJCTxwbHVnaW4+Ci0JCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UudHljaG88L2dyb3VwSWQ+Ci0JCQkJPGFydGlmYWN0SWQ+dHljaG8tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPiR7dHljaG8udmVyc2lvbn08L3ZlcnNpb24+Ci0JCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCTx2ZXJib3NlPnRydWU8L3ZlcmJvc2U+Ci0JCQkJCTxzb3VyY2U+MS44PC9zb3VyY2U+Ci0JCQkJCTx0YXJnZXQ+MS44PC90YXJnZXQ+Ci0JCQkJPC9jb25maWd1cmF0aW9uPgotCQkJPC9wbHVnaW4+Ci0KLQkJCTxwbHVnaW4+Ci0JCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UudHljaG88L2dyb3VwSWQ+Ci0JCQkJPGFydGlmYWN0SWQ+dGFyZ2V0LXBsYXRmb3JtLWNvbmZpZ3VyYXRpb248L2FydGlmYWN0SWQ+Ci0JCQkJPHZlcnNpb24+JHt0eWNoby52ZXJzaW9ufTwvdmVyc2lvbj4KLQkJCQk8Y29uZmlndXJhdGlvbj4KLQkJCQkJPGVudmlyb25tZW50cz4KLQkJCQkJCTxlbnZpcm9ubWVudD4KLQkJCQkJCQk8b3M+bGludXg8L29zPgotCQkJCQkJCTx3cz5ndGs8L3dzPgotCQkJCQkJCTxhcmNoPng4Nl82NDwvYXJjaD4KLQkJCQkJCTwvZW52aXJvbm1lbnQ+Ci0JCQkJCQk8ZW52aXJvbm1lbnQ+Ci0JCQkJCQkJPG9zPndpbjMyPC9vcz4KLQkJCQkJCQk8d3M+d2luMzI8L3dzPgotCQkJCQkJCTxhcmNoPng4Nl82NDwvYXJjaD4KLQkJCQkJCTwvZW52aXJvbm1lbnQ+Ci0JCQkJCQk8ZW52aXJvbm1lbnQ+Ci0JCQkJCQkJPG9zPm1hY29zeDwvb3M+Ci0JCQkJCQkJPHdzPmNvY29hPC93cz4KLQkJCQkJCQk8YXJjaD54ODZfNjQ8L2FyY2g+Ci0JCQkJCQk8L2Vudmlyb25tZW50PgotCQkJCQk8L2Vudmlyb25tZW50cz4KLQotCQkJCQk8dGFyZ2V0PgotCQkJCQkJPGFydGlmYWN0PgotCQkJCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbjwvZ3JvdXBJZD4KLQkJCQkJCQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0PC9hcnRpZmFjdElkPgotCQkJCQkJCTx2ZXJzaW9uPjAuMy4wLVNOQVBTSE9UPC92ZXJzaW9uPgotCQkJCQkJPC9hcnRpZmFjdD4KLQkJCQkJPC90YXJnZXQ+Ci0JCQkJCTx0YXJnZXREZWZpbml0aW9uSW5jbHVkZVNvdXJjZT5ob25vcjwvdGFyZ2V0RGVmaW5pdGlvbkluY2x1ZGVTb3VyY2U+Ci0JCQkJPC9jb25maWd1cmF0aW9uPgotCQkJPC9wbHVnaW4+Ci0JCQkKLQkJCTxwbHVnaW4+Ci0JCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UudHljaG88L2dyb3VwSWQ+Ci0JCQkJPGFydGlmYWN0SWQ+dHljaG8tc3VyZWZpcmUtcGx1Z2luPC9hcnRpZmFjdElkPgotCQkJCTx2ZXJzaW9uPiR7dHljaG8udmVyc2lvbn08L3ZlcnNpb24+Ci0JCQkJPGNvbmZpZ3VyYXRpb24+Ci0JCQkJCTwhLS0gYXJnTGluZT4ke3R5Y2hvLnRlc3RBcmdMaW5lfTwvYXJnTGluZT4gLS0+Ci0JCQkJCTxmb3JrTW9kZT5uZXZlcjwvZm9ya01vZGU+Ci0JCQkJCTxpbmNsdWRlcz4KLQkJCQkJCTxpbmNsdWRlPioqLypUZXN0Lio8L2luY2x1ZGU+Ci0JCQkJCTwvaW5jbHVkZXM+Ci0JCQkJPC9jb25maWd1cmF0aW9uPgotCQkJPC9wbHVnaW4+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+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9kZXZfdXRpbHMvd29ya2luZ1NldHMucHNmIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvZGV2X3V0aWxzL3dvcmtpbmdTZXRzLnBzZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q4MWNhNC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9kZXZfdXRpbHMvd29ya2luZ1NldHMucHNmCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPHBzZiB2ZXJzaW9uPSIyLjAiPgotPHdvcmtpbmdTZXRzIGVkaXRQYWdlSWQ9Im9yZy5lY2xpcHNlLmpkdC51aS5KYXZhV29ya2luZ1NldFBhZ2UiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UudWkuaW50ZXJuYWwuV29ya2luZ1NldEZhY3RvcnkiIGlkPSIxNTI5MjE1MzMyNjQxXzEiIGxhYmVsPSJ0cmFuc2Zvcm1hdGlvbi5mcmFtZXdvcmsiIG5hbWU9InRyYW5zZm9ybWF0aW9uLmZyYW1ld29yayI+Ci08aXRlbSBlbGVtZW50SUQ9Ij1vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uYXBwbGljYXRpb24iIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5IiAvPgotPGl0ZW0gZWxlbWVudElEPSI9b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4dGVuc2lvbnMiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5IiAvPgotPGl0ZW0gZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5tb2RlbC5SZXNvdXJjZUZhY3RvcnkiIHBhdGg9Ii9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uY29yZS5mZWF0dXJlIiB0eXBlPSI0IiAvPgotPGl0ZW0gZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5tb2RlbC5SZXNvdXJjZUZhY3RvcnkiIHBhdGg9Ii9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uM3JkcGFydHkuZmVhdHVyZSIgdHlwZT0iNCIgLz4KLTwvd29ya2luZ1NldHM+Ci08d29ya2luZ1NldHMgZWRpdFBhZ2VJZD0ib3JnLmVjbGlwc2UuamR0LnVpLkphdmFXb3JraW5nU2V0UGFnZSIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5Xb3JraW5nU2V0RmFjdG9yeSIgaWQ9IjE1MjkyMTUzMzgxNDhfMiIgbGFiZWw9ImluY2hyb24udHJhbnNmb3JtYXRpb24iIG5hbWU9ImluY2hyb24udHJhbnNmb3JtYXRpb24iPgotPGl0ZW0gZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5tb2RlbC5SZXNvdXJjZUZhY3RvcnkiIHBhdGg9Ii9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udG8uaW5jaHJvbi5mZWF0dXJlIiB0eXBlPSI0IiAvPgotPGl0ZW0gZWxlbWVudElEPSI9b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLmFwcCIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiIC8+Ci08aXRlbSBlbGVtZW50SUQ9Ij1vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtLnRvLmluY2hyb24ubTJtIiBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLmpkdC51aS5QZXJzaXN0YWJsZUphdmFFbGVtZW50RmFjdG9yeSIgLz4KLTxpdGVtIGVsZW1lbnRJRD0iPW9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi4zcmRwYXJ0eS5saWJzIiBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLmpkdC51aS5QZXJzaXN0YWJsZUphdmFFbGVtZW50RmFjdG9yeSIgLz4KLTxpdGVtIGVsZW1lbnRJRD0iPWNvbS5pbmNocm9uLnJlYWx0aW1lLnJvb3QiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5IiAvPgotPGl0ZW0gZWxlbWVudElEPSI9b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybS50by5pbmNocm9uLnByb2R1Y3QiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5IiAvPgotPC93b3JraW5nU2V0cz4KLTx3b3JraW5nU2V0cyBlZGl0UGFnZUlkPSJvcmcuZWNsaXBzZS5qZHQudWkuSmF2YVdvcmtpbmdTZXRQYWdlIiBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLnVpLmludGVybmFsLldvcmtpbmdTZXRGYWN0b3J5IiBpZD0iMTUyOTQzOTAyOTY3N184IiBsYWJlbD0ic2FtcGxlLm1vZGVsLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGUiIG5hbWU9InNhbXBsZS5tb2RlbC50cmFuc2Zvcm1hdGlvbi5leGFtcGxlIj4KLTxpdGVtIGVsZW1lbnRJRD0iPWFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5hcHAiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5IiAvPgotPGl0ZW0gZWxlbWVudElEPSI9YXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybSIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiIC8+Ci08aXRlbSBlbGVtZW50SUQ9Ij1hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0IiBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLmpkdC51aS5QZXJzaXN0YWJsZUphdmFFbGVtZW50RmFjdG9yeSIgLz4KLTxpdGVtIGVsZW1lbnRJRD0iPWFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbCIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiIC8+Ci08aXRlbSBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLnVpLmludGVybmFsLm1vZGVsLlJlc291cmNlRmFjdG9yeSIgcGF0aD0iL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlIiB0eXBlPSI0IiAvPgotPC93b3JraW5nU2V0cz4KLQotPHdvcmtpbmdTZXRzIGVkaXRQYWdlSWQ9Im9yZy5lY2xpcHNlLmpkdC51aS5KYXZhV29ya2luZ1NldFBhZ2UiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UudWkuaW50ZXJuYWwuV29ya2luZ1NldEZhY3RvcnkiIGlkPSIxNTI5NDM5MDI5Njc3XzI0IiBsYWJlbD0ic2FtcGxlLm1vZGVsLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGUuY3VzdG9taXphdGlvbiIgbmFtZT0ic2FtcGxlLm1vZGVsLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGUuY3VzdG9taXphdGlvbiI+Ci08aXRlbSBlbGVtZW50SUQ9Ij1hcHA0bS5leGFtcGxlLnRyYW5zZm9ybS5jdXN0LmFwcCIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiIC8+Ci08aXRlbSBlbGVtZW50SUQ9Ij1hcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJ0LmN1c3QiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5IiAvPgotPC93b3JraW5nU2V0cz4KLQotCi08d29ya2luZ1NldHMgZWRpdFBhZ2VJZD0ib3JnLmVjbGlwc2UuamR0LnVpLkphdmFXb3JraW5nU2V0UGFnZSIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5Xb3JraW5nU2V0RmFjdG9yeSIgaWQ9IjE1Mjk5MTQ2MjUzODBfMTIiIGxhYmVsPSJidWlsZCIgbmFtZT0iYnVpbGQiPgotPGl0ZW0gZWxlbWVudElEPSI9b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS5qZHQudWkuUGVyc2lzdGFibGVKYXZhRWxlbWVudEZhY3RvcnkiIC8+Ci08aXRlbSBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLnVpLmludGVybmFsLm1vZGVsLlJlc291cmNlRmFjdG9yeSIgcGF0aD0iL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8iIHR5cGU9IjQiIC8+Ci08aXRlbSBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLnVpLmludGVybmFsLm1vZGVsLlJlc291cmNlRmFjdG9yeSIgcGF0aD0iL2Rldl91dGlscyIgdHlwZT0iNCIgLz4KLTxpdGVtIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UudWkuaW50ZXJuYWwubW9kZWwuUmVzb3VyY2VGYWN0b3J5IiBwYXRoPSIvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldCIgdHlwZT0iNCIgLz4KLTwvd29ya2luZ1NldHM+Ci08d29ya2luZ1NldHMgZWRpdFBhZ2VJZD0ib3JnLmVjbGlwc2UuamR0LnVpLkphdmFXb3JraW5nU2V0UGFnZSIgZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5Xb3JraW5nU2V0RmFjdG9yeSIgaWQ9IjE1Mjk5MTUyMDI1NTRfMTgiIGxhYmVsPSJFeGFtcGxlc19CdWlsZGVycyIgbmFtZT0iRXhhbXBsZXNfQnVpbGRlcnMiPgotPGl0ZW0gZmFjdG9yeUlEPSJvcmcuZWNsaXBzZS51aS5pbnRlcm5hbC5tb2RlbC5SZXNvdXJjZUZhY3RvcnkiIHBhdGg9Ii9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZSIgdHlwZT0iNCIgLz4KLTxpdGVtIGVsZW1lbnRJRD0iPW9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIiIGZhY3RvcnlJRD0ib3JnLmVjbGlwc2UuamR0LnVpLlBlcnNpc3RhYmxlSmF2YUVsZW1lbnRGYWN0b3J5IiAvPgotPC93b3JraW5nU2V0cz4KLTx3b3JraW5nU2V0cyBlZGl0UGFnZUlkPSJvcmcuZWNsaXBzZS5qZHQudWkuSmF2YVdvcmtpbmdTZXRQYWdlIiBmYWN0b3J5SUQ9Im9yZy5lY2xpcHNlLnVpLmludGVybmFsLldvcmtpbmdTZXRGYWN0b3J5IiBpZD0iMTUyOTkxNTMyNzk3N18yMyIgbGFiZWw9ImZlYXR1cmVzIiBuYW1lPSJmZWF0dXJlcyIgLz4KLTwvcHNmPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLmNsYXNzcGF0aCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc1MDA5ZC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSmF2YVNFLTEuOCIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5naXRpZ25vcmUgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiZGQ1ODguLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0vYmluLwotL3RhcmdldC8KLS94dGVuZC1nZW4vCi0vZXhhbXBsZXMvClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyZmQ4ZDIuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXI8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM2OGE2MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjgKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS44Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjgKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODQ1MzgwLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IEFQUDRNQyBUcmFuc2Zvcm1hdGlvbiBFeGFtcGxlcyBJbnN0YWxsZXIKLUJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXI7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4zLjAucXVhbGlmaWVyCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuOAotUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udWkKLUJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgQVBQNE1DCi1BdXRvbWF0aWMtTW9kdWxlLU5hbWU6IG9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KLTx0aXRsZT5BYm91dDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keSBsYW5nPSJFTi1VUyI+Ci0JPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+Ci0KLQk8cD5Ob3ZlbWJlciAzMCwgMjAxNzwvcD4KLQk8aDM+TGljZW5zZTwvaDM+Ci0KLQk8cD4KLQkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluCi0JCSgmcXVvdDtDb250ZW50JnF1b3Q7KS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50Ci0JCWlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UKLQkJUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUgRVBMIGlzCi0JCWF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCi0JCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC4KLQk8L3A+Ci0KLQk8cD4KLQkJSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZQotCQlGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyBiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkKLQkJKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5Ci0JCWFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlCi0JCVJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuIElmIG5vIHN1Y2gKLQkJbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkCi0JCWJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlCi0JCWNvZGUgaW4gdGhlIENvbnRlbnQgYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhCi0JCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnLyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uCi0JPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9idWlsZC5wcm9wZXJ0aWVzIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmJkMGNiLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIyAgQ29weXJpZ2h0IChjKSAyMDE4IFJvYmVydCBCb3NjaCBHbWJIIGFuZCBvdGhlcnMuCi0jICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMAotIyAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCi0jIAotIyAgIENvbnRyaWJ1dG9yczoKLSMgIAkgUm9iZXJ0IEJvc2NoIEdtYkggLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSMgCi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLWJpbi5pbmNsdWRlcyA9IE1FVEEtSU5GLyxcCi0gICAgICAgICAgICAgICBleGFtcGxlcy8sXAotICAgICAgICAgICAgICAgaWNvbnMvLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi5wcm9wZXJ0aWVzLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtMi4wLmh0bWwKLXNyYy5pbmNsdWRlcyA9IGV4YW1wbGVzLyxcCi0gICAgICAgICAgICAgICBpY29ucy8sXAotICAgICAgICAgICAgICAgY29weUV4YW1wbGVMaWIuYW50LFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgZ2VuZXJhdGVUcmFuc2Zvcm1hdGlvbkV4YW1wbGVzQnVpbGRlcnMuYW50LFwKLSAgICAgICAgICAgICAgIGVwbC0yLjAuaHRtbApkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9jb3B5RXhhbXBsZUxpYi5hbnQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2NvcHlFeGFtcGxlTGliLmFudApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U0ZWI4OS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2NvcHlFeGFtcGxlTGliLmFudAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/PgotPCEtLQotCUNvcHlyaWdodCAoYykgMjAxMiBFY2xpc3BlIGNvbnRyaWJ1dG9ycyBhbmQgb3RoZXJzLgotCUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLQlhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLQl3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotCWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0tLT4KLTxwcm9qZWN0IG5hbWU9ImNvcHlFeGFtcGxlTGliIiBiYXNlZGlyPSIuLiI+Ci0KLQk8cHJvcGVydHkgbmFtZT0iZXhhbXBsZXMucGF0aCIgdmFsdWU9Ii4uLy4uL2J1aWxkL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvZXhhbXBsZXMiIC8+Ci0JCi0JPGJhc2VuYW1lIGZpbGU9IiR7YnVpbGQucHJvamVjdH0iIHByb3BlcnR5PSJwcm9qZWN0IiAvPgotCi0JPG1hY3JvZGVmIG5hbWU9ImNvcHlFeGFtcGxlIj4KLQkJPGF0dHJpYnV0ZSBuYW1lPSJwcm9qZWN0IiAvPgotCQk8c2VxdWVudGlhbD4KLQkJCTxkZWxldGUgaW5jbHVkZWVtcHR5ZGlycz0idHJ1ZSIgZmFpbG9uZXJyb3I9ImZhbHNlIj4KLQkJCQk8ZmlsZXNldCBkaXI9IiR7ZXhhbXBsZXMucGF0aH0vQHtwcm9qZWN0fSI+Ci0JCQkJCTxpbmNsdWRlIG5hbWU9IioqIiAvPgotCQkJCTwvZmlsZXNldD4KLQkJCTwvZGVsZXRlPgotCi0JCQk8Y29weSB0b2Rpcj0iJHtleGFtcGxlcy5wYXRofS9Ae3Byb2plY3R9IiBvdmVyd3JpdGU9InRydWUiPgotCQkJCTxmaWxlc2V0IGRpcj0iQHtwcm9qZWN0fSI+Ci0JCQkJCTxleGNsdWRlIG5hbWU9Ii5leHRlcm5hbFRvb2xCdWlsZGVycy8iIC8+Ci0JCQkJCTxleGNsdWRlIG5hbWU9ImRhdGFiYXNlLyIgLz4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0iYmluLyIgLz4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0idGFyZ2V0LyIgLz4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLm15bHluKiIgLz4KLQkJCQkJPGV4Y2x1ZGUgbmFtZT0iLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5hcGkudG9vbHMucHJlZnMiIC8+Ci0JCQkJCTxleGNsdWRlIG5hbWU9IioqLy5naXRpZ25vcmUiIC8+Ci0JCQkJCTxleGNsdWRlIG5hbWU9IioqL3BvbS54bWwiIC8+Ci0JCQkJCTxleGNsdWRlIG5hbWU9IioqL3JlbGVhc2UuKiIgLz4KLQkJCQkJPGluY2x1ZGUgbmFtZT0iKioiIC8+Ci0JCQkJPC9maWxlc2V0PgotCQkJPC9jb3B5PgotCQkJCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLnBhdGh9L0B7cHJvamVjdH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InNnIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtidWlsZENvbW1hbmQ+XHMrJmx0O25hbWU+b3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5FeHRlcm5hbFRvb2xCdWlsZGVyLio/Jmx0Oy9idWlsZENvbW1hbmQ+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0JCQk8cmVwbGFjZXJlZ2V4cCBmaWxlPSIke2V4YW1wbGVzLnBhdGh9L0B7cHJvamVjdH0vLnByb2plY3QiCi0JCQkgICAgICAgICAgICAgICBieWxpbmU9ImZhbHNlIgotCQkJICAgICAgICAgICAgICAgZmxhZ3M9InMiCi0JCQkgICAgICAgICAgICAgICBtYXRjaD0iXHMqJmx0O2J1aWxkQ29tbWFuZD5ccysmbHQ7bmFtZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy5wYXRofS9Ae3Byb2plY3R9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtidWlsZENvbW1hbmQ+XHMrJmx0O25hbWU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uQnVpbGRlci4qPyZsdDsvYnVpbGRDb21tYW5kPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy5wYXRofS9Ae3Byb2plY3R9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UucGRlLmFwaS50b29scy5hcGlBbmFseXNpc05hdHVyZSZsdDsvbmF0dXJlPiIKLQkJCSAgICAgICAgICAgICAgIHJlcGxhY2U9IiIgLz4KLQotCQkJPHJlcGxhY2VyZWdleHAgZmlsZT0iJHtleGFtcGxlcy5wYXRofS9Ae3Byb2plY3R9Ly5wcm9qZWN0IgotCQkJICAgICAgICAgICAgICAgYnlsaW5lPSJmYWxzZSIKLQkJCSAgICAgICAgICAgICAgIGZsYWdzPSJzIgotCQkJICAgICAgICAgICAgICAgbWF0Y2g9IlxzKiZsdDtuYXR1cmU+b3JnLmVjbGlwc2UuZW1mLmNkby5yZWxlbmcudmVyc2lvbi5WZXJzaW9uTmF0dXJlJmx0Oy9uYXR1cmU+IgotCQkJICAgICAgICAgICAgICAgcmVwbGFjZT0iIiAvPgotCi0KLQkJPC9zZXF1ZW50aWFsPgotCTwvbWFjcm9kZWY+Ci0KLTwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvZXBsLTIuMC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+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+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvZ2VuZXJhdGVUcmFuc2Zvcm1hdGlvbkV4YW1wbGVzQnVpbGRlcnMuYW50IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9nZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzNjM1N2MuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9nZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTwhLS0KLQlDb3B5cmlnaHQgKGMpIDIwMTIgRWNsaXBzZSBjb250cmlidXRvcnMgYW5kIG90aGVycy4KLQlBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0JYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0Jd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLQlodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotLS0+Ci08cHJvamVjdCBuYW1lPSJnZW5lcmF0ZUV4YW1wbGVCdWlsZGVycyIgZGVmYXVsdD0ibWFpbiI+Ci0KLQkKLQkKLQkKLQkKLQk8dGFyZ2V0IG5hbWU9Im1haW4iPgotCQk8ZWNobyBtZXNzYWdlPSIke3JlbGVuZy5sb2NhdGlvbn0iPjwvZWNobz4KLQkJPGphdmEgZm9yaz0iZmFsc2UiIGNsYXNzcGF0aD0iJHtyZWxlbmcubG9jYXRpb259L2JpbiIgY2xhc3NuYW1lPSJvcmcuZWNsaXBzZS5hcHA0bWMucGxhdGZvcm0uZXhhbXBsZXNidWlsZGVyLkdlbmVyYXRlRXhhbXBsZUJ1aWxkZXJzIj4KLQkJCTxhcmcgdmFsdWU9IiR7cmVsZW5nLmxvY2F0aW9ufSIgLz4KLQkJCTxhcmcgdmFsdWU9IiR7YnVpbGQucHJvamVjdH0iIC8+Ci0JCTwvamF2YT4KLQk8L3RhcmdldD4KLQotPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9pY29ucy9mdWxsL2N0b29sMTYvTmV3RU1GRXhhbXBsZS5naWYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2ljb25zL2Z1bGwvY3Rvb2wxNi9OZXdFTUZFeGFtcGxlLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFjYmJjNi4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2ljb25zL2Z1bGwvY3Rvb2wxNi9OZXdFTUZFeGFtcGxlLmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvaWNvbnMvZnVsbC93aXpiYW4vTmV3RU1GRXhhbXBsZS5naWYgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL2ljb25zL2Z1bGwvd2l6YmFuL05ld0VNRkV4YW1wbGUuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjQ5ODMxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvaWNvbnMvZnVsbC93aXpiYW4vTmV3RU1GRXhhbXBsZS5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIgZ2VuZXJhdGVUcmFuc2Zvcm1hdGlvbkV4YW1wbGVzQnVpbGRlcnMuYW50LmxhdW5jaCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciBnZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnQubGF1bmNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjA1MmZjLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciBnZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnQubGF1bmNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Ci08bGF1bmNoQ29uZmlndXJhdGlvbiB0eXBlPSJvcmcuZWNsaXBzZS5hbnQuQW50TGF1bmNoQ29uZmlndXJhdGlvblR5cGUiPgotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5hbnQudWkuREVGQVVMVF9WTV9JTlNUQUxMIiB2YWx1ZT0idHJ1ZSIvPgotPGxpc3RBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLk1BUFBFRF9SRVNPVVJDRV9QQVRIUyI+Ci08bGlzdEVudHJ5IHZhbHVlPSIvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9nZW5lcmF0ZVRyYW5zZm9ybWF0aW9uRXhhbXBsZXNCdWlsZGVycy5hbnQiLz4KLTwvbGlzdEF0dHJpYnV0ZT4KLTxsaXN0QXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5NQVBQRURfUkVTT1VSQ0VfVFlQRVMiPgotPGxpc3RFbnRyeSB2YWx1ZT0iMSIvPgotPC9saXN0QXR0cmlidXRlPgotPGxpc3RBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkNMQVNTUEFUSCI+Ci08bGlzdEVudHJ5IHZhbHVlPSImbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90OyBzdGFuZGFsb25lPSZxdW90O25vJnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3J1bnRpbWVDbGFzc3BhdGhFbnRyeSBjb250YWluZXJQYXRoPSZxdW90O29yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvanJlOCZxdW90OyBwYXRoPSZxdW90OzEmcXVvdDsgdHlwZT0mcXVvdDs0JnF1b3Q7LyZndDsmIzEzOyYjMTA7Ii8+Ci08bGlzdEVudHJ5IHZhbHVlPSImbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90OyBzdGFuZGFsb25lPSZxdW90O25vJnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3J1bnRpbWVDbGFzc3BhdGhFbnRyeSBpZD0mcXVvdDtvcmcuZWNsaXBzZS5hbnQudWkuY2xhc3NwYXRoZW50cnkuYW50SG9tZSZxdW90OyZndDsmIzEzOyYjMTA7Jmx0O21lbWVudG8gZGVmYXVsdD0mcXVvdDt0cnVlJnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0Oy9ydW50aW1lQ2xhc3NwYXRoRW50cnkmZ3Q7JiMxMzsmIzEwOyIvPgotPGxpc3RFbnRyeSB2YWx1ZT0iJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDsgc3RhbmRhbG9uZT0mcXVvdDtubyZxdW90Oz8mZ3Q7JiMxMzsmIzEwOyZsdDtydW50aW1lQ2xhc3NwYXRoRW50cnkgaWQ9JnF1b3Q7b3JnLmVjbGlwc2UuYW50LnVpLmNsYXNzcGF0aGVudHJ5LmV4dHJhQ2xhc3NwYXRoRW50cmllcyZxdW90OyZndDsmIzEzOyYjMTA7Jmx0O21lbWVudG8vJmd0OyYjMTM7JiMxMDsmbHQ7L3J1bnRpbWVDbGFzc3BhdGhFbnRyeSZndDsmIzEzOyYjMTA7Ii8+Ci08bGlzdEVudHJ5IHZhbHVlPSImbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90OyBzdGFuZGFsb25lPSZxdW90O25vJnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3J1bnRpbWVDbGFzc3BhdGhFbnRyeSBpbnRlcm5hbEFyY2hpdmU9JnF1b3Q7L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5idWlsZGVyL2JpbiZxdW90OyBwYXRoPSZxdW90OzMmcXVvdDsgdHlwZT0mcXVvdDsyJnF1b3Q7LyZndDsmIzEzOyYjMTA7Ii8+Ci08L2xpc3RBdHRyaWJ1dGU+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5DTEFTU1BBVEhfUFJPVklERVIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQudWkuQW50Q2xhc3NwYXRoUHJvdmlkZXIiLz4KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5ERUZBVUxUX0NMQVNTUEFUSCIgdmFsdWU9ImZhbHNlIi8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSIiB2YWx1ZT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9qcmU4Ii8+Ci08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5NQUlOX1RZUEUiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQuaW50ZXJuYWwubGF1bmNoaW5nLnJlbW90ZS5JbnRlcm5hbEFudFJ1bm5lciIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuUFJPSkVDVF9BVFRSIiB2YWx1ZT0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlciIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuU09VUkNFX1BBVEhfUFJPVklERVIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQudWkuQW50Q2xhc3NwYXRoUHJvdmlkZXIiLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfTE9DQVRJT04iIHZhbHVlPSIke3dvcmtzcGFjZV9sb2M6L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvZ2VuZXJhdGVUcmFuc2Zvcm1hdGlvbkV4YW1wbGVzQnVpbGRlcnMuYW50fSIvPgotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9UT09MX0FSR1VNRU5UUyIgdmFsdWU9Ii1EYnVpbGQucHJvamVjdD0ke3Byb2plY3RfbG9jOi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyfSYjMTM7JiMxMDstRHJlbGVuZy5sb2NhdGlvbj0ke3Byb2plY3RfbG9jOi9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuYnVpbGRlcn0iLz4KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJwcm9jZXNzX2ZhY3RvcnlfaWQiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQudWkucmVtb3RlQW50UHJvY2Vzc0ZhY3RvcnkiLz4KLTwvbGF1bmNoQ29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvcGx1Z2luLnByb3BlcnRpZXMgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuaW5zdGFsbGVyL3BsdWdpbi5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzU2ZWNkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvcGx1Z2luLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0jICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSMgIENvcHlyaWdodCAoYykgMjAxOCBSb2JlcnQgQm9zY2ggR21iSCBhbmQgb3RoZXJzLgotIyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjAKLSMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwotIyAKLSMgICBDb250cmlidXRvcnM6Ci0jICAJIFJvYmVydCBCb3NjaCBHbWJIIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIAotIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLSMgTkxTX01FU1NBR0VGT1JNQVRfVkFSCi0KLV9VSV9BTUFMVEhFQV9FeGFtcGxlc0NhdGVnb3J5X25hbWUgPSBBTUFMVEhFQSBFeGFtcGxlcwotCi1fVUlfQU1BTFRIRUFfRGVtb2NhckV4YW1wbGVzV2l6YXJkX25hbWUgPSBEZW1vY2FyIEV4YW1wbGVzCi1fVUlfQU1BTFRIRUFfRGVtb2NhckV4YW1wbGVzV2l6YXJkX2Rlc2MgPSBDcmVhdGUgcHJvamVjdHMgdGhhdCBjb250YWluIHRoZSBEZW1vY2FyIEV4YW1wbGUKLV9VSV9BTUFMVEhFQV9Id21vZGVsRXhhbXBsZXNXaXphcmRfbmFtZSA9IEh3bW9kZWwgRXhhbXBsZXMKLV9VSV9BTUFMVEhFQV9Id21vZGVsRXhhbXBsZXNXaXphcmRfZGVzYyA9IENyZWF0ZSBhIHByb2plY3QgdGhhdCBjb250YWlucyB0aGUgSHdtb2RlbCBFeGFtcGxlCi1fVUlfQU1BTFRIRUFfTW9kZWxpbmdFeGFtcGxlc1dpemFyZF9uYW1lID0gTW9kZWxpbmcgRXhhbXBsZXMKLV9VSV9BTUFMVEhFQV9Nb2RlbGluZ0V4YW1wbGVzV2l6YXJkX2Rlc2MgPSBDcmVhdGUgYSBwcm9qZWN0IHRoYXQgY29udGFpbnMgdGhlIE1vZGVsaW5nIEV4YW1wbGUKLQotX1VJX0FNQUxUSEVBX0V4YW1wbGVfRGVtb2Nhcl9Qcm9qZWN0X2Rlc2MgPSBUaGUgcHJvamVjdCBjb250YWlucyB0aGUgQU1BTFRIRUEgbW9kZWxzIG9mIHRoZSBEZW1vY2FyIGV4YW1wbGUKLV9VSV9BTUFMVEhFQV9FeGFtcGxlX0h3bW9kZWxfUHJvamVjdF9kZXNjID0gVGhlIHByb2plY3QgY29udGFpbnMgdGhlIEFNQUxUSEVBIG1vZGVscyBvZiBoYXJkd2FyZSBkZXNjcmlwdGlvbiBleGFtcGxlcwotX1VJX0FNQUxUSEVBX0V4YW1wbGVfTW9kZWxpbmdfUHJvamVjdF9kZXNjID0gVGhlIHByb2plY3QgY29udGFpbnMgdGhlIEFNQUxUSEVBIG1vZGVscyBvZiBNb2RlbGluZyBFeGFtcGxlcwpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9wbHVnaW4ueG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLmluc3RhbGxlci9wbHVnaW4ueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjYwNWExLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5pbnN0YWxsZXIvcGx1Z2luLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08P2VjbGlwc2UgdmVyc2lvbj0iMy40Ij8+Ci08cGx1Z2luPgotICAgPGV4dGVuc2lvbiBwb2ludD0ib3JnLmVjbGlwc2UudWkubmV3V2l6YXJkcyI+Ci0gICAgICA8Y2F0ZWdvcnkKLSAgICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudG9vbHMuRXhhbXBsZXMiCi0gICAgICAgICAgICBuYW1lPSJBUFA0TUMgVG9vbHMgRXhhbXBsZXMiCi0gICAgICAgICAgICBwYXJlbnRDYXRlZ29yeT0ib3JnLmVjbGlwc2UudWkuRXhhbXBsZXMiPgotICAgICAgPC9jYXRlZ29yeT4KLSAgICAgICAgICAgIDx3aXphcmQKLSAgICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuVHJhbnNmb3JtYXRpb25XaXphcmQiCi0gICAgICAgICAgICBuYW1lPSJNb2RlbCBUcmFuc2Zvcm1hdGlvbiBFeGFtcGxlIgotICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLmVtZi5jb21tb24udWkud2l6YXJkLkV4YW1wbGVJbnN0YWxsZXJXaXphcmQiCi0gICAgICAgICAgICBjYXRlZ29yeT0ib3JnLmVjbGlwc2UudWkuRXhhbXBsZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRvb2xzLkV4YW1wbGVzIgotICAgICAgICAgICAgcHJvamVjdD0idHJ1ZSIKLSAgICAgICAgICAgIGljb249Imljb25zL2Z1bGwvY3Rvb2wxNi9OZXdFTUZFeGFtcGxlLmdpZiI+Ci0gICAgICAgICA8ZGVzY3JpcHRpb24+RU1GIG1vZGVsIHRyYW5zZm9ybWF0aW9uIGV4YW1wbGU8L2Rlc2NyaXB0aW9uPgotICAgICAgPC93aXphcmQ+Ci0gICA8L2V4dGVuc2lvbj4KLQotCi0gICA8ZXh0ZW5zaW9uIHBvaW50PSJvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnVpLmV4YW1wbGVzIj4KLSAgICAgIDxleGFtcGxlCi0gICAgICAgICAgICBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmV4YW1wbGVzLkV4YW1wbGVzIgotICAgICAgICAgICAgd2l6YXJkSUQ9Im9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5UcmFuc2Zvcm1hdGlvbldpemFyZCIKLSAgICAgICAgICAgIHBhZ2VJbWFnZT0iaWNvbnMvZnVsbC93aXpiYW4vTmV3RU1GRXhhbXBsZS5naWYiPgotICAgICAgICAgICAgICAgPHByb2plY3REZXNjcmlwdG9yCi0gICAgICAgICAgICAgICAgICAgICBuYW1lPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0uYXBwIgotICAgICAgICAgICAgICAgICAgICAgY29udGVudFVSST0iZXhhbXBsZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLmFwcC8iCi0gICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU2FtcGxlIEFwcGxpY2F0aW9uIFByb2plY3QiLz4KLSAgICAgICAgICAgICAgIDxwcm9qZWN0RGVzY3JpcHRvcgotICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ydCIKLSAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRVUkk9ImV4YW1wbGVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5tMnQvIgotICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249IlNhbXBsZSBNMlQgcHJvamVjdCIvPgotICAgICAgICAgICAgICAgPHByb2plY3REZXNjcmlwdG9yCi0gICAgICAgICAgICAgICAgICAgICBuYW1lPSJhcHA0bWMuZXhhbXBsZS50cmFuc2Zvcm0ubTJtIgotICAgICAgICAgICAgICAgICAgICAgY29udGVudFVSST0iZXhhbXBsZXMvYXBwNG1jLmV4YW1wbGUudHJhbnNmb3JtLm0ybS8iCi0gICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU2FtcGxlIE0yTSBwcm9qZWN0Ii8+Ci0gICAgICAgICAgICAgICA8cHJvamVjdERlc2NyaXB0b3IKLSAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbCIKLSAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRVUkk9ImV4YW1wbGVzL2FwcDRtYy5leGFtcGxlLnRyYW5zZm9ybS5zYW1wbGVtb2RlbC8iCi0gICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU2FtcGxlIEVNRiBtb2RlbCIvPgotICAgICAgPC9leGFtcGxlPgotICAgIDwvZXh0ZW5zaW9uPgotICAgIAotICAgIAotPC9wbHVnaW4+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvLy5wcm9qZWN0IGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY3MWU1MC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwbzwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5VcGRhdGVTaXRlQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlVwZGF0ZVNpdGVOYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vYWJvdXQuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vYWJvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0Zjc4MS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KLTx0aXRsZT5BYm91dDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keSBsYW5nPSJFTi1VUyI+Ci0JPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+Ci0KLQk8cD5Ob3ZlbWJlciAzMCwgMjAxNzwvcD4KLQk8aDM+TGljZW5zZTwvaDM+Ci0KLQk8cD4KLQkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluCi0JCSgmcXVvdDtDb250ZW50JnF1b3Q7KS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50Ci0JCWlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UKLQkJUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUgRVBMIGlzCi0JCWF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCi0JCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC4KLQk8L3A+Ci0KLQk8cD4KLQkJSWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZQotCQlGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyBiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkKLQkJKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5Ci0JCWFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlCi0JCVJlZGlzdHJpYnV0b3IncyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuIElmIG5vIHN1Y2gKLQkJbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkCi0JCWJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlCi0JCWNvZGUgaW4gdGhlIENvbnRlbnQgYW5kIHN1Y2ggc291cmNlIGNvZGUgbWF5IGJlIG9idGFpbmVkIGF0IDxhCi0JCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnLyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uCi0JPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby9jYXRlZ29yeS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2NhdGVnb3J5LnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NkYzcyZS4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2NhdGVnb3J5LnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08c2l0ZT4KLSAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZV8wLjMuMC5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLmNvcmUuZmVhdHVyZSIgdmVyc2lvbj0iMC4zLjAucXVhbGlmaWVyIj4KLSAgICAgIDxjYXRlZ29yeSBuYW1lPSJBUFA0TUMgRU1GIE1vZGVsIFRyYW5zZm9ybWF0aW9uIi8+Ci0gICA8L2ZlYXR1cmU+Ci0gICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5leGFtcGxlcy5mZWF0dXJlXzAuMy4wLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24uZXhhbXBsZXMuZmVhdHVyZSIgdmVyc2lvbj0iMC4zLjAucXVhbGlmaWVyIj4KLSAgICAgIDxjYXRlZ29yeSBuYW1lPSJBUFA0TUMgRU1GIE1vZGVsIFRyYW5zZm9ybWF0aW9uIi8+Ci0gICA8L2ZlYXR1cmU+Ci0gICA8Y2F0ZWdvcnktZGVmIG5hbWU9IkFQUDRNQyBFTUYgTW9kZWwgVHJhbnNmb3JtYXRpb24iIGxhYmVsPSJvcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvIi8+Ci08L3NpdGU+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL2VwbC0yLjAuaHRtbCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vZXBsLTIuMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzdhMTgxLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vZXBsLTIuMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLSAgPGhlYWQ+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+Ci0gIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL3BvbS54bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL3BvbS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4M2QzNjEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnAycmVwby9wb20ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0JeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+Ci0KLSAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgotCi0gIDxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG88L2FydGlmYWN0SWQ+Ci0KLSAgPHBhY2thZ2luZz5lY2xpcHNlLXJlcG9zaXRvcnk8L3BhY2thZ2luZz4KLQotICA8cGFyZW50PgotCTxyZWxhdGl2ZVBhdGg+Li4vLi4vcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgotCTxncm91cElkPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbjwvZ3JvdXBJZD4KLQk8YXJ0aWZhY3RJZD5wYXJlbnQ8L2FydGlmYWN0SWQ+Ci0JPHZlcnNpb24+MC4zLjAtU05BUFNIT1Q8L3ZlcnNpb24+Ci0gIDwvcGFyZW50PgotPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vc2l0ZVRlbXBsYXRlL2luZGV4Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24ucDJyZXBvL3NpdGVUZW1wbGF0ZS9pbmRleC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTBmNzdkLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi5wMnJlcG8vc2l0ZVRlbXBsYXRlL2luZGV4Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08aHRtbD4KLQk8aGVhZD4KLQkJPHRpdGxlPiR7dXBkYXRlLnNpdGUubmFtZX0gVXBkYXRlIFNpdGU8L3RpdGxlPgotCTwvaGVhZD4KLQotCTxib2R5IG1hcmdpbmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiIGxlZnRtYXJnaW49IjAiIHRvcG1hcmdpbj0iMCI+Ci0JCQotCQk8aDIgY2xhc3M9InRpdGxlIj4ke3VwZGF0ZS5zaXRlLm5hbWV9IC0gVXNlIHRoaXMgVVJMIGluIEVjbGlwc2UgdG8gaW5zdGFsbCAke3VwZGF0ZS5zaXRlLm5hbWV9PC9oMj4KLQkKLQkJPHA+VGhpcyBpcyB0aGUgVXBkYXRlIFNpdGUgZm9yICR7dXBkYXRlLnNpdGUubmFtZX0uCi0JCQk8b2w+Ci0JCQkJPGxpPlRvIGluc3RhbGwgJHt1cGRhdGUuc2l0ZS5uYW1lfSBmcm9tIHRoaXMgc2l0ZSwgc3RhcnQgdXAgRWNsaXBzZSAke3RhcmdldC5lY2xpcHNlLnZlcnNpb259LCB0aGVuIGRvOgotCQkJCQk8dWw+PGNvZGU+PHN0cm9uZz5IZWxwID4gSW5zdGFsbCBOZXcgU29mdHdhcmUuLi4gPjwvc3Ryb25nPjwvY29kZT48L3VsPgotCQkJCTwvbGk+Ci0JCQkJPGxpPkNvcHkgdGhpcyBzaXRlJ3MgVVJMIGludG8gRWNsaXBzZSwgYW5kIGhpdCBFbnRlci48L2xpPgotCQkJCTxsaT5XaGVuIHRoZSBzaXRlIGxvYWRzLCBzZWxlY3QgdGhlIGZlYXR1cmVzIHRvIGluc3RhbGwsIG9yIGNsaWNrIHRoZSA8Y29kZT48c3Ryb25nPlNlbGVjdCBBbGw8L3N0cm9uZz48L2NvZGU+IGJ1dHRvbi48L2xpPgotCQkJCTxsaT5UbyBwcm9wZXJseSByZXNvbHZlIGFsbCBkZXBlbmRlbmNpZXMsIGNoZWNrIAotCQkJCQk8dWw+PGNvZGU+PHN0cm9uZz5beF0gQ29udGFjdCBhbGwgdXBkYXRlIHNpdGVzIGR1cmluZyBpbnN0YWxsIHRvIGZpbmQgcmVxdWlyZWQgc29mdHdhcmU8L3N0cm9uZz48L2NvZGU+PC91bD4KLQkJCQk8bGk+Q2xpY2sgPGNvZGU+PHN0cm9uZz5OZXh0PC9zdHJvbmc+PC9jb2RlPiwgYWdyZWUgdG8gdGhlIGxpY2Vuc2UgdGVybXMsIGFuZCBpbnN0YWxsLjwvbGk+Ci0JCQk8L29sPgotCQk8L3A+Ci0KLQkJPHA+JHtzaXRlLmNvbnRlbnRzfTwvcD4KLQk8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC8ucHJvamVjdCBiL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MWRjZWUuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQ8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L2Fib3V0Lmh0bWwgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGY3ODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgbGFuZz0iRU4tVVMiPgotCTxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgotCi0JPHA+Tm92ZW1iZXIgMzAsIDIwMTc8L3A+Ci0JPGgzPkxpY2Vuc2U8L2gzPgotCi0JPHA+Ci0JCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbgotCQkoJnF1b3Q7Q29udGVudCZxdW90OykuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudAotCQlpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlCi0JCVB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlIEVQTCBpcwotCQlhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgotCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCi0JPC9wPgotCi0JPHA+Ci0JCUlmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UKLQkJRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5Ci0JCSgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSBhbmQgZGlmZmVyZW50IHRlcm1zIGFuZCBjb25kaXRpb25zIG1heQotCQlhcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuIENoZWNrIHRoZQotCQlSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoCi0JCWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZAotCQliZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZQotCQljb2RlIGluIHRoZSBDb250ZW50IGFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YQotCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LgotCTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQvZXBsLTIuMC5odG1sIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC9lcGwtMi4wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2ExODEuLjAwMDAwMDAKLS0tIGEvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC9lcGwtMi4wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgotICA8aGVhZD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KLSAgICA8dGl0bGU+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+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgotICAgIDwvYmxvY2txdW90ZT4KLSAgPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC50YXJnZXQgYi9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQudGFyZ2V0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTIxNTQyLi4wMDAwMDAwCi0tLSBhL2VjbGlwc2UtdG9vbHMvbW9kZWwtdHJhbnNmb3JtYXRpb24vcmVsZW5nL29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC50YXJnZXQKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KLTw/cGRlPz4KLTwhLS0gZ2VuZXJhdGVkIHdpdGggaHR0cHM6Ly9naXRodWIuY29tL2VjbGlwc2UtY2JpL3RhcmdldHBsYXRmb3JtLWRzbCAtLT4KLTx0YXJnZXQgbmFtZT0iTW9kZWwgVHJhbnNmb3JtYXRpb24gVGFyZ2V0IiBzZXF1ZW5jZU51bWJlcj0iMTU4OTc4MDkwMiI+Ci0gIDxsb2NhdGlvbnM+Ci0gICAgPGxvY2F0aW9uIGluY2x1ZGVNb2RlPSJzbGljZXIiIGluY2x1ZGVBbGxQbGF0Zm9ybXM9InRydWUiIGluY2x1ZGVTb3VyY2U9InRydWUiIGluY2x1ZGVDb25maWd1cmVQaGFzZT0iZmFsc2UiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2Uuc2RrLmlkZSIgdmVyc2lvbj0iNC4xNC4wLkkyMDE5MTIxMC0wNjEwIi8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhjb3JlLmxpYi5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIxLjUuMC52MjAxOTA0MDEtMDg1NiIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLmVtZi5zZGsuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4yMC4wLnYyMDE5MTAyOC0wOTA1Ii8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuZW1mLnRyYW5zYWN0aW9uLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjEuMTIuMC4yMDE4MDUxNDA4MjQiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5lbWYudmFsaWRhdGlvbi5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIxLjEyLjEuMjAxODEyMDcwOTExIi8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UuZW1mLndvcmtzcGFjZS5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIxLjEyLjAuMjAxODA1MTQwODI0Ii8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UueHRleHQucnVudGltZS5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIyLjIwLjAudjIwMTkxMjAyLTEyNTYiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS54dGV4dC5zZGsuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4yMC4wLnYyMDE5MTIwMi0xMjU2Ii8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UueHRleHQueGJhc2UuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4yMC4wLnYyMDE5MTIwMi0xMjU2Ii8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmVjbGlwc2UueHRleHQueGJhc2UubGliLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjIuMjAuMC52MjAxOTEyMDItMDkxMCIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnh0ZW5kLnNkay5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIyLjIwLjAudjIwMTkxMjAyLTEyNTYiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS54cGFuZC5zZGsuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4yLjAudjIwMTYwNTI2MDMxNSIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5jbGkiIHZlcnNpb249IjEuMi4wLnYyMDE0MDQyNzAyMjAiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMubGFuZyIgdmVyc2lvbj0iMi42LjAudjIwMTQwNDI3MDIyMCIvPgotICAgICAgPHVuaXQgaWQ9Im9yZy5hcGFjaGUubG9nNGoiIHZlcnNpb249IjEuMi4xNS52MjAxMDEyMDcwODE1Ii8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmFwYWNoZS54ZXJjZXMiIHZlcnNpb249IjIuOS4wLnYyMDExMDEyMTE2MTciLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuYXBhY2hlLnhhbGFuIiB2ZXJzaW9uPSIyLjcuMS52MjAxMDA1MDgwNDAwIi8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmFwYWNoZS54bWwucmVzb2x2ZXIiIHZlcnNpb249IjEuMi4wLnYyMDEwMDUwODA0MDAiLz4KLSAgICAgIDx1bml0IGlkPSJvcmcuYXBhY2hlLnhtbC5zZXJpYWxpemVyIiB2ZXJzaW9uPSIyLjcuMS52MjAxMDA1MDgwNDAwIi8+Ci0gICAgICA8dW5pdCBpZD0iamF2YXgueG1sIiB2ZXJzaW9uPSIxLjMuNC52MjAxMDA1MDgwNDAwIi8+Ci0gICAgICA8dW5pdCBpZD0ib3JnLmpkb20iIHZlcnNpb249IjEuMS4xLnYyMDExMDExNTE0MDAiLz4KLSAgICAgIDx1bml0IGlkPSJjb20uZ29vZ2xlLmd1YXZhIiB2ZXJzaW9uPSIyNy4xLjAudjIwMTkwNTE3LTE5NDYiLz4KLSAgICAgIDx1bml0IGlkPSJjb20uZ29vZ2xlLmluamVjdCIgdmVyc2lvbj0iMy4wLjAudjIwMTYwNTE3MjEwMCIvPgotICAgICAgPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9yZWxlYXNlcy8yMDE5LTEyIi8+Ci0gICAgPC9sb2NhdGlvbj4KLSAgICA8bG9jYXRpb24gaW5jbHVkZU1vZGU9InNsaWNlciIgaW5jbHVkZUFsbFBsYXRmb3Jtcz0idHJ1ZSIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgaW5jbHVkZUNvbmZpZ3VyZVBoYXNlPSJmYWxzZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4KLSAgICAgIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5hcHA0bWMucGxhdGZvcm0uc2RrLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuOS44LjIwMjAwNDMwMTQxMCIvPgotICAgICAgPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9hcHA0bWMvdXBkYXRlc2l0ZXMvcmVsZWFzZXMvMC45LjgiLz4KLSAgICA8L2xvY2F0aW9uPgotICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0ic2xpY2VyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJ0cnVlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLnNwaGlueC5zZGsuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMC4xMS4yLjIwMTgwMjIzMDgwNSIvPgotICAgICAgPHJlcG9zaXRvcnkgbG9jYXRpb249Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9zcGhpbngvdXBkYXRlcy8wLjExLngiLz4KLSAgICA8L2xvY2F0aW9uPgotICAgIDxsb2NhdGlvbiBpbmNsdWRlTW9kZT0ic2xpY2VyIiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJ0cnVlIiBpbmNsdWRlU291cmNlPSJ0cnVlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPgotICAgICAgPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLmxpY2Vuc2UuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4wLjIudjIwMTgxMDE2LTIyMTAiLz4KLSAgICAgIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvY2JpL3VwZGF0ZXMvbGljZW5zZSIvPgotICAgIDwvbG9jYXRpb24+Ci0gIDwvbG9jYXRpb25zPgotPC90YXJnZXQ+CmRpZmYgLS1naXQgYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQudHBkIGIvZWNsaXBzZS10b29scy9tb2RlbC10cmFuc2Zvcm1hdGlvbi9yZWxlbmcvb3JnLmVjbGlwc2UuYXBwNG1jLnRyYW5zZm9ybWF0aW9uLnRhcmdldC9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0LnRwZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI5OWY0MC4uMDAwMDAwMAotLS0gYS9lY2xpcHNlLXRvb2xzL21vZGVsLXRyYW5zZm9ybWF0aW9uL3JlbGVuZy9vcmcuZWNsaXBzZS5hcHA0bWMudHJhbnNmb3JtYXRpb24udGFyZ2V0L29yZy5lY2xpcHNlLmFwcDRtYy50cmFuc2Zvcm1hdGlvbi50YXJnZXQudHBkCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotdGFyZ2V0ICJNb2RlbCBUcmFuc2Zvcm1hdGlvbiBUYXJnZXQiCi0KLXdpdGggc291cmNlIGFsbEVudmlyb25tZW50cwotCi1sb2NhdGlvbiAiaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3JlbGVhc2VzLzIwMTktMTIiIHsKLQlvcmcuZWNsaXBzZS5zZGsuaWRlCi0Jb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhjb3JlLmxpYi5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UuZW1mLnNkay5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UuZW1mLnRyYW5zYWN0aW9uLmZlYXR1cmUuZ3JvdXAKLQlvcmcuZWNsaXBzZS5lbWYudmFsaWRhdGlvbi5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UuZW1mLndvcmtzcGFjZS5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UueHRleHQucnVudGltZS5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UueHRleHQuc2RrLmZlYXR1cmUuZ3JvdXAKLQlvcmcuZWNsaXBzZS54dGV4dC54YmFzZS5mZWF0dXJlLmdyb3VwCi0Jb3JnLmVjbGlwc2UueHRleHQueGJhc2UubGliLmZlYXR1cmUuZ3JvdXAKLQlvcmcuZWNsaXBzZS54dGVuZC5zZGsuZmVhdHVyZS5ncm91cAotCW9yZy5lY2xpcHNlLnhwYW5kLnNkay5mZWF0dXJlLmdyb3VwCi0Jb3JnLmFwYWNoZS5jb21tb25zLmNsaQotCW9yZy5hcGFjaGUuY29tbW9ucy5sYW5nCi0Jb3JnLmFwYWNoZS5sb2c0agotCW9yZy5hcGFjaGUueGVyY2VzCi0Jb3JnLmFwYWNoZS54YWxhbgotCW9yZy5hcGFjaGUueG1sLnJlc29sdmVyCi0Jb3JnLmFwYWNoZS54bWwuc2VyaWFsaXplcgotCWphdmF4LnhtbAotCW9yZy5qZG9tCi0JY29tLmdvb2dsZS5ndWF2YQotCWNvbS5nb29nbGUuaW5qZWN0Ci19Ci0KLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvYXBwNG1jL3VwZGF0ZXNpdGVzL3JlbGVhc2VzLzAuOS44IiB7Ci0Jb3JnLmVjbGlwc2UuYXBwNG1jLnBsYXRmb3JtLnNkay5mZWF0dXJlLmdyb3VwCi19Ci0KLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3BoaW54L3VwZGF0ZXMvMC4xMS54IiB7Ci0Jb3JnLmVjbGlwc2Uuc3BoaW54LnNkay5mZWF0dXJlLmdyb3VwCi19Ci0KLWxvY2F0aW9uICJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvY2JpL3VwZGF0ZXMvbGljZW5zZSIgewotCW9yZy5lY2xpcHNlLmxpY2Vuc2UuZmVhdHVyZS5ncm91cAotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK