REVMVEEKU1ZOAAAANAE0tDxodG1sPgo8Ym9keT4KPGgyPkhlbGxvIFdvcmxkITwvaDI+CjwvYm9keT4KPC9odG1sPgpFTkRSRVAKREVMVEEKU1ZOAAAAgVcDgVeAgVc8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMKICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iCiAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIiA+Cgo8d2ViLWFwcD4KICA8ZGlzcGxheS1uYW1lPkFyY2hldHlwZSBDcmVhdGVkIFdlYiBBcHBsaWNhdGlvbjwvZGlzcGxheS1uYW1lPgo8L3dlYi1hcHA+CkVORFJFUApERUxUQQpTVk4AAACHPQOHPYCHPTxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCiAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CiAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgoKICA8cGFyZW50PgogICAgPGdyb3VwSWQ+Y29tLmV4YW1wbGUuZmxhdDwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPmZsYXQtcGFyZW50PC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS4wLVNOQVBTSE9UPC92ZXJzaW9uPgogIDwvcGFyZW50PgoKICA8YXJ0aWZhY3RJZD5mbGF0LXdlYmFwcDwvYXJ0aWZhY3RJZD4KICA8cGFja2FnaW5nPndhcjwvcGFja2FnaW5nPgogIDxuYW1lPmZsYXQtd2ViYXBwIE1hdmVuIFdlYmFwcDwvbmFtZT4KICA8dXJsPmh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnPC91cmw+CgogIDxkZXBlbmRlbmNpZXM+CiAgICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+Y29tLmV4YW1wbGUuZmxhdDwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+ZmxhdC1jb3JlPC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj4zLjguMTwvdmVyc2lvbj4KICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgogICAgPC9kZXBlbmRlbmN5PgogIDwvZGVwZW5kZW5jaWVzPgogIDxidWlsZD4KICAgIDxmaW5hbE5hbWU+ZmxhdC13ZWJhcHA8L2ZpbmFsTmFtZT4KICA8L2J1aWxkPgo8L3Byb2plY3Q+CkVORFJFUApERUxUQQpTVk4AAACFBAOFBICFBHBhY2thZ2UgY29tLmV4YW1wbGUuZmxhdDsKCmltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdDsKaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0U3VpdGU7CgovKioKICogVW5pdCB0ZXN0IGZvciBzaW1wbGUgQXBwLgogKi8KcHVibGljIGNsYXNzIEFwcFRlc3QgCiAgICBleHRlbmRzIFRlc3RDYXNlCnsKICAgIC8qKgogICAgICogQ3JlYXRlIHRoZSB0ZXN0IGNhc2UKICAgICAqCiAgICAgKiBAcGFyYW0gdGVzdE5hbWUgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCiAgICAgKi8KICAgIHB1YmxpYyBBcHBUZXN0KCBTdHJpbmcgdGVzdE5hbWUgKQogICAgewogICAgICAgIHN1cGVyKCB0ZXN0TmFtZSApOwogICAgfQoKICAgIC8qKgogICAgICogQHJldHVybiB0aGUgc3VpdGUgb2YgdGVzdHMgYmVpbmcgdGVzdGVkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgVGVzdCBzdWl0ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBUZXN0U3VpdGUoIEFwcFRlc3QuY2xhc3MgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJpZ291cm91cyBUZXN0IDotKQogICAgICovCiAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwKCkKICAgIHsKICAgICAgICBhc3NlcnRUcnVlKCB0cnVlICk7CiAgICB9Cn0KRU5EUkVQCkRFTFRBClNWTgAAAIEzA4EzgIEzcGFja2FnZSBjb20uZXhhbXBsZS5mbGF0OwoKLyoqCiAqIEhlbGxvIHdvcmxkIQogKgogKi8KcHVibGljIGNsYXNzIEFwcCAKewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oIFN0cmluZ1tdIGFyZ3MgKQogICAgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkhlbGxvIFdvcmxkISIgKTsKICAgIH0KfQpFTkRSRVAKREVMVEEKU1ZOAAAAhU4DhU6AhU48cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgogIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgogIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KCiAgPHBhcmVudD4KICAgIDxncm91cElkPmNvbS5leGFtcGxlLmZsYXQ8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5mbGF0LXBhcmVudDwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPjEuMC1TTkFQU0hPVDwvdmVyc2lvbj4KICA8L3BhcmVudD4KCiAgPGFydGlmYWN0SWQ+ZmxhdC1jb3JlPC9hcnRpZmFjdElkPgogIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+CiAgPG5hbWU+ZmxhdC1jb3JlPC9uYW1lPgogIDx1cmw+aHR0cDovL21hdmVuLmFwYWNoZS5vcmc8L3VybD4KCiAgPGRlcGVuZGVuY2llcz4KICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjMuOC4xPC92ZXJzaW9uPgogICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CiAgICA8L2RlcGVuZGVuY3k+CiAgPC9kZXBlbmRlbmNpZXM+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAIV3A4V3gIV3PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CiAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgoKICA8Z3JvdXBJZD5jb20uZXhhbXBsZS5mbGF0PC9ncm91cElkPgogIDxhcnRpZmFjdElkPmZsYXQtcGFyZW50PC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPjEuMC1TTkFQU0hPVDwvdmVyc2lvbj4KICA8cGFja2FnaW5nPnBvbTwvcGFja2FnaW5nPgogIDxuYW1lPkZsYXQgRXhhbXBsZTwvbmFtZT4KCiAgPHNjbT4KICAgIDxjb25uZWN0aW9uPnNjbTpzdm46JHtzdm4uYmFzZS51cmx9L3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LXBhcmVudDwvY29ubmVjdGlvbj4KICAgIDxkZXZlbG9wZXJDb25uZWN0aW9uPnNjbTpzdm46JHtzdm4uYmFzZS51cmx9L3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LXBhcmVudDwvZGV2ZWxvcGVyQ29ubmVjdGlvbj4KICA8L3NjbT4KCiAgPG1vZHVsZXM+CiAgICA8bW9kdWxlPi4uL2ZsYXQtd2ViYXBwPC9tb2R1bGU+CiAgICA8bW9kdWxlPi4uL2ZsYXQtY29yZTwvbW9kdWxlPgogIDwvbW9kdWxlcz4KCjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAHoCeoB6PHByb2plY3QgbmFtZT0iYW50LXByb2plY3QiIGRlZmF1bHQ9ImJ1aWxkIj4KICA8dGFyZ2V0IG5hbWU9ImJ1aWxkIj4KICAgIDxlY2hvPkhlbGxvLCBBbnQhPC9lY2hvPgogIDwvdGFyZ2V0Pgo8L3Byb2plY3Q+CgpFTkRSRVAKREVMVEEKU1ZOAAAAhREDhRGAhRFwYWNrYWdlIG9yZy5hcGFjaGUuY29udGludXVtLmV4YW1wbGVzOwoKaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0OwppbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOwppbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RTdWl0ZTsKCi8qKgogKiBVbml0IHRlc3QgZm9yIHNpbXBsZSBBcHAuCiAqLwpwdWJsaWMgY2xhc3MgQXBwVGVzdCAKICAgIGV4dGVuZHMgVGVzdENhc2UKewogICAgLyoqCiAgICAgKiBDcmVhdGUgdGhlIHRlc3QgY2FzZQogICAgICoKICAgICAqIEBwYXJhbSB0ZXN0TmFtZSBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UKICAgICAqLwogICAgcHVibGljIEFwcFRlc3QoIFN0cmluZyB0ZXN0TmFtZSApCiAgICB7CiAgICAgICAgc3VwZXIoIHRlc3ROYW1lICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIHRoZSBzdWl0ZSBvZiB0ZXN0cyBiZWluZyB0ZXN0ZWQKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBUZXN0IHN1aXRlKCkKICAgIHsKICAgICAgICByZXR1cm4gbmV3IFRlc3RTdWl0ZSggQXBwVGVzdC5jbGFzcyApOwogICAgfQoKICAgIC8qKgogICAgICogUmlnb3Vyb3VzIFRlc3QgOi0pCiAgICAgKi8KICAgIHB1YmxpYyB2b2lkIHRlc3RBcHAoKQogICAgewogICAgICAgIGFzc2VydFRydWUoIHRydWUgKTsKICAgIH0KfQpFTkRSRVAKREVMVEEKU1ZOAAAAgUADgUCAgUBwYWNrYWdlIG9yZy5hcGFjaGUuY29udGludXVtLmV4YW1wbGVzOwoKLyoqCiAqIEhlbGxvIHdvcmxkIQogKgogKi8KcHVibGljIGNsYXNzIEFwcCAKewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oIFN0cmluZ1tdIGFyZ3MgKQogICAgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkhlbGxvIFdvcmxkISIgKTsKICAgIH0KfQpFTkRSRVAKREVMVEEKU1ZOAAAAhnMDhnOAhnM8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgogIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgogIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbnRpbnV1bS5leGFtcGxlcy5zaW1wbGU8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+c2ltcGxlLWV4YW1wbGU8L2FydGlmYWN0SWQ+CiAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KICA8dmVyc2lvbj4xLjAtU05BUFNIT1Q8L3ZlcnNpb24+CiAgPG5hbWU+Q29udGludXVtIFNpbXBsZSBFeGFtcGxlIFByb2plY3Q8L25hbWU+CiAgPHVybD5odHRwOi8vY29udGludXVtLmFwYWNoZS5vcmc8L3VybD4KCiAgPHNjbT4KICAgIDxjb25uZWN0aW9uPnNjbTpzdm46JHtzdm4uYmFzZS51cmx9L3RydW5rL3NpbXBsZS1leGFtcGxlPC9jb25uZWN0aW9uPgogICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY206c3ZuOiR7c3ZuLmJhc2UudXJsfS90cnVuay9zaW1wbGUtZXhhbXBsZTwvZGV2ZWxvcGVyQ29ubmVjdGlvbj4KICA8L3NjbT4KCiAgPGRlcGVuZGVuY2llcz4KICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjMuOC4yPC92ZXJzaW9uPgogICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CiAgICA8L2RlcGVuZGVuY3k+CiAgPC9kZXBlbmRlbmNpZXM+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAIgdA4gdgIgdPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN1aXRlIFNZU1RFTSAiaHR0cDovL3Rlc3RuZy5vcmcvdGVzdG5nLTEuMC5kdGQiPgo8IS0tCkxpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCmRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCnJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQoiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCndpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCnNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQpLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwp1bmRlciB0aGUgTGljZW5zZS4KLS0+Cgo8c3VpdGUgbmFtZT0iTWFlc3Ryb1Byb2plY3RTZXJ2ZXJUZXN0IiB2ZXJib3NlPSIxIj4KCTx0ZXN0IG5hbWU9IkJhc2ljVGVzdCIgZW5hYmxlZD0idHJ1ZSI+CgoJCTxwYWNrYWdlcz4KCQkJPHBhY2thZ2UgbmFtZT0ib3JnLmFwYWNoZS5jb250aW51dW0uZXhhbXBsZXMiIC8+CgkJPC9wYWNrYWdlcz4KCTwvdGVzdD4KPC9zdWl0ZT4KRU5EUkVQCkRFTFRBClNWTgAAAIJAA4JAgIJAcGFja2FnZSBvcmcuYXBhY2hlLmNvbnRpbnV1bS5leGFtcGxlczsKCmltcG9ydCBvcmcudGVzdG5nLmFubm90YXRpb25zLlRlc3Q7CgpwdWJsaWMgY2xhc3MgQmFzaWNUaHJlYWRUZXN0IHsKCQoJQFRlc3QKCXB1YmxpYyB2b2lkIHRlc3RUaHJlYWQoKSB7CgkgICAgdHJ5IHsKCSAgICAgICAgbG9uZyBudW1NaWxsaXNlY29uZHNUb1NsZWVwID0gNjAwMDA7IC8vIDEgKiA2MCBzZWNvbmRzCgkgICAgICAgIFRocmVhZC5zbGVlcChudW1NaWxsaXNlY29uZHNUb1NsZWVwKTsKCSAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CgkgICAgfQoJfQoKfQpFTkRSRVAKREVMVEEKU1ZOAAAAlHYDlHaAlHY8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CiAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5jb250aW51dW08L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+Y29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YTwvYXJ0aWZhY3RJZD4KICA8cGFja2FnaW5nPnBvbTwvcGFja2FnaW5nPgogIDx2ZXJzaW9uPjEuMC1TTkFQU0hPVDwvdmVyc2lvbj4KICA8bmFtZT5Db250aW51dW1CdWlsZFF1ZXVlVGVzdERhdGE8L25hbWU+CiAgPGRlc2NyaXB0aW9uPlByb2plY3QgZm9yIHRlc3RpbmcgY29udGludXVtIGJ1aWxkIHF1ZXVlPC9kZXNjcmlwdGlvbj4gIAogIDxkZXBlbmRlbmNpZXM+CiAgICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+b3JnLnRlc3RuZzwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+dGVzdG5nPC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj41Ljg8L3ZlcnNpb24+CiAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICAgPGNsYXNzaWZpZXI+amRrMTU8L2NsYXNzaWZpZXI+CiAgICA8L2RlcGVuZGVuY3k+CiAgPC9kZXBlbmRlbmNpZXM+CiAgCiAgPHNjbT4KICAgIDxjb25uZWN0aW9uPnNjbTpzdm46JHtzdm4uYmFzZS51cmx9L3RydW5rL2NvbnRpbnV1bS1idWlsZC1xdWV1ZS10ZXN0LWRhdGE8L2Nvbm5lY3Rpb24+CiAgICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY206c3ZuOiR7c3ZuLmJhc2UudXJsfS90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhPC9kZXZlbG9wZXJDb25uZWN0aW9uPgogICAgPHVybD4ke3N2bi5iYXNlLnVybH0vdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YTwvdXJsPgogIDwvc2NtPgoKICA8YnVpbGQ+CiAgICA8cGx1Z2lucz4gICAJCiAgICAgICAgPHBsdWdpbj4KICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1jb21waWxlci1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICAgICAgICAgIDx2ZXJzaW9uPjIuMC4yPC92ZXJzaW9uPgogICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICAgICAgICAgPHNvdXJjZT4xLjU8L3NvdXJjZT4KICAgICAgICAgICAgICAgPHRhcmdldD4xLjU8L3RhcmdldD4KICAgICAgICAgICAgICAgPGVuY29kaW5nPlVURi04PC9lbmNvZGluZz4KICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPiAgICAgIAoJCQk8ZXhlY3V0aW9ucz4KCQkJIDxleGVjdXRpb24+CiAgICAgICAgICAgIDxnb2Fscz4KICAgICAgICAgICAgICA8Z29hbD50ZXN0Q29tcGlsZTwvZ29hbD4KICAgICAgICAgICAgPC9nb2Fscz4KICAgICAgICAgICAgPC9leGVjdXRpb24+CgkJCTwvZXhlY3V0aW9ucz4KCQk8L3BsdWdpbj4KICAgICAgIDxwbHVnaW4+CiAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgICAgICA8ZXhlY3V0aW9ucz4KICAgICAgICAgIDxleGVjdXRpb24+CiAgICAgICAgICAgIDxnb2Fscz4KICAgICAgICAgICAgICA8Z29hbD50ZXN0UmVzb3VyY2VzPC9nb2FsPgogICAgICAgICAgICA8L2dvYWxzPgogICAgICAgICAgPC9leGVjdXRpb24+CiAgICAgICAgPC9leGVjdXRpb25zPgoJCTwvcGx1Z2luPgoJIDxwbHVnaW4+CiAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgogICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICAgIDxzdWl0ZVhtbEZpbGVzPgogICAgICAgICAgICA8c3VpdGVYbWxGaWxlPnNyYy90ZXN0L2phdmEvY29uZmlnL3Rlc3RuZy54bWw8L3N1aXRlWG1sRmlsZT4KICAgICAgICAgIDwvc3VpdGVYbWxGaWxlcz4KICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CiAgICAgICAgPGV4ZWN1dGlvbnM+CiAgICAgICAgICA8ZXhlY3V0aW9uPgogICAgICAgICAgICA8aWQ+aW50ZWdyYXRpb24tdGVzdHM8L2lkPgogICAgICAgICAgICA8cGhhc2U+aW50ZWdyYXRpb24tdGVzdDwvcGhhc2U+CiAgICAgICAgICAgIDxnb2Fscz4KICAgICAgICAgICAgICA8Z29hbD50ZXN0PC9nb2FsPgogICAgICAgICAgICA8L2dvYWxzPgogICAgICAgICAgPC9leGVjdXRpb24+CiAgICAgICAgPC9leGVjdXRpb25zPgogICAgICAgPC9wbHVnaW4+ICAgCiAgICAgPC9wbHVnaW5zPgogICA8L2J1aWxkPgoJICAKICAgICAgCiAgIAogICA8ZGV2ZWxvcGVycz4KICAgICAgPGRldmVsb3Blcj4KICAgICAgICA8aWQ+YmxhZ288L2lkPgogICAgICAgIDxuYW1lPkJlcm5hcmQgTGFnbzwvbmFtZT4KICAgICAgICA8cm9sZXM+CiAgICAgICAgICA8cm9sZT5RQSBFbmdpbmVlcjwvcm9sZT4KICAgICAgICA8L3JvbGVzPgogICAgICAgIDx0aW1lem9uZT4rODwvdGltZXpvbmU+CiAgICAgIDwvZGV2ZWxvcGVyPgogICA8L2RldmVsb3BlcnM+IAo8L3Byb2plY3Q+CkVORFJFUApERUxUQQpTVk4AAACOUgOOUoCOUjwhLS0KICB+IExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKICB+IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogIH4gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KICB+IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKICB+IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICB+ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKICB+IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICB+CiAgfiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIH4KICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKICB+IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgfiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICB+IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQogIH4gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogIH4gdW5kZXIgdGhlIExpY2Vuc2UuCiAgLS0+Cgo8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CiAgPGdyb3VwSWQ+bWF2ZW4udHdvLm5vdGlmaWVycy5wcm9qZWN0PC9ncm91cElkPgogIDxhcnRpZmFjdElkPm1hdmVuLXR3by1ub3RpZmllcnMtcHJvamVjdDwvYXJ0aWZhY3RJZD4KICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgogIDxuYW1lPk1hdmVuIFR3byBOb3RpZmllcnMgUHJvamVjdDwvbmFtZT4KICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgPHNjbT4KICAgIDxjb25uZWN0aW9uPnNjbTpzdm46aHR0cDovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb250aW51dW0vdHJ1bmsvPC9jb25uZWN0aW9uPgogICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb250aW51dW0vdHJ1bmsvPC9kZXZlbG9wZXJDb25uZWN0aW9uPgogICAgPHVybD5odHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld2N2cy5jZ2kvbWF2ZW4vY29udGludXVtL3RydW5rLzwvdXJsPgogIDwvc2NtPgogIDxjaU1hbmFnZW1lbnQ+CiAgICA8bm90aWZpZXJzPgogICAgICA8bm90aWZpZXI+CiAgICAgICAgPHR5cGU+bWFpbDwvdHlwZT4KICAgICAgICA8c2VuZE9uRXJyb3I+dHJ1ZTwvc2VuZE9uRXJyb3I+CiAgICAgICAgPHNlbmRPbkZhaWx1cmU+dHJ1ZTwvc2VuZE9uRmFpbHVyZT4KICAgICAgICA8c2VuZE9uU3VjY2Vzcz50cnVlPC9zZW5kT25TdWNjZXNzPgogICAgICAgIDxzZW5kT25XYXJuaW5nPmZhbHNlPC9zZW5kT25XYXJuaW5nPgogICAgICA8L25vdGlmaWVyPgogICAgPC9ub3RpZmllcnM+CiAgPC9jaU1hbmFnZW1lbnQ+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAIs1A4s1gIs1PCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogIH4gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQogIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgfgogIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICB+ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgogIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KICA8Z3JvdXBJZD5tYXZlbi50d28ucHJvamVjdDwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5zYW1wbGUtbWF2ZW4tdHdvLXByb2plY3Q8L2FydGlmYWN0SWQ+CiAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KICA8bmFtZT5NYXZlbiBUd28gUHJvamVjdDwvbmFtZT4KICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgPHNjbT4gICAgCiAgICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY206c3ZuOmh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbnRpbnV1bS90cnVuay88L2RldmVsb3BlckNvbm5lY3Rpb24+CiAgICA8dXJsPmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3Y3ZzLmNnaS9tYXZlbi9jb250aW51dW0vdHJ1bmsvPC91cmw+CiAgPC9zY20+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAIpxA4pxgIpxPCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogIH4gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQogIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgfgogIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICB+ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgogIDxwYXJlbnQ+CiAgICA8Z3JvdXBJZD5tYXZlbi50d28ubXVsdGkubW9kdWxlLnByb2plY3Q8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5tYXZlbi10d28tbXVsdGktbW9kdWxlLXByb2plY3Q8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgPC9wYXJlbnQ+CiAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgogIDxhcnRpZmFjdElkPm1hdmVuLXR3by1tdWx0aS1tb2R1bGUtcHJvamVjdC1tb2R1bGUxPC9hcnRpZmFjdElkPgogIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+CiAgPG5hbWU+TWF2ZW4gVHdvIE11bHRpLU1vZHVsZSBQcm9qZWN0IE1vZHVsZSAxPC9uYW1lPgo8L3Byb2plY3Q+CkVORFJFUApERUxUQQpTVk4AAACKcQOKcYCKcTwhLS0KICB+IExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKICB+IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogIH4gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KICB+IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKICB+IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICB+ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKICB+IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICB+CiAgfiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIH4KICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKICB+IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgfiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICB+IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQogIH4gc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogIH4gdW5kZXIgdGhlIExpY2Vuc2UuCiAgLS0+Cgo8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KICA8cGFyZW50PgogICAgPGdyb3VwSWQ+bWF2ZW4udHdvLm11bHRpLm1vZHVsZS5wcm9qZWN0PC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+bWF2ZW4tdHdvLW11bHRpLW1vZHVsZS1wcm9qZWN0PC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgogIDwvcGFyZW50PgogIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KICA8YXJ0aWZhY3RJZD5tYXZlbi10d28tbXVsdGktbW9kdWxlLXByb2plY3QtbW9kdWxlMjwvYXJ0aWZhY3RJZD4KICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgogIDxuYW1lPk1hdmVuIFR3byBNdWx0aS1Nb2R1bGUgUHJvamVjdCBNb2R1bGUgMjwvbmFtZT4KPC9wcm9qZWN0PgpFTkRSRVAKREVMVEEKU1ZOAAAAjT4DjT6AjT48IS0tCiAgfiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCiAgfiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKICB+IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgfiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCiAgfiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCiAgfiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgfiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAgfgogIH4gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICB+CiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCiAgfiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgogIH4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgfiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKICB+IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICB+IHVuZGVyIHRoZSBMaWNlbnNlLgogIC0tPgoKPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CiAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgogIDxncm91cElkPm1hdmVuLnR3by5tdWx0aS5tb2R1bGUucHJvamVjdDwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5tYXZlbi10d28tbXVsdGktbW9kdWxlLXByb2plY3Q8L2FydGlmYWN0SWQ+CiAgPHBhY2thZ2luZz5wb208L3BhY2thZ2luZz4KICA8bmFtZT5NYXZlbiBUd28gTXVsdGktTW9kdWxlIFByb2plY3Q8L25hbWU+CiAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgogIDxzY20+CiAgICA8Y29ubmVjdGlvbj5zY206c3ZuOmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vY29udGludXVtL3RydW5rLzwvY29ubmVjdGlvbj4KICAgIDxkZXZlbG9wZXJDb25uZWN0aW9uPnNjbTpzdm46aHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vY29udGludXVtL3RydW5rLzwvZGV2ZWxvcGVyQ29ubmVjdGlvbj4KICAgIDx1cmw+aHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXdjdnMuY2dpL21hdmVuL2NvbnRpbnV1bS90cnVuay88L3VybD4KICA8L3NjbT4KICA8bW9kdWxlcz4KICAgIDxtb2R1bGU+bWF2ZW4tdHdvLW11bHRpLW1vZHVsZS1wcm9qZWN0LW1vZHVsZTE8L21vZHVsZT4KICAgIDxtb2R1bGU+bWF2ZW4tdHdvLW11bHRpLW1vZHVsZS1wcm9qZWN0LW1vZHVsZTI8L21vZHVsZT4KICA8L21vZHVsZXM+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAI1IA41IgI1IPCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogIH4gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQogIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgfgogIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICB+ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgogIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KICA8Z3JvdXBJZD5tYXZlbi50d28ucHJvamVjdDwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5zYW1wbGUtbWF2ZW4tdHdvLXByb2plY3Q8L2FydGlmYWN0SWQ+CiAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KICA8bmFtZT5NYXZlbiBUd28gUHJvamVjdDwvbmFtZT4KICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgPHNjbT4KICAgIDxjb25uZWN0aW9uPnNjbTpzdm46aHR0cDovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb250aW51dW0vdHJ1bmsvPC9jb25uZWN0aW9uPgogICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb250aW51dW0vdHJ1bmsvPC9kZXZlbG9wZXJDb25uZWN0aW9uPgogICAgPHVybD5odHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld2N2cy5jZ2kvbWF2ZW4vY29udGludXVtL3RydW5rLzwvdXJsPgogIDwvc2NtPgogIDxtb2R1bGVzPgogICAgPG1vZHVsZT5zYW1wbGUtbWF2ZW4tdHdvLXByb2plY3QtbW9kdWxlMTwvbW9kdWxlPgogICAgPG1vZHVsZT5zYW1wbGUtbWF2ZW4tdHdvLXByb2plY3QtbW9kdWxlMjwvbW9kdWxlPgogICAgPG1vZHVsZT5zYW1wbGUtbWF2ZW4tdHdvLXByb2plY3QtbW9kdWxlMzwvbW9kdWxlPgogIDwvbW9kdWxlcz4KPC9wcm9qZWN0PgpFTkRSRVAKREVMVEEKU1ZOAAAAjiADjiCAjiA8IS0tCiAgfiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCiAgfiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKICB+IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgfiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCiAgfiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCiAgfiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgfiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAgfgogIH4gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICB+CiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCiAgfiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgogIH4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgfiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKICB+IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICB+IHVuZGVyIHRoZSBMaWNlbnNlLgogIC0tPgoKPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CiAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgogIDxncm91cElkPm1hdmVuLnR3by5wcm9qZWN0PC9ncm91cElkPgogIDxhcnRpZmFjdElkPnNhbXBsZS1tYXZlbi10d28tcHJvamVjdDwvYXJ0aWZhY3RJZD4KICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgogIDxuYW1lPk1hdmVuIFR3byBQcm9qZWN0PC9uYW1lPgogIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KICA8c2NtPgogICAgPGNvbm5lY3Rpb24+c2NtOnN2bjpodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbnRpbnV1bS90cnVuay88L2Nvbm5lY3Rpb24+CiAgICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY206c3ZuOmh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbnRpbnV1bS90cnVuay88L2RldmVsb3BlckNvbm5lY3Rpb24+CiAgICA8dXJsPmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3Y3ZzLmNnaS9tYXZlbi9jb250aW51dW0vdHJ1bmsvPC91cmw+CiAgPC9zY20+CiAgPGNpTWFuYWdlbWVudD4KICAgIDxub3RpZmllcnM+CiAgICAgIDxub3RpZmllcj4KICAgICAgICA8c2VuZE9uRXJyb3I+dHJ1ZTwvc2VuZE9uRXJyb3I+CiAgICAgICAgPHNlbmRPbkZhaWx1cmU+dHJ1ZTwvc2VuZE9uRmFpbHVyZT4KICAgICAgICA8c2VuZE9uU3VjY2Vzcz50cnVlPC9zZW5kT25TdWNjZXNzPgogICAgICAgIDxzZW5kT25XYXJuaW5nPnRydWU8L3NlbmRPbldhcm5pbmc+CiAgICAgIDwvbm90aWZpZXI+CiAgICA8L25vdGlmaWVycz4KICA8L2NpTWFuYWdlbWVudD4KPC9wcm9qZWN0PgpFTkRSRVAKREVMVEEKU1ZOAAAAjA0DjA2AjA08IS0tCiAgfiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCiAgfiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKICB+IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgfiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCiAgfiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCiAgfiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgfiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAgfgogIH4gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICB+CiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCiAgfiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgogIH4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgfiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKICB+IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICB+IHVuZGVyIHRoZSBMaWNlbnNlLgogIC0tPgoKPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CiAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgogIDxncm91cElkPm1hdmVuLnR3by5wcm9qZWN0PC9ncm91cElkPgogIDxhcnRpZmFjdElkPnNhbXBsZS1tYXZlbi10d28tcHJvamVjdDwvYXJ0aWZhY3RJZD4KICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgogIDxuYW1lPk1hdmVuIFR3byBQcm9qZWN0PC9uYW1lPgogIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KICA8c2NtPgogICAgPGNvbm5lY3Rpb24+c2NtOnN2bjpodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbnRpbnV1bS90cnVuay88L2Nvbm5lY3Rpb24+CiAgICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY206c3ZuOmh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbnRpbnV1bS90cnVuay88L2RldmVsb3BlckNvbm5lY3Rpb24+CiAgICA8dXJsPmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3Y3ZzLmNnaS9tYXZlbi9jb250aW51dW0vdHJ1bmsvPC91cmw+CiAgPC9zY20+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAIxXA4xXgIxXPCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogIH4gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQogIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgfgogIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICB+ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgogIDxwYXJlbnQ+CiAgICA8Z3JvdXBJZD5tYXZlbi50d28ucHJvamVjdDwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPm1hdmVuLXR3by1wcm9qZWN0PC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgogIDwvcGFyZW50PgogIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KICA8YXJ0aWZhY3RJZD5zYW1wbGUtbWF2ZW4tdHdvLXByb2plY3Q8L2FydGlmYWN0SWQ+CiAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KICA8bmFtZT5NYXZlbiBUd28gUHJvamVjdDwvbmFtZT4KICA8c2NtPgogICAgPGNvbm5lY3Rpb24+c2NtOnN2bjpodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbnRpbnV1bS90cnVuay88L2Nvbm5lY3Rpb24+CiAgICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY206c3ZuOmh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbnRpbnV1bS90cnVuay88L2RldmVsb3BlckNvbm5lY3Rpb24+CiAgICA8dXJsPmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3Y3ZzLmNnaS9tYXZlbi9jb250aW51dW0vdHJ1bmsvPC91cmw+CiAgPC9zY20+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAIlpA4lpgIlpPCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogIH4gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQogIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgfgogIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICB+ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgogIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KICA8Z3JvdXBJZD5tYXZlbi50d28ucHJvamVjdDwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5zYW1wbGUtbWF2ZW4tdHdvLXByb2plY3Q8L2FydGlmYWN0SWQ+CiAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KICA8bmFtZT5NYXZlbiBUd28gUHJvamVjdDwvbmFtZT4KICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAIURA4URgIURcGFja2FnZSBvcmcuYXBhY2hlLmNvbnRpbnV1bS5leGFtcGxlczsKCmltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdDsKaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0U3VpdGU7CgovKioKICogVW5pdCB0ZXN0IGZvciBzaW1wbGUgQXBwLgogKi8KcHVibGljIGNsYXNzIEFwcFRlc3QgCiAgICBleHRlbmRzIFRlc3RDYXNlCnsKICAgIC8qKgogICAgICogQ3JlYXRlIHRoZSB0ZXN0IGNhc2UKICAgICAqCiAgICAgKiBAcGFyYW0gdGVzdE5hbWUgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCiAgICAgKi8KICAgIHB1YmxpYyBBcHBUZXN0KCBTdHJpbmcgdGVzdE5hbWUgKQogICAgewogICAgICAgIHN1cGVyKCB0ZXN0TmFtZSApOwogICAgfQoKICAgIC8qKgogICAgICogQHJldHVybiB0aGUgc3VpdGUgb2YgdGVzdHMgYmVpbmcgdGVzdGVkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgVGVzdCBzdWl0ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBUZXN0U3VpdGUoIEFwcFRlc3QuY2xhc3MgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJpZ291cm91cyBUZXN0IDotKQogICAgICovCiAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwKCkKICAgIHsKICAgICAgICBhc3NlcnRUcnVlKCB0cnVlICk7CiAgICB9Cn0KRU5EUkVQCkRFTFRBClNWTgAAAIFAA4FAgIFAcGFja2FnZSBvcmcuYXBhY2hlLmNvbnRpbnV1bS5leGFtcGxlczsKCi8qKgogKiBIZWxsbyB3b3JsZCEKICoKICovCnB1YmxpYyBjbGFzcyBBcHAgCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKCBTdHJpbmdbXSBhcmdzICkKICAgIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJIZWxsbyBXb3JsZCEiICk7CiAgICB9Cn0KRU5EUkVQCkRFTFRBClNWTgAAAIdAA4dAgIdAPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CiAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgogIDxncm91cElkPm9yZy5hcGFjaGUuY29udGludXVtLmV4YW1wbGVzPC9ncm91cElkPgogIDxhcnRpZmFjdElkPmNvbnRpbnV1bS0yNDM3LWV4YW1wbGU8L2FydGlmYWN0SWQ+CiAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KICA8dmVyc2lvbj4xLjEtU05BUFNIT1Q8L3ZlcnNpb24+CiAgPG5hbWU+Q29udGludXVtIDI0MzcgRXhhbXBsZSBQcm9qZWN0PC9uYW1lPgogIDx1cmw+aHR0cDovL2NvbnRpbnV1bS5hcGFjaGUub3JnPC91cmw+CgogIDxzY20+CiAgICA8Y29ubmVjdGlvbj5zY206c3ZuOiR7c3ZuLmJhc2UudXJsfS90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlPC9jb25uZWN0aW9uPgogICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjoke3N2bi5iYXNlLnVybH0vdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZTwvZGV2ZWxvcGVyQ29ubmVjdGlvbj4KICAgIDx0YWc+JHtzdm4uYmFzZS51cmx9L3RhZ3MvY29udGludXVtLTI0MzctZXhhbXBsZS0xLjA8L3RhZz4KICA8L3NjbT4KCiAgPGRlcGVuZGVuY2llcz4KICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjMuOC4yPC92ZXJzaW9uPgogICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CiAgICA8L2RlcGVuZGVuY3k+CiAgPC9kZXBlbmRlbmNpZXM+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAACEBIaEKCmVjaG8gIkJ1aWxkIHNjcmlwdC4uLiIKCmV4aXQgMApFTkRSRVAKREVMVEEKU1ZOAAAAMAEwsAoKZWNobyAiQnVpbGQgc2NyaXB0Li4uIgplY2hvICJGQUlMVVJFISIKZXhpdCAxCkVORFJFUApERUxUQQpTVk4AAACNLAONLICNLDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cgo8IS0tCiAgfiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCiAgfiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKICB+IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgfiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCiAgfiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCiAgfiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgfiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAgfgogIH4gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICB+CiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCiAgfiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgogIH4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgfiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKICB+IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICB+IHVuZGVyIHRoZSBMaWNlbnNlLgogIC0tPgoKPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS8zLjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vMy4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjNfMF8wLnhzZCI+CiAgPHBvbVZlcnNpb24+MzwvcG9tVmVyc2lvbj4KICA8aWQ+bWF2ZW4tb25lLXByb2plY3Q8L2lkPgogIDxuYW1lPk1hdmVuIE9uZSBQcm9qZWN0PC9uYW1lPgogIDxjdXJyZW50VmVyc2lvbj4xLjA8L2N1cnJlbnRWZXJzaW9uPgogIDxkZXNjcmlwdGlvbj5UaGlzIGlzIGEgTWF2ZW4gT25lIFByb2plY3QgdXNlZCBmb3IgdGVzdGluZy4gVGhpcyBoYXMgYW4gaW52YWxpZCBwb20uIE1pc3NpbmcgcmVwb3NpdG9yeSBlbGVtZW50LjwvZGVzY3JpcHRpb24+CiAgPHNob3J0RGVzY3JpcHRpb24+VGhpcyBpcyBhIHNhbXBsZSBNYXZlbiBPbmUgUHJvamVjdC48L3Nob3J0RGVzY3JpcHRpb24+CiAgPGRldmVsb3BlcnM+CiAgICA8ZGV2ZWxvcGVyPgogICAgICA8bmFtZT5Kb2huIERvZTwvbmFtZT4KICAgICAgPGlkPmpvaG48L2lkPgogICAgICA8ZW1haWw+am9obi5kb2VAYXBhY2hlLm9yZzwvZW1haWw+CiAgICAgIDxvcmdhbml6YXRpb24vPgogICAgICA8cm9sZXM+CiAgICAgICAgPHJvbGU+RG9jdW1lbnRhdGlvbjwvcm9sZT4KICAgICAgICA8cm9sZT5KYXZhIERldmVsb3Blcjwvcm9sZT4KICAgICAgPC9yb2xlcz4KICAgIDwvZGV2ZWxvcGVyPgogIDwvZGV2ZWxvcGVycz4KICA8ZGVwZW5kZW5jaWVzLz4KPC9wcm9qZWN0PgpFTkRSRVAKREVMVEEKU1ZOAAAAj1QDj1SAj1Q8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgoKPCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogIH4gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQogIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgfgogIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICB+ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vMy4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzMuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXYzXzBfMC54c2QiPgogIDxleHRlbmQ+Li4vZXh0ZW5kL3Byb2plY3QueG1sPC9leHRlbmQ+CiAgPHBvbVZlcnNpb24+MzwvcG9tVmVyc2lvbj4KICA8aWQ+bWF2ZW4tb25lLXByb2plY3Q8L2lkPgogIDxuYW1lPk1hdmVuIE9uZSBQcm9qZWN0PC9uYW1lPgogIDxjdXJyZW50VmVyc2lvbj4xLjA8L2N1cnJlbnRWZXJzaW9uPgogIDxkZXNjcmlwdGlvbj5UaGlzIGlzIGEgc2FtcGxlIE1hdmVuIE9uZSBQcm9qZWN0IHVzZWQgZm9yIHRlc3RpbmcuPC9kZXNjcmlwdGlvbj4KICA8c2hvcnREZXNjcmlwdGlvbj5UaGlzIGlzIGEgc2FtcGxlIE1hdmVuIE9uZSBQcm9qZWN0Ljwvc2hvcnREZXNjcmlwdGlvbj4KICA8ZGV2ZWxvcGVycz4KICAgIDxkZXZlbG9wZXI+CiAgICAgIDxuYW1lPkpvaG4gRG9lPC9uYW1lPgogICAgICA8aWQ+am9objwvaWQ+CiAgICAgIDxlbWFpbD5qb2huLmRvZUBhcGFjaGUub3JnPC9lbWFpbD4KICAgICAgPG9yZ2FuaXphdGlvbi8+CiAgICAgIDxyb2xlcz4KICAgICAgICA8cm9sZT5Eb2N1bWVudGF0aW9uPC9yb2xlPgogICAgICAgIDxyb2xlPkphdmEgRGV2ZWxvcGVyPC9yb2xlPgogICAgICA8L3JvbGVzPgogICAgPC9kZXZlbG9wZXI+CiAgPC9kZXZlbG9wZXJzPgogIDxyZXBvc2l0b3J5PgogICAgPGNvbm5lY3Rpb24+c2NtOnN2bjpodHRwOi8vc3ZuLmR1bW15Lm9yZy9yZXBvcy90cnVuay9tYXZlbi1vbmUtcHJvamVjdC88L2Nvbm5lY3Rpb24+CiAgICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY206c3ZuOmh0dHBzOi8vc3ZuLmR1bW15Lm9yZy9yZXBvcy90cnVuay9tYXZlbi1vbmUtcHJvamVjdC88L2RldmVsb3BlckNvbm5lY3Rpb24+CiAgICA8dXJsPmh0dHA6Ly9zdm4uZHVtbXkub3JnL3ZpZXdjdnMuY2dpL3RydW5rL21hdmVuLW9uZS1wcm9qZWN0LzwvdXJsPgogIDwvcmVwb3NpdG9yeT4KICA8ZGVwZW5kZW5jaWVzLz4KPC9wcm9qZWN0PgpFTkRSRVAKREVMVEEKU1ZOAAAAjysDjyuAjys8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgoKPCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogIH4gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQogIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgfgogIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICB+ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vMy4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzMuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXYzXzBfMC54c2QiPgogIDxwb21WZXJzaW9uPjM8L3BvbVZlcnNpb24+CiAgPGlkPm1hdmVuLW9uZS1wcm9qZWN0PC9pZD4KICA8bmFtZT5NYXZlbiBPbmUgUHJvamVjdDwvbmFtZT4KICA8Y3VycmVudFZlcnNpb24+MS4wPC9jdXJyZW50VmVyc2lvbj4KICA8ZGVzY3JpcHRpb24+VGhpcyBpcyBhIHNhbXBsZSBNYXZlbiBPbmUgUHJvamVjdCB1c2VkIGZvciB0ZXN0aW5nLjwvZGVzY3JpcHRpb24+CiAgPHNob3J0RGVzY3JpcHRpb24+VGhpcyBpcyBhIHNhbXBsZSBNYXZlbiBPbmUgUHJvamVjdC48L3Nob3J0RGVzY3JpcHRpb24+CiAgPGRldmVsb3BlcnM+CiAgICA8ZGV2ZWxvcGVyPgogICAgICA8bmFtZT5Kb2huIERvZTwvbmFtZT4KICAgICAgPGlkPmpvaG48L2lkPgogICAgICA8ZW1haWw+am9obi5kb2VAYXBhY2hlLm9yZzwvZW1haWw+CiAgICAgIDxvcmdhbml6YXRpb24vPgogICAgICA8cm9sZXM+CiAgICAgICAgPHJvbGU+RG9jdW1lbnRhdGlvbjwvcm9sZT4KICAgICAgICA8cm9sZT5KYXZhIERldmVsb3Blcjwvcm9sZT4KICAgICAgPC9yb2xlcz4KICAgIDwvZGV2ZWxvcGVyPgogIDwvZGV2ZWxvcGVycz4KICA8cmVwb3NpdG9yeT4KICAgIDxjb25uZWN0aW9uPnNjbTpzdm46aHR0cDovL3N2bi5kdW1teS5vcmcvcmVwb3MvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3QvPC9jb25uZWN0aW9uPgogICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjpodHRwczovL3N2bi5kdW1teS5vcmcvcmVwb3MvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3QvPC9kZXZlbG9wZXJDb25uZWN0aW9uPgogICAgPHVybD5odHRwOi8vc3ZuLmR1bW15Lm9yZy92aWV3Y3ZzLmNnaS90cnVuay9tYXZlbi10d28tcHJvamVjdC88L3VybD4KICA8L3JlcG9zaXRvcnk+CiAgPGRlcGVuZGVuY2llcy8+CjwvcHJvamVjdD4KRU5EUkVQCkRFTFRBClNWTgAAAIZiA4ZigIZiPCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogIH4gdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQogIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgfgogIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICB+ICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxwcm9qZWN0PgogIDxpbnZhbGlkLXRhZz4KPC9wcm9qZWN0PgpFTkRSRVAKaWQ6IGIuMC5yMS8zNDU3Mgp0eXBlOiBkaXIKY291bnQ6IDAKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC13ZWJhcHAvc3JjL21haW4vcmVzb3VyY2VzCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IGUuMC5yMS8zNDcyOAp0eXBlOiBmaWxlCmNvdW50OiAwCnRleHQ6IDEgMCA2MiA1MiBhMDA2MTZlMjU3ZjFiMDM3ZjI5MzNhYjk4ODIxMGUwZgpwcm9wczogMSAzNDY4MSAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtd2ViYXBwL3NyYy9tYWluL3dlYmFwcC9pbmRleC5qc3AKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAxMwpzdm46ZW9sLXN0eWxlClYgNgpuYXRpdmUKRU5ECkVORFJFUAppZDogaS4wLnIxLzM0OTk0CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSA3NSAyMjkgMjE1IGE0M2QzNzRjODJlNWZmM2U0ZTg3ZDE2YjdmYzc0ODdjCnByb3BzOiAxIDM0OTQ3IDM0IDAgMjVlNmMyZjc1NThiNzQ4NDAwMGQ0ZDA5MGRlYTViOTIKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC13ZWJhcHAvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDcKd2ViLnhtbApWIDE3CmZpbGUgaS4wLnIxLzM0OTk0CkVORApFTkRSRVAKaWQ6IGguMC5yMS8zNTI3NAp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSAzNTIyMiAzOSAzOSAyOWU2YTBmZWM1OGQzMWRjNzFkNzEyMjIwMDNkNzBjZApjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LXdlYmFwcC9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORgpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDcKV0VCLUlORgpWIDE2CmRpciBoLjAucjEvMzUyNzQKSyA5CmluZGV4LmpzcApWIDE3CmZpbGUgZS4wLnIxLzM0NzI4CkVORApFTkRSRVAKaWQ6IGQuMC5yMS8zNTUyOQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSAzNTQ0MSA3NSA3NSBmZjJmNTU5ZTdlNDllNTY2NWNlMTM2ZWUzNGI0ODY5MwpjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LXdlYmFwcC9zcmMvbWFpbi93ZWJhcHAKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA5CnJlc291cmNlcwpWIDE2CmRpciBiLjAucjEvMzQ1NzIKSyA2CndlYmFwcApWIDE2CmRpciBkLjAucjEvMzU1MjkKRU5ECkVORFJFUAppZDogOS4wLnIxLzM1Nzc0CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDM1Njg4IDczIDczIGQxY2QyZGNiODk0OTI1ZGVlYzcxYWUzYzhmZDNhZTg2CmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtd2ViYXBwL3NyYy9tYWluCmNvcHlyb290OiAwIC8KClBMQUlOCksgNAptYWluClYgMTYKZGlyIDkuMC5yMS8zNTc3NApFTkQKRU5EUkVQCmlkOiA3LjAucjEvMzU5NzQKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgMzU5MjYgMzUgMzUgZDRkODQ2OWUyYTIzNmU1MDJjYWY1ZDYwYWZkZWRmY2EKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC13ZWJhcHAvc3JjCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IGwuMC5yMS8zNjE2OAp0eXBlOiBmaWxlCmNvdW50OiAwCnRleHQ6IDEgMzE3IDk3MSA5NTcgNzk1ZjgwYjYxM2RmMmNkM2I5ODBmNDJlYzAwNWI2MDUKcHJvcHM6IDEgMzYxMjEgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LXdlYmFwcC9wb20ueG1sCmNvcHlyb290OiAwIC8KClBMQUlOCksgNwpwb20ueG1sClYgMTcKZmlsZSBsLjAucjEvMzYxNjgKSyAzCnNyYwpWIDE2CmRpciA3LjAucjEvMzU5NzQKRU5ECkVORFJFUAppZDogNS4wLnIxLzM2NDU1CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDM2MzczIDY5IDY5IDI2MDVjYzEzNWJhOTkxMDhjZTA0ZjY2MmJhNzE2MGM5CmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtd2ViYXBwCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IDEwLjAucjEvMzY2NDUKdHlwZTogZmlsZQpjb3VudDogMAp0ZXh0OiAxIDEzMDEgNjU4IDY0NCBmNmMyNWNiNjYwMjczYjkyZmViMGI3YzQ5MmNiYTBlNgpwcm9wczogMSAzNjU5OCAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9zcmMvdGVzdC9qYXZhL2NvbS9leGFtcGxlL2ZsYXQvQXBwVGVzdC5qYXZhCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTIKQXBwVGVzdC5qYXZhClYgMTgKZmlsZSAxMC4wLnIxLzM2NjQ1CkVORApFTkRSRVAKaWQ6IHkuMC5yMS8zNjk0NQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSAzNjg4NiA0NiA0NiA0N2UzZTdiNDdkYjk4MjQ1ZDFmZDIzZmEzNmNmNWJjNwpjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUvc3JjL3Rlc3QvamF2YS9jb20vZXhhbXBsZS9mbGF0CmNvcHlyb290OiAwIC8KClBMQUlOCksgNApmbGF0ClYgMTYKZGlyIHkuMC5yMS8zNjk0NQpFTkQKRU5EUkVQCmlkOiB3LjAucjEvMzcxNjUKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgMzcxMTcgMzUgMzUgZTRlMTZmNWFlOTU1ZjNhMWIzYmZlYjFmYThlMDdjZDcKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy90ZXN0L2phdmEvY29tL2V4YW1wbGUKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA3CmV4YW1wbGUKViAxNgpkaXIgdy4wLnIxLzM3MTY1CkVORApFTkRSRVAKaWQ6IHUuMC5yMS8zNzM4Mwp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSAzNzMzMiAzOCAzOCA5MjM1ZDUyMDgwOWQ4MGJkZTZiMWMzMTI3MDY4OGRmNgpjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUvc3JjL3Rlc3QvamF2YS9jb20KY29weXJvb3Q6IDAgLwoKUExBSU4KSyAzCmNvbQpWIDE2CmRpciB1LjAucjEvMzczODMKRU5ECkVORFJFUAppZDogcy4wLnIxLzM3NTg5CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDM3NTQyIDM0IDM0IGRjOWU0NmJlNDYwMzJhMWI0M2M1MDBjZDMzZDgyMWFkCmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9zcmMvdGVzdC9qYXZhCmNvcHlyb290OiAwIC8KClBMQUlOCksgNApqYXZhClYgMTYKZGlyIHMuMC5yMS8zNzU4OQpFTkQKRU5EUkVQCmlkOiBxLjAucjEvMzc3OTIKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgMzc3NDQgMzUgMzUgOTcyNjM0OTFmNTAwNjg1MGZkNzRlYmI3MDJlMGQ3NmYKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy90ZXN0CmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IDFjLjAucjEvMzc5ODkKdHlwZTogZmlsZQpjb3VudDogMAp0ZXh0OiAxIDE5NzIgMTkzIDE3OSAzNTFjOWJlMzI0N2I2ZGY4ZGZkYjFhM2U0YThlMjY4Mgpwcm9wczogMSAzNzk0MiAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL2ZsYXQvQXBwLmphdmEKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA4CkFwcC5qYXZhClYgMTgKZmlsZSAxYy4wLnIxLzM3OTg5CkVORApFTkRSRVAKaWQ6IDFhLjAucjEvMzgyODAKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgMzgyMjYgNDEgNDEgOGYxNDcyMDk3ZWI1YWQ5NGM1MmU1ZmI3MDcyMWFlYTAKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvZmxhdApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDQKZmxhdApWIDE3CmRpciAxYS4wLnIxLzM4MjgwCkVORApFTkRSRVAKaWQ6IDE4LjAucjEvMzg1MDIKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgMzg0NTMgMzYgMzYgYzgxMzUwZTg2ZDFhOGZiYjI2NmFlMmIxZGU4N2ZkMjIKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA3CmV4YW1wbGUKViAxNwpkaXIgMTguMC5yMS8zODUwMgpFTkQKRU5EUkVQCmlkOiAxNi4wLnIxLzM4NzIyCnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDM4NjcwIDM5IDM5IDIzNTIzNDk0MzliYTdiMTFlODYxN2U0Mjk1NDQyOGM0CmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9zcmMvbWFpbi9qYXZhL2NvbQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDMKY29tClYgMTcKZGlyIDE2LjAucjEvMzg3MjIKRU5ECkVORFJFUAppZDogMTQuMC5yMS8zODkzMAp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSAzODg4MiAzNSAzNSA1MDIwNDNjNTc1ZDg4YTQxNTk1YThjYzkyODRkMDAxYQpjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUvc3JjL21haW4vamF2YQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDQKamF2YQpWIDE3CmRpciAxNC4wLnIxLzM4OTMwCkVORApFTkRSRVAKaWQ6IDEzLjAucjEvMzkxMzUKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgMzkwODYgMzYgMzYgZjE1NmRmOTRiZjk0MmU4ZDQ5MjYzNzgyZDBlOWU1MzAKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy9tYWluCmNvcHlyb290OiAwIC8KClBMQUlOCksgNAptYWluClYgMTcKZGlyIDEzLjAucjEvMzkxMzUKSyA0CnRlc3QKViAxNgpkaXIgcS4wLnIxLzM3NzkyCkVORApFTkRSRVAKaWQ6IG8uMC5yMS8zOTM2Ngp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSAzOTI4NiA2NyA2NyBjMmFlZDA1MTY3NDc5MmUwZDYyNGNmYzE0ZDExZjYxMQpjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUvc3JjCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IDFmLjAucjEvMzk1NTgKdHlwZTogZmlsZQpjb3VudDogMAp0ZXh0OiAxIDIxNzggNzMyIDcxOCAzMjI1YzI2NzM1ODM3NDk1ZDlkZWZmYTk0OTc4ZmZiZApwcm9wczogMSAzOTUxMSAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9wb20ueG1sCmNvcHlyb290OiAwIC8KClBMQUlOCksgNwpwb20ueG1sClYgMTgKZmlsZSAxZi4wLnIxLzM5NTU4CksgMwpzcmMKViAxNgpkaXIgby4wLnIxLzM5MzY2CkVORApFTkRSRVAKaWQ6IG4uMC5yMS8zOTg0Ngp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSAzOTc2MyA3MCA3MCAxNWYzZTMxNTg4ZThiMGIwOTkyM2JmMzQwZmEwMjRhMgpjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAxMwpzdm46ZW9sLXN0eWxlClYgNgpuYXRpdmUKRU5ECkVORFJFUAppZDogMWkuMC5yMS80MDAzNAp0eXBlOiBmaWxlCmNvdW50OiAwCnRleHQ6IDEgMjkyMyA3NzMgNzU5IDVkNjY4NjJmZjZiY2NhNGRkOWY5ZTE1YThjYTY4MjA5CnByb3BzOiAxIDM5OTg3IDM0IDAgMjVlNmMyZjc1NThiNzQ4NDAwMGQ0ZDA5MGRlYTViOTIKY3BhdGg6IC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1wYXJlbnQvcG9tLnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDcKcG9tLnhtbApWIDE4CmZpbGUgMWkuMC5yMS80MDAzNApFTkQKRU5EUkVQCmlkOiAxaC4wLnIxLzQwMjk0CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQwMjQxIDQwIDQwIDkwNjMyYzM0NjgzNjljYzk3NzAxYjdhNzk4MjJjMDk4CmNwYXRoOiAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtcGFyZW50CmNvcHlyb290OiAwIC8KClBMQUlOCksgOQpmbGF0LWNvcmUKViAxNgpkaXIgbi4wLnIxLzM5ODQ2CksgMTEKZmxhdC1wYXJlbnQKViAxNwpkaXIgMWguMC5yMS80MDI5NApLIDExCmZsYXQtd2ViYXBwClYgMTYKZGlyIDUuMC5yMS8zNjQ1NQpFTkQKRU5EUkVQCmlkOiAzLjAucjEvNDA1NzAKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDA0MzggMTE5IDExOSA0YWEwZTRiOWZkZTU4ZDcwNWQ5YzAyNDdjNzQ4OGEwYgpjcGF0aDogL3RydW5rL2ZsYXQtZXhhbXBsZQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAxbS4wLnIxLzQwNzUwCnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAzNzA5IDEzMyAxMjIgNzE5YzFkODQ1YmJkOWQ4ZDNkMDkwYTZlYWRiYzc2YmUKcHJvcHM6IDEgNDA3MDMgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL2FudC9idWlsZC54bWwKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA5CmJ1aWxkLnhtbApWIDE4CmZpbGUgMW0uMC5yMS80MDc1MApFTkQKRU5EUkVQCmlkOiAxbC4wLnIxLzQwOTkzCnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQwOTM4IDQyIDQyIGUwODdkYmNmMTQ5OWQyM2JkYmNkMjEzMmNiYTE5ODNkCmNwYXRoOiAvdHJ1bmsvYW50CmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IDI0LjAucjEvNDExNjMKdHlwZTogZmlsZQpjb3VudDogMAp0ZXh0OiAxIDM4NTUgNjcxIDY1NyBkYjE1MGU2NWEzMTRmMDhhNDRlNzI3NDMyMzJjY2EwZQpwcm9wczogMSA0MTExNiAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bS9leGFtcGxlcy9BcHBUZXN0LmphdmEKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAxMgpBcHBUZXN0LmphdmEKViAxOApmaWxlIDI0LjAucjEvNDExNjMKRU5ECkVORFJFUAppZDogMjIuMC5yMS80MTQ2OAp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0MTQwOSA0NiA0NiA2Y2VhMWEyODYxMjBlMjg4MzZjOGRhNGM1MWRlNzE5YgpjcGF0aDogL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA4CmV4YW1wbGVzClYgMTcKZGlyIDIyLjAucjEvNDE0NjgKRU5ECkVORFJFUAppZDogMjAuMC5yMS80MTY5OQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0MTY0NiA0MCA0MCA3MThiNGY1Zjc4YzQ2Y2Y3MWMzZTRlNzZkMGZiY2VmZgpjcGF0aDogL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0KY29weXJvb3Q6IDAgLwoKUExBSU4KSyA5CmNvbnRpbnV1bQpWIDE3CmRpciAyMC4wLnIxLzQxNjk5CkVORApFTkRSRVAKaWQ6IDF5LjAucjEvNDE5MjIKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDE4NjggNDEgNDEgODgwODdhMjgzOGRlYmRiODI0OGVkMTlhNTlkZjNhMjgKY3BhdGg6IC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA2CmFwYWNoZQpWIDE3CmRpciAxeS4wLnIxLzQxOTIyCkVORApFTkRSRVAKaWQ6IDF3LjAucjEvNDIxMzIKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDIwODEgMzggMzggNzNmMGVmYWU1NjBlZWVjODJiOWNkN2Y5ZmIwZDYxMjYKY3BhdGg6IC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvdGVzdC9qYXZhL29yZwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDMKb3JnClYgMTcKZGlyIDF3LjAucjEvNDIxMzIKRU5ECkVORFJFUAppZDogMXUuMC5yMS80MjMzMgp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0MjI4NCAzNSAzNSBkZjY4YTgxOTZjOGFjOWY4NGMwODA0YjIzYTE2ZTUxZApjcGF0aDogL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy90ZXN0L2phdmEKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA0CmphdmEKViAxNwpkaXIgMXUuMC5yMS80MjMzMgpFTkQKRU5EUkVQCmlkOiAxcy4wLnIxLzQyNTI5CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQyNDgwIDM2IDM2IDYzYTEwZjY1OWRlMmU4OTNkNmExN2Q5ZWEwNzJiOTEwCmNwYXRoOiAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL3Rlc3QKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAxMwpzdm46ZW9sLXN0eWxlClYgNgpuYXRpdmUKRU5ECkVORFJFUAppZDogMmkuMC5yMS80MjcxOQp0eXBlOiBmaWxlCmNvdW50OiAwCnRleHQ6IDEgNDUzOSAyMDYgMTkyIDE3YmNhNGIxZTJiMGNiODQyOGE4OWI5OTc3MTA5Zjg2CnByb3BzOiAxIDQyNjcyIDM0IDAgMjVlNmMyZjc1NThiNzQ4NDAwMGQ0ZDA5MGRlYTViOTIKY3BhdGg6IC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvY29udGludXVtL2V4YW1wbGVzL0FwcC5qYXZhCmNvcHlyb290OiAwIC8KClBMQUlOCksgOApBcHAuamF2YQpWIDE4CmZpbGUgMmkuMC5yMS80MjcxOQpFTkQKRU5EUkVQCmlkOiAyZy4wLnIxLzQzMDE1CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQyOTYxIDQxIDQxIGZiNTQzMzNlYzdiOWM1MTgwMzhhMGZhNzM2YTIzMDkyCmNwYXRoOiAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bS9leGFtcGxlcwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDgKZXhhbXBsZXMKViAxNwpkaXIgMmcuMC5yMS80MzAxNQpFTkQKRU5EUkVQCmlkOiAyZS4wLnIxLzQzMjQ2CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQzMTkzIDQwIDQwIGJkNTE0MGVmMGE2OWE2YmJlYWE4OTM0NmRkOTNhY2RiCmNwYXRoOiAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDkKY29udGludXVtClYgMTcKZGlyIDJlLjAucjEvNDMyNDYKRU5ECkVORFJFUAppZDogMmMuMC5yMS80MzQ2OQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0MzQxNSA0MSA0MSBlOTlmMzVlZTI3ODE0MmI1YzU3YWVkOWFjNzk3ZGEwNApjcGF0aDogL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDYKYXBhY2hlClYgMTcKZGlyIDJjLjAucjEvNDM0NjkKRU5ECkVORFJFUAppZDogMmEuMC5yMS80MzY3OQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0MzYyOCAzOCAzOCAyYzU0ZDJjMjIwNWFhOGY3ZGQ5NmMwYWQ5ZTM3MzliNApjcGF0aDogL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy9tYWluL2phdmEvb3JnCmNvcHlyb290OiAwIC8KClBMQUlOCksgMwpvcmcKViAxNwpkaXIgMmEuMC5yMS80MzY3OQpFTkQKRU5EUkVQCmlkOiAyOC4wLnIxLzQzODc5CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQzODMxIDM1IDM1IDE2YzdmZWMwMDI3YWEyZmE1MWM3NjIyYjVjYWRlNzgzCmNwYXRoOiAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL21haW4vamF2YQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDQKamF2YQpWIDE3CmRpciAyOC4wLnIxLzQzODc5CkVORApFTkRSRVAKaWQ6IDI3LjAucjEvNDQwNzYKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDQwMjcgMzYgMzYgNjlmOWExOTRkZGFjMmFjNGVkZGM1NmZmZjk3YzkzNTgKY3BhdGg6IC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvbWFpbgpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDQKbWFpbgpWIDE3CmRpciAyNy4wLnIxLzQ0MDc2CksgNAp0ZXN0ClYgMTcKZGlyIDFzLjAucjEvNDI1MjkKRU5ECkVORFJFUAppZDogMXEuMC5yMS80NDMwMAp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0NDIxOSA2OCA2OCA4NDNhMWE4ZDc3YTk3NTk5MzhmNmViMTg0Njk0ZjliNQpjcGF0aDogL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAybC4wLnIxLzQ0NDg1CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSA0NzU4IDg5NyA4ODMgZDQxMjViZDE3ODgwODAyNDM5NWY4NDBiMGZmNzU3YjQKcHJvcHM6IDEgNDQ0MzggMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL3NpbXBsZS1leGFtcGxlL3BvbS54bWwKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA3CnBvbS54bWwKViAxOApmaWxlIDJsLjAucjEvNDQ0ODUKSyAzCnNyYwpWIDE3CmRpciAxcS4wLnIxLzQ0MzAwCkVORApFTkRSRVAKaWQ6IDFwLjAucjEvNDQ3NjYKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDQ2ODIgNzEgNzEgN2FiZGZkZjQ1ZWVkZTM3MTI0OGU0OTM3MTU3MDdkNzAKY3BhdGg6IC90cnVuay9zaW1wbGUtZXhhbXBsZQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAydy4wLnIxLzQ0OTQ3CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSA1NjY4IDEwNjcgMTA1MyA0ZmQwM2RkMzgzNDUzNjMwZjgzYzI0OWE2ODZhYTg5Ngpwcm9wczogMSA0NDkwMCAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9zcmMvdGVzdC9qYXZhL2NvbmZpZy90ZXN0bmcueG1sCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTAKdGVzdG5nLnhtbApWIDE4CmZpbGUgMncuMC5yMS80NDk0NwpFTkQKRU5EUkVQCmlkOiAydS4wLnIxLzQ1MjQ0CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQ1MTg3IDQ0IDQ0IGQyNjI4NWFkZjNiZWUxZTBkYWM1ZTA1MzQ2ZjA3NDczCmNwYXRoOiAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9zcmMvdGVzdC9qYXZhL2NvbmZpZwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAzNi4wLnIxLzQ1NDYzCnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSA2NzQ4IDMzNCAzMjAgODY0MmQxNWRjYzliODliZjZhMWEyMTU1YmZhZjQ3MWIKcHJvcHM6IDEgNDU0MTYgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL2NvbnRpbnV1bS1idWlsZC1xdWV1ZS10ZXN0LWRhdGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bS9leGFtcGxlcy9CYXNpY1RocmVhZFRlc3QuamF2YQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDIwCkJhc2ljVGhyZWFkVGVzdC5qYXZhClYgMTgKZmlsZSAzNi4wLnIxLzQ1NDYzCkVORApFTkRSRVAKaWQ6IDM0LjAucjEvNDU4MDEKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDU3MzQgNTQgNTQgZTAyNDk4OGIxYzg3NGYzYzQ3NWE0Mzc3MjE0YmNlZDMKY3BhdGg6IC90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA4CmV4YW1wbGVzClYgMTcKZGlyIDM0LjAucjEvNDU4MDEKRU5ECkVORFJFUAppZDogMzIuMC5yMS80NjA0OQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0NTk5NiA0MCA0MCAyOTZhYzc5YmVjZWZkNzU1ODNkOGU1NTg2OGUzNGE0MQpjcGF0aDogL3RydW5rL2NvbnRpbnV1bS1idWlsZC1xdWV1ZS10ZXN0LWRhdGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDkKY29udGludXVtClYgMTcKZGlyIDMyLjAucjEvNDYwNDkKRU5ECkVORFJFUAppZDogMzAuMC5yMS80NjI4OQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0NjIzNSA0MSA0MSAxNTkxMzVhY2ZlYWZlNmVmNmEwOTEzMTY5NWZkOTg1NApjcGF0aDogL3RydW5rL2NvbnRpbnV1bS1idWlsZC1xdWV1ZS10ZXN0LWRhdGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlCmNvcHlyb290OiAwIC8KClBMQUlOCksgNgphcGFjaGUKViAxNwpkaXIgMzAuMC5yMS80NjI4OQpFTkQKRU5EUkVQCmlkOiAyei4wLnIxLzQ2NTE2CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQ2NDY1IDM4IDM4IDJlZDhmOTUwMzdmYTJmZDg0Y2JlOGUyMGZhMGIwNmNiCmNwYXRoOiAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9zcmMvdGVzdC9qYXZhL29yZwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDYKY29uZmlnClYgMTcKZGlyIDJ1LjAucjEvNDUyNDQKSyAzCm9yZwpWIDE3CmRpciAyei4wLnIxLzQ2NTE2CkVORApFTkRSRVAKaWQ6IDJzLjAucjEvNDY3NjcKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDY2ODUgNjkgNjkgNmJiNjg2MzE5ZDAwYWU1MWE4YmYxODQzNTc3MDFmNmEKY3BhdGg6IC90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhL3NyYy90ZXN0L2phdmEKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA0CmphdmEKViAxNwpkaXIgMnMuMC5yMS80Njc2NwpFTkQKRU5EUkVQCmlkOiAycS4wLnIxLzQ2OTgxCnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQ2OTMyIDM2IDM2IDEzZmZjMzk1MzY0ZjAyYmE4OTA1NzQ0YTJmZWYyZDI3CmNwYXRoOiAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9zcmMvdGVzdApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDQKdGVzdApWIDE3CmRpciAycS4wLnIxLzQ2OTgxCkVORApFTkRSRVAKaWQ6IDJvLjAucjEvNDcxOTAKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDcxNDEgMzYgMzYgMjQzNDBjYzllMTE5YTBiNTY5MDJhY2NiY2NmMTZjMjcKY3BhdGg6IC90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhL3NyYwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAzOS4wLnIxLzQ3MzkyCnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSA3MDk1IDI2OTIgMjY3OCA5NGNiNTNhZjVhZDMxYTRlNDE1MDgxZmE3MTcxNDg3OQpwcm9wczogMSA0NzM0NSAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9wb20ueG1sCmNvcHlyb290OiAwIC8KClBMQUlOCksgNwpwb20ueG1sClYgMTgKZmlsZSAzOS4wLnIxLzQ3MzkyCksgMwpzcmMKViAxNwpkaXIgMm8uMC5yMS80NzE5MApFTkQKRU5EUkVQCmlkOiAybi4wLnIxLzQ3NjkyCnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDQ3NjA4IDcxIDcxIDhlNGM1OTE2M2I4MWVjYTExOTU0NzllOWIzYWIxYzZkCmNwYXRoOiAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAzYy4wLnIxLzQ3ODkwCnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSA5ODAwIDE4ODggMTg3NCBiZjg4YjhkNGY4Y2JlZTE5MjlkN2UzMGM3ZjE5YTM4ZQpwcm9wczogMSA0Nzg0MyAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3RzL3NwZWNpZmllZC1ub3RpZmllcnMtcG9tLnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAzZi4wLnIxLzQ4MTYwCnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAxMTcwMSAxNDc1IDE0NjEgYmYxNzk2Zjg1NDk4YTQ5OTMzNGFmOTVmNzkxN2RhMTkKcHJvcHM6IDEgNDgxMTMgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9taXNzaW5nLWNvbm5lY3Rpb24tZWxlbWVudC1wb20ueG1sCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IDNrLjAucjEvNDg0MzgKdHlwZTogZmlsZQpjb3VudDogMAp0ZXh0OiAxIDEzMTg5IDE0MDcgMTM5MyBjMWUwNDdiNzJiNmVlNzgzMTE3YmUxNmQ3ZDExNDEwMgpwcm9wczogMSA0ODM5MSAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3RzL211bHRpLW1vZHVsZS1tYXZlbi1wcm9qZWN0L21hdmVuLXR3by1tdWx0aS1tb2R1bGUtcHJvamVjdC1tb2R1bGUxL3BvbS54bWwKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA3CnBvbS54bWwKViAxOApmaWxlIDNrLjAucjEvNDg0MzgKRU5ECkVORFJFUAppZDogM2kuMC5yMS80ODc2MQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA0ODcwOCA0MCA0MCBkMDIzZGJhYWVhZjA2YTM4ODdjYTllNWZiMWE4MTgyYQpjcGF0aDogL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9tdWx0aS1tb2R1bGUtbWF2ZW4tcHJvamVjdC9tYXZlbi10d28tbXVsdGktbW9kdWxlLXByb2plY3QtbW9kdWxlMQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAzby4wLnIxLzQ5MDEyCnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAxNDYwOSAxNDA3IDEzOTMgN2RhYjI1OWE1MTM0Mjg0ZTc0NWVjZDBhMmQ4YzhiOWIKcHJvcHM6IDEgNDg5NjUgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9tdWx0aS1tb2R1bGUtbWF2ZW4tcHJvamVjdC9tYXZlbi10d28tbXVsdGktbW9kdWxlLXByb2plY3QtbW9kdWxlMi9wb20ueG1sCmNvcHlyb290OiAwIC8KClBMQUlOCksgNwpwb20ueG1sClYgMTgKZmlsZSAzby4wLnIxLzQ5MDEyCkVORApFTkRSRVAKaWQ6IDNuLjAucjEvNDkzMzUKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDkyODIgNDAgNDAgYmJhMzU0NDc4NWI5NmI4ZTY5ODg2ZmJhOTZmMmU1MzUKY3BhdGg6IC90cnVuay9tYXZlbi10d28tcHJvamVjdHMvbXVsdGktbW9kdWxlLW1hdmVuLXByb2plY3QvbWF2ZW4tdHdvLW11bHRpLW1vZHVsZS1wcm9qZWN0LW1vZHVsZTIKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAxMwpzdm46ZW9sLXN0eWxlClYgNgpuYXRpdmUKRU5ECkVORFJFUAppZDogM3IuMC5yMS80OTU4Ngp0eXBlOiBmaWxlCmNvdW50OiAwCnRleHQ6IDEgMTYwMjkgMTc0MCAxNzI2IDlmYThlMDA2ODBjMjNjZTRkNDlmZTkzMTczZGUzZDFjCnByb3BzOiAxIDQ5NTM5IDM0IDAgMjVlNmMyZjc1NThiNzQ4NDAwMGQ0ZDA5MGRlYTViOTIKY3BhdGg6IC90cnVuay9tYXZlbi10d28tcHJvamVjdHMvbXVsdGktbW9kdWxlLW1hdmVuLXByb2plY3QvcG9tLnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDM4Cm1hdmVuLXR3by1tdWx0aS1tb2R1bGUtcHJvamVjdC1tb2R1bGUxClYgMTcKZGlyIDNpLjAucjEvNDg3NjEKSyAzOAptYXZlbi10d28tbXVsdGktbW9kdWxlLXByb2plY3QtbW9kdWxlMgpWIDE3CmRpciAzbi4wLnIxLzQ5MzM1CksgNwpwb20ueG1sClYgMTgKZmlsZSAzci4wLnIxLzQ5NTg2CkVORApFTkRSRVAKaWQ6IDNoLjAucjEvNTAwMDQKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNDk4MTcgMTc0IDE3NCBmMjY0ZjE4MTVhM2QxZjhhNzdhZWFhMDJlOGIzZmZlNQpjcGF0aDogL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9tdWx0aS1tb2R1bGUtbWF2ZW4tcHJvamVjdApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAzdC4wLnIxLzUwMjE4CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAxNzc4MiAxNzUwIDE3MzYgNGU3ZTk0NDlkNGVkYTBhMDU2YmYzNjU0NzFmNmY5NzUKcHJvcHM6IDEgNTAxNzEgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9taXNzaW5nLW1vZHVsZXMtcG9tLnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiAzdi4wLnIxLzUwNDg1CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAxOTU0NSAxODM4IDE4MjQgOTQzY2Q3MDVkOTlmMDE1OTIxNWFiNWNmOGIwMzZiNDIKcHJvcHM6IDEgNTA0MzggMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9taXNzaW5nLXR5cGUtZWxlbWVudC1wb20ueG1sCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IDN4LjAucjEvNTA3NTcKdHlwZTogZmlsZQpjb3VudDogMAp0ZXh0OiAxIDIxMzk2IDE1NjMgMTU0OSBmYjMyNDgzZTBmNDViNDRjODI2MDNkZGU3YWZmNzE3MApwcm9wczogMSA1MDcxMCAzNCAwIDI1ZTZjMmY3NTU4Yjc0ODQwMDBkNGQwOTBkZWE1YjkyCmNwYXRoOiAvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3RzL3ZhbGlkLXBvbS54bWwKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAxMwpzdm46ZW9sLXN0eWxlClYgNgpuYXRpdmUKRU5ECkVORFJFUAppZDogM3ouMC5yMS81MTAxNAp0eXBlOiBmaWxlCmNvdW50OiAwCnRleHQ6IDEgMjI5NzIgMTYzNyAxNjIzIGM4ZWM4Y2ViM2Y0YzNhZjQzNGJiNmM3NGVlZTEzNjU2CnByb3BzOiAxIDUwOTY3IDM0IDAgMjVlNmMyZjc1NThiNzQ4NDAwMGQ0ZDA5MGRlYTViOTIKY3BhdGg6IC90cnVuay9tYXZlbi10d28tcHJvamVjdHMvbWlzc2luZy1wYXJlbnQtcG9tLnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiA0MS4wLnIxLzUxMjgwCnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAyNDYyMiAxMjcxIDEyNTcgZTYzZGI1MzdhMTZiMGU0ZmZlNDg2YjhmMDZmZmU1OWIKcHJvcHM6IDEgNTEyMzMgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9taXNzaW5nLXNjbS1lbGVtZW50LXBvbS54bWwKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAzNAptaXNzaW5nLWNvbm5lY3Rpb24tZWxlbWVudC1wb20ueG1sClYgMTgKZmlsZSAzZi4wLnIxLzQ4MTYwCksgMjMKbWlzc2luZy1tb2R1bGVzLXBvbS54bWwKViAxOApmaWxlIDN0LjAucjEvNTAyMTgKSyAyMgptaXNzaW5nLXBhcmVudC1wb20ueG1sClYgMTgKZmlsZSAzei4wLnIxLzUxMDE0CksgMjcKbWlzc2luZy1zY20tZWxlbWVudC1wb20ueG1sClYgMTgKZmlsZSA0MS4wLnIxLzUxMjgwCksgMjgKbWlzc2luZy10eXBlLWVsZW1lbnQtcG9tLnhtbApWIDE4CmZpbGUgM3YuMC5yMS81MDQ4NQpLIDI2Cm11bHRpLW1vZHVsZS1tYXZlbi1wcm9qZWN0ClYgMTcKZGlyIDNoLjAucjEvNTAwMDQKSyAyNwpzcGVjaWZpZWQtbm90aWZpZXJzLXBvbS54bWwKViAxOApmaWxlIDNjLjAucjEvNDc4OTAKSyAxMwp2YWxpZC1wb20ueG1sClYgMTgKZmlsZSAzeC4wLnIxLzUwNzU3CkVORApFTkRSRVAKaWQ6IDNiLjAucjEvNTE5NjAKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNTE1MDQgNDQzIDQ0MyBjOTNmOTM0NzNlMzhlNzI4NGMwNDdkNmVmYjJjYzcyYgpjcGF0aDogL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiA0aS4wLnIxLzUyMTQ3CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAyNTkwNiA2NzEgNjU3IGRiMTUwZTY1YTMxNGYwOGE0NGU3Mjc0MzIzMmNjYTBlCnByb3BzOiAxIDUyMTAwIDM0IDAgMjVlNmMyZjc1NThiNzQ4NDAwMGQ0ZDA5MGRlYTViOTIKY3BhdGg6IC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMvQXBwVGVzdC5qYXZhCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTIKQXBwVGVzdC5qYXZhClYgMTgKZmlsZSA0aS4wLnIxLzUyMTQ3CkVORApFTkRSRVAKaWQ6IDRnLjAucjEvNTI0NjEKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNTI0MDIgNDYgNDYgMTM3MTA3MGQ5ZTQ3YmU5NDU0NDMwN2RkZjVmMTQ3NmQKY3BhdGg6IC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA4CmV4YW1wbGVzClYgMTcKZGlyIDRnLjAucjEvNTI0NjEKRU5ECkVORFJFUAppZDogNGUuMC5yMS81MjcwMAp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA1MjY0NyA0MCA0MCA0OGVhYjIzZDAyNjgzMjM0NDJkYmUyYzA0YTExMmZmZQpjcGF0aDogL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDkKY29udGludXVtClYgMTcKZGlyIDRlLjAucjEvNTI3MDAKRU5ECkVORFJFUAppZDogNGMuMC5yMS81MjkzMQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA1Mjg3NyA0MSA0MSBlZmEzMmJhZWI0MWMxNjMxMWQ3ODZlNjJjNjU3ZWRiMwpjcGF0aDogL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlCmNvcHlyb290OiAwIC8KClBMQUlOCksgNgphcGFjaGUKViAxNwpkaXIgNGMuMC5yMS81MjkzMQpFTkQKRU5EUkVQCmlkOiA0YS4wLnIxLzUzMTQ5CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDUzMDk4IDM4IDM4IGQ1OGRjOGQ5NjRmMDg2ZDE2M2Q1OTUyZGYwOGI2NzI5CmNwYXRoOiAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvdGVzdC9qYXZhL29yZwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDMKb3JnClYgMTcKZGlyIDRhLjAucjEvNTMxNDkKRU5ECkVORFJFUAppZDogNDguMC5yMS81MzM1Nwp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA1MzMwOSAzNSAzNSAwZTIyNGY2YmRjMWM0NjE0ODNjYWExZWIzNjM5MDkzNgpjcGF0aDogL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL3Rlc3QvamF2YQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDQKamF2YQpWIDE3CmRpciA0OC4wLnIxLzUzMzU3CkVORApFTkRSRVAKaWQ6IDQ2LjAucjEvNTM1NjIKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNTM1MTMgMzYgMzYgOWJmMTI5ZWJkZDE1ZmM0OTNhMDUzNWQyNmU0YTY1MmIKY3BhdGg6IC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy90ZXN0CmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCkVORApFTkRSRVAKaWQ6IDR3LjAucjEvNTM3NjAKdHlwZTogZmlsZQpjb3VudDogMAp0ZXh0OiAxIDI2NTkwIDIwNiAxOTIgMTdiY2E0YjFlMmIwY2I4NDI4YTg5Yjk5NzcxMDlmODYKcHJvcHM6IDEgNTM3MTMgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bS9leGFtcGxlcy9BcHAuamF2YQpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDgKQXBwLmphdmEKViAxOApmaWxlIDR3LjAucjEvNTM3NjAKRU5ECkVORFJFUAppZDogNHUuMC5yMS81NDA2NQp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA1NDAxMSA0MSA0MSBlMzE3Y2RjZWZlNjljMGFhZTI5MmQ4NDg1YjUzZGQ5MApjcGF0aDogL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bS9leGFtcGxlcwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDgKZXhhbXBsZXMKViAxNwpkaXIgNHUuMC5yMS81NDA2NQpFTkQKRU5EUkVQCmlkOiA0cy4wLnIxLzU0MzA0CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDU0MjUxIDQwIDQwIDJhMWY1YTY4ZWY2ODJlOGQzYzJhMjg4MmE5ZmQ5YzgxCmNwYXRoOiAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvY29udGludXVtCmNvcHlyb290OiAwIC8KClBMQUlOCksgOQpjb250aW51dW0KViAxNwpkaXIgNHMuMC5yMS81NDMwNApFTkQKRU5EUkVQCmlkOiA0cS4wLnIxLzU0NTM1CnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDU0NDgxIDQxIDQxIDFlMmMxNDUyYzYyMDljZDYzMWM5YmNhYjliMGE4Nzk3CmNwYXRoOiAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA2CmFwYWNoZQpWIDE3CmRpciA0cS4wLnIxLzU0NTM1CkVORApFTkRSRVAKaWQ6IDRvLjAucjEvNTQ3NTMKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNTQ3MDIgMzggMzggZjI0MmFkNTdmNDQ1YWU0MDdkYzA2OTA3NmFjYzJiODgKY3BhdGg6IC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy9tYWluL2phdmEvb3JnCmNvcHlyb290OiAwIC8KClBMQUlOCksgMwpvcmcKViAxNwpkaXIgNG8uMC5yMS81NDc1MwpFTkQKRU5EUkVQCmlkOiA0bS4wLnIxLzU0OTYxCnR5cGU6IGRpcgpjb3VudDogMAp0ZXh0OiAxIDU0OTEzIDM1IDM1IDM5MjRiYzk4ZjRmYzQ1ZTkyNzFhYjQ3NGYwMzBmMDRmCmNwYXRoOiAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvbWFpbi9qYXZhCmNvcHlyb290OiAwIC8KClBMQUlOCksgNApqYXZhClYgMTcKZGlyIDRtLjAucjEvNTQ5NjEKRU5ECkVORFJFUAppZDogNGwuMC5yMS81NTE2Ngp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA1NTExNyAzNiAzNiAxNjlkY2E2NTMxODI1ZjBhZDRkNmMyMWZjZDMzMjNlZApjcGF0aDogL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL21haW4KY29weXJvb3Q6IDAgLwoKUExBSU4KSyA0Cm1haW4KViAxNwpkaXIgNGwuMC5yMS81NTE2NgpLIDQKdGVzdApWIDE3CmRpciA0Ni4wLnIxLzUzNTYyCkVORApFTkRSRVAKaWQ6IDQ0LjAucjEvNTUzOTgKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNTUzMTcgNjggNjggOGYzZGU0MTdiNDMwNDRkMDlhNDAwMGFlYzAxM2U2MWQKY3BhdGg6IC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYwpjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiA0ei4wLnIxLzU1NTkxCnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAyNjgwOSA5NzQgOTYwIGQ4OWMyYjE5ZDgyYTU3YWVkNDI0MjA3MTQ5ZWMxMjE0CnByb3BzOiAxIDU1NTQ0IDM0IDAgMjVlNmMyZjc1NThiNzQ4NDAwMGQ0ZDA5MGRlYTViOTIKY3BhdGg6IC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3BvbS54bWwKY29weXJvb3Q6IDAgLwoKUExBSU4KSyA3CnBvbS54bWwKViAxOApmaWxlIDR6LjAucjEvNTU1OTEKSyAzCnNyYwpWIDE3CmRpciA0NC4wLnIxLzU1Mzk4CkVORApFTkRSRVAKaWQ6IDQzLjAucjEvNTU4ODEKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNTU3OTcgNzEgNzEgYzUwOTk2ZDI0MDhhZGNmMTViZmNkZjExZWIyOGQ3OTQKY3BhdGg6IC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlCmNvcHlyb290OiAwIC8KClBMQUlOCksgMTMKc3ZuOmVvbC1zdHlsZQpWIDYKbmF0aXZlCksgMTQKc3ZuOmV4ZWN1dGFibGUKViAwCgpFTkQKRU5EUkVQCmlkOiA1Mi4wLnIxLzU2MDk1CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAyNzc5NiA0MyAzMyBiYjYyZjk0ODIxYTgwOTM0NGIxYTQ3OTVmZGM0MGI4Nwpwcm9wczogMSA1NjAyMyA1OSAwIGFmNTA0MTQzY2UwNzg4NWRjNjMxMmJjNDk3Nzk5OGQ0CmNwYXRoOiAvdHJ1bmsvc2hlbGwvYnVpbGQuc2gKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAxMwpzdm46ZW9sLXN0eWxlClYgNgpuYXRpdmUKSyAxNApzdm46ZXhlY3V0YWJsZQpWIDAKCkVORApFTkRSRVAKaWQ6IDU1LjAucjEvNTYzNTUKdHlwZTogZmlsZQpjb3VudDogMAp0ZXh0OiAxIDI3ODUyIDU4IDQ4IGU0YmYzYjI2MDNlMjI5ZTMzMmUxOGExM2I0NThlYWMwCnByb3BzOiAxIDU2MjgzIDU5IDAgYWY1MDQxNDNjZTA3ODg1ZGM2MzEyYmM0OTc3OTk4ZDQKY3BhdGg6IC90cnVuay9zaGVsbC9iYWQtYnVpbGQuc2gKY29weXJvb3Q6IDAgLwoKUExBSU4KSyAxMgpiYWQtYnVpbGQuc2gKViAxOApmaWxlIDU1LjAucjEvNTYzNTUKSyA4CmJ1aWxkLnNoClYgMTgKZmlsZSA1Mi4wLnIxLzU2MDk1CkVORApFTkRSRVAKaWQ6IDUxLjAucjEvNTY2NDMKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNTY1NDcgODMgODMgOTgwZGNmODhjZGQ1N2U1MzA4ZTkwZTY2NDI3MDE5YmMKY3BhdGg6IC90cnVuay9zaGVsbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiA1OC4wLnIxLzU2ODE1CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAyNzkyMyAxNzIyIDE3MDggYzNhZWU4NDdhNGNmM2I0MDk3OWZjOTJkNWM2YjZlNGMKcHJvcHM6IDEgNTY3NjggMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL21hdmVuLW9uZS1wcm9qZWN0cy9taXNzaW5nLXJlcG9zaXRvcnktZWxlbWVudC1wcm9qZWN0LnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiA1Yi4wLnIxLzU3MDk3CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAyOTY1OCAyMDE4IDIwMDQgYTM1MTUwYWY1ODg1NTVlMGM4YjhjYzIwMmE0YTRmYjYKcHJvcHM6IDEgNTcwNTAgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL21hdmVuLW9uZS1wcm9qZWN0cy9leHRlbmQtZWxlbWVudC1wcm9qZWN0LnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiA1ZC4wLnIxLzU3MzY3CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAzMTY4OSAxOTc3IDE5NjMgOTdhN2Y0M2JiMDZhYTQ0NDBiZDg0ODNmOWNlZWUzNTMKcHJvcHM6IDEgNTczMjAgMzQgMCAyNWU2YzJmNzU1OGI3NDg0MDAwZDRkMDkwZGVhNWI5MgpjcGF0aDogL3RydW5rL21hdmVuLW9uZS1wcm9qZWN0cy92YWxpZC1wcm9qZWN0LnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDEzCnN2bjplb2wtc3R5bGUKViA2Cm5hdGl2ZQpFTkQKRU5EUkVQCmlkOiA1Zi4wLnIxLzU3NjI4CnR5cGU6IGZpbGUKY291bnQ6IDAKdGV4dDogMSAzMzY3OSA4ODAgODY2IDBkZWY5NmE4ZDAzNzg0ZTJmNWMyODdjODU5ZDgzNDMxCnByb3BzOiAxIDU3NTgxIDM0IDAgMjVlNmMyZjc1NThiNzQ4NDAwMGQ0ZDA5MGRlYTViOTIKY3BhdGg6IC90cnVuay9tYXZlbi1vbmUtcHJvamVjdHMvdW5wYXJzZWFibGUtY29udGVudC1wcm9qZWN0LnhtbApjb3B5cm9vdDogMCAvCgpQTEFJTgpLIDI2CmV4dGVuZC1lbGVtZW50LXByb2plY3QueG1sClYgMTgKZmlsZSA1Yi4wLnIxLzU3MDk3CksgMzgKbWlzc2luZy1yZXBvc2l0b3J5LWVsZW1lbnQtcHJvamVjdC54bWwKViAxOApmaWxlIDU4LjAucjEvNTY4MTUKSyAzMQp1bnBhcnNlYWJsZS1jb250ZW50LXByb2plY3QueG1sClYgMTgKZmlsZSA1Zi4wLnIxLzU3NjI4CksgMTcKdmFsaWQtcHJvamVjdC54bWwKViAxOApmaWxlIDVkLjAucjEvNTczNjcKRU5ECkVORFJFUAppZDogNTcuMC5yMS81ODEwMwp0eXBlOiBkaXIKY291bnQ6IDAKdGV4dDogMSA1Nzg1NCAyMzYgMjM2IDQyNjMwNTdkZDE0YzM4MzE4OWRlNzNjMmY5NGIxMWQ0CmNwYXRoOiAvdHJ1bmsvbWF2ZW4tb25lLXByb2plY3RzCmNvcHlyb290OiAwIC8KClBMQUlOCksgMwphbnQKViAxNwpkaXIgMWwuMC5yMS80MDk5MwpLIDIyCmNvbnRpbnV1bS0yNDM3LWV4YW1wbGUKViAxNwpkaXIgNDMuMC5yMS81NTg4MQpLIDMxCmNvbnRpbnV1bS1idWlsZC1xdWV1ZS10ZXN0LWRhdGEKViAxNwpkaXIgMm4uMC5yMS80NzY5MgpLIDEyCmZsYXQtZXhhbXBsZQpWIDE2CmRpciAzLjAucjEvNDA1NzAKSyAxOAptYXZlbi1vbmUtcHJvamVjdHMKViAxNwpkaXIgNTcuMC5yMS81ODEwMwpLIDE4Cm1hdmVuLXR3by1wcm9qZWN0cwpWIDE3CmRpciAzYi4wLnIxLzUxOTYwCksgNQpzaGVsbApWIDE3CmRpciA1MS4wLnIxLzU2NjQzCksgMTQKc2ltcGxlLWV4YW1wbGUKViAxNwpkaXIgMXAuMC5yMS80NDc2NgpFTkQKRU5EUkVQCmlkOiAxLjAucjEvNTg2MTIKdHlwZTogZGlyCmNvdW50OiAwCnRleHQ6IDEgNTgyNDMgMzU2IDM1NiA4N2Q5MTJlYzliNWM0YzllNGVjMzdkM2VhNDY2NDQ3OQpjcGF0aDogL3RydW5rCmNvcHlyb290OiAwIC8KClBMQUlOCksgNQp0cnVuawpWIDE2CmRpciAxLjAucjEvNTg2MTIKRU5ECkVORFJFUAppZDogMC4wLnIxLzU4NzgxCnR5cGU6IGRpcgpwcmVkOiAwLjAucjAvMTcKY291bnQ6IDEKdGV4dDogMSA1ODczMiAzNiAzNiBiNGQwMDMzZjIxMjQ5ZTE1OWZjZTZjZWEyMjc2ZGY5NwpjcGF0aDogLwpjb3B5cm9vdDogMCAvCgpfNDcuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvdGVzdC9qYXZhCgpfMC4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuawoKXzR5LjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3BvbS54bWwKCl8yeS4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhL3NyYy90ZXN0L2phdmEvb3JnCgpfMXouMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bQoKXzU0LjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9zaGVsbC9iYWQtYnVpbGQuc2gKCl80Zi4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMKCl80aC4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvY29udGludXVtL2V4YW1wbGVzL0FwcFRlc3QuamF2YQoKXzYuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtd2ViYXBwL3NyYwoKXzF0LjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy90ZXN0L2phdmEKCl8xcC4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMKCl8xay4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9hbnQKCl80OS4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy90ZXN0L2phdmEvb3JnCgpfMWIuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9mbGF0L0FwcC5qYXZhCgpfMTMuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9zcmMvbWFpbi9qYXZhCgpfNGQuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvY29udGludXVtCgpfMXIuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL3Rlc3QKCl8zaC4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9tYXZlbi10d28tcHJvamVjdHMvbXVsdGktbW9kdWxlLW1hdmVuLXByb2plY3QvbWF2ZW4tdHdvLW11bHRpLW1vZHVsZS1wcm9qZWN0LW1vZHVsZTEKCl8zbS4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9tYXZlbi10d28tcHJvamVjdHMvbXVsdGktbW9kdWxlLW1hdmVuLXByb2plY3QvbWF2ZW4tdHdvLW11bHRpLW1vZHVsZS1wcm9qZWN0LW1vZHVsZTIKCl9tLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUKCl8yNi4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvbWFpbgoKXzVhLjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9tYXZlbi1vbmUtcHJvamVjdHMvZXh0ZW5kLWVsZW1lbnQtcHJvamVjdC54bWwKCl8xdi4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvdGVzdC9qYXZhL29yZwoKX3QuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9zcmMvdGVzdC9qYXZhL2NvbQoKXzE3LjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZQoKXzRsLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL21haW4vamF2YQoKXzMxLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2NvbnRpbnV1bS1idWlsZC1xdWV1ZS10ZXN0LWRhdGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bQoKXzRiLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlCgpfNDIuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZQoKXzUwLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL3NoZWxsCgpfMzUuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL2NvbnRpbnV1bS1idWlsZC1xdWV1ZS10ZXN0LWRhdGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bS9leGFtcGxlcy9CYXNpY1RocmVhZFRlc3QuamF2YQoKXzRwLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlCgpfNDAuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9taXNzaW5nLXNjbS1lbGVtZW50LXBvbS54bWwKCl9oLjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC13ZWJhcHAvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvd2ViLnhtbAoKXzM4LjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhL3BvbS54bWwKCl8yNy4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvbWFpbi9qYXZhCgpfNWMuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL21hdmVuLW9uZS1wcm9qZWN0cy92YWxpZC1wcm9qZWN0LnhtbAoKXzIuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvZmxhdC1leGFtcGxlCgpfNTEuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL3NoZWxsL2J1aWxkLnNoCgpfMjMuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMvQXBwVGVzdC5qYXZhCgpfMzMuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvY29udGludXVtL2V4YW1wbGVzCgpfbi4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYwoKXzJ2LjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhL3NyYy90ZXN0L2phdmEvY29uZmlnL3Rlc3RuZy54bWwKCl8zcS4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3RzL211bHRpLW1vZHVsZS1tYXZlbi1wcm9qZWN0L3BvbS54bWwKCl8yZi4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvY29udGludXVtL2V4YW1wbGVzCgpfMTkuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL2ZsYXQKCl8xaC4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtcGFyZW50L3BvbS54bWwKCl8zZS4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3RzL21pc3NpbmctY29ubmVjdGlvbi1lbGVtZW50LXBvbS54bWwKCl8ycC4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhL3NyYy90ZXN0CgpfNG4uMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvbWFpbi9qYXZhL29yZwoKXzN3LjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9tYXZlbi10d28tcHJvamVjdHMvdmFsaWQtcG9tLnhtbAoKXzQzLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2NvbnRpbnV1bS0yNDM3LWV4YW1wbGUvc3JjCgpfM2EuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3RzCgpfMjkuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL21haW4vamF2YS9vcmcKCl8xNS4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy9tYWluL2phdmEvY29tCgpfYS4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC13ZWJhcHAvc3JjL21haW4vcmVzb3VyY2VzCgpfMmQuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbnRpbnV1bQoKXzR2LjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMvQXBwLmphdmEKCl9rLjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC13ZWJhcHAvcG9tLnhtbAoKXzNzLjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9tYXZlbi10d28tcHJvamVjdHMvbWlzc2luZy1tb2R1bGVzLXBvbS54bWwKCl8yay4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvcG9tLnhtbAoKX2QuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LXdlYmFwcC9zcmMvbWFpbi93ZWJhcHAvaW5kZXguanNwCgpfNTYuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvbWF2ZW4tb25lLXByb2plY3RzCgpfMnQuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9zcmMvdGVzdC9qYXZhL2NvbmZpZwoKXzIxLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMKCl8xeC4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9zaW1wbGUtZXhhbXBsZS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUKCl8ybS4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9jb250aW51dW0tYnVpbGQtcXVldWUtdGVzdC1kYXRhCgpfMmIuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvc2ltcGxlLWV4YW1wbGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlCgpfM2IuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9zcGVjaWZpZWQtbm90aWZpZXJzLXBvbS54bWwKCl8zZy4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9tYXZlbi10d28tcHJvamVjdHMvbXVsdGktbW9kdWxlLW1hdmVuLXByb2plY3QKCl8xZy4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1wYXJlbnQKCl8zeS4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3RzL21pc3NpbmctcGFyZW50LXBvbS54bWwKCl80ci4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0KCl81Ny4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvbWF2ZW4tb25lLXByb2plY3RzL21pc3NpbmctcmVwb3NpdG9yeS1lbGVtZW50LXByb2plY3QueG1sCgpfcC4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy90ZXN0CgpfZy4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC13ZWJhcHAvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYKCl8xMi4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy9tYWluCgpfYy4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC13ZWJhcHAvc3JjL21haW4vd2ViYXBwCgpfNHQuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvY29udGludXVtL2V4YW1wbGVzCgpfMnIuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9zcmMvdGVzdC9qYXZhCgpfMm4uMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLWJ1aWxkLXF1ZXVlLXRlc3QtZGF0YS9zcmMKCl8zdS4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvbWF2ZW4tdHdvLXByb2plY3RzL21pc3NpbmctdHlwZS1lbGVtZW50LXBvbS54bWwKCl80NS4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9jb250aW51dW0tMjQzNy1leGFtcGxlL3NyYy90ZXN0CgpfMWwuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL2FudC9idWlsZC54bWwKCl80LjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LXdlYmFwcAoKX3guMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9zcmMvdGVzdC9qYXZhL2NvbS9leGFtcGxlL2ZsYXQKCl96LjAudDAtMSBhZGQgdHJ1ZSB0cnVlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy90ZXN0L2phdmEvY29tL2V4YW1wbGUvZmxhdC9BcHBUZXN0LmphdmEKCl9yLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LWNvcmUvc3JjL3Rlc3QvamF2YQoKXzFvLjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL3NpbXBsZS1leGFtcGxlCgpfNGsuMC50MC0xIGFkZCBmYWxzZSBmYWxzZSAvdHJ1bmsvY29udGludXVtLTI0MzctZXhhbXBsZS9zcmMvbWFpbgoKXzJ6LjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2NvbnRpbnV1bS1idWlsZC1xdWV1ZS10ZXN0LWRhdGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlCgpfM2ouMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9tdWx0aS1tb2R1bGUtbWF2ZW4tcHJvamVjdC9tYXZlbi10d28tbXVsdGktbW9kdWxlLXByb2plY3QtbW9kdWxlMS9wb20ueG1sCgpfM24uMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL21hdmVuLXR3by1wcm9qZWN0cy9tdWx0aS1tb2R1bGUtbWF2ZW4tcHJvamVjdC9tYXZlbi10d28tbXVsdGktbW9kdWxlLXByb2plY3QtbW9kdWxlMi9wb20ueG1sCgpfMmguMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL3NpbXBsZS1leGFtcGxlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9jb250aW51dW0vZXhhbXBsZXMvQXBwLmphdmEKCl8xZS4wLnQwLTEgYWRkIHRydWUgdHJ1ZSAvdHJ1bmsvZmxhdC1leGFtcGxlL2ZsYXQtY29yZS9wb20ueG1sCgpfNWUuMC50MC0xIGFkZCB0cnVlIHRydWUgL3RydW5rL21hdmVuLW9uZS1wcm9qZWN0cy91bnBhcnNlYWJsZS1jb250ZW50LXByb2plY3QueG1sCgpfdi4wLnQwLTEgYWRkIGZhbHNlIGZhbHNlIC90cnVuay9mbGF0LWV4YW1wbGUvZmxhdC1jb3JlL3NyYy90ZXN0L2phdmEvY29tL2V4YW1wbGUKCl84LjAudDAtMSBhZGQgZmFsc2UgZmFsc2UgL3RydW5rL2ZsYXQtZXhhbXBsZS9mbGF0LXdlYmFwcC9zcmMvbWFpbgoKCjU4NzgxIDU4OTEwCg==