ZGlmZiAtLWdpdCBhL1JFQURNRS5tZCBiL1JFQURNRS5tZAppbmRleCBiNzY2YWVlLi5kZWMzMjYwIDEwMDY0NAotLS0gYS9SRUFETUUubWQKKysrIGIvUkVBRE1FLm1kCkBAIC0yMCw0ICsyMCw4IEBACiBgYGAKIAogIyMgTGljZW5zZQotqSBDb3B5cmlnaHQgSW50ZWwgQ29ycG9yYXRpb24uIExpY2Vuc2VkIHVuZGVyIExHUEx2Mywgc2VlIFtMSUNFTlNFXShodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvam5kbi1tb2NrL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpLgorQ29weXJpZ2h0IKkgMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uCisKK1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDMsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorCitUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgW0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZV0oaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2puZG4tdXRpbHMvYmxvYi9tYXN0ZXIvTElDRU5TRSkgZm9yIG1vcmUgZGV0YWlscy4KZGlmZiAtLWdpdCBhL25iLWNvbmZpZ3VyYXRpb24ueG1sIGIvbmItY29uZmlndXJhdGlvbi54bWwKaW5kZXggZjU3Y2E3ZS4uZTNlMGRkNyAxMDA2NDQKLS0tIGEvbmItY29uZmlndXJhdGlvbi54bWwKKysrIGIvbmItY29uZmlndXJhdGlvbi54bWwKQEAgLTEzLDcgKzEzLDcgQEAKIAkJVGhhdCB3YXkgbXVsdGlwbGUgcHJvamVjdHMgY2FuIHNoYXJlIHRoZSBzYW1lIHNldHRpbmdzICh1c2VmdWwgZm9yIGZvcm1hdHRpbmcgcnVsZXMgZm9yIGV4YW1wbGUpLgogCQlBbnkgdmFsdWUgZGVmaW5lZCBoZXJlIHdpbGwgb3ZlcnJpZGUgdGhlIHBvbS54bWwgZmlsZSB2YWx1ZSBidXQgaXMgb25seSBhcHBsaWNhYmxlIHRvIHRoZSBjdXJyZW50IHByb2plY3QuCiAJCS0tPgotICAgICAgICA8bmV0YmVhbnMuaGludC5saWNlbnNlPmludGVsLWxpY2Vuc2U8L25ldGJlYW5zLmhpbnQubGljZW5zZT4KKyAgICAgICAgPG5ldGJlYW5zLmhpbnQubGljZW5zZT5pbnRlbC1saWNlbnNlLWxncGw8L25ldGJlYW5zLmhpbnQubGljZW5zZT4KICAgICAgICAgPG9yZy1uZXRiZWFucy1tb2R1bGVzLWVkaXRvci1pbmRlbnQuQ29kZVN0eWxlLnVzZWRQcm9maWxlPnByb2plY3Q8L29yZy1uZXRiZWFucy1tb2R1bGVzLWVkaXRvci1pbmRlbnQuQ29kZVN0eWxlLnVzZWRQcm9maWxlPgogICAgICAgICA8b3JnLW5ldGJlYW5zLW1vZHVsZXMtZWRpdG9yLWluZGVudC5Db2RlU3R5bGUucHJvamVjdC5zcGFjZXMtcGVyLXRhYj4yPC9vcmctbmV0YmVhbnMtbW9kdWxlcy1lZGl0b3ItaW5kZW50LkNvZGVTdHlsZS5wcm9qZWN0LnNwYWNlcy1wZXItdGFiPgogICAgICAgICA8b3JnLW5ldGJlYW5zLW1vZHVsZXMtZWRpdG9yLWluZGVudC5Db2RlU3R5bGUucHJvamVjdC50YWItc2l6ZT4yPC9vcmctbmV0YmVhbnMtbW9kdWxlcy1lZGl0b3ItaW5kZW50LkNvZGVTdHlsZS5wcm9qZWN0LnRhYi1zaXplPgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9DbGllbnQuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvQ2xpZW50LmphdmEKaW5kZXggNWY1NTIzNi4uNDQ2ZWQ2MyAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9DbGllbnQuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL0NsaWVudC5qYXZhCkBAIC0xLDEyICsxLDE1IEBACiAvKgotICogRmlsZSBuYW1lOiBDbGllbnQuamF2YQotICogCi0gKiBQdXJwb3NlOiBQcm92aWRlIGEgY2xpZW50IHRvIHNpbXBsaWZ5IGluZm9ybWF0aW9uIHJldHJpZXZhbCBvdmVyIHRoZSBORE4KLSAqIG5ldHdvcmsuCi0gKiAKLSAqIMKpIENvcHlyaWdodCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIEludGVsIENvcnBvcmF0aW9uLCAyMjAwIE1pc3Npb24gQ29sbGVnZSBCb3VsZXZhcmQsCi0gKiBTYW50YSBDbGFyYSwgQ0EgOTUwNTItODExOSwgVVNBCisgKiBqbmRuLXV0aWxzCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqIHZlcnNpb24gMywgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgogICovCiBwYWNrYWdlIGNvbS5pbnRlbC5qbmRuLnV0aWxzOwogCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL0Z1dHVyZURhdGEuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvRnV0dXJlRGF0YS5qYXZhCmluZGV4IDVjODgxZWUuLjUyZWUyYzIgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvRnV0dXJlRGF0YS5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvRnV0dXJlRGF0YS5qYXZhCkBAIC0xLDExICsxLDE1IEBACiAvKgotICogRmlsZSBuYW1lOiBGdXR1cmVQYWNrZXQuamF2YQotICogCi0gKiBQdXJwb3NlOiBSZWZlcmVuY2UgdG8gYSBQYWNrZXQgdGhhdCBoYXMgeWV0IHRvIGJlIHJldHVybmVkIGZyb20gdGhlIG5ldHdvcmsuCi0gKiAKLSAqIMKpIENvcHlyaWdodCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIEludGVsIENvcnBvcmF0aW9uLCAyMjAwIE1pc3Npb24gQ29sbGVnZSBCb3VsZXZhcmQsCi0gKiBTYW50YSBDbGFyYSwgQ0EgOTUwNTItODExOSwgVVNBCisgKiBqbmRuLXV0aWxzCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqIHZlcnNpb24gMywgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgogICovCiBwYWNrYWdlIGNvbS5pbnRlbC5qbmRuLnV0aWxzOwogCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL0ludGVybmFsRmFjZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9JbnRlcm5hbEZhY2UuamF2YQppbmRleCAyOWY2NTJhLi4yODUwMzYzIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL0ludGVybmFsRmFjZS5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvSW50ZXJuYWxGYWNlLmphdmEKQEAgLTEsMTIgKzEsMTUgQEAKIC8qCi0gKiBGaWxlIG5hbWU6IEludGVybmFsRmFjZS5qYXZhCi0gKiAKLSAqIFB1cnBvc2U6IEhhbmRsZSBkYXRhIHRyYWZmaWMgd2l0aGluIGFuIGFwcGxpY2F0aW9uIHN0b3JpbmcgYWxsIHBhY2tldHMgaW4KLSAqIG1lbW9yeTsgdXNlZnVsIGZvciBzdGFuZGFyZGl6aW5nIG1ldGhvZHMgZm9yIGdldHRpbmcvcHV0dGluZyBkYXRhCi0gKiAKLSAqIMKpIENvcHlyaWdodCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIEludGVsIENvcnBvcmF0aW9uLCAyMjAwIE1pc3Npb24gQ29sbGVnZSBCb3VsZXZhcmQsCi0gKiBTYW50YSBDbGFyYSwgQ0EgOTUwNTItODExOSwgVVNBCisgKiBqbmRuLXV0aWxzCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqIHZlcnNpb24gMywgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgogICovCiBwYWNrYWdlIGNvbS5pbnRlbC5qbmRuLnV0aWxzOwogCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL09uU2VydmVJbnRlcmVzdC5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9PblNlcnZlSW50ZXJlc3QuamF2YQppbmRleCA4YmU0ZjZhLi45YzY3MTQxIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL09uU2VydmVJbnRlcmVzdC5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvT25TZXJ2ZUludGVyZXN0LmphdmEKQEAgLTEsMTEgKzEsMTUgQEAKIC8qCi0gKiBGaWxlIG5hbWU6IE9uU2VydmVJbnRlcmVzdC5qYXZhCi0gKiAKLSAqIFB1cnBvc2U6IEZ1bmN0aW9uYWwgaW50ZXJmYWNlIGZvciBzZXJ2aW5nIGRhdGEgZnJvbSBTZXJ2ZXIub24oKQotICogCi0gKiDCqSBDb3B5cmlnaHQgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBJbnRlbCBDb3Jwb3JhdGlvbiwgMjIwMCBNaXNzaW9uIENvbGxlZ2UgQm91bGV2YXJkLAotICogU2FudGEgQ2xhcmEsIENBIDk1MDUyLTgxMTksIFVTQQorICogam5kbi11dGlscworICogQ29weXJpZ2h0IChjKSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJzaW9uIDMsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCisgKiBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KICAqLwogcGFja2FnZSBjb20uaW50ZWwuam5kbi51dGlsczsKIApkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9TZWdtZW50ZWRDbGllbnQuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvU2VnbWVudGVkQ2xpZW50LmphdmEKaW5kZXggYWFhNWM1NS4uMDIzNDc0MCAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9TZWdtZW50ZWRDbGllbnQuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL1NlZ21lbnRlZENsaWVudC5qYXZhCkBAIC0xLDEyICsxLDE1IEBACiAvKgotICogRmlsZSBuYW1lOiBTZWdtZW50ZWRDbGllbnQuamF2YQotICogCi0gKiBQdXJwb3NlOiBQcm92aWRlIGEgY2xpZW50IHRvIHNpbXBsaWZ5IHJldHJpZXZpbmcgc2VnbWVudGVkIERhdGEgcGFja2V0cyBvdmVyCi0gKiB0aGUgTkROIG5ldHdvcmsuCi0gKiAKLSAqIMKpIENvcHlyaWdodCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIEludGVsIENvcnBvcmF0aW9uLCAyMjAwIE1pc3Npb24gQ29sbGVnZSBCb3VsZXZhcmQsCi0gKiBTYW50YSBDbGFyYSwgQ0EgOTUwNTItODExOSwgVVNBCisgKiBqbmRuLXV0aWxzCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqIHZlcnNpb24gMywgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgogICovCiBwYWNrYWdlIGNvbS5pbnRlbC5qbmRuLnV0aWxzOwogCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL1NlcnZlci5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9TZXJ2ZXIuamF2YQppbmRleCBkZWNkMDdhLi40MzdkNDgwIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL1NlcnZlci5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvU2VydmVyLmphdmEKQEAgLTEsMTIgKzEsMTUgQEAKIC8qCi0gKiBGaWxlIG5hbWU6IFNlcnZlci5qYXZhCi0gKiAKLSAqIFB1cnBvc2U6IFByb3ZpZGUgYSBzZXJ2ZXIgdG8gc2ltcGxpZnkgc2VydmluZyBkYXRhIG92ZXIgdGhlIE5ETgotICogbmV0d29yay4KLSAqIAotICogwqkgQ29weXJpZ2h0IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogSW50ZWwgQ29ycG9yYXRpb24sIDIyMDAgTWlzc2lvbiBDb2xsZWdlIEJvdWxldmFyZCwKLSAqIFNhbnRhIENsYXJhLCBDQSA5NTA1Mi04MTE5LCBVU0EKKyAqIGpuZG4tdXRpbHMKKyAqIENvcHlyaWdodCAoYykgMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICogdmVyc2lvbiAzLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorICogV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCiAgKi8KIHBhY2thZ2UgY29tLmludGVsLmpuZG4udXRpbHM7CiAKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvZXZlbnQvTkRORXZlbnQuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvZXZlbnQvTkRORXZlbnQuamF2YQppbmRleCBjMmY3ZjY3Li40M2Y4ZTdlIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL2V2ZW50L05ETkV2ZW50LmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9ldmVudC9ORE5FdmVudC5qYXZhCkBAIC0xLDExICsxLDE1IEBACiAvKgotICogRmlsZSBuYW1lOiBORE5FdmVudC5qYXZhCi0gKiAKLSAqIFB1cnBvc2U6IFNpZ25hbHMgYSBDbGllbnQgZXZlbnQgZm9yIG9ic2VydmVycyB0byBhY3Qgb24KLSAqIAotICogwqkgQ29weXJpZ2h0IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogSW50ZWwgQ29ycG9yYXRpb24sIDIyMDAgTWlzc2lvbiBDb2xsZWdlIEJvdWxldmFyZCwKLSAqIFNhbnRhIENsYXJhLCBDQSA5NTA1Mi04MTE5LCBVU0EKKyAqIGpuZG4tdXRpbHMKKyAqIENvcHlyaWdodCAoYykgMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICogdmVyc2lvbiAzLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorICogV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCiAgKi8KIHBhY2thZ2UgY29tLmludGVsLmpuZG4udXRpbHMuZXZlbnQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvZXZlbnQvTkROT2JzZXJ2YWJsZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9ldmVudC9ORE5PYnNlcnZhYmxlLmphdmEKaW5kZXggYTJjOWZkZC4uZGY2NGRmNiAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9ldmVudC9ORE5PYnNlcnZhYmxlLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9ldmVudC9ORE5PYnNlcnZhYmxlLmphdmEKQEAgLTEsMTEgKzEsMTUgQEAKIC8qCi0gKiBGaWxlIG5hbWU6IE5ETk9ic2VydmFibGUuamF2YQotICogCi0gKiBQdXJwb3NlOiAKLSAqIAotICogwqkgQ29weXJpZ2h0IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogSW50ZWwgQ29ycG9yYXRpb24sIDIyMDAgTWlzc2lvbiBDb2xsZWdlIEJvdWxldmFyZCwKLSAqIFNhbnRhIENsYXJhLCBDQSA5NTA1Mi04MTE5LCBVU0EKKyAqIGpuZG4tdXRpbHMKKyAqIENvcHlyaWdodCAoYykgMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICogdmVyc2lvbiAzLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorICogV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCiAgKi8KIHBhY2thZ2UgY29tLmludGVsLmpuZG4udXRpbHMuZXZlbnQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvZXZlbnQvTkROT2JzZXJ2ZXIuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvZXZlbnQvTkROT2JzZXJ2ZXIuamF2YQppbmRleCBhZTA4NTFmLi41YWQzZDhlIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL2V2ZW50L05ETk9ic2VydmVyLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9ldmVudC9ORE5PYnNlcnZlci5qYXZhCkBAIC0xLDExICsxLDE1IEBACiAvKgotICogRmlsZSBuYW1lOiBORE5PYnNlcnZlci5qYXZhCi0gKiAKLSAqIFB1cnBvc2U6IFRyYWNrIGFzeW5jaHJvbm91cyBldmVudHMgZnJvbSBDbGllbnQgYW5kIFNlcnZlcgotICogCi0gKiDCqSBDb3B5cmlnaHQgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBJbnRlbCBDb3Jwb3JhdGlvbiwgMjIwMCBNaXNzaW9uIENvbGxlZ2UgQm91bGV2YXJkLAotICogU2FudGEgQ2xhcmEsIENBIDk1MDUyLTgxMTksIFVTQQorICogam5kbi11dGlscworICogQ29weXJpZ2h0IChjKSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJzaW9uIDMsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCisgKiBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KICAqLwogcGFja2FnZSBjb20uaW50ZWwuam5kbi51dGlscy5ldmVudDsKIApkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9ldmVudC9PbkV2ZW50LmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL2V2ZW50L09uRXZlbnQuamF2YQppbmRleCAxMWIwYjg2Li4yNDM1MjFkIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL2V2ZW50L09uRXZlbnQuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL2V2ZW50L09uRXZlbnQuamF2YQpAQCAtMSwxMSArMSwxNSBAQAogLyoKLSAqIEZpbGUgbmFtZTogT25FdmVudC5qYXZhCi0gKiAKLSAqIFB1cnBvc2U6IEludGVyZmFjZSBmb3IgcmVnaXN0ZXJpbmcgZ2VuZXJpYyBldmVudCBoYW5kbGVycwotICogCi0gKiDCqSBDb3B5cmlnaHQgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBJbnRlbCBDb3Jwb3JhdGlvbiwgMjIwMCBNaXNzaW9uIENvbGxlZ2UgQm91bGV2YXJkLAotICogU2FudGEgQ2xhcmEsIENBIDk1MDUyLTgxMTksIFVTQQorICogam5kbi11dGlscworICogQ29weXJpZ2h0IChjKSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJzaW9uIDMsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCisgKiBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KICAqLwogcGFja2FnZSBjb20uaW50ZWwuam5kbi51dGlscy5ldmVudDsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9DbGllbnRUZXN0LmphdmEgYi9zcmMvdGVzdC9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL0NsaWVudFRlc3QuamF2YQppbmRleCA0YjZkOWU3Li5kNGNhOTUxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL0NsaWVudFRlc3QuamF2YQorKysgYi9zcmMvdGVzdC9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL0NsaWVudFRlc3QuamF2YQpAQCAtMSwxMSArMSwxNSBAQAogLyoKLSAqIEZpbGUgbmFtZTogQ2xpZW50VGVzdC5qYXZhCi0gKiAKLSAqIFB1cnBvc2U6IFRlc3QgQ2xpZW50LmphdmEKLSAqIAotICogwqkgQ29weXJpZ2h0IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogSW50ZWwgQ29ycG9yYXRpb24sIDIyMDAgTWlzc2lvbiBDb2xsZWdlIEJvdWxldmFyZCwKLSAqIFNhbnRhIENsYXJhLCBDQSA5NTA1Mi04MTE5LCBVU0EKKyAqIGpuZG4tdXRpbHMKKyAqIENvcHlyaWdodCAoYykgMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICogdmVyc2lvbiAzLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorICogV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCiAgKi8KIHBhY2thZ2UgY29tLmludGVsLmpuZG4udXRpbHM7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvY29tL2ludGVsL2puZG4vdXRpbHMvU2VnbWVudGVkQ2xpZW50VGVzdC5qYXZhIGIvc3JjL3Rlc3QvamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9TZWdtZW50ZWRDbGllbnRUZXN0LmphdmEKaW5kZXggMmRiOTA3MS4uZGQ3NWYzZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9TZWdtZW50ZWRDbGllbnRUZXN0LmphdmEKKysrIGIvc3JjL3Rlc3QvamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9TZWdtZW50ZWRDbGllbnRUZXN0LmphdmEKQEAgLTEsMTEgKzEsMTUgQEAKIC8qCi0gKiBGaWxlIG5hbWU6IFNlZ21lbnRlZENsaWVudFRlc3QuamF2YQotICogCi0gKiBQdXJwb3NlOiBUZXN0IFNlZ21lbnRlZENsaWVudCBmdW5jdGlvbmFsaXR5LgotICogCi0gKiDCqSBDb3B5cmlnaHQgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBJbnRlbCBDb3Jwb3JhdGlvbiwgMjIwMCBNaXNzaW9uIENvbGxlZ2UgQm91bGV2YXJkLAotICogU2FudGEgQ2xhcmEsIENBIDk1MDUyLTgxMTksIFVTQQorICogam5kbi11dGlscworICogQ29weXJpZ2h0IChjKSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJzaW9uIDMsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCisgKiBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KICAqLwogcGFja2FnZSBjb20uaW50ZWwuam5kbi51dGlsczsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9jb20vaW50ZWwvam5kbi91dGlscy9TZXJ2ZXJUZXN0LmphdmEgYi9zcmMvdGVzdC9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL1NlcnZlclRlc3QuamF2YQppbmRleCA1ZTJiNzI0Li4yNDg4ZjBiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL1NlcnZlclRlc3QuamF2YQorKysgYi9zcmMvdGVzdC9qYXZhL2NvbS9pbnRlbC9qbmRuL3V0aWxzL1NlcnZlclRlc3QuamF2YQpAQCAtMSwxMSArMSwxNSBAQAogLyoKLSAqIEZpbGUgbmFtZTogU2VydmVyVGVzdC5qYXZhCi0gKiAKLSAqIFB1cnBvc2U6IFRlc3QgU2VydmVyLmphdmEgCi0gKiAKLSAqIMKpIENvcHlyaWdodCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIEludGVsIENvcnBvcmF0aW9uLCAyMjAwIE1pc3Npb24gQ29sbGVnZSBCb3VsZXZhcmQsCi0gKiBTYW50YSBDbGFyYSwgQ0EgOTUwNTItODExOSwgVVNBCisgKiBqbmRuLXV0aWxzCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqIHZlcnNpb24gMywgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRhaWxzLgogICovCiBwYWNrYWdlIGNvbS5pbnRlbC5qbmRuLnV0aWxzOwogCg==