ZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvLmdyYWRsZS8yLjQvdGFza0FydGlmYWN0cy9jYWNoZS5wcm9wZXJ0aWVzLmxvY2sgYi9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvY2FjaGUucHJvcGVydGllcy5sb2NrCmluZGV4IDNmNmZlYmUuLjQ5ZmI4YjYgMTAwNjQ0Ci0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvLmdyYWRsZS8yLjQvdGFza0FydGlmYWN0cy9jYWNoZS5wcm9wZXJ0aWVzLmxvY2sKKysrIGIvYXBhY2hlLXJhdC1ncmFkbGUvc3JjL2dyYWRsZS8uZ3JhZGxlLzIuNC90YXNrQXJ0aWZhY3RzL2NhY2hlLnByb3BlcnRpZXMubG9jawpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvZmlsZUhhc2hlcy5iaW4gYi9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvZmlsZUhhc2hlcy5iaW4KaW5kZXggN2Y2MjJkNi4uZWQyZmJlNyAxMDA2NDQKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvc3JjL2dyYWRsZS8uZ3JhZGxlLzIuNC90YXNrQXJ0aWZhY3RzL2ZpbGVIYXNoZXMuYmluCisrKyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvLmdyYWRsZS8yLjQvdGFza0FydGlmYWN0cy9maWxlSGFzaGVzLmJpbgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvZmlsZVNuYXBzaG90cy5iaW4gYi9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvZmlsZVNuYXBzaG90cy5iaW4KaW5kZXggODVjOGYyMS4uZjc4Zjc2ZiAxMDA2NDQKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvc3JjL2dyYWRsZS8uZ3JhZGxlLzIuNC90YXNrQXJ0aWZhY3RzL2ZpbGVTbmFwc2hvdHMuYmluCisrKyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvLmdyYWRsZS8yLjQvdGFza0FydGlmYWN0cy9maWxlU25hcHNob3RzLmJpbgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvb3V0cHV0RmlsZVN0YXRlcy5iaW4gYi9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvb3V0cHV0RmlsZVN0YXRlcy5iaW4KaW5kZXggNDcxZWIzNC4uOThjMmE0ZCAxMDA2NDQKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvc3JjL2dyYWRsZS8uZ3JhZGxlLzIuNC90YXNrQXJ0aWZhY3RzL291dHB1dEZpbGVTdGF0ZXMuYmluCisrKyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvLmdyYWRsZS8yLjQvdGFza0FydGlmYWN0cy9vdXRwdXRGaWxlU3RhdGVzLmJpbgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvdGFza0FydGlmYWN0cy5iaW4gYi9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlLy5ncmFkbGUvMi40L3Rhc2tBcnRpZmFjdHMvdGFza0FydGlmYWN0cy5iaW4KaW5kZXggMTU5OTBjNS4uOTU0MzQzZSAxMDA2NDQKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvc3JjL2dyYWRsZS8uZ3JhZGxlLzIuNC90YXNrQXJ0aWZhY3RzL3Rhc2tBcnRpZmFjdHMuYmluCisrKyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvLmdyYWRsZS8yLjQvdGFza0FydGlmYWN0cy90YXNrQXJ0aWZhY3RzLmJpbgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvYW50cnVuL2J1aWxkLW1haW4ueG1sIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2FudHJ1bi9idWlsZC1tYWluLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU5ODhiMC4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvYW50cnVuL2J1aWxkLW1haW4ueG1sCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KLTxwcm9qZWN0IG5hbWU9Im1hdmVuLWFudHJ1bi0iIGRlZmF1bHQ9Im1haW4iICA+Ci08dGFyZ2V0IG5hbWU9Im1haW4iPg0KLSAgPGNvcHkgZmlsZT0iQzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHRhcmdldC9ncmFkbGUtYnVpbGQvbGlicy9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULmphciIgb3ZlcndyaXRlPSJ0cnVlIiB0b2ZpbGU9IkM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVx0YXJnZXQvYXBhY2hlLXJhdC1ncmFkbGUtMC4xMi1TTkFQU0hPVC5qYXIiLz4NCi0gIDxjb3B5IGZpbGU9IkM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVx0YXJnZXQvZ3JhZGxlLWJ1aWxkL2xpYnMvYXBhY2hlLXJhdC1ncmFkbGUtMC4xMi1TTkFQU0hPVC1zb3VyY2VzLmphciIgb3ZlcndyaXRlPSJ0cnVlIiB0b2ZpbGU9IkM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVx0YXJnZXQvYXBhY2hlLXJhdC1ncmFkbGUtMC4xMi1TTkFQU0hPVC1zb3VyY2VzLmphciIvPg0KLSAgPGNvcHkgZmlsZT0iQzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHRhcmdldC9ncmFkbGUtYnVpbGQvbGlicy9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULWphdmFkb2MuamFyIiBvdmVyd3JpdGU9InRydWUiIHRvZmlsZT0iQzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHRhcmdldC9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULWphdmFkb2MuamFyIi8+DQotICA8Y29weSBmaWxlPSJDOlxVc2Vyc1xqd2lcYWZ3XGFwYWNoZS1yYXRcYXBhY2hlLXJhdC1ncmFkbGVcdGFyZ2V0L2dyYWRsZS1idWlsZC9saWJzL2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtZ3Jvb3Z5ZG9jLmphciIgb3ZlcndyaXRlPSJ0cnVlIiB0b2ZpbGU9IkM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVx0YXJnZXQvYXBhY2hlLXJhdC1ncmFkbGUtMC4xMi1TTkFQU0hPVC1ncm9vdnlkb2MuamFyIi8+DQotPC90YXJnZXQ+Ci08L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtZ3Jvb3Z5ZG9jLmphciBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULWdyb292eWRvYy5qYXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlZTc2NTEuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtZ3Jvb3Z5ZG9jLmphcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULWphdmFkb2MuamFyIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtamF2YWRvYy5qYXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhY2YwYTAuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtamF2YWRvYy5qYXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvYXBhY2hlLXJhdC1ncmFkbGUtMC4xMi1TTkFQU0hPVC1zb3VyY2VzLmphciBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULXNvdXJjZXMuamFyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDMzMDFjLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULXNvdXJjZXMuamFyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QuamFyIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QuamFyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjVhZGMyLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULmphcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9jbGFzc2VzL01FVEEtSU5GL0RFUEVOREVOQ0lFUyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9jbGFzc2VzL01FVEEtSU5GL0RFUEVOREVOQ0lFUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTRkNDY2MC4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvY2xhc3Nlcy9NRVRBLUlORi9ERVBFTkRFTkNJRVMKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIG9mIHRoaXMgcHJvamVjdCBkZXRlcm1pbmVkIGZyb20gdGhlCi0vLyBtYXZlbiBwb20gb3JnYW5pemVkIGJ5IG9yZ2FuaXphdGlvbi4KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1BcGFjaGUgQ3JlYWR1ciBSYXQ6OlBsdWdpbjRHcmFkbGUKLQotCi1Gcm9tOiAnQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24nIChodHRwOi8vd3d3LmFwYWNoZS5vcmcpCi0gIC0gQXBhY2hlIENyZWFkdXIgUmF0OjpBUEkgKGh0dHA6Ly9jcmVhZHVyLmFwYWNoZS5vcmcvcmF0L2FwYWNoZS1yYXQtYXBpLykgb3JnLmFwYWNoZS5yYXQ6YXBhY2hlLXJhdC1hcGk6amFyOjAuMTItU05BUFNIT1QKLSAgICBMaWNlbnNlOiBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLSAgLSBBcGFjaGUgQ3JlYWR1ciBSYXQ6OkNvcmUgKGh0dHA6Ly9jcmVhZHVyLmFwYWNoZS5vcmcvcmF0L2FwYWNoZS1yYXQtY29yZS8pIG9yZy5hcGFjaGUucmF0OmFwYWNoZS1yYXQtY29yZTpqYXI6MC4xMi1TTkFQU0hPVAotICAgIExpY2Vuc2U6IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIgIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0KQotICAtIEFwYWNoZSBDcmVhZHVyIFJhdDo6VGFza3M0QW50IChodHRwOi8vY3JlYWR1ci5hcGFjaGUub3JnL3JhdC9hcGFjaGUtcmF0LXRhc2tzLykgb3JnLmFwYWNoZS5yYXQ6YXBhY2hlLXJhdC10YXNrczpqYXI6MC4xMi1TTkFQU0hPVAotICAgIExpY2Vuc2U6IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIgIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0KQotCi1Gcm9tOiAnVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uJyAoaHR0cDovL3d3dy5hcGFjaGUub3JnLykKLSAgLSBDb21tb25zIENMSSAoaHR0cDovL2NvbW1vbnMuYXBhY2hlLm9yZy9jbGkvKSBjb21tb25zLWNsaTpjb21tb25zLWNsaTpqYXI6MS4yCi0gICAgTGljZW5zZTogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQpCi0gIC0gQ29tbW9ucyBDb2xsZWN0aW9ucyAoaHR0cDovL2NvbW1vbnMuYXBhY2hlLm9yZy9jb2xsZWN0aW9ucy8pIGNvbW1vbnMtY29sbGVjdGlvbnM6Y29tbW9ucy1jb2xsZWN0aW9uczpqYXI6My4yLjEKLSAgICBMaWNlbnNlOiBUaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLSAgLSBDb21tb25zIElPIChodHRwOi8vY29tbW9ucy5hcGFjaGUub3JnL2lvLykgY29tbW9ucy1pbzpjb21tb25zLWlvOmphcjoyLjIKLSAgICBMaWNlbnNlOiBUaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLSAgLSBDb21tb25zIExhbmcgKGh0dHA6Ly9jb21tb25zLmFwYWNoZS5vcmcvbGFuZy8pIGNvbW1vbnMtbGFuZzpjb21tb25zLWxhbmc6amFyOjIuNgotICAgIExpY2Vuc2U6IFRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjAgIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0KQotICAtIENvbW1vbnMgQ29tcHJlc3MgKGh0dHA6Ly9jb21tb25zLmFwYWNoZS5vcmcvY29tcHJlc3MvKSBvcmcuYXBhY2hlLmNvbW1vbnM6Y29tbW9ucy1jb21wcmVzczpqYXI6MS41Ci0gICAgTGljZW5zZTogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQpCi0KLQotCi0KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9jbGFzc2VzL01FVEEtSU5GL0xJQ0VOU0UgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvY2xhc3Nlcy9NRVRBLUlORi9MSUNFTlNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjQ1Njk1Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9jbGFzc2VzL01FVEEtSU5GL0xJQ0VOU0UKKysrIC9kZXYvbnVsbApAQCAtMSwyMDIgKzAsMCBAQAotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAotICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLwotCi0gICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KLQotICAgMS4gRGVmaW5pdGlvbnMuCi0KLSAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCi0gICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KLQotICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKLSAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KLQotICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAotICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgotICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKLSAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQotICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKLSAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQotICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KLQotICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KLQotICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCi0gICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCi0gICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotCi0gICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAotICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAotICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAotICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgotCi0gICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgotICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQotICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCi0gICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgotCi0gICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0Ci0gICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCi0gICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCi0gICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcwotICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCi0gICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCi0gICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgotCi0gICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZwotICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucwotICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5Ci0gICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCi0gICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKLSAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgotICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAotICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KLSAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCi0gICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQotICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0Ci0gICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQotICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCi0KLSAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0gICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKLSAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgotCi0gICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKLSAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0gICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKLSAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQotICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KLQotICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0gICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0gICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCi0gICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKLSAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCi0gICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgotICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQotICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKLSAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCi0gICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCi0gICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAotICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcwotICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCi0gICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi0KLSAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCi0gICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKLSAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91Ci0gICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLQotICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKLSAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAotCi0gICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCi0gICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCi0KLSAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcwotICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKLSAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAotICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKLSAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCi0KLSAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cwotICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKLSAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKLSAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKLSAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKLSAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAotICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKLSAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKLSAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCi0gICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCi0gICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAotICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCi0gICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKLSAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKLSAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKLSAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCi0KLSAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAotICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwotICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgotICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCi0gICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKLSAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCi0KLSAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKLSAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawotICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgotICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQotICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKLSAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KLQotICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQotICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAotICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCi0gICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KLQotICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCi0gICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCi0gICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgotICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKLSAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKLSAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQotICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55Ci0gICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCi0KLSAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAotICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCi0gICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQotICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKLSAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKLSAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQotICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQotICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAotICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKLSAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKLSAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KLQotICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZwotICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKLSAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCi0gICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcwotICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKLSAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCi0gICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCi0gICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKLSAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KLSAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgotCi0gICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKLQotICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgotCi0gICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZwotICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgotICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKLSAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCi0gICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKLSAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKLSAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgotICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgotCi0gICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KLQotICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLQotICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotCi0gICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9jbGFzc2VzL01FVEEtSU5GL05PVElDRSBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9jbGFzc2VzL01FVEEtSU5GL05PVElDRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E2NTliOC4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvY2xhc3Nlcy9NRVRBLUlORi9OT1RJQ0UKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotQXBhY2hlIENyZWFkdXIgUmF0OjpQbHVnaW40R3JhZGxlCi1Db3B5cmlnaHQgMjAwNi0yMDE1IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0KLVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYXQKLVRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5hcGFjaGUub3JnLykuCi0KLQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFBsdWdpbiRfY29uZmlndXJlRGVwZW5kZW5jaWVzX2Nsb3N1cmUxLmNsYXNzIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFBsdWdpbiRfY29uZmlndXJlRGVwZW5kZW5jaWVzX2Nsb3N1cmUxLmNsYXNzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGVlMGJhLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW4kX2NvbmZpZ3VyZURlcGVuZGVuY2llc19jbG9zdXJlMS5jbGFzcworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW4kX2NvbmZpZ3VyZURlcGVuZGVuY2llc19jbG9zdXJlMi5jbGFzcyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW4kX2NvbmZpZ3VyZURlcGVuZGVuY2llc19jbG9zdXJlMi5jbGFzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMyNzUzYi4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luJF9jb25maWd1cmVEZXBlbmRlbmNpZXNfY2xvc3VyZTIuY2xhc3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luJF9jb25maWd1cmVEZXBlbmRlbmNpZXNfY2xvc3VyZTMuY2xhc3MgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luJF9jb25maWd1cmVEZXBlbmRlbmNpZXNfY2xvc3VyZTMuY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyMDA3NmMuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFBsdWdpbiRfY29uZmlndXJlRGVwZW5kZW5jaWVzX2Nsb3N1cmUzLmNsYXNzCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFBsdWdpbi5jbGFzcyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW4uY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2YzI3NTAuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFBsdWdpbi5jbGFzcworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrJF9jb3VudFVuYXByb3ZlZFVua25vd25MaWNlbnNlc19jbG9zdXJlMi5jbGFzcyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrJF9jb3VudFVuYXByb3ZlZFVua25vd25MaWNlbnNlc19jbG9zdXJlMi5jbGFzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQxNmIxYS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzayRfY291bnRVbmFwcm92ZWRVbmtub3duTGljZW5zZXNfY2xvc3VyZTIuY2xhc3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzayRfZ2VuZXJhdGVIdG1sUmVwb3J0X2Nsb3N1cmUzLmNsYXNzIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2skX2dlbmVyYXRlSHRtbFJlcG9ydF9jbG9zdXJlMy5jbGFzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA0ZjkxMy4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzayRfZ2VuZXJhdGVIdG1sUmVwb3J0X2Nsb3N1cmUzLmNsYXNzCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2skX2dlbmVyYXRlWG1sUmVwb3J0X2Nsb3N1cmUxLmNsYXNzIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2skX2dlbmVyYXRlWG1sUmVwb3J0X2Nsb3N1cmUxLmNsYXNzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2E3NmYwLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrJF9nZW5lcmF0ZVhtbFJlcG9ydF9jbG9zdXJlMS5jbGFzcworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrJF9nZW5lcmF0ZVhtbFJlcG9ydF9jbG9zdXJlMV9jbG9zdXJlNC5jbGFzcyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrJF9nZW5lcmF0ZVhtbFJlcG9ydF9jbG9zdXJlMV9jbG9zdXJlNC5jbGFzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RmYTdhNi4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzayRfZ2VuZXJhdGVYbWxSZXBvcnRfY2xvc3VyZTFfY2xvc3VyZTQuY2xhc3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzayRfZ2VuZXJhdGVYbWxSZXBvcnRfY2xvc3VyZTFfY2xvc3VyZTRfY2xvc3VyZTUuY2xhc3MgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzayRfZ2VuZXJhdGVYbWxSZXBvcnRfY2xvc3VyZTFfY2xvc3VyZTRfY2xvc3VyZTUuY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZWQxYTEuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2skX2dlbmVyYXRlWG1sUmVwb3J0X2Nsb3N1cmUxX2Nsb3N1cmU0X2Nsb3N1cmU1LmNsYXNzCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2skX2dlbmVyYXRlWG1sUmVwb3J0X2Nsb3N1cmUxX2Nsb3N1cmU0X2Nsb3N1cmU1X2Nsb3N1cmU2LmNsYXNzIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL21haW4vb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2skX2dlbmVyYXRlWG1sUmVwb3J0X2Nsb3N1cmUxX2Nsb3N1cmU0X2Nsb3N1cmU1X2Nsb3N1cmU2LmNsYXNzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTlmYjZkLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrJF9nZW5lcmF0ZVhtbFJlcG9ydF9jbG9zdXJlMV9jbG9zdXJlNF9jbG9zdXJlNV9jbG9zdXJlNi5jbGFzcworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrJF9nZW5lcmF0ZVhtbFJlcG9ydF9jbG9zdXJlMV9jbG9zdXJlNF9jbG9zdXJlNV9jbG9zdXJlNl9jbG9zdXJlNy5jbGFzcyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrJF9nZW5lcmF0ZVhtbFJlcG9ydF9jbG9zdXJlMV9jbG9zdXJlNF9jbG9zdXJlNV9jbG9zdXJlNl9jbG9zdXJlNy5jbGFzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjYyNTQwYS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzayRfZ2VuZXJhdGVYbWxSZXBvcnRfY2xvc3VyZTFfY2xvc3VyZTRfY2xvc3VyZTVfY2xvc3VyZTZfY2xvc3VyZTcuY2xhc3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzay5jbGFzcyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmNsYXNzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmZjMTgzLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmNsYXNzCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL3Rlc3Qvb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdEludGVncmF0aW9uU3BlYy5jbGFzcyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy90ZXN0L29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRJbnRlZ3JhdGlvblNwZWMuY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3MjY0MzguLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9jbGFzc2VzL3Rlc3Qvb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdEludGVncmF0aW9uU3BlYy5jbGFzcworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy90ZXN0L29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW5Qcm9qZWN0U3BlYy5jbGFzcyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvY2xhc3Nlcy90ZXN0L29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW5Qcm9qZWN0U3BlYy5jbGFzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU3ZWQxYS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2NsYXNzZXMvdGVzdC9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luUHJvamVjdFNwZWMuY2xhc3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL2FsbGNsYXNzZXMtZnJhbWUuaHRtbCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvYWxsY2xhc3Nlcy1mcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDJkYjE3Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvYWxsY2xhc3Nlcy1mcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkFsbCBDbGFzc2VzPC90aXRsZT4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+Ci08bGluayBocmVmPSJncm9vdnkuaWNvIiB0eXBlPSJpbWFnZS94LWljb24iIHJlbD0ic2hvcnRjdXQgaWNvbiI+Ci08bGluayBocmVmPSJncm9vdnkuaWNvIiB0eXBlPSJpbWFnZS94LWljb24iIHJlbD0iaWNvbiI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIgdGl0bGU9IlN0eWxlIj4KLQotPC9oZWFkPgotPGJvZHkgY2xhc3M9ImxlZnQiPgotICAgIDxoMSBjbGFzcz0iYmFyIj5BbGwgQ2xhc3NlczwvaDE+Ci0gICAgPGRpdiBjbGFzcz0iaW5kZXhDb250YWluZXIiPgotICAgICAgICA8dWw+Ci0gICAgICAgIDxsaT48YSBocmVmPSJvcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luLmh0bWwiIHRpdGxlPSJjbGFzcyBpbiBvcmcuYXBhY2hlLnJhdC5ncmFkbGUiIHRhcmdldD0iY2xhc3NGcmFtZSI+UmF0UGx1Z2luPC9hPjwvbGk+Ci08bGk+PGEgaHJlZj0ib3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suaHRtbCIgdGl0bGU9ImNsYXNzIGluIG9yZy5hcGFjaGUucmF0LmdyYWRsZSIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj5SYXRUYXNrPC9hPjwvbGk+Ci0KLSAgICAgICAgPC91bD4KLSAgICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvZGVwcmVjYXRlZC1saXN0Lmh0bWwgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL2RlcHJlY2F0ZWQtbGlzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDE2Y2M3Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvZGVwcmVjYXRlZC1saXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KLQotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+Ci08IS0tIEdlbmVyYXRlZCBieSBncm9vdnlkb2MgKDIuMy4xMCkgb24gIC0tPgotICAgIDx0aXRsZT5EZXByZWNhdGVkIEFQSSAoYXBhY2hlLXJhdC1ncmFkbGUgMC4xMi1TTkFQU0hPVCBBUEkpPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJkYXRlIiBjb250ZW50PSIyMDE1LTA2LTI5Ij4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIgdGl0bGU9IlN0eWxlIj4KLSAgICA8bGluayBocmVmPSJncm9vdnkuaWNvIiB0eXBlPSJpbWFnZS94LWljb24iIHJlbD0ic2hvcnRjdXQgaWNvbiI+Ci0gICAgPGxpbmsgaHJlZj0iZ3Jvb3Z5LmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIiByZWw9Imljb24iPgotCi08L2hlYWQ+Ci08Ym9keSBjbGFzcz0iY2VudGVyIj4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tCi1pZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdpcy1leHRlcm5hbD10cnVlJykgPT0gLTEpIHsKLSAgICBwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRlcHJlY2F0ZWQgQVBJIChhcGFjaGUtcmF0LWdyYWRsZSAwLjEyLVNOQVBTSE9UIEFQSSkiOwotfQotLy8tLT4KLTwvc2NyaXB0PgotPG5vc2NyaXB0PgotICAgIDxkaXY+SmF2YVNjcmlwdCBpcyBkaXNhYmxlZCBvbiB5b3VyIGJyb3dzZXIuPC9kaXY+Ci08L25vc2NyaXB0PgotPCEtLSA9PT09PT09PT0gU1RBUlQgT0YgVE9QIE5BVkJBUiA9PT09PT09IC0tPgotPGRpdiBjbGFzcz0idG9wTmF2Ij48YSBuYW1lPSJuYXZiYXJfdG9wIj4KLSAgICA8IS0tICAgLS0+Ci08L2E+PGEgaHJlZj0iI3NraXAtbmF2YmFyX3RvcCIgdGl0bGU9IlNraXAgbmF2aWdhdGlvbiBsaW5rcyI+PC9hPjxhIG5hbWU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPgotICAgIDwhLS0gICAtLT4KLTwvYT4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiIHRpdGxlPSJOYXZpZ2F0aW9uIj4KLSAgICAgICAgPGxpPjxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+T3ZlcnZpZXc8L2E+PC9saT4KLSAgICAgICAgPGxpPlBhY2thZ2U8L2xpPgotICAgICAgICA8bGk+Q2xhc3M8L2xpPgotICAgICAgICA8bGkgY2xhc3M9Im5hdkJhckNlbGwxUmV2Ij5EZXByZWNhdGVkPC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4LWFsbC5odG1sIj5JbmRleDwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iaGVscC1kb2MuaHRtbCI+SGVscDwvYT48L2xpPgotICAgIDwvdWw+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9InN1Yk5hdiI+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0Ij4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWw/ZGVwcmVjYXRlZC1saXN0Lmh0bWwiIHRhcmdldD0iX3RvcCI+RnJhbWVzPC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJkZXByZWNhdGVkLWxpc3QuaHRtbCIgdGFyZ2V0PSJfdG9wIj5ObyBGcmFtZXM8L2E+PC9saT4KLSAgICA8L3VsPgotICAgIDxhIG5hbWU9InNraXAtbmF2YmFyX3RvcCI+Ci0gICAgICAgIDwhLS0gICAtLT4KLSAgICA8L2E+PC9kaXY+Ci08IS0tID09PT09PT09PSBFTkQgT0YgVE9QIE5BVkJBUiA9PT09PT09PT0gLS0+Ci08ZGl2IGNsYXNzPSJoZWFkZXIiPgotICAgIDxoMSB0aXRsZT0iRGVwcmVjYXRlZCBBUEkiIGNsYXNzPSJ0aXRsZSI+RGVwcmVjYXRlZCBBUEk8L2gxPgotICAgIDxoMiB0aXRsZT0iQ29udGVudHMiPkNvbnRlbnRzPC9oMj4KLSAgICA8dWw+Ci0gICAgICAgIAotICAgIDwvdWw+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRlbnRDb250YWluZXIiPgotCi0KLTwvZGl2PgotPCEtLSA9PT09PT09IFNUQVJUIE9GIEJPVFRPTSBOQVZCQVIgPT09PT09IC0tPgotPGRpdiBjbGFzcz0iYm90dG9tTmF2Ij48YSBuYW1lPSJuYXZiYXJfYm90dG9tIj4KLSAgICA8IS0tICAgLS0+Ci08L2E+PGEgaHJlZj0iI3NraXAtbmF2YmFyX2JvdHRvbSIgdGl0bGU9IlNraXAgbmF2aWdhdGlvbiBsaW5rcyI+PC9hPjxhIG5hbWU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPgotICAgIDwhLS0gICAtLT4KLTwvYT4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiIHRpdGxlPSJOYXZpZ2F0aW9uIj4KLSAgICAgICAgPGxpPjxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+T3ZlcnZpZXc8L2E+PC9saT4KLSAgICAgICAgPGxpPlBhY2thZ2U8L2xpPgotICAgICAgICA8bGk+Q2xhc3M8L2xpPgotICAgICAgICA8bGkgY2xhc3M9Im5hdkJhckNlbGwxUmV2Ij5EZXByZWNhdGVkPC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4LWFsbC5odG1sIj5JbmRleDwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iaGVscC1kb2MuaHRtbCI+SGVscDwvYT48L2xpPgotICAgIDwvdWw+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9InN1Yk5hdiI+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0Ij4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWw/ZGVwcmVjYXRlZC1saXN0Lmh0bWwiIHRhcmdldD0iX3RvcCI+RnJhbWVzPC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJkZXByZWNhdGVkLWxpc3QuaHRtbCIgdGFyZ2V0PSJfdG9wIj5ObyBGcmFtZXM8L2E+PC9saT4KLSAgICA8L3VsPgotICAgIDxkaXYgY2xhc3M9ImFib3V0TGFuZ3VhZ2UiPjxlbT5Hcm9vdnkgRG9jdW1lbnRhdGlvbjwvZW0+PC9kaXY+Ci0gICAgPGEgbmFtZT0ic2tpcC1uYXZiYXJfYm90dG9tIj4KLSAgICAgICAgPCEtLSAgIC0tPgotICAgIDwvYT48L2Rpdj4KLTwhLS0gPT09PT09PT0gRU5EIE9GIEJPVFRPTSBOQVZCQVIgPT09PT09PSAtLT4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9ncm9vdnkuaWNvIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9ncm9vdnkuaWNvCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTliOGQ4Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvZ3Jvb3Z5LmljbworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvaGVscC1kb2MuaHRtbCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvaGVscC1kb2MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg2NDBkYS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL2hlbHAtZG9jLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNzYgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci0KLQotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+Ci0gICAgICAgIDwhLS0gR2VuZXJhdGVkIGJ5IGdyb292eWRvYyAoMi4zLjEwKSBvbiAgLS0+Ci0gICAgICAgIDx0aXRsZT5BUEkgSGVscCAoYXBhY2hlLXJhdC1ncmFkbGUgMC4xMi1TTkFQU0hPVCBBUEkpPC90aXRsZT4KLSAgICAgICAgPGxpbmsgaHJlZj0iZ3Jvb3Z5LmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIiByZWw9InNob3J0Y3V0IGljb24iPgotICAgICAgICA8bGluayBocmVmPSJncm9vdnkuaWNvIiB0eXBlPSJpbWFnZS94LWljb24iIHJlbD0iaWNvbiI+Ci0gICAgICAgIDxtZXRhIG5hbWU9ImRhdGUiIGNvbnRlbnQ9IjIwMTUtMDYtMjkiPgotICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIgdGl0bGU9IlN0eWxlIj4KLSAgICA8L2hlYWQ+Ci08Ym9keSBjbGFzcz0iY2VudGVyIj4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tCi1pZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdpcy1leHRlcm5hbD10cnVlJykgPT0gLTEpIHsKLSAgICBwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFQSSBIZWxwIChhcGFjaGUtcmF0LWdyYWRsZSAwLjEyLVNOQVBTSE9UIEFQSSkiOwotfQotLy8tLT4KLTwvc2NyaXB0PgotPG5vc2NyaXB0PgotICAgIDxkaXY+SmF2YVNjcmlwdCBpcyBkaXNhYmxlZCBvbiB5b3VyIGJyb3dzZXIuPC9kaXY+Ci08L25vc2NyaXB0PgotPCEtLSA9PT09PT09PT0gU1RBUlQgT0YgVE9QIE5BVkJBUiA9PT09PT09IC0tPgotPGRpdiBjbGFzcz0idG9wTmF2Ij48YSBuYW1lPSJuYXZiYXJfdG9wIj4KLSAgICA8IS0tICAgLS0+Ci08L2E+PGEgaHJlZj0iI3NraXAtbmF2YmFyX3RvcCIgdGl0bGU9IlNraXAgbmF2aWdhdGlvbiBsaW5rcyI+PC9hPjxhIG5hbWU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPgotICAgIDwhLS0gICAtLT4KLTwvYT4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiIHRpdGxlPSJOYXZpZ2F0aW9uIj4KLSAgICAgICAgPGxpPjxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+T3ZlcnZpZXc8L2E+PC9saT4KLSAgICAgICAgPGxpPlBhY2thZ2U8L2xpPgotICAgICAgICA8bGk+Q2xhc3M8L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPkRlcHJlY2F0ZWQ8L2E+PC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4LWFsbC5odG1sIj5JbmRleDwvYT48L2xpPgotICAgICAgICA8bGkgY2xhc3M9Im5hdkJhckNlbGwxUmV2Ij5IZWxwPC9saT4KLSAgICA8L3VsPgotPC9kaXY+Ci08ZGl2IGNsYXNzPSJzdWJOYXYiPgotICAgIDx1bCBjbGFzcz0ibmF2TGlzdCI+Ci0gICAgICAgIDxsaT48YSBocmVmPSJpbmRleC5odG1sP2hlbHAtZG9jLmh0bWwiIHRhcmdldD0iX3RvcCI+RnJhbWVzPC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJoZWxwLWRvYy5odG1sIiB0YXJnZXQ9Il90b3AiPk5vIEZyYW1lczwvYT48L2xpPgotICAgIDwvdWw+Ci0gICAgPGEgbmFtZT0ic2tpcC1uYXZiYXJfdG9wIj4KLSAgICAgICAgPCEtLSAgIC0tPgotICAgIDwvYT48L2Rpdj4KLTwhLS0gPT09PT09PT09IEVORCBPRiBUT1AgTkFWQkFSID09PT09PT09PSAtLT4KLQotPGRpdiBjbGFzcz0iaGVhZGVyIj4KLSAgICA8aDEgY2xhc3M9InRpdGxlIj5Ib3cgVGhpcyBBUEkgRG9jdW1lbnQgSXMgT3JnYW5pemVkPC9oMT4KLSAgICA8ZGl2IGNsYXNzPSJzdWJUaXRsZSI+VGhpcyBBUEkgKEFwcGxpY2F0aW9uIFByb2dyYW1taW5nIEludGVyZmFjZSkgZG9jdW1lbnQgaGFzIHBhZ2VzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGl0ZW1zIGluIHRoZSBuYXZpZ2F0aW9uIGJhciwgZGVzY3JpYmVkIGFzIGZvbGxvd3MuPC9kaXY+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRlbnRDb250YWluZXIiPgotICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgPGgyPk92ZXJ2aWV3PC9oMj4KLSAgICAgICAgICAgIDxwPlRoZSA8YSBocmVmPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPk92ZXJ2aWV3PC9hPiBwYWdlIGlzIHRoZSBmcm9udCBwYWdlIG9mIHRoaXMgQVBJIGRvY3VtZW50IGFuZCBwcm92aWRlcyBhIGxpc3Qgb2YgYWxsIHBhY2thZ2VzIHdpdGggYSBzdW1tYXJ5IGZvciBlYWNoLiAgVGhpcyBwYWdlIGNhbiBhbHNvIGNvbnRhaW4gYW4gb3ZlcmFsbCBkZXNjcmlwdGlvbiBvZiB0aGUgc2V0IG9mIHBhY2thZ2VzLjwvcD4KLSAgICAgICAgPC9saT4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgPGgyPlBhY2thZ2U8L2gyPgotICAgICAgICAgICAgPHA+RWFjaCBwYWNrYWdlIGhhcyBhIHBhZ2UgdGhhdCBjb250YWlucyBhIGxpc3Qgb2YgaXRzIGNsYXNzZXMgYW5kIGludGVyZmFjZXMsIHdpdGggYSBzdW1tYXJ5IGZvciBlYWNoLiBUaGlzIHBhZ2UgY2FuIGNvbnRhaW4gc2l4IGNhdGVnb3JpZXM6PC9wPgotICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgIDxsaT5JbnRlcmZhY2VzIChpdGFsaWMpPC9saT4KLSAgICAgICAgICAgICAgICA8bGk+Q2xhc3NlczwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkVudW1zPC9saT4KLSAgICAgICAgICAgICAgICA8bGk+RXhjZXB0aW9uczwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkVycm9yczwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkFubm90YXRpb24gVHlwZXM8L2xpPgotICAgICAgICAgICAgPC91bD4KLSAgICAgICAgPC9saT4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgPGgyPkNsYXNzL0ludGVyZmFjZTwvaDI+Ci0gICAgICAgICAgICA8cD5FYWNoIGNsYXNzLCBpbnRlcmZhY2UsIG5lc3RlZCBjbGFzcyBhbmQgbmVzdGVkIGludGVyZmFjZSBoYXMgaXRzIG93biBzZXBhcmF0ZSBwYWdlLiBFYWNoIG9mIHRoZXNlIHBhZ2VzIGhhcyB0aHJlZSBzZWN0aW9ucyBjb25zaXN0aW5nIG9mIGEgY2xhc3MvaW50ZXJmYWNlIGRlc2NyaXB0aW9uLCBzdW1tYXJ5IHRhYmxlcywgYW5kIGRldGFpbGVkIG1lbWJlciBkZXNjcmlwdGlvbnM6PC9wPgotICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgIDxsaT5DbGFzcyBpbmhlcml0YW5jZSBkaWFncmFtPC9saT4KLSAgICAgICAgICAgICAgICA8bGk+RGlyZWN0IFN1YmNsYXNzZXM8L2xpPgotICAgICAgICAgICAgICAgIDxsaT5BbGwgS25vd24gU3ViaW50ZXJmYWNlczwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkFsbCBLbm93biBJbXBsZW1lbnRpbmcgQ2xhc3NlczwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkNsYXNzL2ludGVyZmFjZSBkZWNsYXJhdGlvbjwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkNsYXNzL2ludGVyZmFjZSBkZXNjcmlwdGlvbjwvbGk+Ci0gICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgQ2xhc3MgU3VtbWFyeTwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkZpZWxkIFN1bW1hcnk8L2xpPgotICAgICAgICAgICAgICAgIDxsaT5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9saT4KLSAgICAgICAgICAgICAgICA8bGk+TWV0aG9kIFN1bW1hcnk8L2xpPgotICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgIDx1bD4KLSAgICAgICAgICAgICAgICA8bGk+RmllbGQgRGV0YWlsPC9saT4KLSAgICAgICAgICAgICAgICA8bGk+Q29uc3RydWN0b3IgRGV0YWlsPC9saT4KLSAgICAgICAgICAgICAgICA8bGk+TWV0aG9kIERldGFpbDwvbGk+Ci0gICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgPHA+RWFjaCBzdW1tYXJ5IGVudHJ5IGNvbnRhaW5zIHRoZSBmaXJzdCBzZW50ZW5jZSBmcm9tIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhhdCBpdGVtLiBUaGUgc3VtbWFyeSBlbnRyaWVzIGFyZSBhbHBoYWJldGljYWwsIHdoaWxlIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbnMgYXJlIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhciBpbiB0aGUgc291cmNlIGNvZGUuIFRoaXMgcHJlc2VydmVzIHRoZSBsb2dpY2FsIGdyb3VwaW5ncyBlc3RhYmxpc2hlZCBieSB0aGUgcHJvZ3JhbW1lci48L3A+Ci0gICAgICAgIDwvbGk+Ci0gICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgIDxoMj5Bbm5vdGF0aW9uIFR5cGU8L2gyPgotICAgICAgICAgICAgPHA+RWFjaCBhbm5vdGF0aW9uIHR5cGUgaGFzIGl0cyBvd24gc2VwYXJhdGUgcGFnZSB3aXRoIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnM6PC9wPgotICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgIDxsaT5Bbm5vdGF0aW9uIFR5cGUgZGVjbGFyYXRpb248L2xpPgotICAgICAgICAgICAgICAgIDxsaT5Bbm5vdGF0aW9uIFR5cGUgZGVzY3JpcHRpb248L2xpPgotICAgICAgICAgICAgICAgIDxsaT5SZXF1aXJlZCBFbGVtZW50IFN1bW1hcnk8L2xpPgotICAgICAgICAgICAgICAgIDxsaT5PcHRpb25hbCBFbGVtZW50IFN1bW1hcnk8L2xpPgotICAgICAgICAgICAgICAgIDxsaT5FbGVtZW50IERldGFpbDwvbGk+Ci0gICAgICAgICAgICA8L3VsPgotICAgICAgICA8L2xpPgotICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICA8aDI+RW51bTwvaDI+Ci0gICAgICAgICAgICA8cD5FYWNoIGVudW0gaGFzIGl0cyBvd24gc2VwYXJhdGUgcGFnZSB3aXRoIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnM6PC9wPgotICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgIDxsaT5FbnVtIGRlY2xhcmF0aW9uPC9saT4KLSAgICAgICAgICAgICAgICA8bGk+RW51bSBkZXNjcmlwdGlvbjwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkVudW0gQ29uc3RhbnQgU3VtbWFyeTwvbGk+Ci0gICAgICAgICAgICAgICAgPGxpPkVudW0gQ29uc3RhbnQgRGV0YWlsPC9saT4KLSAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgIDwvbGk+Ci08IS0tICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICA8aDI+VHJlZSAoQ2xhc3MgSGllcmFyY2h5KTwvaDI+Ci0gICAgICAgICAgICA8cD5UaGVyZSBpcyBhIDxhIGhyZWY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+Q2xhc3MgSGllcmFyY2h5PC9hPiBwYWdlIGZvciBhbGwgcGFja2FnZXMsIHBsdXMgYSBoaWVyYXJjaHkgZm9yIGVhY2ggcGFja2FnZS4gRWFjaCBoaWVyYXJjaHkgcGFnZSBjb250YWlucyBhIGxpc3Qgb2YgY2xhc3NlcyBhbmQgYSBsaXN0IG9mIGludGVyZmFjZXMuIFRoZSBjbGFzc2VzIGFyZSBvcmdhbml6ZWQgYnkgaW5oZXJpdGFuY2Ugc3RydWN0dXJlIHN0YXJ0aW5nIHdpdGggPGNvZGU+amF2YS5sYW5nLk9iamVjdDwvY29kZT4uIFRoZSBpbnRlcmZhY2VzIGRvIG5vdCBpbmhlcml0IGZyb20gPGNvZGU+amF2YS5sYW5nLk9iamVjdDwvY29kZT4uPC9wPgotICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgIDxsaT5XaGVuIHZpZXdpbmcgdGhlIE92ZXJ2aWV3IHBhZ2UsIGNsaWNraW5nIG9uICJUcmVlIiBkaXNwbGF5cyB0aGUgaGllcmFyY2h5IGZvciBhbGwgcGFja2FnZXMuPC9saT4KLSAgICAgICAgICAgICAgICA8bGk+V2hlbiB2aWV3aW5nIGEgcGFydGljdWxhciBwYWNrYWdlLCBjbGFzcyBvciBpbnRlcmZhY2UgcGFnZSwgY2xpY2tpbmcgIlRyZWUiIGRpc3BsYXlzIHRoZSBoaWVyYXJjaHkgZm9yIG9ubHkgdGhhdCBwYWNrYWdlLjwvbGk+Ci0gICAgICAgICAgICA8L3VsPgotICAgICAgICA8L2xpPi0tPgotICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICA8aDI+RGVwcmVjYXRlZCBBUEk8L2gyPgotICAgICAgICAgICAgPHA+VGhlIDxhIGhyZWY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj5EZXByZWNhdGVkIEFQSTwvYT4gcGFnZSBsaXN0cyBhbGwgb2YgdGhlIEFQSSB0aGF0IGhhdmUgYmVlbiBkZXByZWNhdGVkLiBBIGRlcHJlY2F0ZWQgQVBJIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLCBnZW5lcmFsbHkgZHVlIHRvIGltcHJvdmVtZW50cywgYW5kIGEgcmVwbGFjZW1lbnQgQVBJIGlzIHVzdWFsbHkgZ2l2ZW4uIERlcHJlY2F0ZWQgQVBJcyBtYXkgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgaW1wbGVtZW50YXRpb25zLjwvcD4KLSAgICAgICAgPC9saT4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgPGgyPkluZGV4PC9oMj4KLSAgICAgICAgICAgIDxwPlRoZSA8YSBocmVmPSJpbmRleC1hbGwuaHRtbCI+SW5kZXg8L2E+IGNvbnRhaW5zIGFuIGFscGhhYmV0aWMgbGlzdCBvZiBhbGwgY2xhc3NlcywgaW50ZXJmYWNlcywgY29uc3RydWN0b3JzLCBtZXRob2RzLCBhbmQgZmllbGRzLjwvcD4KLSAgICAgICAgPC9saT4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgPGgyPkZyYW1lcy9ObyBGcmFtZXM8L2gyPgotICAgICAgICAgICAgPHA+VGhlc2UgbGlua3Mgc2hvdyBhbmQgaGlkZSB0aGUgSFRNTCBmcmFtZXMuICBBbGwgcGFnZXMgYXJlIGF2YWlsYWJsZSB3aXRoIG9yIHdpdGhvdXQgZnJhbWVzLjwvcD4KLSAgICAgICAgPC9saT4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgPGgyPkFsbCBDbGFzc2VzPC9oMj4KLSAgICAgICAgICAgIDxwPlRoZSA8YSBocmVmPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCI+QWxsIENsYXNzZXM8L2E+IGxpbmsgc2hvd3MgYWxsIGNsYXNzZXMgYW5kIGludGVyZmFjZXMgZXhjZXB0IG5vbi1zdGF0aWMgbmVzdGVkIHR5cGVzLjwvcD4KLSAgICAgICAgPC9saT4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgPGgyPlNlcmlhbGl6ZWQgRm9ybTwvaDI+Ci0gICAgICAgICAgICA8cD5FYWNoIHNlcmlhbGl6YWJsZSBvciBleHRlcm5hbGl6YWJsZSBjbGFzcyBoYXMgYSBkZXNjcmlwdGlvbiBvZiBpdHMgc2VyaWFsaXphdGlvbiBmaWVsZHMgYW5kIG1ldGhvZHMuIFRoaXMgaW5mb3JtYXRpb24gaXMgb2YgaW50ZXJlc3QgdG8gcmUtaW1wbGVtZW50b3JzLCBub3QgdG8gZGV2ZWxvcGVycyB1c2luZyB0aGUgQVBJLiBXaGlsZSB0aGVyZSBpcyBubyBsaW5rIGluIHRoZSBuYXZpZ2F0aW9uIGJhciwgeW91IGNhbiBnZXQgdG8gdGhpcyBpbmZvcm1hdGlvbiBieSBnb2luZyB0byBhbnkgc2VyaWFsaXplZCBjbGFzcyBhbmQgY2xpY2tpbmcgIlNlcmlhbGl6ZWQgRm9ybSIgaW4gdGhlICJTZWUgYWxzbyIgc2VjdGlvbiBvZiB0aGUgY2xhc3MgZGVzY3JpcHRpb24uPC9wPgotICAgICAgICA8L2xpPgotICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICA8aDI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9oMj4KLSAgICAgICAgICAgIDxwPlRoZSA8YSBocmVmPSJjb25zdGFudC12YWx1ZXMuaHRtbCI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9hPiBwYWdlIGxpc3RzIHRoZSBzdGF0aWMgZmluYWwgZmllbGRzIGFuZCB0aGVpciB2YWx1ZXMuPC9wPgotICAgICAgICA8L2xpPgotICAgIDwvdWw+Ci0gICAgPGVtPlRoaXMgaGVscCBmaWxlIGFwcGxpZXMgdG8gQVBJIGRvY3VtZW50YXRpb24gZ2VuZXJhdGVkIHVzaW5nIHRoZSBzdGFuZGFyZCBkb2NsZXQuPC9lbT48L2Rpdj4KLTwhLS0gPT09PT09PSBTVEFSVCBPRiBCT1RUT00gTkFWQkFSID09PT09PSAtLT4KLTxkaXYgY2xhc3M9ImJvdHRvbU5hdiI+PGEgbmFtZT0ibmF2YmFyX2JvdHRvbSI+Ci0gICAgPCEtLSAgIC0tPgotPC9hPjxhIGhyZWY9IiNza2lwLW5hdmJhcl9ib3R0b20iIHRpdGxlPSJTa2lwIG5hdmlnYXRpb24gbGlua3MiPjwvYT48YSBuYW1lPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij4KLSAgICA8IS0tICAgLS0+Ci08L2E+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0IiB0aXRsZT0iTmF2aWdhdGlvbiI+Ci0gICAgICAgIDxsaT48YSBocmVmPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPk92ZXJ2aWV3PC9hPjwvbGk+Ci0gICAgICAgIDxsaT5QYWNrYWdlPC9saT4KLSAgICAgICAgPGxpPkNsYXNzPC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj5EZXByZWNhdGVkPC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJpbmRleC1hbGwuaHRtbCI+SW5kZXg8L2E+PC9saT4KLSAgICAgICAgPGxpIGNsYXNzPSJuYXZCYXJDZWxsMVJldiI+SGVscDwvbGk+Ci0gICAgPC91bD4KLTwvZGl2PgotPGRpdiBjbGFzcz0ic3ViTmF2Ij4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiPgotICAgICAgICA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbD9oZWxwLWRvYy5odG1sIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iaGVscC1kb2MuaHRtbCIgdGFyZ2V0PSJfdG9wIj5ObyBGcmFtZXM8L2E+PC9saT4KLSAgICA8L3VsPgotICAgIDxkaXYgY2xhc3M9ImFib3V0TGFuZ3VhZ2UiPjxlbT5Hcm9vdnkgRG9jdW1lbnRhdGlvbjwvZW0+PC9kaXY+Ci0gICAgPGEgbmFtZT0ic2tpcC1uYXZiYXJfYm90dG9tIj4KLSAgICAgICAgPCEtLSAgIC0tPgotICAgIDwvYT48L2Rpdj4KLTwhLS0gPT09PT09PT0gRU5EIE9GIEJPVFRPTSBOQVZCQVIgPT09PT09PSAtLT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvaW5kZXgtYWxsLmh0bWwgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL2luZGV4LWFsbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzQ0MDI3Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvaW5kZXgtYWxsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOTUgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci0KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPgotICAgICAgICA8IS0tIEdlbmVyYXRlZCBieSBncm9vdnlkb2MgKDIuMy4xMCkgb24gIC0tPgotICAgICAgICA8dGl0bGU+SW5kZXggKGFwYWNoZS1yYXQtZ3JhZGxlIDAuMTItU05BUFNIT1QgQVBJKTwvdGl0bGU+Ci0gICAgICAgIDxtZXRhIG5hbWU9ImRhdGUiIGNvbnRlbnQ9IjIwMTUtMDYtMjkiPgotICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIgdGl0bGU9IlN0eWxlIj4KLSAgICA8L2hlYWQ+Ci08Ym9keSBjbGFzcz0iY2VudGVyIj4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tCi1pZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdpcy1leHRlcm5hbD10cnVlJykgPT0gLTEpIHsKLSAgICBwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkluZGV4IChhcGFjaGUtcmF0LWdyYWRsZSAwLjEyLVNOQVBTSE9UIEFQSSkiOwotfQotLy8tLT4KLTwvc2NyaXB0PgotPG5vc2NyaXB0PgotICAgIDxkaXY+SmF2YVNjcmlwdCBpcyBkaXNhYmxlZCBvbiB5b3VyIGJyb3dzZXIuPC9kaXY+Ci08L25vc2NyaXB0PgotCi08IS0tID09PT09PT09PSBTVEFSVCBPRiBUT1AgTkFWQkFSID09PT09PT0gLS0+Ci08ZGl2IGNsYXNzPSJ0b3BOYXYiPjxhIG5hbWU9Im5hdmJhcl90b3AiPgotICAgIDwhLS0gICAtLT4KLTwvYT48YSBocmVmPSIjc2tpcC1uYXZiYXJfdG9wIiB0aXRsZT0iU2tpcCBuYXZpZ2F0aW9uIGxpbmtzIj48L2E+PGEgbmFtZT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+Ci0gICAgPCEtLSAgIC0tPgotPC9hPgotICAgIDx1bCBjbGFzcz0ibmF2TGlzdCIgdGl0bGU9Ik5hdmlnYXRpb24iPgotICAgICAgICA8bGk+PGEgaHJlZj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj5PdmVydmlldzwvYT48L2xpPgotICAgICAgICA8bGk+UGFja2FnZTwvbGk+Ci0gICAgICAgIDxsaT5DbGFzczwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJkZXByZWNhdGVkLWxpc3QuaHRtbCI+RGVwcmVjYXRlZDwvYT48L2xpPgotICAgICAgICA8bGkgY2xhc3M9Im5hdkJhckNlbGwxUmV2Ij5JbmRleDwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJoZWxwLWRvYy5odG1sIj5IZWxwPC9hPjwvbGk+Ci0gICAgPC91bD4KLTwvZGl2PgotPGRpdiBjbGFzcz0ic3ViTmF2Ij4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiPgotICAgICAgICA8bGk+PGEgaHJlZj0iLi9pbmRleC5odG1sP2luZGV4LWFsbC5odG1sIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iaW5kZXgtYWxsLmh0bWwiIHRhcmdldD0iX3RvcCI+Tm8gRnJhbWVzPC9hPjwvbGk+Ci0gICAgPC91bD4KLSAgICA8YSBuYW1lPSJza2lwLW5hdmJhcl90b3AiPgotICAgICAgICA8IS0tICAgLS0+Ci0gICAgPC9hPjwvZGl2PgotPCEtLSA9PT09PT09PT0gRU5EIE9GIFRPUCBOQVZCQVIgPT09PT09PT09IC0tPgotPGRpdiBjbGFzcz0iY29udGVudENvbnRhaW5lciI+Ci0KLTxhIGhyZWY9IiNfQV8iPkE8L2E+Ci0KLTxhIGhyZWY9IiNfQl8iPkI8L2E+Ci0KLTxhIGhyZWY9IiNfQ18iPkM8L2E+Ci0KLTxhIGhyZWY9IiNfRF8iPkQ8L2E+Ci0KLTxhIGhyZWY9IiNfRV8iPkU8L2E+Ci0KLTxhIGhyZWY9IiNfRl8iPkY8L2E+Ci0KLTxhIGhyZWY9IiNfR18iPkc8L2E+Ci0KLTxhIGhyZWY9IiNfSF8iPkg8L2E+Ci0KLTxhIGhyZWY9IiNfSV8iPkk8L2E+Ci0KLTxhIGhyZWY9IiNfSl8iPko8L2E+Ci0KLTxhIGhyZWY9IiNfS18iPks8L2E+Ci0KLTxhIGhyZWY9IiNfTF8iPkw8L2E+Ci0KLTxhIGhyZWY9IiNfTV8iPk08L2E+Ci0KLTxhIGhyZWY9IiNfTl8iPk48L2E+Ci0KLTxhIGhyZWY9IiNfT18iPk88L2E+Ci0KLTxhIGhyZWY9IiNfUF8iPlA8L2E+Ci0KLTxhIGhyZWY9IiNfUV8iPlE8L2E+Ci0KLTxhIGhyZWY9IiNfUl8iPlI8L2E+Ci0KLTxhIGhyZWY9IiNfU18iPlM8L2E+Ci0KLTxhIGhyZWY9IiNfVF8iPlQ8L2E+Ci0KLTxhIGhyZWY9IiNfVV8iPlU8L2E+Ci0KLTxhIGhyZWY9IiNfVl8iPlY8L2E+Ci0KLTxhIGhyZWY9IiNfV18iPlc8L2E+Ci0KLTxhIGhyZWY9IiNfWF8iPlg8L2E+Ci0KLTxhIGhyZWY9IiNfWV8iPlk8L2E+Ci0KLTxhIGhyZWY9IiNfWl8iPlo8L2E+Ci0KLTxhIGhyZWY9IiNfX18iPl88L2E+Ci0KLQotCi08YSBuYW1lPSJfQV8iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+QTwvaDI+Ci08ZGw+Ci0KLTxkdD48c3BhbiBjbGFzcz0ic3Ryb25nIj48YSBocmVmPSJvcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luLmh0bWwjYXBwbHkob3JnLmdyYWRsZS5hcGkuUHJvamVjdCkiIHRpdGxlPSJNZXRob2QgaW4gUmF0UGx1Z2luIj5hcHBseShQcm9qZWN0KTwvYT48L3NwYW4+IC0gTWV0aG9kIGluIDxhIGhyZWY9Im9yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW4uaHRtbCI+UmF0UGx1Z2luPC9hPgotPC9kdD48ZGQ+IDxkaXYgY2xhc3M9ImJsb2NrIj48L2Rpdj48L2RkPgotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX0JfIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPkI8L2gyPgotPGRsPgotCi08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfQ18iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+QzwvaDI+Ci08ZGw+Ci0KLTxkdD48c3BhbiBjbGFzcz0ic3Ryb25nIj48YSBocmVmPSJvcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luLmh0bWwjY29uZmlndXJlRGVwZW5kZW5jaWVzKG9yZy5ncmFkbGUuYXBpLlByb2plY3QpIiB0aXRsZT0iTWV0aG9kIGluIFJhdFBsdWdpbiI+Y29uZmlndXJlRGVwZW5kZW5jaWVzKFByb2plY3QpPC9hPjwvc3Bhbj4gLSBNZXRob2QgaW4gPGEgaHJlZj0ib3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFBsdWdpbi5odG1sIj5SYXRQbHVnaW48L2E+Ci08L2R0PjxkZD4gPGRpdiBjbGFzcz0iYmxvY2siPjwvZGl2PjwvZGQ+Ci08ZHQ+PHNwYW4gY2xhc3M9InN0cm9uZyI+PGEgaHJlZj0ib3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suaHRtbCNjb3VudFVuYXByb3ZlZFVua25vd25MaWNlbnNlcyhkZWYpIiB0aXRsZT0iTWV0aG9kIGluIFJhdFRhc2siPmNvdW50VW5hcHJvdmVkVW5rbm93bkxpY2Vuc2VzKGRlZik8L2E+PC9zcGFuPiAtIE1ldGhvZCBpbiA8YSBocmVmPSJvcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzay5odG1sIj5SYXRUYXNrPC9hPgotPC9kdD48ZGQ+IDxkaXYgY2xhc3M9ImJsb2NrIj48L2Rpdj48L2RkPgotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX0RfIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPkQ8L2gyPgotPGRsPgotCi08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfRV8iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+RTwvaDI+Ci08ZGw+Ci0KLTwvZGw+Ci0KLSAgICAKLTxhIG5hbWU9Il9GXyI+PCEtLSAtLT48L2E+Ci08aDIgY2xhc3M9InRpdGxlIj5GPC9oMj4KLTxkbD4KLQotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX0dfIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPkc8L2gyPgotPGRsPgotCi08ZHQ+PHNwYW4gY2xhc3M9InN0cm9uZyI+PGEgaHJlZj0ib3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suaHRtbCNnZW5lcmF0ZUh0bWxSZXBvcnQoZGVmKSIgdGl0bGU9Ik1ldGhvZCBpbiBSYXRUYXNrIj5nZW5lcmF0ZUh0bWxSZXBvcnQoZGVmKTwvYT48L3NwYW4+IC0gTWV0aG9kIGluIDxhIGhyZWY9Im9yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmh0bWwiPlJhdFRhc2s8L2E+Ci08L2R0PjxkZD4gPGRpdiBjbGFzcz0iYmxvY2siPjwvZGl2PjwvZGQ+Ci08ZHQ+PHNwYW4gY2xhc3M9InN0cm9uZyI+PGEgaHJlZj0ib3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suaHRtbCNnZW5lcmF0ZVhtbFJlcG9ydCgpIiB0aXRsZT0iTWV0aG9kIGluIFJhdFRhc2siPmdlbmVyYXRlWG1sUmVwb3J0KCk8L2E+PC9zcGFuPiAtIE1ldGhvZCBpbiA8YSBocmVmPSJvcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzay5odG1sIj5SYXRUYXNrPC9hPgotPC9kdD48ZGQ+IDxkaXYgY2xhc3M9ImJsb2NrIj48L2Rpdj48L2RkPgotPGR0PjxzcGFuIGNsYXNzPSJzdHJvbmciPjxhIGhyZWY9Im9yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmh0bWwjZ2V0SW5wdXRGaWxlcygpIiB0aXRsZT0iTWV0aG9kIGluIFJhdFRhc2siPmdldElucHV0RmlsZXMoKTwvYT48L3NwYW4+IC0gTWV0aG9kIGluIDxhIGhyZWY9Im9yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmh0bWwiPlJhdFRhc2s8L2E+Ci08L2R0PjxkZD4gPGRpdiBjbGFzcz0iYmxvY2siPjwvZGl2PjwvZGQ+Ci08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfSF8iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+SDwvaDI+Ci08ZGw+Ci0KLTwvZGw+Ci0KLSAgICAKLTxhIG5hbWU9Il9JXyI+PCEtLSAtLT48L2E+Ci08aDIgY2xhc3M9InRpdGxlIj5JPC9oMj4KLTxkbD4KLQotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX0pfIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPko8L2gyPgotPGRsPgotCi08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfS18iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+SzwvaDI+Ci08ZGw+Ci0KLTwvZGw+Ci0KLSAgICAKLTxhIG5hbWU9Il9MXyI+PCEtLSAtLT48L2E+Ci08aDIgY2xhc3M9InRpdGxlIj5MPC9oMj4KLTxkbD4KLQotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX01fIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPk08L2gyPgotPGRsPgotCi08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfTl8iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+TjwvaDI+Ci08ZGw+Ci0KLTwvZGw+Ci0KLSAgICAKLTxhIG5hbWU9Il9PXyI+PCEtLSAtLT48L2E+Ci08aDIgY2xhc3M9InRpdGxlIj5PPC9oMj4KLTxkbD4KLQotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX1BfIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPlA8L2gyPgotPGRsPgotCi08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfUV8iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+UTwvaDI+Ci08ZGw+Ci0KLTwvZGw+Ci0KLSAgICAKLTxhIG5hbWU9Il9SXyI+PCEtLSAtLT48L2E+Ci08aDIgY2xhc3M9InRpdGxlIj5SPC9oMj4KLTxkbD4KLQotPGR0PjxzcGFuIGNsYXNzPSJzdHJvbmciPjxhIGhyZWY9Im9yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmh0bWwjcmF0KCkiIHRpdGxlPSJNZXRob2QgaW4gUmF0VGFzayI+cmF0KCk8L2E+PC9zcGFuPiAtIE1ldGhvZCBpbiA8YSBocmVmPSJvcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0VGFzay5odG1sIj5SYXRUYXNrPC9hPgotPC9kdD48ZGQ+IDxkaXYgY2xhc3M9ImJsb2NrIj48L2Rpdj48L2RkPgotPGR0PjxzcGFuIGNsYXNzPSJzdHJvbmciPjxhIGhyZWY9Im9yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW4uaHRtbCIgdGl0bGU9IkNsYXNzIGluIG9yZy5hcGFjaGUucmF0LmdyYWRsZSI+UmF0UGx1Z2luPC9hPjwvc3Bhbj4gLSBDbGFzcyBpbiA8YSBocmVmPSIuL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5yYXQuZ3JhZGxlPC9hPgotPC9kdD48ZGQ+PGRpdiBjbGFzcz0iYmxvY2siPjwvZGl2PjwvZGQ+Ci08ZHQ+PHNwYW4gY2xhc3M9InN0cm9uZyI+PGEgaHJlZj0ib3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suaHRtbCIgdGl0bGU9IkNsYXNzIGluIG9yZy5hcGFjaGUucmF0LmdyYWRsZSI+UmF0VGFzazwvYT48L3NwYW4+IC0gQ2xhc3MgaW4gPGEgaHJlZj0iLi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUucmF0LmdyYWRsZTwvYT4KLTwvZHQ+PGRkPjxkaXYgY2xhc3M9ImJsb2NrIj48L2Rpdj48L2RkPgotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX1NfIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPlM8L2gyPgotPGRsPgotCi08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfVF8iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+VDwvaDI+Ci08ZGw+Ci0KLTwvZGw+Ci0KLSAgICAKLTxhIG5hbWU9Il9VXyI+PCEtLSAtLT48L2E+Ci08aDIgY2xhc3M9InRpdGxlIj5VPC9oMj4KLTxkbD4KLQotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX1ZfIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPlY8L2gyPgotPGRsPgotCi08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfV18iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+VzwvaDI+Ci08ZGw+Ci0KLTwvZGw+Ci0KLSAgICAKLTxhIG5hbWU9Il9YXyI+PCEtLSAtLT48L2E+Ci08aDIgY2xhc3M9InRpdGxlIj5YPC9oMj4KLTxkbD4KLQotPC9kbD4KLQotICAgIAotPGEgbmFtZT0iX1lfIj48IS0tIC0tPjwvYT4KLTxoMiBjbGFzcz0idGl0bGUiPlk8L2gyPgotPGRsPgotCi08L2RsPgotCi0gICAgCi08YSBuYW1lPSJfWl8iPjwhLS0gLS0+PC9hPgotPGgyIGNsYXNzPSJ0aXRsZSI+WjwvaDI+Ci08ZGw+Ci0KLTwvZGw+Ci0KLSAgICAKLTxhIG5hbWU9Il9fXyI+PCEtLSAtLT48L2E+Ci08aDIgY2xhc3M9InRpdGxlIj5fPC9oMj4KLTxkbD4KLQotPC9kbD4KLQotICAgIAotPC9kaXY+Ci0KLQotPGEgaHJlZj0iI19BXyI+QTwvYT4KLQotPGEgaHJlZj0iI19CXyI+QjwvYT4KLQotPGEgaHJlZj0iI19DXyI+QzwvYT4KLQotPGEgaHJlZj0iI19EXyI+RDwvYT4KLQotPGEgaHJlZj0iI19FXyI+RTwvYT4KLQotPGEgaHJlZj0iI19GXyI+RjwvYT4KLQotPGEgaHJlZj0iI19HXyI+RzwvYT4KLQotPGEgaHJlZj0iI19IXyI+SDwvYT4KLQotPGEgaHJlZj0iI19JXyI+STwvYT4KLQotPGEgaHJlZj0iI19KXyI+SjwvYT4KLQotPGEgaHJlZj0iI19LXyI+SzwvYT4KLQotPGEgaHJlZj0iI19MXyI+TDwvYT4KLQotPGEgaHJlZj0iI19NXyI+TTwvYT4KLQotPGEgaHJlZj0iI19OXyI+TjwvYT4KLQotPGEgaHJlZj0iI19PXyI+TzwvYT4KLQotPGEgaHJlZj0iI19QXyI+UDwvYT4KLQotPGEgaHJlZj0iI19RXyI+UTwvYT4KLQotPGEgaHJlZj0iI19SXyI+UjwvYT4KLQotPGEgaHJlZj0iI19TXyI+UzwvYT4KLQotPGEgaHJlZj0iI19UXyI+VDwvYT4KLQotPGEgaHJlZj0iI19VXyI+VTwvYT4KLQotPGEgaHJlZj0iI19WXyI+VjwvYT4KLQotPGEgaHJlZj0iI19XXyI+VzwvYT4KLQotPGEgaHJlZj0iI19YXyI+WDwvYT4KLQotPGEgaHJlZj0iI19ZXyI+WTwvYT4KLQotPGEgaHJlZj0iI19aXyI+WjwvYT4KLQotPGEgaHJlZj0iI19fXyI+XzwvYT4KLQotCi08IS0tID09PT09PT0gU1RBUlQgT0YgQk9UVE9NIE5BVkJBUiA9PT09PT0gLS0+Ci08ZGl2IGNsYXNzPSJib3R0b21OYXYiPjxhIG5hbWU9Im5hdmJhcl9ib3R0b20iPgotICAgIDwhLS0gICAtLT4KLTwvYT48YSBocmVmPSIjc2tpcC1uYXZiYXJfYm90dG9tIiB0aXRsZT0iU2tpcCBuYXZpZ2F0aW9uIGxpbmtzIj48L2E+PGEgbmFtZT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+Ci0gICAgPCEtLSAgIC0tPgotPC9hPgotICAgIDx1bCBjbGFzcz0ibmF2TGlzdCIgdGl0bGU9Ik5hdmlnYXRpb24iPgotICAgICAgICA8bGk+PGEgaHJlZj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj5PdmVydmlldzwvYT48L2xpPgotICAgICAgICA8bGk+UGFja2FnZTwvbGk+Ci0gICAgICAgIDxsaT5DbGFzczwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJkZXByZWNhdGVkLWxpc3QuaHRtbCI+RGVwcmVjYXRlZDwvYT48L2xpPgotICAgICAgICA8bGkgY2xhc3M9Im5hdkJhckNlbGwxUmV2Ij5JbmRleDwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJoZWxwLWRvYy5odG1sIj5IZWxwPC9hPjwvbGk+Ci0gICAgPC91bD4KLTwvZGl2PgotPGRpdiBjbGFzcz0ic3ViTmF2Ij4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiPgotICAgICAgICA8bGk+PGEgaHJlZj0iLi9pbmRleC5odG1sP2luZGV4LWFsbC5odG1sIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iaW5kZXgtYWxsLmh0bWwiIHRhcmdldD0iX3RvcCI+Tm8gRnJhbWVzPC9hPjwvbGk+Ci0gICAgPC91bD4KLSAgICA8ZGl2IGNsYXNzPSJhYm91dExhbmd1YWdlIj48ZW0+R3Jvb3Z5IERvY3VtZW50YXRpb248L2VtPjwvZGl2PgotICAgIDxhIG5hbWU9InNraXAtbmF2YmFyX2JvdHRvbSI+Ci0gICAgICAgIDwhLS0gICAtLT4KLSAgICA8L2E+PC9kaXY+Ci08IS0tID09PT09PT09IEVORCBPRiBCT1RUT00gTkFWQkFSID09PT09PT0gLS0+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL2luZGV4Lmh0bWwgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL2luZGV4Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwMmViZDIuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9pbmRleC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgRnJhbWVzZXQvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvZnJhbWVzZXQuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+SW5kZXggKGFwYWNoZS1yYXQtZ3JhZGxlIDAuMTItU05BUFNIT1QgQVBJKTwvdGl0bGU+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPgotPGxpbmsgaHJlZj0iZ3Jvb3Z5LmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIiByZWw9InNob3J0Y3V0IGljb24iPgotPGxpbmsgaHJlZj0iZ3Jvb3Z5LmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIiByZWw9Imljb24iPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIHRhcmdldFBhZ2UgPSAiIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7Ci0gICAgaWYgKHRhcmdldFBhZ2UgIT0gIiIgJiYgdGFyZ2V0UGFnZSAhPSAidW5kZWZpbmVkIikKLSAgICAgICAgdGFyZ2V0UGFnZSA9IHRhcmdldFBhZ2Uuc3Vic3RyaW5nKDEpOwotICAgIGlmICh0YXJnZXRQYWdlLmluZGV4T2YoIjoiKSAhPSAtMSkKLSAgICAgICAgdGFyZ2V0UGFnZSA9ICJ1bmRlZmluZWQiOwotICAgIGlmICh0YXJnZXRQYWdlICE9ICIiICYmICF2YWxpZFVSTCh0YXJnZXRQYWdlKSkKLSAgICAgICAgdGFyZ2V0UGFnZSA9ICJ1bmRlZmluZWQiOwotICAgIGZ1bmN0aW9uIHZhbGlkVVJMKHVybCkgewotICAgICAgICB2YXIgcG9zID0gdXJsLmluZGV4T2YoIi5odG1sIik7Ci0gICAgICAgIGlmIChwb3MgPT0gLTEgfHwgcG9zICE9IHVybC5sZW5ndGggLSA1KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB2YXIgYWxsb3dOdW1iZXIgPSBmYWxzZTsKLSAgICAgICAgdmFyIGFsbG93U2VwID0gZmFsc2U7Ci0gICAgICAgIHZhciBzZWVuRG90ID0gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdXJsLmxlbmd0aCAtIDU7IGkrKykgewotICAgICAgICAgICAgdmFyIGNoID0gdXJsLmNoYXJBdChpKTsKLSAgICAgICAgICAgIGlmICgnYScgPD0gY2ggJiYgY2ggPD0gJ3onIHx8Ci0gICAgICAgICAgICAgICAgICAgICdBJyA8PSBjaCAmJiBjaCA8PSAnWicgfHwKLSAgICAgICAgICAgICAgICAgICAgY2ggPT0gJyQnIHx8Ci0gICAgICAgICAgICAgICAgICAgIGNoID09ICdfJykgewotICAgICAgICAgICAgICAgIGFsbG93TnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBhbGxvd1NlcCA9IHRydWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKCcwJyA8PSBjaCAmJiBjaCA8PSAnOScKLSAgICAgICAgICAgICAgICAgICAgfHwgY2ggPT0gJy0nKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFhbGxvd051bWJlcikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnLycgfHwgY2ggPT0gJy4nKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFhbGxvd1NlcCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIGFsbG93TnVtYmVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYWxsb3dTZXAgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJy4nKQotICAgICAgICAgICAgICAgICAgICBzZWVuRG90ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJy8nICYmIHNlZW5Eb3QpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBmdW5jdGlvbiBsb2FkRnJhbWVzKCkgewotICAgICAgICBpZiAodGFyZ2V0UGFnZSAhPSAiIiAmJiB0YXJnZXRQYWdlICE9ICJ1bmRlZmluZWQiKQotICAgICAgICAgICAgdG9wLmNsYXNzRnJhbWUubG9jYXRpb24gPSB0b3AudGFyZ2V0UGFnZTsKLSAgICB9Ci08L3NjcmlwdD4KLTxub3NjcmlwdD48L25vc2NyaXB0PgotPC9oZWFkPgotPGZyYW1lc2V0IGNvbHM9IjIwJSw4MCUiIHRpdGxlPSJEb2N1bWVudGF0aW9uIGZyYW1lIiBvbmxvYWQ9InRvcC5sb2FkRnJhbWVzKCkiPgotICAgIDxmcmFtZXNldCByb3dzPSIzMCUsNzAlIiB0aXRsZT0iTGVmdCBmcmFtZXMiIG9ubG9hZD0idG9wLmxvYWRGcmFtZXMoKSI+Ci0gICAgICAgIDxmcmFtZSBzcmM9Im92ZXJ2aWV3LWZyYW1lLmh0bWwiIG5hbWU9InBhY2thZ2VMaXN0RnJhbWUiIHRpdGxlPSJBbGwgUGFja2FnZXMiPgotICAgICAgICA8ZnJhbWUgc3JjPSJhbGxjbGFzc2VzLWZyYW1lLmh0bWwiIG5hbWU9InBhY2thZ2VGcmFtZSIgdGl0bGU9IkFsbCBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzIChleGNlcHQgbm9uLXN0YXRpYyBuZXN0ZWQgdHlwZXMpIj4KLSAgICA8L2ZyYW1lc2V0PgotICAgIDxmcmFtZSBzcmM9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCIgbmFtZT0iY2xhc3NGcmFtZSIgdGl0bGU9IlBhY2thZ2UsIGNsYXNzIGFuZCBpbnRlcmZhY2UgZGVzY3JpcHRpb25zIiBzY3JvbGxpbmc9InllcyI+Ci0gICAgPG5vZnJhbWVzPgotICAgICAgICA8bm9zY3JpcHQ+Ci0gICAgICAgICAgICA8ZGl2PkphdmFTY3JpcHQgaXMgZGlzYWJsZWQgb24geW91ciBicm93c2VyLjwvZGl2PgotICAgICAgICA8L25vc2NyaXB0PgotICAgICAgICA8aDI+RnJhbWUgQWxlcnQ8L2gyPgotICAgICAgICA8cD5UaGlzIGRvY3VtZW50IGlzIGRlc2lnbmVkIHRvIGJlIHZpZXdlZCB1c2luZyB0aGUgZnJhbWVzIGZlYXR1cmUuIElmIHlvdSBzZWUgdGhpcyBtZXNzYWdlLCB5b3UgYXJlIHVzaW5nIGEgbm9uLWZyYW1lLWNhcGFibGUgd2ViIGNsaWVudC4gTGluayB0byA8YSBocmVmPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPk5vbi1mcmFtZSB2ZXJzaW9uPC9hPi48L3A+Ci0gICAgPC9ub2ZyYW1lcz4KLTwvZnJhbWVzZXQ+PC9odG1sPgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9pbmhlcml0LmdpZiBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvaW5oZXJpdC5naWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4MTQ4NjcuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9pbmhlcml0LmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2Mvb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFBsdWdpbi5odG1sIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzZGFjZmMuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTYgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci08IS0tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLS0+Ci08IS0tICogIFBMRUFTRSBLRUVQIENPTVBMSUNBVEVEIEVYUFJFU1NJT05TIE9VVCBPRiBUSEVTRSBURU1QTEFURVMsICogLS0+Ci08IS0tICogIGkuZS4gb25seSBpdGVyYXRlICYgcHJpbnQgZGF0YSB3aGVyZSBwb3NzaWJsZS4gVGhhbmtzLCBKZXouICogLS0+Ci08IS0tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci0gICAgPCEtLSBHZW5lcmF0ZWQgYnkgZ3Jvb3Z5ZG9jICgyLjMuMTApIG9uIE1vbiBKdW4gMjkgMjE6MDM6NTIgQ0VTVCAyMDE1IC0tPgotICAgIDx0aXRsZT5SYXRQbHVnaW4gKGFwYWNoZS1yYXQtZ3JhZGxlIDAuMTItU05BUFNIT1QgQVBJKTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iZGF0ZSIgY29udGVudD0iMjAxNS0wNi0yOSI+Ci0gICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KLSAgICA8bGluayBocmVmPSIuLi8uLi8uLi8uLi9ncm9vdnkuaWNvIiB0eXBlPSJpbWFnZS94LWljb24iIHJlbD0ic2hvcnRjdXQgaWNvbiI+Ci0gICAgPGxpbmsgaHJlZj0iLi4vLi4vLi4vLi4vZ3Jvb3Z5LmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIiByZWw9Imljb24iPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiB0aXRsZT0iU3R5bGUiPgotCi08Ym9keSBjbGFzcz0iY2VudGVyIj4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tCi1pZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdpcy1leHRlcm5hbD10cnVlJykgPT0gLTEpIHsKLSAgICBwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlJhdFBsdWdpbiAoYXBhY2hlLXJhdC1ncmFkbGUgMC4xMi1TTkFQU0hPVCBBUEkpIjsKLX0KLS8vLS0+Ci08L3NjcmlwdD4KLTxub3NjcmlwdD4KLSAgICA8ZGl2PkphdmFTY3JpcHQgaXMgZGlzYWJsZWQgb24geW91ciBicm93c2VyLjwvZGl2PgotPC9ub3NjcmlwdD4KLTwhLS0gPT09PT09PT09IFNUQVJUIE9GIFRPUCBOQVZCQVIgPT09PT09PSAtLT4KLTxkaXYgY2xhc3M9InRvcE5hdiI+PGEgbmFtZT0ibmF2YmFyX3RvcCI+Ci0gICAgPCEtLSAgIC0tPgotPC9hPjxhIGhyZWY9IiNza2lwLW5hdmJhcl90b3AiIHRpdGxlPSJTa2lwIG5hdmlnYXRpb24gbGlua3MiPjwvYT48YSBuYW1lPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij4KLSAgICA8IS0tICAgLS0+Ci08L2E+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0IiB0aXRsZT0iTmF2aWdhdGlvbiI+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPk92ZXJ2aWV3PC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+UGFja2FnZTwvYT48L2xpPgotICAgICAgICA8bGkgY2xhc3M9Im5hdkJhckNlbGwxUmV2Ij5DbGFzczwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+RGVwcmVjYXRlZDwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPkluZGV4PC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj5IZWxwPC9hPjwvbGk+Ci0gICAgPC91bD4KLTwvZGl2PgotCi08ZGl2IGNsYXNzPSJzdWJOYXYiPgotICAgIDxkaXY+Ci0gICAgICAgIDx1bCBjbGFzcz0ibmF2TGlzdCI+Ci0gICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbD9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICAgICAgPGxpPjxhIGhyZWY9IlJhdFBsdWdpbi5odG1sIiB0YXJnZXQ9Il90b3AiPk5vIEZyYW1lczwvYT48L2xpPgotICAgICAgICA8L3VsPgotICAgIDwvZGl2PgotICAgIDxkaXY+Ci0gICAgICAgIDx1bCBjbGFzcz0ic3ViTmF2TGlzdCI+Ci0gICAgICAgICAgICA8bGk+U3VtbWFyeTombmJzcDs8L2xpPgotICAgICAgICAgICAgTmVzdGVkJm5ic3A7Jm5ic3A7Jm5ic3A7RmllbGQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RvciZuYnNwOyZuYnNwOyZuYnNwOzxsaT48YSBocmVmPSIjbWV0aG9kX3N1bW1hcnkiPk1ldGhvZDwvYT48L2xpPiZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICA8L3VsPgotICAgICAgICA8dWwgY2xhc3M9InN1Yk5hdkxpc3QiPgotICAgICAgICAgICAgPGxpPiZuYnNwO3wmbmJzcDtEZXRhaWw6Jm5ic3A7PC9saT4KLSAgICAgICAgICAgIEZpZWxkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3ImbmJzcDsmbmJzcDsmbmJzcDs8bGk+PGEgaHJlZj0iI21ldGhvZF9kZXRhaWwiPk1ldGhvZDwvYT48L2xpPiZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICA8L3VsPgotICAgIDwvZGl2PgotICAgIDxhIG5hbWU9InNraXAtbmF2YmFyX3RvcCI+Ci0gICAgICAgIDwhLS0gICAtLT4KLSAgICA8L2E+PC9kaXY+Ci08IS0tID09PT09PT09PSBFTkQgT0YgVE9QIE5BVkJBUiA9PT09PT09PT0gLS0+Ci0KLTwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KLTxkaXYgY2xhc3M9ImhlYWRlciI+Ci0KLSAgICA8ZGl2IGNsYXNzPSJzdWJUaXRsZSI+UGFja2FnZTogPHN0cm9uZz5vcmcuYXBhY2hlLnJhdC5ncmFkbGU8L3N0cm9uZz48L2Rpdj4KLQotICAgIDxoMiB0aXRsZT0iW0dyb292eV0gQ2xhc3MgUmF0UGx1Z2luIiBjbGFzcz0idGl0bGUiPltHcm9vdnldIENsYXNzIFJhdFBsdWdpbjwvaDI+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRlbnRDb250YWluZXIiPgotPHVsIGNsYXNzPSJpbmhlcml0YW5jZSI+Ci08bGk+PHVsIGNsYXNzPSJpbmhlcml0YW5jZSI+PC91bD48L2xpPjxsaT5vcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0UGx1Z2luCi08L3VsPgotPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgotICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotCi0gICAgICAgICAgICA8ZGw+Ci0gICAgICAgICAgICAgICAgPGR0PkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzIGFuZCBUcmFpdHM6PC9kdD4KLSAgICAgICAgICAgICAgICA8ZGQ+b3JnLmdyYWRsZS5hcGkuUGx1Z2luPC9kZD4KLSAgICAgICAgICAgIDwvZGw+Ci0gICAgICAgICAgICA8IS0tIHRvZG86IGRpcmVjdCBrbm93biBzdWJjbGFzc2VzIC0tPgotICAgICAgICAgICAgPGhyPgotICAgICAgICAgICAgPGJyPgotPHByZT5jbGFzcyBSYXRQbHVnaW4KLWV4dGVuZHMgamF2YS5sYW5nLk9iamVjdAotCi08L3ByZT4KLQotCi0KLSAgICAgICAgICA8L2xpPgotICAgIDwvdWw+Ci08L2Rpdj4KLQotPGRpdiBjbGFzcz0ic3VtbWFyeSI+Ci0gICAgPHVsIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgIDwhLS0gPT09PT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Ci0gICAgICAgIAotCi0gICAgICAgIDwhLS0gPT09PT09PT09PT0gRU5VTSBDT05TVEFOVCBTVU1NQVJZID09PT09PT09PT09IC0tPgotICAgICAgICAKLSAgICAgICAgPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgotICAgICAgICAKLQotICAgICAgICA8IS0tID09PT09PT09PT09IFBST1BFUlRZIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Ci0gICAgICAgIAotCi0gICAgICAgIDwhLS0gPT09PT09PT09PT0gRUxFTUVOVCBTVU1NQVJZID09PT09PT09PT09IC0tPgotICAgICAgICAKLQotICAgICAgICAKLQotICAgICAgICAKLSAgICAgICAgPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgotICAgICAgICA8dWwgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij48YSBuYW1lPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAgIC0tPjwvYT4KLSAgICAgICAgICAgICAgICAgICAgPGgzPk1ldGhvZHMgU3VtbWFyeTwvaDM+Ci0gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJvdmVydmlld1N1bW1hcnkiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIwIiBzdW1tYXJ5PSJNZXRob2RzIFN1bW1hcnkgdGFibGUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPGNhcHRpb24+PHNwYW4+TWV0aG9kczwvc3Bhbj48c3BhbiBjbGFzcz0idGFiRW5kIj4mbmJzcDs8L3NwYW4+PC9jYXB0aW9uPgotICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iY29sRmlyc3QiIHNjb3BlPSJjb2wiPlR5cGU8L3RoPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iY29sTGFzdCIgc2NvcGU9ImNvbCI+TmFtZSBhbmQgZGVzY3JpcHRpb248L3RoPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJhbHRDb2xvciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xGaXJzdCI+PGNvZGU+dm9pZDwvc3Ryb25nPjwvY29kZT48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sTGFzdCI+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjYXBwbHkob3JnLmdyYWRsZS5hcGkuUHJvamVjdCkiPmFwcGx5PC9hPjwvc3Ryb25nPihvcmcuZ3JhZGxlLmFwaS5Qcm9qZWN0IHByb2plY3QpPC9jb2RlPjxicj48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJyb3dDb2xvciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xGaXJzdCI+PGNvZGU+dm9pZDwvc3Ryb25nPjwvY29kZT48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sTGFzdCI+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uZmlndXJlRGVwZW5kZW5jaWVzKG9yZy5ncmFkbGUuYXBpLlByb2plY3QpIj5jb25maWd1cmVEZXBlbmRlbmNpZXM8L2E+PC9zdHJvbmc+KG9yZy5ncmFkbGUuYXBpLlByb2plY3QgcHJvamVjdCk8L2NvZGU+PGJyPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIDwvdGFibGU+Ci0gICAgICAgICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPjxhIG5hbWU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tICAgLS0+PC9hPgotICAgICAgICAgICAgICAgICAgICA8aDM+SW5oZXJpdGVkIE1ldGhvZHMgU3VtbWFyeTwvaDM+Ci0gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJvdmVydmlld1N1bW1hcnkiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIwIiBzdW1tYXJ5PSJJbmhlcml0ZWQgTWV0aG9kcyBTdW1tYXJ5IHRhYmxlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxjYXB0aW9uPjxzcGFuPkluaGVyaXRlZCBNZXRob2RzPC9zcGFuPjxzcGFuIGNsYXNzPSJ0YWJFbmQiPiZuYnNwOzwvc3Bhbj48L2NhcHRpb24+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJjb2xGaXJzdCIgc2NvcGU9ImNvbCI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzczwvdGg+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJjb2xMYXN0IiBzY29wZT0iY29sIj5OYW1lPC90aD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iYWx0Q29sb3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sRmlyc3QiPjxjb2RlPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8L3N0cm9uZz48L2NvZGU+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbExhc3QiPjxjb2RlPmphdmEubGFuZy5PYmplY3Qjd2FpdChsb25nLCBpbnQpLCBqYXZhLmxhbmcuT2JqZWN0I3dhaXQobG9uZyksIGphdmEubGFuZy5PYmplY3Qjd2FpdCgpLCBqYXZhLmxhbmcuT2JqZWN0I2VxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSwgamF2YS5sYW5nLk9iamVjdCN0b1N0cmluZygpLCBqYXZhLmxhbmcuT2JqZWN0I2hhc2hDb2RlKCksIGphdmEubGFuZy5PYmplY3QjZ2V0Q2xhc3MoKSwgamF2YS5sYW5nLk9iamVjdCNub3RpZnkoKSwgamF2YS5sYW5nLk9iamVjdCNub3RpZnlBbGwoKTwvY29kZT48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KLSAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgIAotICAgICAgICA8L3VsPgotICAgICAgICAKLSAgICA8L2xpPgotICAgIDwvdWw+Ci08L2Rpdj4KLQotPGRpdiBjbGFzcz0iZGV0YWlscyI+Ci0gICAgPHVsIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgIAotCi0gICAgICAgICAgICAKLQotICAgICAgICAgICAgCi0KLSAgICAgICAgICAgIAotCi0gICAgICAgICAgICAKLQotCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09PSAtLT4KLSAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+PGEgbmFtZT0ibWV0aG9kX2RldGFpbCI+Ci0gICAgICAgICAgICAgICAgICAgIDwhLS0gICAtLT4KLSAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDxoMz5NZXRob2QgRGV0YWlsPC9oMz4KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICA8YSBuYW1lPSJhcHBseShvcmcuZ3JhZGxlLmFwaS5Qcm9qZWN0KSI+PCEtLSAtLT48L2E+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImJsb2NrTGlzdExhc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PnZvaWQgPHN0cm9uZz5hcHBseTwvc3Ryb25nPihvcmcuZ3JhZGxlLmFwaS5Qcm9qZWN0IHByb2plY3QpPC9oND4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PC9wPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9ImNvbmZpZ3VyZURlcGVuZGVuY2llcyhvcmcuZ3JhZGxlLmFwaS5Qcm9qZWN0KSI+PCEtLSAtLT48L2E+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImJsb2NrTGlzdExhc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PnZvaWQgPHN0cm9uZz5jb25maWd1cmVEZXBlbmRlbmNpZXM8L3N0cm9uZz4ob3JnLmdyYWRsZS5hcGkuUHJvamVjdCBwcm9qZWN0KTwvaDQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjwvcD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAKLSAgICAgICAgPC9saT4KLSAgICA8L3VsPgotPC9kaXY+Ci0KLTwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KLTwhLS0gPT09PT09PSBTVEFSVCBPRiBCT1RUT00gTkFWQkFSID09PT09PSAtLT4KLTxkaXYgY2xhc3M9ImJvdHRvbU5hdiI+PGEgbmFtZT0ibmF2YmFyX2JvdHRvbSI+Ci0gICAgPCEtLSAgIC0tPgotPC9hPjxhIGhyZWY9IiNza2lwLW5hdmJhcl9ib3R0b20iIHRpdGxlPSJTa2lwIG5hdmlnYXRpb24gbGlua3MiPjwvYT48YSBuYW1lPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij4KLSAgICA8IS0tICAgLS0+Ci08L2E+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0IiB0aXRsZT0iTmF2aWdhdGlvbiI+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPk92ZXJ2aWV3PC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+UGFja2FnZTwvYT48L2xpPgotICAgICAgICA8bGkgY2xhc3M9Im5hdkJhckNlbGwxUmV2Ij5DbGFzczwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+RGVwcmVjYXRlZDwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPkluZGV4PC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj5IZWxwPC9hPjwvbGk+Ci0gICAgPC91bD4KLTwvZGl2PgotCi08ZGl2IGNsYXNzPSJzdWJOYXYiPgotICAgIDxkaXY+Ci0gICAgICAgIDx1bCBjbGFzcz0ibmF2TGlzdCI+Ci0gICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbD9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICAgICAgPGxpPjxhIGhyZWY9IlJhdFBsdWdpbi5odG1sIiB0YXJnZXQ9Il90b3AiPk5vIEZyYW1lczwvYT48L2xpPgotICAgICAgICA8L3VsPgotICAgIDwvZGl2PgotICAgIDxkaXY+Ci0gICAgICAgIDx1bCBjbGFzcz0ic3ViTmF2TGlzdCI+Ci0gICAgICAgICAgICA8bGk+U3VtbWFyeTombmJzcDs8L2xpPgotICAgICAgICAgICAgTmVzdGVkJm5ic3A7Jm5ic3A7Jm5ic3A7RmllbGQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RvciZuYnNwOyZuYnNwOyZuYnNwOzxsaT48YSBocmVmPSIjbWV0aG9kX3N1bW1hcnkiPk1ldGhvZDwvYT48L2xpPiZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICA8L3VsPgotICAgICAgICA8dWwgY2xhc3M9InN1Yk5hdkxpc3QiPgotICAgICAgICAgICAgPGxpPiZuYnNwO3wmbmJzcDtEZXRhaWw6Jm5ic3A7PC9saT4KLSAgICAgICAgICAgIEZpZWxkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3ImbmJzcDsmbmJzcDsmbmJzcDs8bGk+PGEgaHJlZj0iI21ldGhvZF9kZXRhaWwiPk1ldGhvZDwvYT48L2xpPiZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICA8L3VsPgotICAgIDwvZGl2PgotICAgIDxwPkdyb292eSBEb2N1bWVudGF0aW9uPC9wPgotICAgIDxhIG5hbWU9InNraXAtbmF2YmFyX2JvdHRvbSI+Ci0gICAgICAgIDwhLS0gICAtLT4KLSAgICA8L2E+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLTwhLS0gPT09PT09PT0gRU5EIE9GIEJPVFRPTSBOQVZCQVIgPT09PT09PSAtLT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2Mvb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suaHRtbCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2Mvb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZlNTcxZi4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MDcgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci08IS0tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLS0+Ci08IS0tICogIFBMRUFTRSBLRUVQIENPTVBMSUNBVEVEIEVYUFJFU1NJT05TIE9VVCBPRiBUSEVTRSBURU1QTEFURVMsICogLS0+Ci08IS0tICogIGkuZS4gb25seSBpdGVyYXRlICYgcHJpbnQgZGF0YSB3aGVyZSBwb3NzaWJsZS4gVGhhbmtzLCBKZXouICogLS0+Ci08IS0tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci0gICAgPCEtLSBHZW5lcmF0ZWQgYnkgZ3Jvb3Z5ZG9jICgyLjMuMTApIG9uIE1vbiBKdW4gMjkgMjE6MDM6NTIgQ0VTVCAyMDE1IC0tPgotICAgIDx0aXRsZT5SYXRUYXNrIChhcGFjaGUtcmF0LWdyYWRsZSAwLjEyLVNOQVBTSE9UIEFQSSk8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImRhdGUiIGNvbnRlbnQ9IjIwMTUtMDYtMjkiPgotICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+Ci0gICAgPGxpbmsgaHJlZj0iLi4vLi4vLi4vLi4vZ3Jvb3Z5LmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIiByZWw9InNob3J0Y3V0IGljb24iPgotICAgIDxsaW5rIGhyZWY9Ii4uLy4uLy4uLy4uL2dyb292eS5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiIgcmVsPSJpY29uIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgdGl0bGU9IlN0eWxlIj4KLQotPGJvZHkgY2xhc3M9ImNlbnRlciI+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLQotaWYgKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignaXMtZXh0ZXJuYWw9dHJ1ZScpID09IC0xKSB7Ci0gICAgcGFyZW50LmRvY3VtZW50LnRpdGxlPSJSYXRUYXNrIChhcGFjaGUtcmF0LWdyYWRsZSAwLjEyLVNOQVBTSE9UIEFQSSkiOwotfQotLy8tLT4KLTwvc2NyaXB0PgotPG5vc2NyaXB0PgotICAgIDxkaXY+SmF2YVNjcmlwdCBpcyBkaXNhYmxlZCBvbiB5b3VyIGJyb3dzZXIuPC9kaXY+Ci08L25vc2NyaXB0PgotPCEtLSA9PT09PT09PT0gU1RBUlQgT0YgVE9QIE5BVkJBUiA9PT09PT09IC0tPgotPGRpdiBjbGFzcz0idG9wTmF2Ij48YSBuYW1lPSJuYXZiYXJfdG9wIj4KLSAgICA8IS0tICAgLS0+Ci08L2E+PGEgaHJlZj0iI3NraXAtbmF2YmFyX3RvcCIgdGl0bGU9IlNraXAgbmF2aWdhdGlvbiBsaW5rcyI+PC9hPjxhIG5hbWU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPgotICAgIDwhLS0gICAtLT4KLTwvYT4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiIHRpdGxlPSJOYXZpZ2F0aW9uIj4KLSAgICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+T3ZlcnZpZXc8L2E+PC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj5QYWNrYWdlPC9hPjwvbGk+Ci0gICAgICAgIDxsaSBjbGFzcz0ibmF2QmFyQ2VsbDFSZXYiPkNsYXNzPC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj5EZXByZWNhdGVkPC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+SW5kZXg8L2E+PC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPkhlbHA8L2E+PC9saT4KLSAgICA8L3VsPgotPC9kaXY+Ci0KLTxkaXYgY2xhc3M9InN1Yk5hdiI+Ci0gICAgPGRpdj4KLSAgICAgICAgPHVsIGNsYXNzPSJuYXZMaXN0Ij4KLSAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sP29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICAgICAgPGxpPjxhIGhyZWY9IlJhdFRhc2suaHRtbCIgdGFyZ2V0PSJfdG9wIj5ObyBGcmFtZXM8L2E+PC9saT4KLSAgICAgICAgPC91bD4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2PgotICAgICAgICA8dWwgY2xhc3M9InN1Yk5hdkxpc3QiPgotICAgICAgICAgICAgPGxpPlN1bW1hcnk6Jm5ic3A7PC9saT4KLSAgICAgICAgICAgIE5lc3RlZCZuYnNwOyZuYnNwOyZuYnNwO0ZpZWxkJm5ic3A7Jm5ic3A7Jm5ic3A7PGxpPjxhIGhyZWY9IiNwcm9wZXJ0eV9zdW1tYXJ5Ij5Qcm9wZXJ0eTwvYT48L2xpPiZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yJm5ic3A7Jm5ic3A7Jm5ic3A7PGxpPjxhIGhyZWY9IiNtZXRob2Rfc3VtbWFyeSI+TWV0aG9kPC9hPjwvbGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIDx1bCBjbGFzcz0ic3ViTmF2TGlzdCI+Ci0gICAgICAgICAgICA8bGk+Jm5ic3A7fCZuYnNwO0RldGFpbDombmJzcDs8L2xpPgotICAgICAgICAgICAgRmllbGQmbmJzcDsmbmJzcDsmbmJzcDs8bGk+PGEgaHJlZj0iI3Byb3BfZGV0YWlsIj5Qcm9wZXJ0eTwvYT48L2xpPiZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yJm5ic3A7Jm5ic3A7Jm5ic3A7PGxpPjxhIGhyZWY9IiNtZXRob2RfZGV0YWlsIj5NZXRob2Q8L2E+PC9saT4mbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgPC91bD4KLSAgICA8L2Rpdj4KLSAgICA8YSBuYW1lPSJza2lwLW5hdmJhcl90b3AiPgotICAgICAgICA8IS0tICAgLS0+Ci0gICAgPC9hPjwvZGl2PgotPCEtLSA9PT09PT09PT0gRU5EIE9GIFRPUCBOQVZCQVIgPT09PT09PT09IC0tPgotCi08IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Ci08ZGl2IGNsYXNzPSJoZWFkZXIiPgotCi0gICAgPGRpdiBjbGFzcz0ic3ViVGl0bGUiPlBhY2thZ2U6IDxzdHJvbmc+b3JnLmFwYWNoZS5yYXQuZ3JhZGxlPC9zdHJvbmc+PC9kaXY+Ci0KLSAgICA8aDIgdGl0bGU9IltHcm9vdnldIENsYXNzIFJhdFRhc2siIGNsYXNzPSJ0aXRsZSI+W0dyb292eV0gQ2xhc3MgUmF0VGFzazwvaDI+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRlbnRDb250YWluZXIiPgotPHVsIGNsYXNzPSJpbmhlcml0YW5jZSI+Ci08bGk+PHVsIGNsYXNzPSJpbmhlcml0YW5jZSI+PC91bD48L2xpPjxsaT48dWwgY2xhc3M9ImluaGVyaXRhbmNlIj48L3VsPjwvbGk+PGxpPjx1bCBjbGFzcz0iaW5oZXJpdGFuY2UiPjwvdWw+PC9saT48bGk+b3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFRhc2sKLTwvdWw+Ci08ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+Ci0gICAgPHVsIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0KLQotCi0gICAgICAgICAgPC9saT4KLSAgICA8L3VsPgotPC9kaXY+Ci0KLTxkaXYgY2xhc3M9InN1bW1hcnkiPgotICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICA8IS0tID09PT09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09PT09IC0tPgotICAgICAgICAKLQotICAgICAgICA8IS0tID09PT09PT09PT09IEVOVU0gQ09OU1RBTlQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KLSAgICAgICAgCi0gICAgICAgIDwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KLSAgICAgICAgCi0gICAgICAgICAgICA8dWwgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPjxhIG5hbWU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gICAtLT48L2E+Ci0gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJvdmVydmlld1N1bW1hcnkiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIwIiBzdW1tYXJ5PSJJbmhlcml0ZWQgZmllbGRzIHN1bW1hcnkgdGFibGUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPGNhcHRpb24+PHNwYW4+SW5oZXJpdGVkIGZpZWxkczwvc3Bhbj48c3BhbiBjbGFzcz0idGFiRW5kIj4mbmJzcDs8L3NwYW4+PC9jYXB0aW9uPgotICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iY29sRmlyc3QiIHNjb3BlPSJjb2wiPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzczwvdGg+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJjb2xMYXN0IiBzY29wZT0iY29sIj5GaWVsZHM8L3RoPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iYWx0Q29sb3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sRmlyc3QiPjxzdHJvbmc+PGNvZGU+Y2xhc3Mgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2s8L2NvZGU+PC9zdHJvbmc+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbExhc3QiPjxjb2RlPlRBU0tfTkFNRSwgVEFTS19ERVNDUklQVElPTiwgVEFTS19HUk9VUCwgVEFTS19UWVBFLCBUQVNLX0RFUEVORFNfT04sIFRBU0tfT1ZFUldSSVRFLCBUQVNLX0FDVElPTjwvY29kZT48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iYWx0Q29sb3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sRmlyc3QiPjxzdHJvbmc+PGNvZGU+Y2xhc3Mgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrPC9jb2RlPjwvc3Ryb25nPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xMYXN0Ij48Y29kZT5UQVNLX05BTUUsIFRBU0tfREVTQ1JJUFRJT04sIFRBU0tfR1JPVVAsIFRBU0tfVFlQRSwgVEFTS19ERVBFTkRTX09OLCBUQVNLX09WRVJXUklURSwgVEFTS19BQ1RJT048L2NvZGU+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+Ci0KLSAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KLSAgICAgICAgICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgPC91bD4KLSAgICAgICAgCi0KLSAgICAgICAgPCEtLSA9PT09PT09PT09PSBQUk9QRVJUWSBTVU1NQVJZID09PT09PT09PT09IC0tPgotICAgICAgICAKLSAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+PGEgbmFtZT0icHJvcGVydHlfc3VtbWFyeSI+PCEtLSAgIC0tPjwvYT4KLSAgICAgICAgICAgICAgICAgICAgPGgzPlByb3BlcnRpZXMgU3VtbWFyeTwvaDM+Ci0gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJvdmVydmlld1N1bW1hcnkiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIwIiBzdW1tYXJ5PSJQcm9wZXJ0aWVzIFN1bW1hcnkgdGFibGUsIGxpc3RpbmcgbmVzdGVkIGNsYXNzZXMsIGFuZCBhbiBleHBsYW5hdGlvbiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8Y2FwdGlvbj48c3Bhbj5Qcm9wZXJ0aWVzPC9zcGFuPjxzcGFuIGNsYXNzPSJ0YWJFbmQiPiZuYnNwOzwvc3Bhbj48L2NhcHRpb24+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJjb2xGaXJzdCIgc2NvcGU9ImNvbCI+VHlwZTwvdGg+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJjb2xMYXN0IiBzY29wZT0iY29sIj5OYW1lIGFuZCBkZXNjcmlwdGlvbjwvdGg+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9ImFsdENvbG9yIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbEZpcnN0Ij48Y29kZT48c3Ryb25nPmphdmEudXRpbC5MaXN0Jmx0O2phdmEubGFuZy5TdHJpbmcmZ3Q7PC9zdHJvbmc+PC9jb2RlPiZuYnNwOzwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xMYXN0Ij48Y29kZT48YSBocmVmPSIjZXhjbHVkZXMiPjwvYT5leGNsdWRlczwvY29kZT48YnI+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0icm93Q29sb3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sRmlyc3QiPjxjb2RlPjxzdHJvbmc+Ym9vbGVhbjwvc3Ryb25nPjwvY29kZT4mbmJzcDs8L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sTGFzdCI+PGNvZGU+PGEgaHJlZj0iI2ZhaWxPbkVycm9yIj48L2E+ZmFpbE9uRXJyb3I8L2NvZGU+PGJyPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9ImFsdENvbG9yIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbEZpcnN0Ij48Y29kZT48c3Ryb25nPmphdmEubGFuZy5TdHJpbmc8L3N0cm9uZz48L2NvZGU+Jm5ic3A7PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbExhc3QiPjxjb2RlPjxhIGhyZWY9IiNpbnB1dERpciI+PC9hPmlucHV0RGlyPC9jb2RlPjxicj48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJyb3dDb2xvciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xGaXJzdCI+PGNvZGU+PHN0cm9uZz5qYXZhLmlvLkZpbGU8L3N0cm9uZz48L2NvZGU+Jm5ic3A7PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbExhc3QiPjxjb2RlPjxhIGhyZWY9IiNyZXBvcnREaXIiPjwvYT5yZXBvcnREaXI8L2NvZGU+PGJyPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9ImFsdENvbG9yIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbEZpcnN0Ij48Y29kZT48c3Ryb25nPmJvb2xlYW48L3N0cm9uZz48L2NvZGU+Jm5ic3A7PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbExhc3QiPjxjb2RlPjxhIGhyZWY9IiN2ZXJib3NlIj48L2E+dmVyYm9zZTwvY29kZT48YnI+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KLSAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICA8L3VsPgotICAgICAgICAKLQotICAgICAgICA8IS0tID09PT09PT09PT09IEVMRU1FTlQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KLSAgICAgICAgCi0KLSAgICAgICAgCi0KLSAgICAgICAgCi0gICAgICAgIDwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KLSAgICAgICAgPHVsIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+PGEgbmFtZT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gICAtLT48L2E+Ci0gICAgICAgICAgICAgICAgICAgIDxoMz5NZXRob2RzIFN1bW1hcnk8L2gzPgotICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0ib3ZlcnZpZXdTdW1tYXJ5IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMCIgc3VtbWFyeT0iTWV0aG9kcyBTdW1tYXJ5IHRhYmxlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxjYXB0aW9uPjxzcGFuPk1ldGhvZHM8L3NwYW4+PHNwYW4gY2xhc3M9InRhYkVuZCI+Jm5ic3A7PC9zcGFuPjwvY2FwdGlvbj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9ImNvbEZpcnN0IiBzY29wZT0iY29sIj5UeXBlPC90aD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9ImNvbExhc3QiIHNjb3BlPSJjb2wiPk5hbWUgYW5kIGRlc2NyaXB0aW9uPC90aD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iYWx0Q29sb3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sRmlyc3QiPjxjb2RlPmphdmEubGFuZy5PYmplY3Q8L3N0cm9uZz48L2NvZGU+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbExhc3QiPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2NvdW50VW5hcHJvdmVkVW5rbm93bkxpY2Vuc2VzKGRlZikiPmNvdW50VW5hcHJvdmVkVW5rbm93bkxpY2Vuc2VzPC9hPjwvc3Ryb25nPihqYXZhLmxhbmcuT2JqZWN0IHhtbFJlcG9ydCk8L2NvZGU+PGJyPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9InJvd0NvbG9yIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbEZpcnN0Ij48Y29kZT5qYXZhLmxhbmcuT2JqZWN0PC9zdHJvbmc+PC9jb2RlPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xMYXN0Ij48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNnZW5lcmF0ZUh0bWxSZXBvcnQoZGVmKSI+Z2VuZXJhdGVIdG1sUmVwb3J0PC9hPjwvc3Ryb25nPihqYXZhLmxhbmcuT2JqZWN0IHhtbFJlcG9ydCk8L2NvZGU+PGJyPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9ImFsdENvbG9yIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbEZpcnN0Ij48Y29kZT5qYXZhLmxhbmcuT2JqZWN0PC9zdHJvbmc+PC9jb2RlPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xMYXN0Ij48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNnZW5lcmF0ZVhtbFJlcG9ydCgpIj5nZW5lcmF0ZVhtbFJlcG9ydDwvYT48L3N0cm9uZz4oKTwvY29kZT48YnI+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0icm93Q29sb3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sRmlyc3QiPjxjb2RlPmphdmEudXRpbC5TZXQmbHQ7amF2YS5pby5GaWxlJmd0Ozwvc3Ryb25nPjwvY29kZT48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sTGFzdCI+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjZ2V0SW5wdXRGaWxlcygpIj5nZXRJbnB1dEZpbGVzPC9hPjwvc3Ryb25nPigpPC9jb2RlPjxicj48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJhbHRDb2xvciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xGaXJzdCI+PGNvZGU+amF2YS5sYW5nLk9iamVjdDwvc3Ryb25nPjwvY29kZT48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sTGFzdCI+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjcmF0KCkiPnJhdDwvYT48L3N0cm9uZz4oKTwvY29kZT48YnI+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KLSAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+PGEgbmFtZT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gICAtLT48L2E+Ci0gICAgICAgICAgICAgICAgICAgIDxoMz5Jbmhlcml0ZWQgTWV0aG9kcyBTdW1tYXJ5PC9oMz4KLSAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9Im92ZXJ2aWV3U3VtbWFyeSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjAiIHN1bW1hcnk9IkluaGVyaXRlZCBNZXRob2RzIFN1bW1hcnkgdGFibGUiPgotICAgICAgICAgICAgICAgICAgICAgICAgPGNhcHRpb24+PHNwYW4+SW5oZXJpdGVkIE1ldGhvZHM8L3NwYW4+PHNwYW4gY2xhc3M9InRhYkVuZCI+Jm5ic3A7PC9zcGFuPjwvY2FwdGlvbj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9ImNvbEZpcnN0IiBzY29wZT0iY29sIj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzPC90aD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9ImNvbExhc3QiIHNjb3BlPSJjb2wiPk5hbWU8L3RoPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJhbHRDb2xvciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xGaXJzdCI+PGNvZGU+Y2xhc3Mgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2s8L3N0cm9uZz48L2NvZGU+PC90ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNvbExhc3QiPjxjb2RlPm9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayN0b1N0cmluZygpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNjb21wYXJlVG8ob3JnLmdyYWRsZS5hcGkuVGFzayksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2NvbXBhcmVUbyhqYXZhLmxhbmcuT2JqZWN0KSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0TmFtZSgpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNnZXRBY3Rpb25zKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldFN0YXRlKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldFN0YXRlKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZyksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldExvZ2dlcigpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNnZXRQYXRoKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldEV4dGVuc2lvbnMoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZXhlY3V0ZSgpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNpc0VuYWJsZWQoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjY29uZmlndXJlKGdyb292eS5sYW5nLkNsb3N1cmUpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNjb25maWd1cmUoZ3Jvb3Z5LmxhbmcuQ2xvc3VyZSksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3Byb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNnZXREZXNjcmlwdGlvbigpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNnZXRBbnQoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0Q29udmVudGlvbigpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNsZWZ0U2hpZnQoZ3Jvb3Z5LmxhbmcuQ2xvc3VyZSksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldFByb2plY3QoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjc2V0RW5hYmxlZChib29sZWFuKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjaGFzUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZyksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldExvZ2dpbmcoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0TG9nZ2luZygpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNnZXRTdGFuZGFyZE91dHB1dENhcHR1cmUoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0QXNEeW5hbWljT2JqZWN0KCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3NldERlc2NyaXB0aW9uKGphdmEubGFuZy5TdHJpbmcpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNnZXRHcm91cCgpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNzZXRHcm91cChqYXZhLmxhbmcuU3RyaW5nKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZXhlY3V0ZVdpdGhvdXRUaHJvd2luZ1Rhc2tGYWlsdXJlKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2RlcGVuZHNPbihbTGphdmEubGFuZy5PYmplY3Q7KSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0RGlkV29yaygpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNvbmx5SWYob3JnLmdyYWRsZS5hcGkuc3BlY3MuU3BlYyksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI29ubHlJZihncm9vdnkubGFuZy5DbG9zdXJlKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZmluYWxpemVkQnkoW0xqYXZhLmxhbmcuT2JqZWN0OyksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2RvRmlyc3QoZ3Jvb3Z5LmxhbmcuQ2xvc3VyZSksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2RvRmlyc3Qob3JnLmdyYWRsZS5hcGkuQWN0aW9uKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0RGVwZW5kc09uKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI211c3RSdW5BZnRlcihbTGphdmEubGFuZy5PYmplY3Q7KSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjc2V0QWN0aW9ucyhqYXZhLnV0aWwuTGlzdCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldE91dHB1dHMoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0T3V0cHV0cygpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNkb0xhc3Qob3JnLmdyYWRsZS5hcGkuQWN0aW9uKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZG9MYXN0KGdyb292eS5sYW5nLkNsb3N1cmUpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNzZXREaWRXb3JrKGJvb2xlYW4pLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNzZXREZXBlbmRzT24oamF2YS5sYW5nLkl0ZXJhYmxlKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0RW5hYmxlZCgpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNzZXRPbmx5SWYoZ3Jvb3Z5LmxhbmcuQ2xvc3VyZSksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3NldE9ubHlJZihvcmcuZ3JhZGxlLmFwaS5zcGVjcy5TcGVjKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0SW5wdXRzKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3NldFByb2plY3Qob3JnLmdyYWRsZS5hcGkuUHJvamVjdCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldFRhc2tEZXBlbmRlbmNpZXMoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0VGFza0RlcGVuZGVuY2llcygpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNkZWxldGVBbGxBY3Rpb25zKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2RlcGVuZHNPblRhc2tEaWRXb3JrKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldFRlbXBvcmFyeURpcigpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNzZXRNdXN0UnVuQWZ0ZXIoamF2YS5sYW5nLkl0ZXJhYmxlKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0TXVzdFJ1bkFmdGVyKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3NldEZpbmFsaXplZEJ5KGphdmEubGFuZy5JdGVyYWJsZSksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldEZpbmFsaXplZEJ5KCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3Nob3VsZFJ1bkFmdGVyKFtMamF2YS5sYW5nLk9iamVjdDspLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNzZXRTaG91bGRSdW5BZnRlcihqYXZhLmxhbmcuSXRlcmFibGUpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNnZXRTaG91bGRSdW5BZnRlcigpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNzZXRJbXBsaWVzU3ViUHJvamVjdHMoYm9vbGVhbiksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldFRhc2tBY3Rpb25zKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldEltcGxpZXNTdWJQcm9qZWN0cygpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNnZXRUZW1wb3JhcnlEaXJGYWN0b3J5KCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2FwcGVuZFBhcmFsbGVsU2FmZUFjdGlvbihvcmcuZ3JhZGxlLmFwaS5BY3Rpb24pLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNpc0hhc0N1c3RvbUFjdGlvbnMoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjcHJlcGVuZFBhcmFsbGVsU2FmZUFjdGlvbihvcmcuZ3JhZGxlLmFwaS5BY3Rpb24pLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayNpbmplY3RJbnRvTmV3SW5zdGFuY2Uob3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwucHJvamVjdC5Qcm9qZWN0SW50ZXJuYWwsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5jb25jdXJyZW50LkNhbGxhYmxlKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjYWRkVmFsaWRhdG9yKG9yZy5ncmFkbGUuYXBpLmludGVybmFsLnRhc2tzLmV4ZWN1dGlvbi5UYXNrVmFsaWRhdG9yKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0T25seUlmKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldEV4ZWN1dGVyKCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI3NldEV4ZWN1dGVyKG9yZy5ncmFkbGUuYXBpLmludGVybmFsLnRhc2tzLlRhc2tFeGVjdXRlciksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2dldFZhbGlkYXRvcnMoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjd2FpdChsb25nLCBpbnQpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayN3YWl0KGxvbmcpLCBvcmcuZ3JhZGxlLmFwaS5EZWZhdWx0VGFzayN3YWl0KCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI2VxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjaGFzaENvZGUoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjZ2V0Q2xhc3MoKSwgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sjbm90aWZ5KCksIG9yZy5ncmFkbGUuYXBpLkRlZmF1bHRUYXNrI25vdGlmeUFsbCgpPC9jb2RlPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJhbHRDb2xvciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xGaXJzdCI+PGNvZGU+Y2xhc3Mgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrPC9zdHJvbmc+PC9jb2RlPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xMYXN0Ij48Y29kZT5vcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayN0b1N0cmluZygpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjY29tcGFyZVRvKG9yZy5ncmFkbGUuYXBpLlRhc2spLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjY29tcGFyZVRvKGphdmEubGFuZy5PYmplY3QpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0TmFtZSgpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0QWN0aW9ucygpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0U3RhdGUoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2dldFN0YXRlKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0TG9nZ2VyKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRQYXRoKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRFeHRlbnNpb25zKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNleGVjdXRlKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNpc0VuYWJsZWQoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2NvbmZpZ3VyZShncm9vdnkubGFuZy5DbG9zdXJlKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2NvbmZpZ3VyZShncm9vdnkubGFuZy5DbG9zdXJlKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI3Byb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0RGVzY3JpcHRpb24oKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2dldEFudCgpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0Q29udmVudGlvbigpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjbGVmdFNoaWZ0KGdyb292eS5sYW5nLkNsb3N1cmUpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0UHJvamVjdCgpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjc2V0RW5hYmxlZChib29sZWFuKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2hhc1Byb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0TG9nZ2luZygpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0TG9nZ2luZygpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0U3RhbmRhcmRPdXRwdXRDYXB0dXJlKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRBc0R5bmFtaWNPYmplY3QoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI3NldERlc2NyaXB0aW9uKGphdmEubGFuZy5TdHJpbmcpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0R3JvdXAoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI3NldEdyb3VwKGphdmEubGFuZy5TdHJpbmcpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZXhlY3V0ZVdpdGhvdXRUaHJvd2luZ1Rhc2tGYWlsdXJlKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNkZXBlbmRzT24oW0xqYXZhLmxhbmcuT2JqZWN0OyksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXREaWRXb3JrKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNvbmx5SWYob3JnLmdyYWRsZS5hcGkuc3BlY3MuU3BlYyksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNvbmx5SWYoZ3Jvb3Z5LmxhbmcuQ2xvc3VyZSksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNmaW5hbGl6ZWRCeShbTGphdmEubGFuZy5PYmplY3Q7KSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2RvRmlyc3QoZ3Jvb3Z5LmxhbmcuQ2xvc3VyZSksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNkb0ZpcnN0KG9yZy5ncmFkbGUuYXBpLkFjdGlvbiksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXREZXBlbmRzT24oKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI211c3RSdW5BZnRlcihbTGphdmEubGFuZy5PYmplY3Q7KSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI3NldEFjdGlvbnMoamF2YS51dGlsLkxpc3QpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0T3V0cHV0cygpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0T3V0cHV0cygpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZG9MYXN0KG9yZy5ncmFkbGUuYXBpLkFjdGlvbiksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNkb0xhc3QoZ3Jvb3Z5LmxhbmcuQ2xvc3VyZSksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNzZXREaWRXb3JrKGJvb2xlYW4pLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjc2V0RGVwZW5kc09uKGphdmEubGFuZy5JdGVyYWJsZSksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRFbmFibGVkKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNzZXRPbmx5SWYoZ3Jvb3Z5LmxhbmcuQ2xvc3VyZSksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNzZXRPbmx5SWYob3JnLmdyYWRsZS5hcGkuc3BlY3MuU3BlYyksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRJbnB1dHMoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI3NldFByb2plY3Qob3JnLmdyYWRsZS5hcGkuUHJvamVjdCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRUYXNrRGVwZW5kZW5jaWVzKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRUYXNrRGVwZW5kZW5jaWVzKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNkZWxldGVBbGxBY3Rpb25zKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNkZXBlbmRzT25UYXNrRGlkV29yaygpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0VGVtcG9yYXJ5RGlyKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNzZXRNdXN0UnVuQWZ0ZXIoamF2YS5sYW5nLkl0ZXJhYmxlKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2dldE11c3RSdW5BZnRlcigpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjc2V0RmluYWxpemVkQnkoamF2YS5sYW5nLkl0ZXJhYmxlKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2dldEZpbmFsaXplZEJ5KCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNzaG91bGRSdW5BZnRlcihbTGphdmEubGFuZy5PYmplY3Q7KSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI3NldFNob3VsZFJ1bkFmdGVyKGphdmEubGFuZy5JdGVyYWJsZSksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRTaG91bGRSdW5BZnRlcigpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjc2V0SW1wbGllc1N1YlByb2plY3RzKGJvb2xlYW4pLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0VGFza0FjdGlvbnMoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2dldEltcGxpZXNTdWJQcm9qZWN0cygpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0VGVtcG9yYXJ5RGlyRmFjdG9yeSgpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjYXBwZW5kUGFyYWxsZWxTYWZlQWN0aW9uKG9yZy5ncmFkbGUuYXBpLkFjdGlvbiksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNpc0hhc0N1c3RvbUFjdGlvbnMoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI3ByZXBlbmRQYXJhbGxlbFNhZmVBY3Rpb24ob3JnLmdyYWRsZS5hcGkuQWN0aW9uKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2luamVjdEludG9OZXdJbnN0YW5jZShvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5wcm9qZWN0LlByb2plY3RJbnRlcm5hbCwgamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLmNvbmN1cnJlbnQuQ2FsbGFibGUpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjYWRkVmFsaWRhdG9yKG9yZy5ncmFkbGUuYXBpLmludGVybmFsLnRhc2tzLmV4ZWN1dGlvbi5UYXNrVmFsaWRhdG9yKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2dldE9ubHlJZigpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZ2V0RXhlY3V0ZXIoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI3NldEV4ZWN1dGVyKG9yZy5ncmFkbGUuYXBpLmludGVybmFsLnRhc2tzLlRhc2tFeGVjdXRlciksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNnZXRWYWxpZGF0b3JzKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayN3YWl0KGxvbmcsIGludCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayN3YWl0KGxvbmcpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjd2FpdCgpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjZXF1YWxzKGphdmEubGFuZy5PYmplY3QpLCBvcmcuZ3JhZGxlLmFwaS5pbnRlcm5hbC5BYnN0cmFjdFRhc2sjaGFzaENvZGUoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI2dldENsYXNzKCksIG9yZy5ncmFkbGUuYXBpLmludGVybmFsLkFic3RyYWN0VGFzayNub3RpZnkoKSwgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwuQWJzdHJhY3RUYXNrI25vdGlmeUFsbCgpPC9jb2RlPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgotICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgIDwvdWw+Ci0gICAgICAgIAotICAgIDwvbGk+Ci0gICAgPC91bD4KLTwvZGl2PgotCi08ZGl2IGNsYXNzPSJkZXRhaWxzIj4KLSAgICA8dWwgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgCi0KLSAgICAgICAgICAgIAotCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT0gUFJPUEVSVFkgREVUQUlMID09PT09PT09PT09IC0tPgotICAgICAgICAgICAgPHVsIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij48YSBuYW1lPSJwcm9wX2RldGFpbCI+Ci0gICAgICAgICAgICAgICAgICAgIDwhLS0gICAtLT4KLSAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDxoMz5Qcm9wZXJ0eSBEZXRhaWw8L2gzPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9ImV4Y2x1ZGVzIj48IS0tIC0tPjwvYT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0TGFzdCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+QG9yZy5ncmFkbGUuYXBpLnRhc2tzLklucHV0Ci1qYXZhLnV0aWwuTGlzdCZsdDtqYXZhLmxhbmcuU3RyaW5nJmd0OyA8c3Ryb25nPmV4Y2x1ZGVzPC9zdHJvbmc+PC9oND4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PC9wPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9ImZhaWxPbkVycm9yIj48IS0tIC0tPjwvYT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0TGFzdCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+Ym9vbGVhbiA8c3Ryb25nPmZhaWxPbkVycm9yPC9zdHJvbmc+PC9oND4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PC9wPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9ImlucHV0RGlyIj48IS0tIC0tPjwvYT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0TGFzdCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+QG9yZy5ncmFkbGUuYXBpLnRhc2tzLklucHV0Ci1qYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+aW5wdXREaXI8L3N0cm9uZz48L2g0PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48L3A+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgPGEgbmFtZT0icmVwb3J0RGlyIj48IS0tIC0tPjwvYT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0TGFzdCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+QG9yZy5ncmFkbGUuYXBpLnRhc2tzLk91dHB1dERpcmVjdG9yeQotamF2YS5pby5GaWxlIDxzdHJvbmc+cmVwb3J0RGlyPC9zdHJvbmc+PC9oND4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PC9wPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9InZlcmJvc2UiPjwhLS0gLS0+PC9hPgotICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJibG9ja0xpc3RMYXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5ib29sZWFuIDxzdHJvbmc+dmVyYm9zZTwvc3Ryb25nPjwvaDQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjwvcD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAKLQotICAgICAgICAgICAgCi0KLSAgICAgICAgICAgIAotCi0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPCEtLSA9PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT09IC0tPgotICAgICAgICAgICAgPHVsIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij48YSBuYW1lPSJtZXRob2RfZGV0YWlsIj4KLSAgICAgICAgICAgICAgICAgICAgPCEtLSAgIC0tPgotICAgICAgICAgICAgICAgIDwvYT4KLSAgICAgICAgICAgICAgICAgICAgPGgzPk1ldGhvZCBEZXRhaWw8L2gzPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9ImNvdW50VW5hcHJvdmVkVW5rbm93bkxpY2Vuc2VzKGRlZikiPjwhLS0gLS0+PC9hPgotICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJibG9ja0xpc3RMYXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5qYXZhLmxhbmcuT2JqZWN0IDxzdHJvbmc+Y291bnRVbmFwcm92ZWRVbmtub3duTGljZW5zZXM8L3N0cm9uZz4oamF2YS5sYW5nLk9iamVjdCB4bWxSZXBvcnQpPC9oND4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PC9wPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9ImdlbmVyYXRlSHRtbFJlcG9ydChkZWYpIj48IS0tIC0tPjwvYT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYmxvY2tMaXN0TGFzdCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+amF2YS5sYW5nLk9iamVjdCA8c3Ryb25nPmdlbmVyYXRlSHRtbFJlcG9ydDwvc3Ryb25nPihqYXZhLmxhbmcuT2JqZWN0IHhtbFJlcG9ydCk8L2g0PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48L3A+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgPGEgbmFtZT0iZ2VuZXJhdGVYbWxSZXBvcnQoKSI+PCEtLSAtLT48L2E+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImJsb2NrTGlzdExhc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PmphdmEubGFuZy5PYmplY3QgPHN0cm9uZz5nZW5lcmF0ZVhtbFJlcG9ydDwvc3Ryb25nPigpPC9oND4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PC9wPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9ImdldElucHV0RmlsZXMoKSI+PCEtLSAtLT48L2E+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImJsb2NrTGlzdExhc3QiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYmxvY2tMaXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PkBvcmcuZ3JhZGxlLmFwaS50YXNrcy5JbnB1dEZpbGVzCi1qYXZhLnV0aWwuU2V0Jmx0O2phdmEuaW8uRmlsZSZndDsgPHN0cm9uZz5nZXRJbnB1dEZpbGVzPC9zdHJvbmc+KCk8L2g0PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48L3A+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgPGEgbmFtZT0icmF0KCkiPjwhLS0gLS0+PC9hPgotICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJibG9ja0xpc3RMYXN0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImJsb2NrTGlzdCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5Ab3JnLmdyYWRsZS5hcGkudGFza3MuVGFza0FjdGlvbgotamF2YS5sYW5nLk9iamVjdCA8c3Ryb25nPnJhdDwvc3Ryb25nPigpPC9oND4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PC9wPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgIAotICAgICAgICA8L2xpPgotICAgIDwvdWw+Ci08L2Rpdj4KLQotPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgotPCEtLSA9PT09PT09IFNUQVJUIE9GIEJPVFRPTSBOQVZCQVIgPT09PT09IC0tPgotPGRpdiBjbGFzcz0iYm90dG9tTmF2Ij48YSBuYW1lPSJuYXZiYXJfYm90dG9tIj4KLSAgICA8IS0tICAgLS0+Ci08L2E+PGEgaHJlZj0iI3NraXAtbmF2YmFyX2JvdHRvbSIgdGl0bGU9IlNraXAgbmF2aWdhdGlvbiBsaW5rcyI+PC9hPjxhIG5hbWU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPgotICAgIDwhLS0gICAtLT4KLTwvYT4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiIHRpdGxlPSJOYXZpZ2F0aW9uIj4KLSAgICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+T3ZlcnZpZXc8L2E+PC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj5QYWNrYWdlPC9hPjwvbGk+Ci0gICAgICAgIDxsaSBjbGFzcz0ibmF2QmFyQ2VsbDFSZXYiPkNsYXNzPC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj5EZXByZWNhdGVkPC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+SW5kZXg8L2E+PC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPkhlbHA8L2E+PC9saT4KLSAgICA8L3VsPgotPC9kaXY+Ci0KLTxkaXYgY2xhc3M9InN1Yk5hdiI+Ci0gICAgPGRpdj4KLSAgICAgICAgPHVsIGNsYXNzPSJuYXZMaXN0Ij4KLSAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sP29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICAgICAgPGxpPjxhIGhyZWY9IlJhdFRhc2suaHRtbCIgdGFyZ2V0PSJfdG9wIj5ObyBGcmFtZXM8L2E+PC9saT4KLSAgICAgICAgPC91bD4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2PgotICAgICAgICA8dWwgY2xhc3M9InN1Yk5hdkxpc3QiPgotICAgICAgICAgICAgPGxpPlN1bW1hcnk6Jm5ic3A7PC9saT4KLSAgICAgICAgICAgIE5lc3RlZCZuYnNwOyZuYnNwOyZuYnNwO0ZpZWxkJm5ic3A7Jm5ic3A7Jm5ic3A7PGxpPjxhIGhyZWY9IiNwcm9wZXJ0eV9zdW1tYXJ5Ij5Qcm9wZXJ0eTwvYT48L2xpPiZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yJm5ic3A7Jm5ic3A7Jm5ic3A7PGxpPjxhIGhyZWY9IiNtZXRob2Rfc3VtbWFyeSI+TWV0aG9kPC9hPjwvbGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIDx1bCBjbGFzcz0ic3ViTmF2TGlzdCI+Ci0gICAgICAgICAgICA8bGk+Jm5ic3A7fCZuYnNwO0RldGFpbDombmJzcDs8L2xpPgotICAgICAgICAgICAgRmllbGQmbmJzcDsmbmJzcDsmbmJzcDs8bGk+PGEgaHJlZj0iI3Byb3BfZGV0YWlsIj5Qcm9wZXJ0eTwvYT48L2xpPiZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yJm5ic3A7Jm5ic3A7Jm5ic3A7PGxpPjxhIGhyZWY9IiNtZXRob2RfZGV0YWlsIj5NZXRob2Q8L2E+PC9saT4mbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgPC91bD4KLSAgICA8L2Rpdj4KLSAgICA8cD5Hcm9vdnkgRG9jdW1lbnRhdGlvbjwvcD4KLSAgICA8YSBuYW1lPSJza2lwLW5hdmJhcl9ib3R0b20iPgotICAgICAgICA8IS0tICAgLS0+Ci0gICAgPC9hPgotICAgIDwvZGl2PgotPC9kaXY+Ci08IS0tID09PT09PT09IEVORCBPRiBCT1RUT00gTkFWQkFSID09PT09PT0gLS0+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9wYWNrYWdlLWZyYW1lLmh0bWwgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9wYWNrYWdlLWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliN2YzYWYuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvcGFja2FnZS1mcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5vcmcuYXBhY2hlLnJhdC5ncmFkbGU8L3RpdGxlPgotICAgIAotICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+Ci0gICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy9hcGFjaGUvcmF0L2dyYWRsZSBwYWNrYWdlIj4KLQotICAgIDxsaW5rIGhyZWY9Imdyb292eS5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiIgcmVsPSJzaG9ydGN1dCBpY29uIj4KLSAgICA8bGluayBocmVmPSJncm9vdnkuaWNvIiB0eXBlPSJpbWFnZS94LWljb24iIHJlbD0iaWNvbiI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIHRpdGxlPSJTdHlsZSI+Ci08L2hlYWQ+Ci0KLTxib2R5IGNsYXNzPSJsZWZ0Ij4KLTxkaXYgY2xhc3M9ImluZGV4SGVhZGVyIj4KLSAgICA8Yj48YSBocmVmPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj5vcmcuYXBhY2hlLnJhdC5ncmFkbGU8L2E+PC9iPgotPC9kaXY+Ci0KLQotCi0KLQotPGRpdiBjbGFzcz0iaW5kZXhDb250YWluZXIiPgotICAgIDxoMj5DbGFzc2VzPC9oMj4KLSAgICA8dWw+Ci0gICAgICAgIDxsaT48YSBocmVmPSJSYXRQbHVnaW4uaHRtbCIgdGl0bGU9ImNsYXNzIGluIG9yZy5hcGFjaGUucmF0LmdyYWRsZSIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj5SYXRQbHVnaW48L2E+PC9saT48bGk+PGEgaHJlZj0iUmF0VGFzay5odG1sIiB0aXRsZT0iY2xhc3MgaW4gb3JnLmFwYWNoZS5yYXQuZ3JhZGxlIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPlJhdFRhc2s8L2E+PC9saT4KLSAgICA8L3VsPgotPC9kaXY+Ci0KLQotCi0KLQotCi0KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9wYWNrYWdlLXN1bW1hcnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2M4YWE2Yy4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9wYWNrYWdlLXN1bW1hcnkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci0KLTx0aXRsZT5vcmcuYXBhY2hlLnJhdC5ncmFkbGUgKGFwYWNoZS1yYXQtZ3JhZGxlIDAuMTItU05BUFNIT1QgQVBJKTwvdGl0bGU+Ci08bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0ib3JnLmFwYWNoZS5yYXQuZ3JhZGxlIHBhY2thZ2UiPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KLTxsaW5rIHJlbCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgdGl0bGU9IlN0eWxlIj4KLTxsaW5rIGhyZWY9Ii4uLy4uLy4uLy4uL2dyb292eS5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiIgcmVsPSJzaG9ydGN1dCBpY29uIj4KLTxsaW5rIGhyZWY9Ii4uLy4uLy4uLy4uL2dyb292eS5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiIgcmVsPSJpY29uIj4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWZ1bmN0aW9uIHdpbmRvd1RpdGxlKCkKLXsKLSAgICBwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUucmF0LmdyYWRsZSAoYXBhY2hlLXJhdC1ncmFkbGUgMC4xMi1TTkFQU0hPVCBBUEkpIjsKLX0KLTwvc2NyaXB0PgotPG5vc2NyaXB0PgotPC9ub3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBjbGFzcz0iY2VudGVyIiBvbmxvYWQ9IndpbmRvd1RpdGxlKCk7Ij4KLQotPCEtLSA9PT09PT09PT0gU1RBUlQgT0YgVE9QIE5BVkJBUiA9PT09PT09IC0tPgotPGRpdiBjbGFzcz0idG9wTmF2Ij48YSBuYW1lPSJuYXZiYXJfdG9wIj4KLSAgICA8IS0tICAgLS0+Ci08L2E+PGEgaHJlZj0iI3NraXAtbmF2YmFyX3RvcCIgdGl0bGU9IlNraXAgbmF2aWdhdGlvbiBsaW5rcyI+PC9hPjxhIG5hbWU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPgotICAgIDwhLS0gICAtLT4KLTwvYT4KLTxhIG5hbWU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9hPgotPHVsIGNsYXNzPSJuYXZMaXN0IiB0aXRsZT0iTmF2aWdhdGlvbiI+Ci0gICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+T3ZlcnZpZXc8L2E+PC9saT4KLSAgICA8bGkgY2xhc3M9Im5hdkJhckNlbGwxUmV2Ij5QYWNrYWdlPC9saT4KLSAgICA8bGk+Q2xhc3M8L2xpPgotICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+RGVwcmVjYXRlZDwvYT48L2xpPgotICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+SW5kZXg8L2E+PC9saT4KLSAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+SGVscDwvYT48L2xpPgotPC91bD4KLTwvZGl2PgotCi08ZGl2IGNsYXNzPSJzdWJOYXYiPgotICAgIDx1bCBjbGFzcz0ibmF2TGlzdCI+Ci0gICAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sP29yZy9hcGFjaGUvcmF0L2dyYWRsZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJfdG9wIj5GcmFtZXM8L2E+PC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiB0YXJnZXQ9Il90b3AiPk5vIEZyYW1lczwvYT48L2xpPgotICAgIDwvdWw+Ci08L2Rpdj4KLQotPCEtLSA9PT09PT09PT0gRU5EIE9GIFRPUCBOQVZCQVIgPT09PT09PT09IC0tPgotCi08ZGl2IGNsYXNzPSJoZWFkZXIiPgotICAgIDxoMSBjbGFzcz0idGl0bGUiPlBhY2thZ2Ugb3JnLmFwYWNoZS5yYXQuZ3JhZGxlPC9oMT4KLTwvZGl2PgotCi08ZGl2IGNsYXNzPSJoZWFkZXIiPgotICAgIDxoMiB0aXRsZT0iIiBjbGFzcz0idGl0bGUiPjwvaDI+Ci08L2Rpdj4KLQotPGRpdiBjbGFzcz0iY29udGVudENvbnRhaW5lciI+Ci0KLQotCi0KLSAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5Ij4KLSAgICAgICAgPHVsIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgPGxpIGNsYXNzPSJibG9ja0xpc3QiPgotICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMCIgc3VtbWFyeT0iQ2xhc3MgU3VtbWFyeSI+Ci0gICAgICAgICAgICAgICAgICAgIDxjYXB0aW9uPjxzcGFuPkNsYXNzIFN1bW1hcnk8L3NwYW4+PHNwYW4gY2xhc3M9InRhYkVuZCI+Jm5ic3A7PC9zcGFuPjwvY2FwdGlvbj4KLSAgICAgICAgICAgICAgICAgICAgPHRib2R5PgotICAgICAgICAgICAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9ImNvbEZpcnN0IiBzY29wZT0iY29sIj5DbGFzczwvdGg+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9ImNvbExhc3QiIHNjb3BlPSJjb2wiPkRlc2NyaXB0aW9uPC90aD4KLSAgICAgICAgICAgICAgICAgICAgPC90cj4KLTx0ciBjbGFzcz0iYWx0Q29sb3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sT25lIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz48YSBocmVmPSJSYXRQbHVnaW4uaHRtbCIgdGl0bGU9ImNsYXNzIGluIG9yZy9hcGFjaGUvcmF0L2dyYWRsZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXRQbHVnaW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPjwvc3Ryb25nPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgotPHRyIGNsYXNzPSJhbHRDb2xvciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2xPbmUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPjxhIGhyZWY9IlJhdFRhc2suaHRtbCIgdGl0bGU9ImNsYXNzIGluIG9yZy9hcGFjaGUvcmF0L2dyYWRsZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXRUYXNrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT48L3N0cm9uZz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgotICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KLQotICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgotICAgICAgICAgICAgICAgIDwvdGFibGU+Ci0gICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgPC91bD4KLSAgICAgICAgPC9kaXY+Ci0gICAgCi0KLQotCi0KLQotCi08L2Rpdj4KLQotPCEtLSA9PT09PT09IFNUQVJUIE9GIEJPVFRPTSBOQVZCQVIgPT09PT09IC0tPgotPGRpdiBjbGFzcz0iYm90dG9tTmF2Ij48YSBuYW1lPSJuYXZiYXJfYm90dG9tIj4KLSAgICA8IS0tICAgLS0+Ci08L2E+PGEgaHJlZj0iI3NraXAtbmF2YmFyX2JvdHRvbSIgdGl0bGU9IlNraXAgbmF2aWdhdGlvbiBsaW5rcyI+PC9hPjxhIG5hbWU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPgotICAgIDwhLS0gICAtLT4KLTwvYT4KLSAgICA8dWwgY2xhc3M9Im5hdkxpc3QiIHRpdGxlPSJOYXZpZ2F0aW9uIj4KLSAgICAgICAgPGxpPjxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+T3ZlcnZpZXc8L2E+PC9saT4KLSAgICAgICAgPGxpIGNsYXNzPSJuYXZCYXJDZWxsMVJldiI+UGFja2FnZTwvbGk+Ci0gICAgICAgIDxsaT5DbGFzczwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJkZXByZWNhdGVkLWxpc3QuaHRtbCI+RGVwcmVjYXRlZDwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iaW5kZXgtYWxsLmh0bWwiPkluZGV4PC9hPjwvbGk+Ci0gICAgICAgIDxsaT48YSBocmVmPSJoZWxwLWRvYy5odG1sIj5IZWxwPC9hPjwvbGk+Ci0gICAgPC91bD4KLTwvZGl2PgotPGRpdiBjbGFzcz0ic3ViTmF2Ij4KLSAgICA8ZGl2PgotICAgICAgICA8dWwgY2xhc3M9Im5hdkxpc3QiPgotICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWw/ZGVwcmVjYXRlZC1saXN0Lmh0bWwiIHRhcmdldD0iX3RvcCI+RnJhbWVzPC9hPjwvbGk+Ci0gICAgICAgICAgICA8bGk+PGEgaHJlZj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiIHRhcmdldD0iX3RvcCI+Tm8gRnJhbWVzPC9hPjwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGNsYXNzPSJhYm91dExhbmd1YWdlIj48ZW0+R3Jvb3Z5IERvY3VtZW50YXRpb248L2VtPjwvZGl2PgotICAgIDxhIG5hbWU9InNraXAtbmF2YmFyX2JvdHRvbSI+Ci0gICAgICAgIDwhLS0gICAtLT4KLSAgICA8L2E+PC9kaXY+Ci08IS0tID09PT09PT09IEVORCBPRiBCT1RUT00gTkFWQkFSID09PT09PT0gLS0+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2Mvb3ZlcnZpZXctZnJhbWUuaHRtbCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2Mvb3ZlcnZpZXctZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI2MTc1Yy4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL292ZXJ2aWV3LWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+T3ZlcnZpZXcgKGFwYWNoZS1yYXQtZ3JhZGxlIDAuMTItU05BUFNIT1QgQVBJKTwvdGl0bGU+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPgotPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9Ik92ZXJ2aWV3Ij4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic3R5bGVzaGVldC5jc3MiIHRpdGxlPSJTdHlsZSI+Ci0KLTwvaGVhZD4KLQotPGJvZHkgY2xhc3M9ImxlZnQiPgotPGRpdiBjbGFzcz0iaW5kZXhIZWFkZXIiPjxhIGhyZWY9ImFsbGNsYXNzZXMtZnJhbWUuaHRtbCIgdGFyZ2V0PSJwYWNrYWdlRnJhbWUiPkFsbCBDbGFzc2VzPC9hPjwvZGl2PgotPGRpdiBjbGFzcz0iaW5kZXhDb250YWluZXIiPgotICAgIDxoMiB0aXRsZT0iUGFja2FnZXMiPlBhY2thZ2VzPC9oMj4KLSAgICA8dWwgdGl0bGU9IlBhY2thZ2VzIj4KLSAgICAgICAgCi0gICAgICAgIDxsaT48YSBocmVmPSJvcmcvYXBhY2hlL3JhdC9ncmFkbGUvcGFja2FnZS1mcmFtZS5odG1sIgotICAgICAgICAgICAgICAgdGFyZ2V0PSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUucmF0LmdyYWRsZTwvYT48L2xpPgotICAgICAgICAKLSAgICA8L3VsPgotPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2Mvb3ZlcnZpZXctc3VtbWFyeS5odG1sIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9vdmVydmlldy1zdW1tYXJ5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmYzMyZDEuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9vdmVydmlldy1zdW1tYXJ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+T3ZlcnZpZXcgKGFwYWNoZS1yYXQtZ3JhZGxlIDAuMTItU05BUFNIT1QgQVBJKTwvdGl0bGU+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPgotPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9Ik92ZXJ2aWV3Ij4KLTxsaW5rIHJlbCA9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIgdGl0bGU9IlN0eWxlIj4KLTxsaW5rIGhyZWY9Imdyb292eS5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiIgcmVsPSJzaG9ydGN1dCBpY29uIj4KLTxsaW5rIGhyZWY9Imdyb292eS5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiIgcmVsPSJpY29uIj4KLTwvaGVhZD4KLTxib2R5IGNsYXNzPSJjZW50ZXIiPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KLWlmIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2lzLWV4dGVybmFsPXRydWUnKSA9PSAtMSkgewotICAgIHBhcmVudC5kb2N1bWVudC50aXRsZT0iT3ZlcnZpZXcgKGFwYWNoZS1yYXQtZ3JhZGxlIDAuMTItU05BUFNIT1QgQVBJKSI7Ci19Ci0vLy0tPgotPC9zY3JpcHQ+Ci08bm9zY3JpcHQ+Ci0gICAgPGRpdj5KYXZhU2NyaXB0IGlzIGRpc2FibGVkIG9uIHlvdXIgYnJvd3Nlci48L2Rpdj4KLTwvbm9zY3JpcHQ+Ci0KLTwhLS0gPT09PT09PT09IFNUQVJUIE9GIFRPUCBOQVZCQVIgPT09PT09PSAtLT4KLTxkaXYgY2xhc3M9InRvcE5hdiI+PGEgbmFtZT0ibmF2YmFyX3RvcCI+Ci0gICAgPCEtLSAgIC0tPgotPC9hPjxhIGhyZWY9IiNza2lwLW5hdmJhcl90b3AiIHRpdGxlPSJTa2lwIG5hdmlnYXRpb24gbGlua3MiPjwvYT48YSBuYW1lPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij4KLSAgICA8IS0tICAgLS0+Ci08L2E+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0IiB0aXRsZT0iTmF2aWdhdGlvbiI+Ci0gICAgICAgIDxsaSBjbGFzcz0ibmF2QmFyQ2VsbDFSZXYiPk92ZXJ2aWV3PC9saT4KLSAgICAgICAgPGxpPlBhY2thZ2U8L2xpPgotICAgICAgICA8bGk+Q2xhc3M8L2xpPgotICAgICAgICA8IS0tPGxpPjxhIGhyZWY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+VHJlZTwvYT48L2xpPi0tPgotICAgICAgICA8bGk+PGEgaHJlZj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPkRlcHJlY2F0ZWQ8L2E+PC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4LWFsbC5odG1sIj5JbmRleDwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iaGVscC1kb2MuaHRtbCI+SGVscDwvYT48L2xpPgotICAgIDwvdWw+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9InN1Yk5hdiI+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0Ij4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWw/b3ZlcnZpZXctc3VtbWFyeS5odG1sIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiB0YXJnZXQ9Il90b3AiPk5vIEZyYW1lczwvYT48L2xpPgotICAgIDwvdWw+Ci0gICAgPGEgbmFtZT0ic2tpcC1uYXZiYXJfdG9wIj4KLSAgICAgICAgPCEtLSAgIC0tPgotICAgIDwvYT48L2Rpdj4KLTwhLS0gPT09PT09PT09IEVORCBPRiBUT1AgTkFWQkFSID09PT09PT09PSAtLT4KLTxkaXYgY2xhc3M9ImhlYWRlciI+Ci0gICAgPGgxIGNsYXNzPSJ0aXRsZSI+YXBhY2hlLXJhdC1ncmFkbGUgMC4xMi1TTkFQU0hPVCBBUEk8L2gxPgotPC9kaXY+Ci0KLTxkaXYgY2xhc3M9ImhlYWRlciI+Ci0gICAgPGRpdiBjbGFzcz0ic3ViVGl0bGUiPgotICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayI+PC9kaXY+Ci0gICAgPC9kaXY+Ci0gICAgCi08L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRlbnRDb250YWluZXIiPgotPHRhYmxlIGNsYXNzPSJvdmVydmlld1N1bW1hcnkiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIwIiBzdW1tYXJ5PSJQYWNrYWdlcyB0YWJsZSwgbGlzdGluZyBwYWNrYWdlcywgYW5kIGFuIGV4cGxhbmF0aW9uIj4KLTxjYXB0aW9uPjxzcGFuPlBhY2thZ2VzPC9zcGFuPjxzcGFuIGNsYXNzPSJ0YWJFbmQiPiZuYnNwOzwvc3Bhbj48L2NhcHRpb24+Ci08dHI+Ci0gICAgPHRoIGNsYXNzPSJjb2xGaXJzdCIgc2NvcGU9ImNvbCI+UGFja2FnZTwvdGg+Ci0gICAgPHRoIGNsYXNzPSJjb2xMYXN0IiBzY29wZT0iY29sIj5EZXNjcmlwdGlvbjwvdGg+Ci08L3RyPgotPHRib2R5PgotCi08dHIgY2xhc3M9ImFsdENvbG9yIj4KLSAgICA8dGQgY2xhc3M9ImNvbEZpcnN0Ij48YSBocmVmPSJvcmcvYXBhY2hlL3JhdC9ncmFkbGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUucmF0LmdyYWRsZTwvYT48L3RkPgotICAgIDx0ZCBjbGFzcz0iY29sTGFzdCI+Jm5ic3A7PC90ZD4KLTwvdHI+Ci0KLQotPC90Ym9keT4KLTwvdGFibGU+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9ImZvb3RlciI+PGEgbmFtZT0ib3ZlcnZpZXdfZGVzY3JpcHRpb24iPgotICAgIDwhLS0gICAtLT4KLTwvYT4KLQotPFA+Ci0KLTwhLS0gPT09PT09PSBTVEFSVCBPRiBCT1RUT00gTkFWQkFSID09PT09PSAtLT4KLTxkaXYgY2xhc3M9ImJvdHRvbU5hdiI+PGEgbmFtZT0ibmF2YmFyX2JvdHRvbSI+Ci0gICAgPCEtLSAgIC0tPgotPC9hPjxhIGhyZWY9IiNza2lwLW5hdmJhcl9ib3R0b20iIHRpdGxlPSJTa2lwIG5hdmlnYXRpb24gbGlua3MiPjwvYT48YSBuYW1lPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij4KLSAgICA8IS0tICAgLS0+Ci08L2E+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0IiB0aXRsZT0iTmF2aWdhdGlvbiI+Ci0gICAgICAgIDxsaSBjbGFzcz0ibmF2QmFyQ2VsbDFSZXYiPk92ZXJ2aWV3PC9saT4KLSAgICAgICAgPGxpPlBhY2thZ2U8L2xpPgotICAgICAgICA8bGk+Q2xhc3M8L2xpPgotICAgICAgICA8IS0tPGxpPjxhIGhyZWY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+VHJlZTwvYT48L2xpPi0tPgotICAgICAgICA8bGk+PGEgaHJlZj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPkRlcHJlY2F0ZWQ8L2E+PC9saT4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4LWFsbC5odG1sIj5JbmRleDwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0iaGVscC1kb2MuaHRtbCI+SGVscDwvYT48L2xpPgotICAgIDwvdWw+Ci08L2Rpdj4KLTxkaXYgY2xhc3M9InN1Yk5hdiI+Ci0gICAgPHVsIGNsYXNzPSJuYXZMaXN0Ij4KLSAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWw/b3ZlcnZpZXctc3VtbWFyeS5odG1sIiB0YXJnZXQ9Il90b3AiPkZyYW1lczwvYT48L2xpPgotICAgICAgICA8bGk+PGEgaHJlZj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiB0YXJnZXQ9Il90b3AiPk5vIEZyYW1lczwvYT48L2xpPgotICAgIDwvdWw+Ci0gICAgPGRpdiBjbGFzcz0iYWJvdXRMYW5ndWFnZSI+PGVtPkdyb292eSBEb2N1bWVudGF0aW9uPC9lbT48L2Rpdj4KLSAgICA8YSBuYW1lPSJza2lwLW5hdmJhcl9ib3R0b20iPgotICAgICAgICA8IS0tICAgLS0+Ci0gICAgPC9hPjwvZGl2PgotPC9kaXY+Ci08IS0tID09PT09PT09IEVORCBPRiBCT1RUT00gTkFWQkFSID09PT09PT0gLS0+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL3BhY2thZ2UtbGlzdCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvcGFja2FnZS1saXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2JjN2IxLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvZG9jcy9ncm9vdnlkb2MvcGFja2FnZS1saXN0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotb3JnLmFwYWNoZS5yYXQuZ3JhZGxlCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL3N0eWxlc2hlZXQuY3NzIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9kb2NzL2dyb292eWRvYy9zdHlsZXNoZWV0LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2JlNWFjMS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2RvY3MvZ3Jvb3Z5ZG9jL3N0eWxlc2hlZXQuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMjMwNiArMCwwIEBACi1AY2hhcnNldCAid2luZG93cy0xMjUyIjsKLQotLyohIG5vcm1hbGl6ZS5jc3MgdjIuMS4wIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovCi1hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtYWluLCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkgewotICAgIGRpc3BsYXk6IGJsb2NrCi19Ci0KLWF1ZGlvLCBjYW52YXMsIHZpZGVvIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sKLX0KLQotYXVkaW86bm90KFtjb250cm9sc10pIHsKLSAgICBkaXNwbGF5OiBub25lOwotICAgIGhlaWdodDogMAotfQotCi1baGlkZGVuXSB7Ci0gICAgZGlzcGxheTogbm9uZQotfQotCi1odG1sIHsKLSAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKLSAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7Ci0gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCUKLX0KLQotYm9keSB7Ci0gICAgbWFyZ2luOiAwCi19Ci0KLWE6Zm9jdXMgewotICAgIG91dGxpbmU6IHRoaW4gZG90dGVkCi19Ci0KLWE6YWN0aXZlLCBhOmhvdmVyIHsKLSAgICBvdXRsaW5lOiAwCi19Ci0KLWgxIHsKLSAgICBmb250LXNpemU6IDJlbTsKLSAgICBtYXJnaW46IC42N2VtIDAKLX0KLQotYWJiclt0aXRsZV0gewotICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQKLX0KLQotYiwgc3Ryb25nIHsKLSAgICBmb250LXdlaWdodDogYm9sZAotfQotCi1kZm4gewotICAgIGZvbnQtc3R5bGU6IGl0YWxpYwotfQotCi1ociB7Ci0gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsKLSAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKLSAgICBoZWlnaHQ6IDAKLX0KLQotbWFyayB7Ci0gICAgYmFja2dyb3VuZDogI2ZmMDsKLSAgICBjb2xvcjogIzAwMAotfQotCi1jb2RlLCBrYmQsIHByZSwgc2FtcCB7Ci0gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgc2VyaWY7Ci0gICAgZm9udC1zaXplOiAxZW0KLX0KLQotcHJlIHsKLSAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXAKLX0KLQotcSB7Ci0gICAgcXVvdGVzOiAiP0MiICI/RCIgIj84IiAiPzkiCi19Ci0KLXNtYWxsIHsKLSAgICBmb250LXNpemU6IDgwJQotfQotCi1zdWIsIHN1cCB7Ci0gICAgZm9udC1zaXplOiA3NSU7Ci0gICAgbGluZS1oZWlnaHQ6IDA7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZQotfQotCi1zdXAgewotICAgIHRvcDogLTAuNWVtCi19Ci0KLXN1YiB7Ci0gICAgYm90dG9tOiAtMC4yNWVtCi19Ci0KLWltZyB7Ci0gICAgYm9yZGVyOiAwCi19Ci0KLXN2Zzpub3QoOnJvb3QpIHsKLSAgICBvdmVyZmxvdzogaGlkZGVuCi19Ci0KLWZpZ3VyZSB7Ci0gICAgbWFyZ2luOiAwCi19Ci0KLWZpZWxkc2V0IHsKLSAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwOwotICAgIG1hcmdpbjogMCAycHg7Ci0gICAgcGFkZGluZzogLjM1ZW0gLjYyNWVtIC43NWVtCi19Ci0KLWxlZ2VuZCB7Ci0gICAgYm9yZGVyOiAwOwotICAgIHBhZGRpbmc6IDAKLX0KLQotYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7Ci0gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7Ci0gICAgZm9udC1zaXplOiAxMDAlOwotICAgIG1hcmdpbjogMAotfQotCi1idXR0b24sIGlucHV0IHsKLSAgICBsaW5lLWhlaWdodDogbm9ybWFsCi19Ci0KLWJ1dHRvbiwgc2VsZWN0IHsKLSAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZQotfQotCi1idXR0b24sIGh0bWwgaW5wdXRbdHlwZT0iYnV0dG9uIl0sIGlucHV0W3R5cGU9InJlc2V0Il0sIGlucHV0W3R5cGU9InN1Ym1pdCJdIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsKLSAgICBjdXJzb3I6IHBvaW50ZXIKLX0KLQotYnV0dG9uW2Rpc2FibGVkXSwgaHRtbCBpbnB1dFtkaXNhYmxlZF0gewotICAgIGN1cnNvcjogZGVmYXVsdAotfQotCi1pbnB1dFt0eXBlPSJjaGVja2JveCJdLCBpbnB1dFt0eXBlPSJyYWRpbyJdIHsKLSAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIHBhZGRpbmc6IDAKLX0KLQotaW5wdXRbdHlwZT0ic2VhcmNoIl0gewotICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOwotICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7Ci0gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsKLSAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveAotfQotCi1pbnB1dFt0eXBlPSJzZWFyY2giXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgaW5wdXRbdHlwZT0ic2VhcmNoIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24gewotICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZQotfQotCi1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsIGlucHV0OjotbW96LWZvY3VzLWlubmVyIHsKLSAgICBib3JkZXI6IDA7Ci0gICAgcGFkZGluZzogMAotfQotCi10ZXh0YXJlYSB7Ci0gICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgdmVydGljYWwtYWxpZ246IHRvcAotfQotCi10YWJsZSB7Ci0gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKLSAgICBib3JkZXItc3BhY2luZzogMAotfQotCi1ALW1zLXZpZXdwb3J0IHsKLSAgICB3aWR0aDogZGV2aWNlLXdpZHRoCi19Ci0KLUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7Ci0gICAgQC1tcy12aWV3cG9ydCB7Ci0gICAgICAgIHdpZHRoOiAzMjBweAotICAgIH0KLX0KLQotLmhpZGRlbiB7Ci0gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwotICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50Ci19Ci0KLS52aXNpYmxlLXhzIHsKLSAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLX0KLQotdHIudmlzaWJsZS14cyB7Ci0gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci19Ci0KLXRoLnZpc2libGUteHMsIHRkLnZpc2libGUteHMgewotICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotfQotCi1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsKLSAgICAudmlzaWJsZS14cyB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci52aXNpYmxlLXhzIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC52aXNpYmxlLXhzLCB0ZC52aXNpYmxlLXhzIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkgewotICAgIC52aXNpYmxlLXhzLnZpc2libGUtc20gewotICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIudmlzaWJsZS14cy52aXNpYmxlLXNtIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC52aXNpYmxlLXhzLnZpc2libGUtc20sIHRkLnZpc2libGUteHMudmlzaWJsZS1zbSB7Ci0gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudAotICAgIH0KLX0KLQotQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7Ci0gICAgLnZpc2libGUteHMudmlzaWJsZS1tZCB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci52aXNpYmxlLXhzLnZpc2libGUtbWQgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLnZpc2libGUteHMudmlzaWJsZS1tZCwgdGQudmlzaWJsZS14cy52aXNpYmxlLW1kIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7Ci0gICAgLnZpc2libGUteHMudmlzaWJsZS1sZyB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci52aXNpYmxlLXhzLnZpc2libGUtbGcgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLnZpc2libGUteHMudmlzaWJsZS1sZywgdGQudmlzaWJsZS14cy52aXNpYmxlLWxnIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50Ci0gICAgfQotfQotCi0udmlzaWJsZS1zbSB7Ci0gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci19Ci0KLXRyLnZpc2libGUtc20gewotICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotfQotCi10aC52aXNpYmxlLXNtLCB0ZC52aXNpYmxlLXNtIHsKLSAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLX0KLQotQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7Ci0gICAgLnZpc2libGUtc20udmlzaWJsZS14cyB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci52aXNpYmxlLXNtLnZpc2libGUteHMgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLnZpc2libGUtc20udmlzaWJsZS14cywgdGQudmlzaWJsZS1zbS52aXNpYmxlLXhzIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkgewotICAgIC52aXNpYmxlLXNtIHsKLSAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLnZpc2libGUtc20gewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLnZpc2libGUtc20sIHRkLnZpc2libGUtc20gewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkgewotICAgIC52aXNpYmxlLXNtLnZpc2libGUtbWQgewotICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIudmlzaWJsZS1zbS52aXNpYmxlLW1kIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC52aXNpYmxlLXNtLnZpc2libGUtbWQsIHRkLnZpc2libGUtc20udmlzaWJsZS1tZCB7Ci0gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudAotICAgIH0KLX0KLQotQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkgewotICAgIC52aXNpYmxlLXNtLnZpc2libGUtbGcgewotICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIudmlzaWJsZS1zbS52aXNpYmxlLWxnIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC52aXNpYmxlLXNtLnZpc2libGUtbGcsIHRkLnZpc2libGUtc20udmlzaWJsZS1sZyB7Ci0gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudAotICAgIH0KLX0KLQotLnZpc2libGUtbWQgewotICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotfQotCi10ci52aXNpYmxlLW1kIHsKLSAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLX0KLQotdGgudmlzaWJsZS1tZCwgdGQudmlzaWJsZS1tZCB7Ci0gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci19Ci0KLUBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkgewotICAgIC52aXNpYmxlLW1kLnZpc2libGUteHMgewotICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIudmlzaWJsZS1tZC52aXNpYmxlLXhzIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC52aXNpYmxlLW1kLnZpc2libGUteHMsIHRkLnZpc2libGUtbWQudmlzaWJsZS14cyB7Ci0gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudAotICAgIH0KLX0KLQotQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHsKLSAgICAudmlzaWJsZS1tZC52aXNpYmxlLXNtIHsKLSAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLnZpc2libGUtbWQudmlzaWJsZS1zbSB7Ci0gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGgudmlzaWJsZS1tZC52aXNpYmxlLXNtLCB0ZC52aXNpYmxlLW1kLnZpc2libGUtc20gewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkgewotICAgIC52aXNpYmxlLW1kIHsKLSAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLnZpc2libGUtbWQgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLnZpc2libGUtbWQsIHRkLnZpc2libGUtbWQgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHsKLSAgICAudmlzaWJsZS1tZC52aXNpYmxlLWxnIHsKLSAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLnZpc2libGUtbWQudmlzaWJsZS1sZyB7Ci0gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGgudmlzaWJsZS1tZC52aXNpYmxlLWxnLCB0ZC52aXNpYmxlLW1kLnZpc2libGUtbGcgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLS52aXNpYmxlLWxnIHsKLSAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLX0KLQotdHIudmlzaWJsZS1sZyB7Ci0gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci19Ci0KLXRoLnZpc2libGUtbGcsIHRkLnZpc2libGUtbGcgewotICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotfQotCi1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsKLSAgICAudmlzaWJsZS1sZy52aXNpYmxlLXhzIHsKLSAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLnZpc2libGUtbGcudmlzaWJsZS14cyB7Ci0gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGgudmlzaWJsZS1sZy52aXNpYmxlLXhzLCB0ZC52aXNpYmxlLWxnLnZpc2libGUteHMgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7Ci0gICAgLnZpc2libGUtbGcudmlzaWJsZS1zbSB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci52aXNpYmxlLWxnLnZpc2libGUtc20gewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLnZpc2libGUtbGcudmlzaWJsZS1zbSwgdGQudmlzaWJsZS1sZy52aXNpYmxlLXNtIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHsKLSAgICAudmlzaWJsZS1sZy52aXNpYmxlLW1kIHsKLSAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLnZpc2libGUtbGcudmlzaWJsZS1tZCB7Ci0gICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGgudmlzaWJsZS1sZy52aXNpYmxlLW1kLCB0ZC52aXNpYmxlLWxnLnZpc2libGUtbWQgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHsKLSAgICAudmlzaWJsZS1sZyB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci52aXNpYmxlLWxnIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC52aXNpYmxlLWxnLCB0ZC52aXNpYmxlLWxnIHsKLSAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50Ci0gICAgfQotfQotCi0uaGlkZGVuLXhzIHsKLSAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Ci19Ci0KLXRyLmhpZGRlbi14cyB7Ci0gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQKLX0KLQotdGguaGlkZGVuLXhzLCB0ZC5oaWRkZW4teHMgewotICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudAotfQotCi1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsKLSAgICAuaGlkZGVuLXhzIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIuaGlkZGVuLXhzIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGguaGlkZGVuLXhzLCB0ZC5oaWRkZW4teHMgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7Ci0gICAgLmhpZGRlbi14cy5oaWRkZW4tc20gewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci5oaWRkZW4teHMuaGlkZGVuLXNtIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGguaGlkZGVuLXhzLmhpZGRlbi1zbSwgdGQuaGlkZGVuLXhzLmhpZGRlbi1zbSB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLX0KLQotQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7Ci0gICAgLmhpZGRlbi14cy5oaWRkZW4tbWQgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci5oaWRkZW4teHMuaGlkZGVuLW1kIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGguaGlkZGVuLXhzLmhpZGRlbi1tZCwgdGQuaGlkZGVuLXhzLmhpZGRlbi1tZCB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLX0KLQotQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkgewotICAgIC5oaWRkZW4teHMuaGlkZGVuLWxnIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIuaGlkZGVuLXhzLmhpZGRlbi1sZyB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLmhpZGRlbi14cy5oaWRkZW4tbGcsIHRkLmhpZGRlbi14cy5oaWRkZW4tbGcgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLS5oaWRkZW4tc20gewotICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQKLX0KLQotdHIuaGlkZGVuLXNtIHsKLSAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudAotfQotCi10aC5oaWRkZW4tc20sIHRkLmhpZGRlbi1zbSB7Ci0gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50Ci19Ci0KLUBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkgewotICAgIC5oaWRkZW4tc20uaGlkZGVuLXhzIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIuaGlkZGVuLXNtLmhpZGRlbi14cyB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLmhpZGRlbi1zbS5oaWRkZW4teHMsIHRkLmhpZGRlbi1zbS5oaWRkZW4teHMgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7Ci0gICAgLmhpZGRlbi1zbSB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLmhpZGRlbi1zbSB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLmhpZGRlbi1zbSwgdGQuaGlkZGVuLXNtIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHsKLSAgICAuaGlkZGVuLXNtLmhpZGRlbi1tZCB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLmhpZGRlbi1zbS5oaWRkZW4tbWQgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC5oaWRkZW4tc20uaGlkZGVuLW1kLCB0ZC5oaWRkZW4tc20uaGlkZGVuLW1kIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7Ci0gICAgLmhpZGRlbi1zbS5oaWRkZW4tbGcgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci5oaWRkZW4tc20uaGlkZGVuLWxnIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGguaGlkZGVuLXNtLmhpZGRlbi1sZywgdGQuaGlkZGVuLXNtLmhpZGRlbi1sZyB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLX0KLQotLmhpZGRlbi1tZCB7Ci0gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudAotfQotCi10ci5oaWRkZW4tbWQgewotICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50Ci19Ci0KLXRoLmhpZGRlbi1tZCwgdGQuaGlkZGVuLW1kIHsKLSAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQKLX0KLQotQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7Ci0gICAgLmhpZGRlbi1tZC5oaWRkZW4teHMgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0ci5oaWRkZW4tbWQuaGlkZGVuLXhzIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGguaGlkZGVuLW1kLmhpZGRlbi14cywgdGQuaGlkZGVuLW1kLmhpZGRlbi14cyB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLX0KLQotQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHsKLSAgICAuaGlkZGVuLW1kLmhpZGRlbi1zbSB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLmhpZGRlbi1tZC5oaWRkZW4tc20gewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC5oaWRkZW4tbWQuaGlkZGVuLXNtLCB0ZC5oaWRkZW4tbWQuaGlkZGVuLXNtIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHsKLSAgICAuaGlkZGVuLW1kIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIuaGlkZGVuLW1kIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGguaGlkZGVuLW1kLCB0ZC5oaWRkZW4tbWQgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHsKLSAgICAuaGlkZGVuLW1kLmhpZGRlbi1sZyB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLmhpZGRlbi1tZC5oaWRkZW4tbGcgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC5oaWRkZW4tbWQuaGlkZGVuLWxnLCB0ZC5oaWRkZW4tbWQuaGlkZGVuLWxnIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotfQotCi0uaGlkZGVuLWxnIHsKLSAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Ci19Ci0KLXRyLmhpZGRlbi1sZyB7Ci0gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQKLX0KLQotdGguaGlkZGVuLWxnLCB0ZC5oaWRkZW4tbGcgewotICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudAotfQotCi1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsKLSAgICAuaGlkZGVuLWxnLmhpZGRlbi14cyB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLmhpZGRlbi1sZy5oaWRkZW4teHMgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICB0aC5oaWRkZW4tbGcuaGlkZGVuLXhzLCB0ZC5oaWRkZW4tbGcuaGlkZGVuLXhzIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkgewotICAgIC5oaWRkZW4tbGcuaGlkZGVuLXNtIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIuaGlkZGVuLWxnLmhpZGRlbi1zbSB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLmhpZGRlbi1sZy5oaWRkZW4tc20sIHRkLmhpZGRlbi1sZy5oaWRkZW4tc20gewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkgewotICAgIC5oaWRkZW4tbGcuaGlkZGVuLW1kIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIuaGlkZGVuLWxnLmhpZGRlbi1tZCB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLmhpZGRlbi1sZy5oaWRkZW4tbWQsIHRkLmhpZGRlbi1sZy5oaWRkZW4tbWQgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHsKLSAgICAuaGlkZGVuLWxnIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIuaGlkZGVuLWxnIHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGguaGlkZGVuLWxnLCB0ZC5oaWRkZW4tbGcgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLS52aXNpYmxlLXByaW50IHsKLSAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLX0KLQotdHIudmlzaWJsZS1wcmludCB7Ci0gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci19Ci0KLXRoLnZpc2libGUtcHJpbnQsIHRkLnZpc2libGUtcHJpbnQgewotICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudAotfQotCi1AbWVkaWEgcHJpbnQgewotICAgIC52aXNpYmxlLXByaW50IHsKLSAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRyLnZpc2libGUtcHJpbnQgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudAotICAgIH0KLQotICAgIHRoLnZpc2libGUtcHJpbnQsIHRkLnZpc2libGUtcHJpbnQgewotICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQKLSAgICB9Ci0KLSAgICAuaGlkZGVuLXByaW50IHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdHIuaGlkZGVuLXByaW50IHsKLSAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ci0gICAgfQotCi0gICAgdGguaGlkZGVuLXByaW50LCB0ZC5oaWRkZW4tcHJpbnQgewotICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQKLSAgICB9Ci19Ci0KLS5jb250YWluZXIgewotICAgIG1hcmdpbi1yaWdodDogYXV0bzsKLSAgICBtYXJnaW4tbGVmdDogYXV0bzsKLSAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7Ci0gICAgcGFkZGluZy1yaWdodDogMTVweAotfQotCi0uY29udGFpbmVyOmJlZm9yZSwgLmNvbnRhaW5lcjphZnRlciB7Ci0gICAgY29udGVudDogIiAiOwotICAgIGRpc3BsYXk6IHRhYmxlCi19Ci0KLS5jb250YWluZXI6YWZ0ZXIgewotICAgIGNsZWFyOiBib3RoCi19Ci0KLS5yb3ctZmx1aWQgewotICAgIG1hcmdpbi1sZWZ0OiAtMTVweDsKLSAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4Ci19Ci0KLS5yb3ctZmx1aWQ6YmVmb3JlLCAucm93LWZsdWlkOmFmdGVyIHsKLSAgICBjb250ZW50OiAiICI7Ci0gICAgZGlzcGxheTogdGFibGUKLX0KLQotLnJvdy1mbHVpZDphZnRlciB7Ci0gICAgY2xlYXI6IGJvdGgKLX0KLQotLmNvbC14cy0xLCAuY29sLXhzLTIsIC5jb2wteHMtMywgLmNvbC14cy00LCAuY29sLXhzLTUsIC5jb2wteHMtNiwgLmNvbC14cy03LCAuY29sLXhzLTgsIC5jb2wteHMtOSwgLmNvbC14cy0xMCwgLmNvbC14cy0xMSwgLmNvbC14cy0xMiwgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiwgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiwgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIG1pbi1oZWlnaHQ6IDFweDsKLSAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7Ci0gICAgcGFkZGluZy1yaWdodDogMTVweAotfQotCi0uY29sLXhzLTEsIC5jb2wteHMtMiwgLmNvbC14cy0zLCAuY29sLXhzLTQsIC5jb2wteHMtNSwgLmNvbC14cy02LCAuY29sLXhzLTcsIC5jb2wteHMtOCwgLmNvbC14cy05LCAuY29sLXhzLTEwLCAuY29sLXhzLTExIHsKLSAgICBmbG9hdDogbGVmdAotfQotCi0uY29sLXhzLTEgewotICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMzMzMzMiUKLX0KLQotLmNvbC14cy0yIHsKLSAgICB3aWR0aDogMTYuNjY2NjY2NjY2NjY2NjY0JQotfQotCi0uY29sLXhzLTMgewotICAgIHdpZHRoOiAyNSUKLX0KLQotLmNvbC14cy00IHsKLSAgICB3aWR0aDogMzMuMzMzMzMzMzMzMzMzMzMlCi19Ci0KLS5jb2wteHMtNSB7Ci0gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjY2NjY3JQotfQotCi0uY29sLXhzLTYgewotICAgIHdpZHRoOiA1MCUKLX0KLQotLmNvbC14cy03IHsKLSAgICB3aWR0aDogNTguMzMzMzMzMzMzMzMzMzM2JQotfQotCi0uY29sLXhzLTggewotICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NiUKLX0KLQotLmNvbC14cy05IHsKLSAgICB3aWR0aDogNzUlCi19Ci0KLS5jb2wteHMtMTAgewotICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzMzMzNCUKLX0KLQotLmNvbC14cy0xMSB7Ci0gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjY2NjY2JQotfQotCi0uY29sLXhzLTEyIHsKLSAgICB3aWR0aDogMTAwJQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKLSAgICAuY29udGFpbmVyIHsKLSAgICAgICAgbWF4LXdpZHRoOiA3NTBweAotICAgIH0KLQotICAgIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEgewotICAgICAgICBmbG9hdDogbGVmdAotICAgIH0KLQotICAgIC5jb2wtc20tMSB7Ci0gICAgICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMzMzMzMiUKLSAgICB9Ci0KLSAgICAuY29sLXNtLTIgewotICAgICAgICB3aWR0aDogMTYuNjY2NjY2NjY2NjY2NjY0JQotICAgIH0KLQotICAgIC5jb2wtc20tMyB7Ci0gICAgICAgIHdpZHRoOiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLXNtLTQgewotICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMzMzMzMzMlCi0gICAgfQotCi0gICAgLmNvbC1zbS01IHsKLSAgICAgICAgd2lkdGg6IDQxLjY2NjY2NjY2NjY2NjY3JQotICAgIH0KLQotICAgIC5jb2wtc20tNiB7Ci0gICAgICAgIHdpZHRoOiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLXNtLTcgewotICAgICAgICB3aWR0aDogNTguMzMzMzMzMzMzMzMzMzM2JQotICAgIH0KLQotICAgIC5jb2wtc20tOCB7Ci0gICAgICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NiUKLSAgICB9Ci0KLSAgICAuY29sLXNtLTkgewotICAgICAgICB3aWR0aDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1zbS0xMCB7Ci0gICAgICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzMzMzNCUKLSAgICB9Ci0KLSAgICAuY29sLXNtLTExIHsKLSAgICAgICAgd2lkdGg6IDkxLjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLQotICAgIC5jb2wtc20tMTIgewotICAgICAgICB3aWR0aDogMTAwJQotICAgIH0KLQotICAgIC5jb2wtc20tcHVzaC0xIHsKLSAgICAgICAgbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlCi0gICAgfQotCi0gICAgLmNvbC1zbS1wdXNoLTIgewotICAgICAgICBsZWZ0OiAxNi42NjY2NjY2NjY2NjY2NjQlCi0gICAgfQotCi0gICAgLmNvbC1zbS1wdXNoLTMgewotICAgICAgICBsZWZ0OiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLXNtLXB1c2gtNCB7Ci0gICAgICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMzMzMzJQotICAgIH0KLQotICAgIC5jb2wtc20tcHVzaC01IHsKLSAgICAgICAgbGVmdDogNDEuNjY2NjY2NjY2NjY2NjclCi0gICAgfQotCi0gICAgLmNvbC1zbS1wdXNoLTYgewotICAgICAgICBsZWZ0OiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLXNtLXB1c2gtNyB7Ci0gICAgICAgIGxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiUKLSAgICB9Ci0KLSAgICAuY29sLXNtLXB1c2gtOCB7Ci0gICAgICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLQotICAgIC5jb2wtc20tcHVzaC05IHsKLSAgICAgICAgbGVmdDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1zbS1wdXNoLTEwIHsKLSAgICAgICAgbGVmdDogODMuMzMzMzMzMzMzMzMzMzQlCi0gICAgfQotCi0gICAgLmNvbC1zbS1wdXNoLTExIHsKLSAgICAgICAgbGVmdDogOTEuNjY2NjY2NjY2NjY2NjYlCi0gICAgfQotCi0gICAgLmNvbC1zbS1wdWxsLTEgewotICAgICAgICByaWdodDogOC4zMzMzMzMzMzMzMzMzMzIlCi0gICAgfQotCi0gICAgLmNvbC1zbS1wdWxsLTIgewotICAgICAgICByaWdodDogMTYuNjY2NjY2NjY2NjY2NjY0JQotICAgIH0KLQotICAgIC5jb2wtc20tcHVsbC0zIHsKLSAgICAgICAgcmlnaHQ6IDI1JQotICAgIH0KLQotICAgIC5jb2wtc20tcHVsbC00IHsKLSAgICAgICAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMzMzMzJQotICAgIH0KLQotICAgIC5jb2wtc20tcHVsbC01IHsKLSAgICAgICAgcmlnaHQ6IDQxLjY2NjY2NjY2NjY2NjY3JQotICAgIH0KLQotICAgIC5jb2wtc20tcHVsbC02IHsKLSAgICAgICAgcmlnaHQ6IDUwJQotICAgIH0KLQotICAgIC5jb2wtc20tcHVsbC03IHsKLSAgICAgICAgcmlnaHQ6IDU4LjMzMzMzMzMzMzMzMzMzNiUKLSAgICB9Ci0KLSAgICAuY29sLXNtLXB1bGwtOCB7Ci0gICAgICAgIHJpZ2h0OiA2Ni42NjY2NjY2NjY2NjY2NiUKLSAgICB9Ci0KLSAgICAuY29sLXNtLXB1bGwtOSB7Ci0gICAgICAgIHJpZ2h0OiA3NSUKLSAgICB9Ci0KLSAgICAuY29sLXNtLXB1bGwtMTAgewotICAgICAgICByaWdodDogODMuMzMzMzMzMzMzMzMzMzQlCi0gICAgfQotCi0gICAgLmNvbC1zbS1wdWxsLTExIHsKLSAgICAgICAgcmlnaHQ6IDkxLjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLQotICAgIC5jb2wtc20tb2Zmc2V0LTEgewotICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlCi0gICAgfQotCi0gICAgLmNvbC1zbS1vZmZzZXQtMiB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY2NjY2NjQlCi0gICAgfQotCi0gICAgLmNvbC1zbS1vZmZzZXQtMyB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLXNtLW9mZnNldC00IHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMzMzMzJQotICAgIH0KLQotICAgIC5jb2wtc20tb2Zmc2V0LTUgewotICAgICAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NjY2NjclCi0gICAgfQotCi0gICAgLmNvbC1zbS1vZmZzZXQtNiB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLXNtLW9mZnNldC03IHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiUKLSAgICB9Ci0KLSAgICAuY29sLXNtLW9mZnNldC04IHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLQotICAgIC5jb2wtc20tb2Zmc2V0LTkgewotICAgICAgICBtYXJnaW4tbGVmdDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1zbS1vZmZzZXQtMTAgewotICAgICAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMzMzMzQlCi0gICAgfQotCi0gICAgLmNvbC1zbS1vZmZzZXQtMTEgewotICAgICAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NjY2NjYlCi0gICAgfQotfQotCi1AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHsKLSAgICAuY29udGFpbmVyIHsKLSAgICAgICAgbWF4LXdpZHRoOiA5NzBweAotICAgIH0KLQotICAgIC5jb2wtbWQtMSwgLmNvbC1tZC0yLCAuY29sLW1kLTMsIC5jb2wtbWQtNCwgLmNvbC1tZC01LCAuY29sLW1kLTYsIC5jb2wtbWQtNywgLmNvbC1tZC04LCAuY29sLW1kLTksIC5jb2wtbWQtMTAsIC5jb2wtbWQtMTEgewotICAgICAgICBmbG9hdDogbGVmdAotICAgIH0KLQotICAgIC5jb2wtbWQtMSB7Ci0gICAgICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMzMzMzMiUKLSAgICB9Ci0KLSAgICAuY29sLW1kLTIgewotICAgICAgICB3aWR0aDogMTYuNjY2NjY2NjY2NjY2NjY0JQotICAgIH0KLQotICAgIC5jb2wtbWQtMyB7Ci0gICAgICAgIHdpZHRoOiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLW1kLTQgewotICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMzMzMzMzMlCi0gICAgfQotCi0gICAgLmNvbC1tZC01IHsKLSAgICAgICAgd2lkdGg6IDQxLjY2NjY2NjY2NjY2NjY3JQotICAgIH0KLQotICAgIC5jb2wtbWQtNiB7Ci0gICAgICAgIHdpZHRoOiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLW1kLTcgewotICAgICAgICB3aWR0aDogNTguMzMzMzMzMzMzMzMzMzM2JQotICAgIH0KLQotICAgIC5jb2wtbWQtOCB7Ci0gICAgICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NiUKLSAgICB9Ci0KLSAgICAuY29sLW1kLTkgewotICAgICAgICB3aWR0aDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1tZC0xMCB7Ci0gICAgICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzMzMzNCUKLSAgICB9Ci0KLSAgICAuY29sLW1kLTExIHsKLSAgICAgICAgd2lkdGg6IDkxLjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLQotICAgIC5jb2wtbWQtMTIgewotICAgICAgICB3aWR0aDogMTAwJQotICAgIH0KLQotICAgIC5jb2wtbWQtcHVzaC0wIHsKLSAgICAgICAgbGVmdDogYXV0bwotICAgIH0KLQotICAgIC5jb2wtbWQtcHVzaC0xIHsKLSAgICAgICAgbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdXNoLTIgewotICAgICAgICBsZWZ0OiAxNi42NjY2NjY2NjY2NjY2NjQlCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdXNoLTMgewotICAgICAgICBsZWZ0OiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLW1kLXB1c2gtNCB7Ci0gICAgICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMzMzMzJQotICAgIH0KLQotICAgIC5jb2wtbWQtcHVzaC01IHsKLSAgICAgICAgbGVmdDogNDEuNjY2NjY2NjY2NjY2NjclCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdXNoLTYgewotICAgICAgICBsZWZ0OiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLW1kLXB1c2gtNyB7Ci0gICAgICAgIGxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiUKLSAgICB9Ci0KLSAgICAuY29sLW1kLXB1c2gtOCB7Ci0gICAgICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLQotICAgIC5jb2wtbWQtcHVzaC05IHsKLSAgICAgICAgbGVmdDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdXNoLTEwIHsKLSAgICAgICAgbGVmdDogODMuMzMzMzMzMzMzMzMzMzQlCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdXNoLTExIHsKLSAgICAgICAgbGVmdDogOTEuNjY2NjY2NjY2NjY2NjYlCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdWxsLTAgewotICAgICAgICByaWdodDogYXV0bwotICAgIH0KLQotICAgIC5jb2wtbWQtcHVsbC0xIHsKLSAgICAgICAgcmlnaHQ6IDguMzMzMzMzMzMzMzMzMzMyJQotICAgIH0KLQotICAgIC5jb2wtbWQtcHVsbC0yIHsKLSAgICAgICAgcmlnaHQ6IDE2LjY2NjY2NjY2NjY2NjY2NCUKLSAgICB9Ci0KLSAgICAuY29sLW1kLXB1bGwtMyB7Ci0gICAgICAgIHJpZ2h0OiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLW1kLXB1bGwtNCB7Ci0gICAgICAgIHJpZ2h0OiAzMy4zMzMzMzMzMzMzMzMzMyUKLSAgICB9Ci0KLSAgICAuY29sLW1kLXB1bGwtNSB7Ci0gICAgICAgIHJpZ2h0OiA0MS42NjY2NjY2NjY2NjY2NyUKLSAgICB9Ci0KLSAgICAuY29sLW1kLXB1bGwtNiB7Ci0gICAgICAgIHJpZ2h0OiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLW1kLXB1bGwtNyB7Ci0gICAgICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzMzMzMzYlCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdWxsLTggewotICAgICAgICByaWdodDogNjYuNjY2NjY2NjY2NjY2NjYlCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdWxsLTkgewotICAgICAgICByaWdodDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1tZC1wdWxsLTEwIHsKLSAgICAgICAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMzMzM0JQotICAgIH0KLQotICAgIC5jb2wtbWQtcHVsbC0xMSB7Ci0gICAgICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY2NjY2NiUKLSAgICB9Ci0KLSAgICAuY29sLW1kLW9mZnNldC0wIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDAKLSAgICB9Ci0KLSAgICAuY29sLW1kLW9mZnNldC0xIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMzMzMzMyJQotICAgIH0KLQotICAgIC5jb2wtbWQtb2Zmc2V0LTIgewotICAgICAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NjY2NjY0JQotICAgIH0KLQotICAgIC5jb2wtbWQtb2Zmc2V0LTMgewotICAgICAgICBtYXJnaW4tbGVmdDogMjUlCi0gICAgfQotCi0gICAgLmNvbC1tZC1vZmZzZXQtNCB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzMzMzMyUKLSAgICB9Ci0KLSAgICAuY29sLW1kLW9mZnNldC01IHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjY2NjY3JQotICAgIH0KLQotICAgIC5jb2wtbWQtb2Zmc2V0LTYgewotICAgICAgICBtYXJnaW4tbGVmdDogNTAlCi0gICAgfQotCi0gICAgLmNvbC1tZC1vZmZzZXQtNyB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzMzMzMzYlCi0gICAgfQotCi0gICAgLmNvbC1tZC1vZmZzZXQtOCB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY2NjY2NiUKLSAgICB9Ci0KLSAgICAuY29sLW1kLW9mZnNldC05IHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDc1JQotICAgIH0KLQotICAgIC5jb2wtbWQtb2Zmc2V0LTEwIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMzMzM0JQotICAgIH0KLQotICAgIC5jb2wtbWQtb2Zmc2V0LTExIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLX0KLQotQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkgewotICAgIC5jb250YWluZXIgewotICAgICAgICBtYXgtd2lkdGg6IDExNzBweAotICAgIH0KLQotICAgIC5jb2wtbGctMSwgLmNvbC1sZy0yLCAuY29sLWxnLTMsIC5jb2wtbGctNCwgLmNvbC1sZy01LCAuY29sLWxnLTYsIC5jb2wtbGctNywgLmNvbC1sZy04LCAuY29sLWxnLTksIC5jb2wtbGctMTAsIC5jb2wtbGctMTEgewotICAgICAgICBmbG9hdDogbGVmdAotICAgIH0KLQotICAgIC5jb2wtbGctMSB7Ci0gICAgICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMzMzMzMiUKLSAgICB9Ci0KLSAgICAuY29sLWxnLTIgewotICAgICAgICB3aWR0aDogMTYuNjY2NjY2NjY2NjY2NjY0JQotICAgIH0KLQotICAgIC5jb2wtbGctMyB7Ci0gICAgICAgIHdpZHRoOiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLWxnLTQgewotICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMzMzMzMzMlCi0gICAgfQotCi0gICAgLmNvbC1sZy01IHsKLSAgICAgICAgd2lkdGg6IDQxLjY2NjY2NjY2NjY2NjY3JQotICAgIH0KLQotICAgIC5jb2wtbGctNiB7Ci0gICAgICAgIHdpZHRoOiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLWxnLTcgewotICAgICAgICB3aWR0aDogNTguMzMzMzMzMzMzMzMzMzM2JQotICAgIH0KLQotICAgIC5jb2wtbGctOCB7Ci0gICAgICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY2NjY2NiUKLSAgICB9Ci0KLSAgICAuY29sLWxnLTkgewotICAgICAgICB3aWR0aDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1sZy0xMCB7Ci0gICAgICAgIHdpZHRoOiA4My4zMzMzMzMzMzMzMzMzNCUKLSAgICB9Ci0KLSAgICAuY29sLWxnLTExIHsKLSAgICAgICAgd2lkdGg6IDkxLjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLQotICAgIC5jb2wtbGctMTIgewotICAgICAgICB3aWR0aDogMTAwJQotICAgIH0KLQotICAgIC5jb2wtbGctcHVzaC0wIHsKLSAgICAgICAgbGVmdDogYXV0bwotICAgIH0KLQotICAgIC5jb2wtbGctcHVzaC0xIHsKLSAgICAgICAgbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdXNoLTIgewotICAgICAgICBsZWZ0OiAxNi42NjY2NjY2NjY2NjY2NjQlCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdXNoLTMgewotICAgICAgICBsZWZ0OiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLWxnLXB1c2gtNCB7Ci0gICAgICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMzMzMzJQotICAgIH0KLQotICAgIC5jb2wtbGctcHVzaC01IHsKLSAgICAgICAgbGVmdDogNDEuNjY2NjY2NjY2NjY2NjclCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdXNoLTYgewotICAgICAgICBsZWZ0OiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLWxnLXB1c2gtNyB7Ci0gICAgICAgIGxlZnQ6IDU4LjMzMzMzMzMzMzMzMzMzNiUKLSAgICB9Ci0KLSAgICAuY29sLWxnLXB1c2gtOCB7Ci0gICAgICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLQotICAgIC5jb2wtbGctcHVzaC05IHsKLSAgICAgICAgbGVmdDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdXNoLTEwIHsKLSAgICAgICAgbGVmdDogODMuMzMzMzMzMzMzMzMzMzQlCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdXNoLTExIHsKLSAgICAgICAgbGVmdDogOTEuNjY2NjY2NjY2NjY2NjYlCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdWxsLTAgewotICAgICAgICByaWdodDogYXV0bwotICAgIH0KLQotICAgIC5jb2wtbGctcHVsbC0xIHsKLSAgICAgICAgcmlnaHQ6IDguMzMzMzMzMzMzMzMzMzMyJQotICAgIH0KLQotICAgIC5jb2wtbGctcHVsbC0yIHsKLSAgICAgICAgcmlnaHQ6IDE2LjY2NjY2NjY2NjY2NjY2NCUKLSAgICB9Ci0KLSAgICAuY29sLWxnLXB1bGwtMyB7Ci0gICAgICAgIHJpZ2h0OiAyNSUKLSAgICB9Ci0KLSAgICAuY29sLWxnLXB1bGwtNCB7Ci0gICAgICAgIHJpZ2h0OiAzMy4zMzMzMzMzMzMzMzMzMyUKLSAgICB9Ci0KLSAgICAuY29sLWxnLXB1bGwtNSB7Ci0gICAgICAgIHJpZ2h0OiA0MS42NjY2NjY2NjY2NjY2NyUKLSAgICB9Ci0KLSAgICAuY29sLWxnLXB1bGwtNiB7Ci0gICAgICAgIHJpZ2h0OiA1MCUKLSAgICB9Ci0KLSAgICAuY29sLWxnLXB1bGwtNyB7Ci0gICAgICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzMzMzMzYlCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdWxsLTggewotICAgICAgICByaWdodDogNjYuNjY2NjY2NjY2NjY2NjYlCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdWxsLTkgewotICAgICAgICByaWdodDogNzUlCi0gICAgfQotCi0gICAgLmNvbC1sZy1wdWxsLTEwIHsKLSAgICAgICAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMzMzM0JQotICAgIH0KLQotICAgIC5jb2wtbGctcHVsbC0xMSB7Ci0gICAgICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY2NjY2NiUKLSAgICB9Ci0KLSAgICAuY29sLWxnLW9mZnNldC0wIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDAKLSAgICB9Ci0KLSAgICAuY29sLWxnLW9mZnNldC0xIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMzMzMzMyJQotICAgIH0KLQotICAgIC5jb2wtbGctb2Zmc2V0LTIgewotICAgICAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NjY2NjY0JQotICAgIH0KLQotICAgIC5jb2wtbGctb2Zmc2V0LTMgewotICAgICAgICBtYXJnaW4tbGVmdDogMjUlCi0gICAgfQotCi0gICAgLmNvbC1sZy1vZmZzZXQtNCB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzMzMzMyUKLSAgICB9Ci0KLSAgICAuY29sLWxnLW9mZnNldC01IHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjY2NjY3JQotICAgIH0KLQotICAgIC5jb2wtbGctb2Zmc2V0LTYgewotICAgICAgICBtYXJnaW4tbGVmdDogNTAlCi0gICAgfQotCi0gICAgLmNvbC1sZy1vZmZzZXQtNyB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzMzMzMzYlCi0gICAgfQotCi0gICAgLmNvbC1sZy1vZmZzZXQtOCB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY2NjY2NiUKLSAgICB9Ci0KLSAgICAuY29sLWxnLW9mZnNldC05IHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDc1JQotICAgIH0KLQotICAgIC5jb2wtbGctb2Zmc2V0LTEwIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMzMzM0JQotICAgIH0KLQotICAgIC5jb2wtbGctb2Zmc2V0LTExIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjY2NjY2JQotICAgIH0KLX0KLQotLmJ0biB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIHBhZGRpbmc6IDZweCAxMnB4OwotICAgIG1hcmdpbi1ib3R0b206IDA7Ci0gICAgZm9udC1zaXplOiAxNHB4OwotICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5OwotICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotICAgIGN1cnNvcjogcG9pbnRlcjsKLSAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKLSAgICBib3JkZXItcmFkaXVzOiAwOwotICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwotICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKLSAgICAtby11c2VyLXNlbGVjdDogbm9uZTsKLSAgICB1c2VyLXNlbGVjdDogbm9uZQotfQotCi0uYnRuOmZvY3VzIHsKLSAgICBvdXRsaW5lOiB0aGluIGRvdHRlZCAjMzMzOwotICAgIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKLSAgICBvdXRsaW5lLW9mZnNldDogLTJweAotfQotCi0uYnRuOmhvdmVyLCAuYnRuOmZvY3VzIHsKLSAgICBjb2xvcjogIzMzMzsKLSAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUKLX0KLQotLmJ0bjphY3RpdmUsIC5idG4uYWN0aXZlIHsKLSAgICBvdXRsaW5lOiAwOwotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUKLX0KLQotLmJ0bi5kaXNhYmxlZCwgLmJ0bltkaXNhYmxlZF0sIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuIHsKLSAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwotICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwotICAgIG9wYWNpdHk6IC42NTsKLSAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NjUpOwotICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTsKLSAgICBib3gtc2hhZG93OiBub25lCi19Ci0KLS5idG4tZGVmYXVsdCB7Ci0gICAgY29sb3I6ICMzMzM7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKLSAgICBib3JkZXItY29sb3I6ICNjY2MKLX0KLQotLmJ0bi1kZWZhdWx0OmhvdmVyLCAuYnRuLWRlZmF1bHQ6Zm9jdXMsIC5idG4tZGVmYXVsdDphY3RpdmUsIC5idG4tZGVmYXVsdC5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQgewotICAgIGNvbG9yOiAjMzMzOwotICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7Ci0gICAgYm9yZGVyLWNvbG9yOiAjYWRhZGFkCi19Ci0KLS5idG4tZGVmYXVsdDphY3RpdmUsIC5idG4tZGVmYXVsdC5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUKLX0KLQotLmJ0bi1kZWZhdWx0LmRpc2FibGVkLCAuYnRuLWRlZmF1bHRbZGlzYWJsZWRdLCBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LCAuYnRuLWRlZmF1bHQuZGlzYWJsZWQ6aG92ZXIsIC5idG4tZGVmYXVsdFtkaXNhYmxlZF06aG92ZXIsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQ6aG92ZXIsIC5idG4tZGVmYXVsdC5kaXNhYmxlZDpmb2N1cywgLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpmb2N1cywgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpmb2N1cywgLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmFjdGl2ZSwgLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTphY3RpdmUsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQ6YWN0aXZlLCAuYnRuLWRlZmF1bHQuZGlzYWJsZWQuYWN0aXZlLCAuYnRuLWRlZmF1bHRbZGlzYWJsZWRdLmFjdGl2ZSwgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdC5hY3RpdmUgewotICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ci0gICAgYm9yZGVyLWNvbG9yOiAjY2NjCi19Ci0KLS5idG4tcHJpbWFyeSB7Ci0gICAgY29sb3I6ICNmZmY7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogIzQyOGJjYTsKLSAgICBib3JkZXItY29sb3I6ICMzNTdlYmQKLX0KLQotLmJ0bi1wcmltYXJ5OmhvdmVyLCAuYnRuLXByaW1hcnk6Zm9jdXMsIC5idG4tcHJpbWFyeTphY3RpdmUsIC5idG4tcHJpbWFyeS5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkgewotICAgIGNvbG9yOiAjZmZmOwotICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjc2YjE7Ci0gICAgYm9yZGVyLWNvbG9yOiAjMjg1ZThlCi19Ci0KLS5idG4tcHJpbWFyeTphY3RpdmUsIC5idG4tcHJpbWFyeS5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUKLX0KLQotLmJ0bi1wcmltYXJ5LmRpc2FibGVkLCAuYnRuLXByaW1hcnlbZGlzYWJsZWRdLCBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LCAuYnRuLXByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6aG92ZXIsIC5idG4tcHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cywgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpmb2N1cywgLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmFjdGl2ZSwgLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTphY3RpdmUsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6YWN0aXZlLCAuYnRuLXByaW1hcnkuZGlzYWJsZWQuYWN0aXZlLCAuYnRuLXByaW1hcnlbZGlzYWJsZWRdLmFjdGl2ZSwgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeS5hY3RpdmUgewotICAgIGJhY2tncm91bmQtY29sb3I6ICM0MjhiY2E7Ci0gICAgYm9yZGVyLWNvbG9yOiAjMzU3ZWJkCi19Ci0KLS5idG4td2FybmluZyB7Ci0gICAgY29sb3I6ICNmZmY7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTsKLSAgICBib3JkZXItY29sb3I6ICNlZWEyMzYKLX0KLQotLmJ0bi13YXJuaW5nOmhvdmVyLCAuYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZzphY3RpdmUsIC5idG4td2FybmluZy5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcgewotICAgIGNvbG9yOiAjZmZmOwotICAgIGJhY2tncm91bmQtY29sb3I6ICNlZDljMjg7Ci0gICAgYm9yZGVyLWNvbG9yOiAjZDU4NTEyCi19Ci0KLS5idG4td2FybmluZzphY3RpdmUsIC5idG4td2FybmluZy5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUKLX0KLQotLmJ0bi13YXJuaW5nLmRpc2FibGVkLCAuYnRuLXdhcm5pbmdbZGlzYWJsZWRdLCBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLCAuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idG4td2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6aG92ZXIsIC5idG4td2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTpmb2N1cywgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmRpc2FibGVkOmFjdGl2ZSwgLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTphY3RpdmUsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6YWN0aXZlLCAuYnRuLXdhcm5pbmcuZGlzYWJsZWQuYWN0aXZlLCAuYnRuLXdhcm5pbmdbZGlzYWJsZWRdLmFjdGl2ZSwgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZy5hY3RpdmUgewotICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7Ci0gICAgYm9yZGVyLWNvbG9yOiAjZWVhMjM2Ci19Ci0KLS5idG4tZGFuZ2VyIHsKLSAgICBjb2xvcjogI2ZmZjsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmOwotICAgIGJvcmRlci1jb2xvcjogI2Q0M2YzYQotfQotCi0uYnRuLWRhbmdlcjpob3ZlciwgLmJ0bi1kYW5nZXI6Zm9jdXMsIC5idG4tZGFuZ2VyOmFjdGl2ZSwgLmJ0bi1kYW5nZXIuYWN0aXZlLCAub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIgewotICAgIGNvbG9yOiAjZmZmOwotICAgIGJhY2tncm91bmQtY29sb3I6ICNkMjMyMmQ7Ci0gICAgYm9yZGVyLWNvbG9yOiAjYWMyOTI1Ci19Ci0KLS5idG4tZGFuZ2VyOmFjdGl2ZSwgLmJ0bi1kYW5nZXIuYWN0aXZlLCAub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUKLX0KLQotLmJ0bi1kYW5nZXIuZGlzYWJsZWQsIC5idG4tZGFuZ2VyW2Rpc2FibGVkXSwgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyLCAuYnRuLWRhbmdlci5kaXNhYmxlZDpob3ZlciwgLmJ0bi1kYW5nZXJbZGlzYWJsZWRdOmhvdmVyLCBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6aG92ZXIsIC5idG4tZGFuZ2VyLmRpc2FibGVkOmZvY3VzLCAuYnRuLWRhbmdlcltkaXNhYmxlZF06Zm9jdXMsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlcjpmb2N1cywgLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6YWN0aXZlLCAuYnRuLWRhbmdlcltkaXNhYmxlZF06YWN0aXZlLCBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6YWN0aXZlLCAuYnRuLWRhbmdlci5kaXNhYmxlZC5hY3RpdmUsIC5idG4tZGFuZ2VyW2Rpc2FibGVkXS5hY3RpdmUsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlci5hY3RpdmUgewotICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7Ci0gICAgYm9yZGVyLWNvbG9yOiAjZDQzZjNhCi19Ci0KLS5idG4tc3VjY2VzcyB7Ci0gICAgY29sb3I6ICNmZmY7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1YzsKLSAgICBib3JkZXItY29sb3I6ICM0Y2FlNGMKLX0KLQotLmJ0bi1zdWNjZXNzOmhvdmVyLCAuYnRuLXN1Y2Nlc3M6Zm9jdXMsIC5idG4tc3VjY2VzczphY3RpdmUsIC5idG4tc3VjY2Vzcy5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3MgewotICAgIGNvbG9yOiAjZmZmOwotICAgIGJhY2tncm91bmQtY29sb3I6ICM0N2E0NDc7Ci0gICAgYm9yZGVyLWNvbG9yOiAjMzk4NDM5Ci19Ci0KLS5idG4tc3VjY2VzczphY3RpdmUsIC5idG4tc3VjY2Vzcy5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3MgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUKLX0KLQotLmJ0bi1zdWNjZXNzLmRpc2FibGVkLCAuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLCBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzLCAuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idG4tc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3M6aG92ZXIsIC5idG4tc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cywgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpmb2N1cywgLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmFjdGl2ZSwgLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTphY3RpdmUsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3M6YWN0aXZlLCAuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQuYWN0aXZlLCAuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmFjdGl2ZSwgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzcy5hY3RpdmUgewotICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7Ci0gICAgYm9yZGVyLWNvbG9yOiAjNGNhZTRjCi19Ci0KLS5idG4taW5mbyB7Ci0gICAgY29sb3I6ICNmZmY7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTsKLSAgICBib3JkZXItY29sb3I6ICM0NmI4ZGEKLX0KLQotLmJ0bi1pbmZvOmhvdmVyLCAuYnRuLWluZm86Zm9jdXMsIC5idG4taW5mbzphY3RpdmUsIC5idG4taW5mby5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8gewotICAgIGNvbG9yOiAjZmZmOwotICAgIGJhY2tncm91bmQtY29sb3I6ICMzOWIzZDc7Ci0gICAgYm9yZGVyLWNvbG9yOiAjMjY5YWJjCi19Ci0KLS5idG4taW5mbzphY3RpdmUsIC5idG4taW5mby5hY3RpdmUsIC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8gewotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUKLX0KLQotLmJ0bi1pbmZvLmRpc2FibGVkLCAuYnRuLWluZm9bZGlzYWJsZWRdLCBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLCAuYnRuLWluZm8uZGlzYWJsZWQ6aG92ZXIsIC5idG4taW5mb1tkaXNhYmxlZF06aG92ZXIsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86aG92ZXIsIC5idG4taW5mby5kaXNhYmxlZDpmb2N1cywgLmJ0bi1pbmZvW2Rpc2FibGVkXTpmb2N1cywgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzpmb2N1cywgLmJ0bi1pbmZvLmRpc2FibGVkOmFjdGl2ZSwgLmJ0bi1pbmZvW2Rpc2FibGVkXTphY3RpdmUsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86YWN0aXZlLCAuYnRuLWluZm8uZGlzYWJsZWQuYWN0aXZlLCAuYnRuLWluZm9bZGlzYWJsZWRdLmFjdGl2ZSwgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mby5hY3RpdmUgewotICAgIGJhY2tncm91bmQtY29sb3I6ICM1YmMwZGU7Ci0gICAgYm9yZGVyLWNvbG9yOiAjNDZiOGRhCi19Ci0KLS5idG4tbGluayB7Ci0gICAgY29sb3I6ICM0MjhiY2E7Ci0gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKLSAgICBjdXJzb3I6IHBvaW50ZXI7Ci0gICAgYm9yZGVyLXJhZGl1czogMAotfQotCi0uYnRuLWxpbmssIC5idG4tbGluazphY3RpdmUsIC5idG4tbGlua1tkaXNhYmxlZF0sIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbmsgewotICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwotICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTsKLSAgICBib3gtc2hhZG93OiBub25lCi19Ci0KLS5idG4tbGluaywgLmJ0bi1saW5rOmhvdmVyLCAuYnRuLWxpbms6Zm9jdXMsIC5idG4tbGluazphY3RpdmUgewotICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQKLX0KLQotLmJ0bi1saW5rOmhvdmVyLCAuYnRuLWxpbms6Zm9jdXMgewotICAgIGNvbG9yOiAjMmE2NDk2OwotICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwotICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ci19Ci0KLS5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6aG92ZXIsIC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6Zm9jdXMgewotICAgIGNvbG9yOiAjOTk5OwotICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZQotfQotCi0uYnRuLWxnIHsKLSAgICBwYWRkaW5nOiAxMHB4IDE2cHg7Ci0gICAgZm9udC1zaXplOiAxOHB4OwotICAgIGxpbmUtaGVpZ2h0OiAxLjMzOwotICAgIGJvcmRlci1yYWRpdXM6IDZweAotfQotCi0uYnRuLXNtLCAuYnRuLXhzIHsKLSAgICBwYWRkaW5nOiA1cHggMTBweDsKLSAgICBmb250LXNpemU6IDEycHg7Ci0gICAgbGluZS1oZWlnaHQ6IDEuNTsKLSAgICBib3JkZXItcmFkaXVzOiAzcHgKLX0KLQotLmJ0bi14cyB7Ci0gICAgcGFkZGluZzogMXB4IDVweAotfQotCi0uYnRuLWJsb2NrIHsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBwYWRkaW5nLWxlZnQ6IDA7Ci0gICAgcGFkZGluZy1yaWdodDogMAotfQotCi0uYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7Ci0gICAgbWFyZ2luLXRvcDogNXB4Ci19Ci0KLWlucHV0W3R5cGU9InN1Ym1pdCJdLmJ0bi1ibG9jaywgaW5wdXRbdHlwZT0icmVzZXQiXS5idG4tYmxvY2ssIGlucHV0W3R5cGU9ImJ1dHRvbiJdLmJ0bi1ibG9jayB7Ci0gICAgd2lkdGg6IDEwMCUKLX0KLQotLmJ0bi1kZWZhdWx0IC5jYXJldCB7Ci0gICAgYm9yZGVyLXRvcC1jb2xvcjogIzMzMwotfQotCi0uYnRuLXByaW1hcnkgLmNhcmV0LCAuYnRuLXN1Y2Nlc3MgLmNhcmV0LCAuYnRuLXdhcm5pbmcgLmNhcmV0LCAuYnRuLWRhbmdlciAuY2FyZXQsIC5idG4taW5mbyAuY2FyZXQgewotICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmYKLX0KLQotLmRyb3B1cCAuYnRuLWRlZmF1bHQgLmNhcmV0IHsKLSAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjMzMzCi19Ci0KLS5kcm9wdXAgLmJ0bi1wcmltYXJ5IC5jYXJldCwgLmRyb3B1cCAuYnRuLXN1Y2Nlc3MgLmNhcmV0LCAuZHJvcHVwIC5idG4td2FybmluZyAuY2FyZXQsIC5kcm9wdXAgLmJ0bi1kYW5nZXIgLmNhcmV0LCAuZHJvcHVwIC5idG4taW5mbyAuY2FyZXQgewotICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmYKLX0KLQotLmJ0bi1ncm91cCwgLmJ0bi1ncm91cC12ZXJ0aWNhbCB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlCi19Ci0KLS5idG4tZ3JvdXAgPiAuYnRuLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIGZsb2F0OiBsZWZ0Ci19Ci0KLS5idG4tZ3JvdXAgPiAuYnRuOmhvdmVyLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpob3ZlciwgLmJ0bi1ncm91cCA+IC5idG46Zm9jdXMsIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZvY3VzLCAuYnRuLWdyb3VwID4gLmJ0bjphY3RpdmUsIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmFjdGl2ZSwgLmJ0bi1ncm91cCA+IC5idG4uYWN0aXZlLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi5hY3RpdmUgewotICAgIHotaW5kZXg6IDIKLX0KLQotLmJ0bi1ncm91cCA+IC5idG46Zm9jdXMsIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZvY3VzIHsKLSAgICBvdXRsaW5lOiAwCi19Ci0KLS5idG4tZ3JvdXAgLmJ0biArIC5idG4sIC5idG4tZ3JvdXAgLmJ0biArIC5idG4tZ3JvdXAsIC5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4sIC5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAgewotICAgIG1hcmdpbi1sZWZ0OiAtMXB4Ci19Ci0KLS5idG4tdG9vbGJhcjpiZWZvcmUsIC5idG4tdG9vbGJhcjphZnRlciB7Ci0gICAgY29udGVudDogIiAiOwotICAgIGRpc3BsYXk6IHRhYmxlCi19Ci0KLS5idG4tdG9vbGJhcjphZnRlciB7Ci0gICAgY2xlYXI6IGJvdGgKLX0KLQotLmJ0bi10b29sYmFyIC5idG4tZ3JvdXAgewotICAgIGZsb2F0OiBsZWZ0Ci19Ci0KLS5idG4tdG9vbGJhciA+IC5idG4gKyAuYnRuLCAuYnRuLXRvb2xiYXIgPiAuYnRuLWdyb3VwICsgLmJ0biwgLmJ0bi10b29sYmFyID4gLmJ0biArIC5idG4tZ3JvdXAsIC5idG4tdG9vbGJhciA+IC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHsKLSAgICBtYXJnaW4tbGVmdDogNXB4Ci19Ci0KLS5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHsKLSAgICBib3JkZXItcmFkaXVzOiAwCi19Ci0KLS5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkIHsKLSAgICBtYXJnaW4tbGVmdDogMAotfQotCi0uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7Ci0gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7Ci0gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAKLX0KLQotLmJ0bi1ncm91cCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkgewotICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7Ci0gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMAotfQotCi0uYnRuLWdyb3VwID4gLmJ0bi1ncm91cCB7Ci0gICAgZmxvYXQ6IGxlZnQKLX0KLQotLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4gewotICAgIGJvcmRlci1yYWRpdXM6IDAKLX0KLQotLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQgPiAuYnRuOmxhc3QtY2hpbGQsIC5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSB7Ci0gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7Ci0gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAKLX0KLQotLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZCA+IC5idG46Zmlyc3QtY2hpbGQgewotICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7Ci0gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMAotfQotCi0uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLCAuYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7Ci0gICAgb3V0bGluZTogMAotfQotCi0uYnRuLWdyb3VwLXhzID4gLmJ0biB7Ci0gICAgcGFkZGluZzogNXB4IDEwcHg7Ci0gICAgZm9udC1zaXplOiAxMnB4OwotICAgIGxpbmUtaGVpZ2h0OiAxLjU7Ci0gICAgYm9yZGVyLXJhZGl1czogM3B4OwotICAgIHBhZGRpbmc6IDFweCA1cHgKLX0KLQotLmJ0bi1ncm91cC1zbSA+IC5idG4gewotICAgIHBhZGRpbmc6IDVweCAxMHB4OwotICAgIGZvbnQtc2l6ZTogMTJweDsKLSAgICBsaW5lLWhlaWdodDogMS41OwotICAgIGJvcmRlci1yYWRpdXM6IDNweAotfQotCi0uYnRuLWdyb3VwLWxnID4gLmJ0biB7Ci0gICAgcGFkZGluZzogMTBweCAxNnB4OwotICAgIGZvbnQtc2l6ZTogMThweDsKLSAgICBsaW5lLWhlaWdodDogMS4zMzsKLSAgICBib3JkZXItcmFkaXVzOiA2cHgKLX0KLQotLmJ0bi1ncm91cCA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlIHsKLSAgICBwYWRkaW5nLWxlZnQ6IDhweDsKLSAgICBwYWRkaW5nLXJpZ2h0OiA4cHgKLX0KLQotLmJ0bi1ncm91cCA+IC5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlIHsKLSAgICBwYWRkaW5nLWxlZnQ6IDEycHg7Ci0gICAgcGFkZGluZy1yaWdodDogMTJweAotfQotCi0uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7Ci0gICAgYmFja2dyb3VuZDogI2YyZjJmMgotfQotCi0uYnRuIC5jYXJldCB7Ci0gICAgbWFyZ2luLWxlZnQ6IDAKLX0KLQotLmJ0bi1sZyAuY2FyZXQgewotICAgIGJvcmRlci13aWR0aDogNXB4IDVweCAwOwotICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDAKLX0KLQotLmRyb3B1cCAuYnRuLWxnIC5jYXJldCB7Ci0gICAgYm9yZGVyLXdpZHRoOiAwIDVweCA1cHgKLX0KLQotLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4sIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwIHsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBmbG9hdDogbm9uZTsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBtYXgtd2lkdGg6IDEwMCUKLX0KLQotLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6YmVmb3JlLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDphZnRlciB7Ci0gICAgY29udGVudDogIiAiOwotICAgIGRpc3BsYXk6IHRhYmxlCi19Ci0KLS5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmFmdGVyIHsKLSAgICBjbGVhcjogYm90aAotfQotCi0uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4gewotICAgIGZsb2F0OiBub25lCi19Ci0KLS5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0biwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLWdyb3VwLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCArIC5idG4sIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7Ci0gICAgbWFyZ2luLXRvcDogLTFweDsKLSAgICBtYXJnaW4tbGVmdDogMAotfQotCi0uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHsKLSAgICBib3JkZXItcmFkaXVzOiAwCi19Ci0KLS5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgewotICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOwotICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOwotICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAKLX0KLQotLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7Ci0gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKLSAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsKLSAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwCi19Ci0KLS5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHsKLSAgICBib3JkZXItcmFkaXVzOiAwCi19Ci0KLS5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkID4gLmJ0bjpsYXN0LWNoaWxkLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUgewotICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOwotICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAKLX0KLQotLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZCA+IC5idG46Zmlyc3QtY2hpbGQgewotICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOwotICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAKLX0KLQotLmJ0bi1ncm91cC1qdXN0aWZpZWQgewotICAgIGRpc3BsYXk6IHRhYmxlOwotICAgIHdpZHRoOiAxMDAlOwotICAgIHRhYmxlLWxheW91dDogZml4ZWQ7Ci0gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZQotfQotCi0uYnRuLWdyb3VwLWp1c3RpZmllZCAuYnRuIHsKLSAgICBmbG9hdDogbm9uZTsKLSAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOwotICAgIHdpZHRoOiAxJQotfQotCi1bZGF0YS10b2dnbGU9ImJ1dHRvbnMiXSA+IC5idG4gPiBpbnB1dFt0eXBlPSJyYWRpbyJdLCBbZGF0YS10b2dnbGU9ImJ1dHRvbnMiXSA+IC5idG4gPiBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKLSAgICBkaXNwbGF5OiBub25lCi19Ci0KLS5jYXJldCB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIHdpZHRoOiAwOwotICAgIGhlaWdodDogMDsKLSAgICBtYXJnaW4tbGVmdDogMnB4OwotICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ci0gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICMwMDA7Ci0gICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7Ci0gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKLSAgICBib3JkZXItYm90dG9tOiAwIGRvdHRlZDsKLSAgICBjb250ZW50OiAiIgotfQotCi0uZHJvcGRvd24gewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZQotfQotCi0uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHsKLSAgICBvdXRsaW5lOiAwCi19Ci0KLS5kcm9wZG93bi1tZW51IHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAxMDAlOwotICAgIGxlZnQ6IDA7Ci0gICAgei1pbmRleDogMTAwMDsKLSAgICBkaXNwbGF5OiBub25lOwotICAgIGZsb2F0OiBsZWZ0OwotICAgIG1pbi13aWR0aDogMTYwcHg7Ci0gICAgcGFkZGluZzogNXB4IDA7Ci0gICAgbWFyZ2luOiAycHggMCAwOwotICAgIGxpc3Qtc3R5bGU6IG5vbmU7Ci0gICAgZm9udC1zaXplOiAxNHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKLSAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpOwotICAgIGJvcmRlci1yYWRpdXM6IDA7Ci0gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveAotfQotCi0uZHJvcGRvd24tbWVudS5wdWxsLXJpZ2h0IHsKLSAgICByaWdodDogMDsKLSAgICBsZWZ0OiBhdXRvCi19Ci0KLS5kcm9wZG93bi1tZW51IC5kaXZpZGVyIHsKLSAgICBoZWlnaHQ6IDFweDsKLSAgICBtYXJnaW46IDlweCAwOwotICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNQotfQotCi0uZHJvcGRvd24tbWVudSA+IGxpID4gYSB7Ci0gICAgZm9udC1zaXplOiAxNHB4OwotICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBwYWRkaW5nOiA1cHggMjBweDsKLSAgICBjbGVhcjogYm90aDsKLSAgICBmb250LXdlaWdodDogbm9ybWFsOwotICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTsKLSAgICBjb2xvcjogIzMzMzsKLSAgICB3aGl0ZS1zcGFjZTogbm93cmFwCi19Ci0KLS5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLCAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwotICAgIGNvbG9yOiAjZmZmOwotICAgIGJhY2tncm91bmQtY29sb3I6ICM0MjhiY2EKLX0KLQotLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSwgLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpob3ZlciwgLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpmb2N1cyB7Ci0gICAgY29sb3I6ICNmZmY7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwotICAgIG91dGxpbmU6IDA7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogIzQyOGJjYQotfQotCi0uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3ZlciwgLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHsKLSAgICBjb2xvcjogIzk5OQotfQotCi0uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwotICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7Ci0gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZD1mYWxzZSk7Ci0gICAgY3Vyc29yOiBub3QtYWxsb3dlZAotfQotCi0ub3BlbiA+IC5kcm9wZG93bi1tZW51IHsKLSAgICBkaXNwbGF5OiBibG9jawotfQotCi0ub3BlbiA+IGEgewotICAgIG91dGxpbmU6IDAKLX0KLQotLmRyb3Bkb3duLWhlYWRlciB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gICAgcGFkZGluZzogM3B4IDIwcHg7Ci0gICAgZm9udC1zaXplOiAxMnB4OwotICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTsKLSAgICBjb2xvcjogIzk5OQotfQotCi0uZHJvcGRvd24tYmFja2Ryb3AgewotICAgIHBvc2l0aW9uOiBmaXhlZDsKLSAgICBsZWZ0OiAwOwotICAgIHJpZ2h0OiAwOwotICAgIGJvdHRvbTogMDsKLSAgICB0b3A6IDA7Ci0gICAgei1pbmRleDogOTkwCi19Ci0KLS5wdWxsLXJpZ2h0ID4gLmRyb3Bkb3duLW1lbnUgewotICAgIHJpZ2h0OiAwOwotICAgIGxlZnQ6IGF1dG8KLX0KLQotLmRyb3B1cCAuY2FyZXQsIC5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuY2FyZXQgewotICAgIGJvcmRlci10b3A6IDAgZG90dGVkOwotICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjMDAwOwotICAgIGNvbnRlbnQ6ICIiCi19Ci0KLS5kcm9wdXAgLmRyb3Bkb3duLW1lbnUsIC5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7Ci0gICAgdG9wOiBhdXRvOwotICAgIGJvdHRvbTogMTAwJTsKLSAgICBtYXJnaW4tYm90dG9tOiAxcHgKLX0KLQotQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7Ci0gICAgLm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudSB7Ci0gICAgICAgIHJpZ2h0OiAwOwotICAgICAgICBsZWZ0OiBhdXRvCi0gICAgfQotfQotCi1ib2R5LCBodG1sIHsKLSAgICBmb250LWZhbWlseTogIk9wZW4gU2FucyIsICJIZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7Ci0gICAgbWFyZ2luOiAwOwotICAgIGJhY2tncm91bmQ6ICNlZGVkZWQ7Ci0gICAgY29sb3I6ICMzNDM0Mzc7Ci0gICAgbGluZS1oZWlnaHQ6IDJlbTsKLSAgICBmb250LXdlaWdodDogMzAwOwotICAgIGZvbnQtc2l6ZTogLjk1ZW0KLX0KLQotaDEgewotICAgIGZvbnQtc2l6ZTogMi41ZW07Ci0gICAgbWFyZ2luOiAuOGVtIDAKLX0KLQotYm9keS5jZW50ZXIgewotICAgIHBhZGRpbmc6IDAgMzBweDsKLSAgICBiYWNrZ3JvdW5kOiAjRkZGOwotICAgIGZvbnQtc2l6ZTogMWVtCi19Ci0KLXVsIGxpIHsKLSAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2MKLX0KLQotYSB7Ci0gICAgY29sb3I6ICM0MjkwYWQ7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwotICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwKLX0KLQotYTpob3ZlciB7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUKLX0KLQotaDEsIGgyLCBoMyB7Ci0gICAgZm9udC13ZWlnaHQ6IDMwMDsKLSAgICBsaW5lLWhlaWdodDogMS4yZW0KLX0KLQotLnRvcE5hdiwgLmJvdHRvbU5hdiB7Ci0gICAgYmFja2dyb3VuZDogI2YyZjJmMjsKLSAgICBtYXJnaW46IDAgLTMwcHg7Ci0gICAgbWFyZ2luLWJvdHRvbTogMjBweAotfQotCi0udG9wTmF2OmJlZm9yZSwgLmJvdHRvbU5hdjpiZWZvcmUsIC50b3BOYXY6YWZ0ZXIsIC5ib3R0b21OYXY6YWZ0ZXIgewotICAgIGNvbnRlbnQ6ICIgIjsKLSAgICBkaXNwbGF5OiB0YWJsZQotfQotCi0udG9wTmF2OmFmdGVyLCAuYm90dG9tTmF2OmFmdGVyIHsKLSAgICBjbGVhcjogYm90aAotfQotCi0udG9wTmF2IHVsLm5hdkxpc3QsIC5ib3R0b21OYXYgdWwubmF2TGlzdCB7Ci0gICAgcGFkZGluZzogMTBweCAyMHB4OwotICAgIG1hcmdpbjogMDsKLSAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmUKLX0KLQotLnRvcE5hdiB1bC5uYXZMaXN0IGxpLCAuYm90dG9tTmF2IHVsLm5hdkxpc3QgbGkgewotICAgIGRpc3BsYXk6IGlubGluZTsKLSAgICBwYWRkaW5nOiAwIDEwcHgKLX0KLQotLnRvcE5hdiB1bC5uYXZMaXN0IGxpLm5hdkJhckNlbGwxUmV2LCAuYm90dG9tTmF2IHVsLm5hdkxpc3QgbGkubmF2QmFyQ2VsbDFSZXYgewotICAgIGZvbnQtd2VpZ2h0OiBib2xkCi19Ci0KLS5ib3R0b21OYXYgewotICAgIG1hcmdpbi10b3A6IDMwcHg7Ci0gICAgbWFyZ2luLWJvdHRvbTogMAotfQotCi0uYWJvdXRMYW5ndWFnZSB7Ci0gICAgY29sb3I6ICNCQkI7Ci0gICAgYmFja2dyb3VuZDogd2hpdGU7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotICAgIHBhZGRpbmc6IDIwcHggMAotfQotCi0uc3ViTmF2IHsKLSAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKLSAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwotICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFCi19Ci0KLS5zdWJOYXY6YmVmb3JlLCAuc3ViTmF2OmFmdGVyIHsKLSAgICBjb250ZW50OiAiICI7Ci0gICAgZGlzcGxheTogdGFibGUKLX0KLQotLnN1Yk5hdjphZnRlciB7Ci0gICAgY2xlYXI6IGJvdGgKLX0KLQotLnN1Yk5hdiBkaXY6YmVmb3JlLCAuc3ViTmF2IGRpdjphZnRlciB7Ci0gICAgY29udGVudDogIiAiOwotICAgIGRpc3BsYXk6IHRhYmxlCi19Ci0KLS5zdWJOYXYgZGl2OmFmdGVyIHsKLSAgICBjbGVhcjogYm90aAotfQotCi0uc3ViTmF2IHVsLm5hdkxpc3QsIC5zdWJOYXYgdWwgewotICAgIGZvbnQtc2l6ZTogLjllbTsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDA7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci0gICAgbGlzdC1zdHlsZS10eXBlOiBub25lCi19Ci0KLS5zdWJOYXYgdWwubmF2TGlzdCBsaSwgLnN1Yk5hdiB1bCBsaSB7Ci0gICAgcGFkZGluZzogMCA1cHg7Ci0gICAgZGlzcGxheTogaW5saW5lCi19Ci0KLXRhYmxlLm92ZXJ2aWV3U3VtbWFyeSwgLmNvbnRlbnRDb250YWluZXIgdWwgbGkgdGFibGUgewotICAgIHdpZHRoOiAxMDAlOwotICAgIG1hcmdpbjogMjBweCAwCi19Ci0KLXRhYmxlLm92ZXJ2aWV3U3VtbWFyeSBjYXB0aW9uLCAuY29udGVudENvbnRhaW5lciB1bCBsaSB0YWJsZSBjYXB0aW9uIHsKLSAgICB0ZXh0LWFsaWduOiBsZWZ0OwotICAgIGZvbnQtd2VpZ2h0OiAxMDA7Ci0gICAgZm9udC1zaXplOiAxZW07Ci0gICAgZmxvYXQ6IGxlZnQ7Ci0gICAgcGFkZGluZzogMCAxMHB4OwotICAgIG1hcmdpbi10b3A6IDEwcHg7Ci0gICAgYmFja2dyb3VuZDogI2RiNDgwMDsKLSAgICBjb2xvcjogd2hpdGUKLX0KLQotdGFibGUub3ZlcnZpZXdTdW1tYXJ5IHRyIHRoLCAuY29udGVudENvbnRhaW5lciB1bCBsaSB0YWJsZSB0ciB0aCB7Ci0gICAgcGFkZGluZzogMTBweDsKLSAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICBmb250LXNpemU6IDFlbTsKLSAgICB0ZXh0LWFsaWduOiBsZWZ0Ci19Ci0KLXRhYmxlLm92ZXJ2aWV3U3VtbWFyeSB0ciB0ZCwgLmNvbnRlbnRDb250YWluZXIgdWwgbGkgdGFibGUgdHIgdGQgewotICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Ci0gICAgZm9udC1zaXplOiAuOWVtOwotICAgIHBhZGRpbmc6IDVweCAxMHB4OwotICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRUVFCi19Ci0KLXRhYmxlLm92ZXJ2aWV3U3VtbWFyeSB0Ym9keSA+IHRyOm50aC1jaGlsZChvZGQpID4gdGQsIC5jb250ZW50Q29udGFpbmVyIHVsIGxpIHRhYmxlIHRib2R5ID4gdHI6bnRoLWNoaWxkKG9kZCkgPiB0ZCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOQotfQotCi1ib2R5LmxlZnQgewotICAgIHBhZGRpbmctdG9wOiAxMHB4Ci19Ci0KLWJvZHkubGVmdCBoMSwgYm9keS5sZWZ0IGgyIHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci0gICAgdGV4dC1hbGlnbjogbGVmdDsKLSAgICBmb250LXdlaWdodDogMTAwOwotICAgIGZvbnQtc2l6ZTogMWVtOwotICAgIG1hcmdpbjogMCAxMHB4OwotICAgIHBhZGRpbmc6IDNweCAxMHB4OwotICAgIG1hcmdpbi10b3A6IDEwcHg7Ci0gICAgYmFja2dyb3VuZDogI2RiNDgwMDsKLSAgICBjb2xvcjogd2hpdGU7Ci0gICAgbGluZS1oZWlnaHQ6IDQwcHgKLX0KLQotYm9keS5sZWZ0IC5pbmRleEhlYWRlciB7Ci0gICAgbWFyZ2luOiAwOwotICAgIHBhZGRpbmc6IDAgMTVweDsKLSAgICBmb250LXNpemU6IC45ZW0KLX0KLQotYm9keS5sZWZ0IHVsIHsKLSAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Ci0gICAgbWFyZ2luOiAwOwotICAgIHBhZGRpbmc6IDAKLX0KLQotYm9keS5sZWZ0IHVsIGxpIHsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMAotfQotCi1ib2R5LmxlZnQgdWwgbGkgYSB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gICAgcGFkZGluZzogMCAxNXB4OwotICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZQotfQotCi1ib2R5LmxlZnQgdWwgbGkgYTpob3ZlciB7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUKLX0KLQotLmNvbnRlbnRDb250YWluZXIgLmhlYWRlciB1bCwgLmNvbnRlbnRDb250YWluZXIgdWwuYmxvY2tMaXN0IHsKLSAgICBwYWRkaW5nOiAwCi19Ci0KLS5jb250ZW50Q29udGFpbmVyIC5oZWFkZXIgdWwgPiBsaSwgLmNvbnRlbnRDb250YWluZXIgdWwuYmxvY2tMaXN0ID4gbGkgewotICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZQotfQotCi0uY29udGVudENvbnRhaW5lciB1bC5pbmhlcml0YW5jZSB7Ci0gICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgcGFkZGluZy1sZWZ0OiAwCi19Ci0KLS5jb250ZW50Q29udGFpbmVyIHVsLmluaGVyaXRhbmNlIGxpIHsKLSAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmUKLX0KLQotLmNvbnRlbnRDb250YWluZXIgdWwuaW5oZXJpdGFuY2UgdWwuaW5oZXJpdGFuY2UgewotICAgIHBhZGRpbmctbGVmdDogMjBweAotfQotCi0uY29udGVudENvbnRhaW5lciBociB7Ci0gICAgYm9yZGVyOiAwIG5vbmU7Ci0gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFRUU7Ci0gICAgbWFyZ2luLXRvcDogMzBweDsKLSAgICBtYXJnaW4tYm90b206IDAKLX0KLQotdWwuYmxvY2tMaXN0IHVsLmJsb2NrTGlzdCwgdWwuYmxvY2tMaXN0IHVsLmJsb2NrTGlzdExhc3QgewotICAgIGJvcmRlcjogMXB4IHNvbGlkICNFRUU7Ci0gICAgbWFyZ2luOiAyMHB4IDA7Ci0gICAgcGFkZGluZzogMCAyMHB4Ci19Ci0KLXVsLmJsb2NrTGlzdCB1bC5ibG9ja0xpc3QgaDQsIHVsLmJsb2NrTGlzdCB1bC5ibG9ja0xpc3RMYXN0IGg0LCB1bC5ibG9ja0xpc3QgdWwuYmxvY2tMaXN0IGgzLCB1bC5ibG9ja0xpc3QgdWwuYmxvY2tMaXN0TGFzdCBoMyB7Ci0gICAgZm9udC1zaXplOiAxZW07Ci0gICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgbGluZS1oZWlnaHQ6IDJlbTsKLSAgICB0ZXh0LWluZGVudDogMTBweDsKLSAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRTsKLSAgICBtYXJnaW46IDAgLTIwcHg7Ci0gICAgcGFkZGluZzogNXB4IDA7Ci0gICAgYmFja2dyb3VuZDogI2YyZjJmMgotfQotCi11bC5ibG9ja0xpc3QgdWwuYmxvY2tMaXN0IGxpLCB1bC5ibG9ja0xpc3QgdWwuYmxvY2tMaXN0TGFzdCBsaSB7Ci0gICAgbGlzdC1zdHlsZS10eXBlOiBub25lCi19Ci0KLXVsLmhvcml6b250YWwgewotICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKLSAgICBwYWRkaW5nOiAwOwotICAgIG1hcmdpbjogMDsKLSAgICBmb250LXNpemU6IC45ZW0KLX0KLQotdWwuaG9yaXpvbnRhbCBsaSB7Ci0gICAgZGlzcGxheTogaW5saW5lCi19Ci0KLXNwYW4uc3Ryb25nIHsKLSAgICBmb250LXdlaWdodDogYm9sZAotfQotCi1hIHNwYW4uc3Ryb25nIHsKLSAgICBmb250LXdlaWdodDogbm9ybWFsCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9saWJzL2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtZ3Jvb3Z5ZG9jLmphciBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvbGlicy9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULWdyb292eWRvYy5qYXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlZTc2NTEuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9saWJzL2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtZ3Jvb3Z5ZG9jLmphcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvbGlicy9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULWphdmFkb2MuamFyIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9saWJzL2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtamF2YWRvYy5qYXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhY2YwYTAuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9saWJzL2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QtamF2YWRvYy5qYXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL2xpYnMvYXBhY2hlLXJhdC1ncmFkbGUtMC4xMi1TTkFQU0hPVC1zb3VyY2VzLmphciBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvbGlicy9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULXNvdXJjZXMuamFyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDMzMDFjLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvbGlicy9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULXNvdXJjZXMuamFyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9saWJzL2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QuamFyIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9saWJzL2FwYWNoZS1yYXQtZ3JhZGxlLTAuMTItU05BUFNIT1QuamFyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjVhZGMyLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvbGlicy9hcGFjaGUtcmF0LWdyYWRsZS0wLjEyLVNOQVBTSE9ULmphcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9jbGFzc2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMuaHRtbCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9jbGFzc2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI5NzViNS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3JlcG9ydHMvdGVzdHMvY2xhc3Nlcy9vcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+DQotPGh0bWw+DQotPGhlYWQ+DQotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4NCi08bWV0YSBodHRwLWVxdWl2PSJ4LXVhLWNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiLz4NCi08dGl0bGU+VGVzdCByZXN1bHRzIC0gQ2xhc3Mgb3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdEludGVncmF0aW9uU3BlYzwvdGl0bGU+DQotPGxpbmsgaHJlZj0iLi4vY3NzL2Jhc2Utc3R5bGUuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+DQotPGxpbmsgaHJlZj0iLi4vY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPg0KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQotPC9oZWFkPg0KLTxib2R5Pg0KLTxkaXYgaWQ9ImNvbnRlbnQiPg0KLTxoMT5DbGFzcyBvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjPC9oMT4NCi08ZGl2IGNsYXNzPSJicmVhZGNydW1icyI+DQotPGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+YWxsPC9hPiAmZ3Q7IA0KLTxhIGhyZWY9Ii4uL3BhY2thZ2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5odG1sIj5vcmcuYXBhY2hlLnJhdC5ncmFkbGU8L2E+ICZndDsgUmF0SW50ZWdyYXRpb25TcGVjPC9kaXY+DQotPGRpdiBpZD0ic3VtbWFyeSI+DQotPHRhYmxlPg0KLTx0cj4NCi08dGQ+DQotPGRpdiBjbGFzcz0ic3VtbWFyeUdyb3VwIj4NCi08dGFibGU+DQotPHRyPg0KLTx0ZD4NCi08ZGl2IGNsYXNzPSJpbmZvQm94IiBpZD0idGVzdHMiPg0KLTxkaXYgY2xhc3M9ImNvdW50ZXIiPjQ8L2Rpdj4NCi08cD50ZXN0czwvcD4NCi08L2Rpdj4NCi08L3RkPg0KLTx0ZD4NCi08ZGl2IGNsYXNzPSJpbmZvQm94IiBpZD0iZmFpbHVyZXMiPg0KLTxkaXYgY2xhc3M9ImNvdW50ZXIiPjA8L2Rpdj4NCi08cD5mYWlsdXJlczwvcD4NCi08L2Rpdj4NCi08L3RkPg0KLTx0ZD4NCi08ZGl2IGNsYXNzPSJpbmZvQm94IiBpZD0iaWdub3JlZCI+DQotPGRpdiBjbGFzcz0iY291bnRlciI+MDwvZGl2Pg0KLTxwPmlnbm9yZWQ8L3A+DQotPC9kaXY+DQotPC90ZD4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCIgaWQ9ImR1cmF0aW9uIj4NCi08ZGl2IGNsYXNzPSJjb3VudGVyIj43LjA1NnM8L2Rpdj4NCi08cD5kdXJhdGlvbjwvcD4NCi08L2Rpdj4NCi08L3RkPg0KLTwvdHI+DQotPC90YWJsZT4NCi08L2Rpdj4NCi08L3RkPg0KLTx0ZD4NCi08ZGl2IGNsYXNzPSJpbmZvQm94IHN1Y2Nlc3MiIGlkPSJzdWNjZXNzUmF0ZSI+DQotPGRpdiBjbGFzcz0icGVyY2VudCI+MTAwJTwvZGl2Pg0KLTxwPnN1Y2Nlc3NmdWw8L3A+DQotPC9kaXY+DQotPC90ZD4NCi08L3RyPg0KLTwvdGFibGU+DQotPC9kaXY+DQotPGRpdiBpZD0idGFicyI+DQotPHVsIGNsYXNzPSJ0YWJMaW5rcyI+DQotPGxpPg0KLTxhIGhyZWY9IiN0YWIwIj5UZXN0czwvYT4NCi08L2xpPg0KLTxsaT4NCi08YSBocmVmPSIjdGFiMSI+U3RhbmRhcmQgb3V0cHV0PC9hPg0KLTwvbGk+DQotPC91bD4NCi08ZGl2IGlkPSJ0YWIwIiBjbGFzcz0idGFiIj4NCi08aDI+VGVzdHM8L2gyPg0KLTx0YWJsZT4NCi08dGhlYWQ+DQotPHRyPg0KLTx0aD5UZXN0PC90aD4NCi08dGg+RHVyYXRpb248L3RoPg0KLTx0aD5SZXN1bHQ8L3RoPg0KLTwvdHI+DQotPC90aGVhZD4NCi08dHI+DQotPHRkIGNsYXNzPSJzdWNjZXNzIj5kbyBub3QgZmFpbCBidXQgcmVwb3J0IGVycm9ycyB3aGVuIHJhdC5mYWlsT25FcnJvciBpcyBmYWxzZTwvdGQ+DQotPHRkPjEuMjczczwvdGQ+DQotPHRkIGNsYXNzPSJzdWNjZXNzIj5wYXNzZWQ8L3RkPg0KLTwvdHI+DQotPHRyPg0KLTx0ZCBjbGFzcz0ic3VjY2VzcyI+ZmFpbCB0aGUgYnVpbGQgd2hlbiBmaW5kaW5nIGEgZmlsZSB3aXRoIHVuYXBwcm92ZWQvdW5rbm93biBsaWNlbnNlPC90ZD4NCi08dGQ+MS4yMTlzPC90ZD4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPnBhc3NlZDwvdGQ+DQotPC90cj4NCi08dHI+DQotPHRkIGNsYXNzPSJzdWNjZXNzIj5zdWNjZXNzPC90ZD4NCi08dGQ+My4zMDNzPC90ZD4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPnBhc3NlZDwvdGQ+DQotPC90cj4NCi08dHI+DQotPHRkIGNsYXNzPSJzdWNjZXNzIj5zdWNjZXNzIG9uIGN1c3RvbSByZXBvcnRQYXRoPC90ZD4NCi08dGQ+MS4yNjFzPC90ZD4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPnBhc3NlZDwvdGQ+DQotPC90cj4NCi08L3RhYmxlPg0KLTwvZGl2Pg0KLTxkaXYgaWQ9InRhYjEiIGNsYXNzPSJ0YWIiPg0KLTxoMj5TdGFuZGFyZCBvdXRwdXQ8L2gyPg0KLTxzcGFuIGNsYXNzPSJjb2RlIj4NCi08cHJlPlJ1bm5pbmcgdGVzdCBmcm9tIEM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVxzcmNcZ3JhZGxlXGJ1aWxkXHRlc3Rcb3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdEludGVncmF0aW9uU3BlY1xzdWNjZXNzDQotVG9vbGluZyBBUEkgaXMgdXNpbmcgdGFyZ2V0IEdyYWRsZSB2ZXJzaW9uOiAyLjQuDQotQ29ubmVjdGVkIHRvIGRhZW1vbiBEYWVtb25JbmZve3BpZD00NjAwLCBhZGRyZXNzPVs1YzUzMzYzYS1kNTA3LTQ2NTktYjFhMi0xZGZmYTUwNjQ3ZjEgcG9ydDo1MjYwOSwgYWRkcmVzc2VzOlsvMTI3LjAuMC4xLCAvMDowOjA6MDowOjA6MDoxXV0sIGlkbGU9dHJ1ZSwgY29udGV4dD1EZWZhdWx0RGFlbW9uQ29udGV4dFt1aWQ9ZDIxMjU4OWMtNDg5Ny00ZGEyLTkwN2YtYjU1ODU2NGFmY2JiLGphdmFIb21lPUM6XG9wdFxqZGsxLjcuMF83NixkYWVtb25SZWdpc3RyeURpcj1DOlxVc2Vyc1xqd2lcLmdyYWRsZVxkYWVtb24scGlkPTQ2MDAsaWRsZVRpbWVvdXQ9MTA4MDAwMDAsZGFlbW9uT3B0cz0tWFg6TWF4UGVybVNpemU9MjU2bSwtWFg6K0hlYXBEdW1wT25PdXRPZk1lbW9yeUVycm9yLC1YbXgxMDI0bSwtRGZpbGUuZW5jb2Rpbmc9d2luZG93cy0xMjUyLC1EdXNlci5jb3VudHJ5PURFLC1EdXNlci5sYW5ndWFnZT1kZSwtRHVzZXIudmFyaWFudF19LiBEaXNwYXRjaGluZyByZXF1ZXN0IEJ1aWxke2lkPTJlZWUxZDM2LWVhMWItNDQwYy05MTMwLWJiM2U1NTE5OWY1YS4xLCBjdXJyZW50RGlyPUM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVxzcmNcZ3JhZGxlfS4NCi1SZWNlaXZlZCByZXN1bHQgU3VjY2Vzc1t2YWx1ZT1vcmcuZ3JhZGxlLnRvb2xpbmcuaW50ZXJuYWwucHJvdmlkZXIuQnVpbGRBY3Rpb25SZXN1bHRANjU4MDgyMjhdIGZyb20gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uDQotUnVubmluZyB0ZXN0IGZyb20gQzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGVcYnVpbGRcdGVzdFxvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjXGRvLW5vdC1mYWlsLWJ1dC1yZXBvcnQtZXJyb3JzLXdoZW4tcmF0LWZhaWxPbkVycm9yLWlzLWZhbHNlDQotVG9vbGluZyBBUEkgaXMgdXNpbmcgdGFyZ2V0IEdyYWRsZSB2ZXJzaW9uOiAyLjQuDQotQ29ubmVjdGVkIHRvIGRhZW1vbiBEYWVtb25JbmZve3BpZD00NjAwLCBhZGRyZXNzPVs1YzUzMzYzYS1kNTA3LTQ2NTktYjFhMi0xZGZmYTUwNjQ3ZjEgcG9ydDo1MjYwOSwgYWRkcmVzc2VzOlsvMTI3LjAuMC4xLCAvMDowOjA6MDowOjA6MDoxXV0sIGlkbGU9dHJ1ZSwgY29udGV4dD1EZWZhdWx0RGFlbW9uQ29udGV4dFt1aWQ9ZDIxMjU4OWMtNDg5Ny00ZGEyLTkwN2YtYjU1ODU2NGFmY2JiLGphdmFIb21lPUM6XG9wdFxqZGsxLjcuMF83NixkYWVtb25SZWdpc3RyeURpcj1DOlxVc2Vyc1xqd2lcLmdyYWRsZVxkYWVtb24scGlkPTQ2MDAsaWRsZVRpbWVvdXQ9MTA4MDAwMDAsZGFlbW9uT3B0cz0tWFg6TWF4UGVybVNpemU9MjU2bSwtWFg6K0hlYXBEdW1wT25PdXRPZk1lbW9yeUVycm9yLC1YbXgxMDI0bSwtRGZpbGUuZW5jb2Rpbmc9d2luZG93cy0xMjUyLC1EdXNlci5jb3VudHJ5PURFLC1EdXNlci5sYW5ndWFnZT1kZSwtRHVzZXIudmFyaWFudF19LiBEaXNwYXRjaGluZyByZXF1ZXN0IEJ1aWxke2lkPWQwZDEwYTdmLTQzMGEtNGRmYy05MTE2LTMyZGNmMDU2ZDhjMi4xLCBjdXJyZW50RGlyPUM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVxzcmNcZ3JhZGxlfS4NCi1SZWNlaXZlZCByZXN1bHQgU3VjY2Vzc1t2YWx1ZT1vcmcuZ3JhZGxlLnRvb2xpbmcuaW50ZXJuYWwucHJvdmlkZXIuQnVpbGRBY3Rpb25SZXN1bHRANWVhMWE4OWNdIGZyb20gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uDQotUnVubmluZyB0ZXN0IGZyb20gQzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGVcYnVpbGRcdGVzdFxvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjXGZhaWwtdGhlLWJ1aWxkLXdoZW4tZmluZGluZy1hLWZpbGUtd2l0aC11bmFwcHJvdmVkLXVua25vd24tbGljZW5zZQ0KLVRvb2xpbmcgQVBJIGlzIHVzaW5nIHRhcmdldCBHcmFkbGUgdmVyc2lvbjogMi40Lg0KLUNvbm5lY3RlZCB0byBkYWVtb24gRGFlbW9uSW5mb3twaWQ9NDYwMCwgYWRkcmVzcz1bNWM1MzM2M2EtZDUwNy00NjU5LWIxYTItMWRmZmE1MDY0N2YxIHBvcnQ6NTI2MDksIGFkZHJlc3NlczpbLzEyNy4wLjAuMSwgLzA6MDowOjA6MDowOjA6MV1dLCBpZGxlPXRydWUsIGNvbnRleHQ9RGVmYXVsdERhZW1vbkNvbnRleHRbdWlkPWQyMTI1ODljLTQ4OTctNGRhMi05MDdmLWI1NTg1NjRhZmNiYixqYXZhSG9tZT1DOlxvcHRcamRrMS43LjBfNzYsZGFlbW9uUmVnaXN0cnlEaXI9QzpcVXNlcnNcandpXC5ncmFkbGVcZGFlbW9uLHBpZD00NjAwLGlkbGVUaW1lb3V0PTEwODAwMDAwLGRhZW1vbk9wdHM9LVhYOk1heFBlcm1TaXplPTI1Nm0sLVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvciwtWG14MTAyNG0sLURmaWxlLmVuY29kaW5nPXdpbmRvd3MtMTI1MiwtRHVzZXIuY291bnRyeT1ERSwtRHVzZXIubGFuZ3VhZ2U9ZGUsLUR1c2VyLnZhcmlhbnRdfS4gRGlzcGF0Y2hpbmcgcmVxdWVzdCBCdWlsZHtpZD0yM2U5OTM1ZC04MjQzLTQ1OWEtODE4ZC0zYWVlNDY2YWI4YzAuMSwgY3VycmVudERpcj1DOlxVc2Vyc1xqd2lcYWZ3XGFwYWNoZS1yYXRcYXBhY2hlLXJhdC1ncmFkbGVcc3JjXGdyYWRsZX0uDQotUmVjZWl2ZWQgcmVzdWx0IENvbW1hbmRGYWlsdXJlW3ZhbHVlPW9yZy5ncmFkbGUubGF1bmNoZXIuZXhlYy5SZXBvcnRlZEV4Y2VwdGlvbjogb3JnLmdyYWRsZS5pbnRlcm5hbC5leGNlcHRpb25zLkxvY2F0aW9uQXdhcmVFeGNlcHRpb246IEV4ZWN1dGlvbiBmYWlsZWQgZm9yIHRhc2sgJzpyYXQnLl0gZnJvbSBkYWVtb24gRGFlbW9uSW5mb3twaWQ9NDYwMCwgYWRkcmVzcz1bNWM1MzM2M2EtZDUwNy00NjU5LWIxYTItMWRmZmE1MDY0N2YxIHBvcnQ6NTI2MDksIGFkZHJlc3NlczpbLzEyNy4wLjAuMSwgLzA6MDowOjA6MDowOjA6MV1dLCBpZGxlPXRydWUsIGNvbnRleHQ9RGVmYXVsdERhZW1vbkNvbnRleHRbdWlkPWQyMTI1ODljLTQ4OTctNGRhMi05MDdmLWI1NTg1NjRhZmNiYixqYXZhSG9tZT1DOlxvcHRcamRrMS43LjBfNzYsZGFlbW9uUmVnaXN0cnlEaXI9QzpcVXNlcnNcandpXC5ncmFkbGVcZGFlbW9uLHBpZD00NjAwLGlkbGVUaW1lb3V0PTEwODAwMDAwLGRhZW1vbk9wdHM9LVhYOk1heFBlcm1TaXplPTI1Nm0sLVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvciwtWG14MTAyNG0sLURmaWxlLmVuY29kaW5nPXdpbmRvd3MtMTI1MiwtRHVzZXIuY291bnRyeT1ERSwtRHVzZXIubGFuZ3VhZ2U9ZGUsLUR1c2VyLnZhcmlhbnRdfS4NCi1SdW5uaW5nIHRlc3QgZnJvbSBDOlxVc2Vyc1xqd2lcYWZ3XGFwYWNoZS1yYXRcYXBhY2hlLXJhdC1ncmFkbGVcc3JjXGdyYWRsZVxidWlsZFx0ZXN0XG9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWNcc3VjY2Vzcy1vbi1jdXN0b20tcmVwb3J0UGF0aA0KLVRvb2xpbmcgQVBJIGlzIHVzaW5nIHRhcmdldCBHcmFkbGUgdmVyc2lvbjogMi40Lg0KLUNvbm5lY3RlZCB0byBkYWVtb24gRGFlbW9uSW5mb3twaWQ9NDYwMCwgYWRkcmVzcz1bNWM1MzM2M2EtZDUwNy00NjU5LWIxYTItMWRmZmE1MDY0N2YxIHBvcnQ6NTI2MDksIGFkZHJlc3NlczpbLzEyNy4wLjAuMSwgLzA6MDowOjA6MDowOjA6MV1dLCBpZGxlPXRydWUsIGNvbnRleHQ9RGVmYXVsdERhZW1vbkNvbnRleHRbdWlkPWQyMTI1ODljLTQ4OTctNGRhMi05MDdmLWI1NTg1NjRhZmNiYixqYXZhSG9tZT1DOlxvcHRcamRrMS43LjBfNzYsZGFlbW9uUmVnaXN0cnlEaXI9QzpcVXNlcnNcandpXC5ncmFkbGVcZGFlbW9uLHBpZD00NjAwLGlkbGVUaW1lb3V0PTEwODAwMDAwLGRhZW1vbk9wdHM9LVhYOk1heFBlcm1TaXplPTI1Nm0sLVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvciwtWG14MTAyNG0sLURmaWxlLmVuY29kaW5nPXdpbmRvd3MtMTI1MiwtRHVzZXIuY291bnRyeT1ERSwtRHVzZXIubGFuZ3VhZ2U9ZGUsLUR1c2VyLnZhcmlhbnRdfS4gRGlzcGF0Y2hpbmcgcmVxdWVzdCBCdWlsZHtpZD1jN2U4YWM0Yi1mN2VkLTRkNDAtOWUzYy00NTI5YzhiMTllZmUuMSwgY3VycmVudERpcj1DOlxVc2Vyc1xqd2lcYWZ3XGFwYWNoZS1yYXRcYXBhY2hlLXJhdC1ncmFkbGVcc3JjXGdyYWRsZX0uDQotUmVjZWl2ZWQgcmVzdWx0IFN1Y2Nlc3NbdmFsdWU9b3JnLmdyYWRsZS50b29saW5nLmludGVybmFsLnByb3ZpZGVyLkJ1aWxkQWN0aW9uUmVzdWx0QDFhODBkNzIwXSBmcm9tIGRhZW1vbiBEYWVtb25JbmZve3BpZD00NjAwLCBhZGRyZXNzPVs1YzUzMzYzYS1kNTA3LTQ2NTktYjFhMi0xZGZmYTUwNjQ3ZjEgcG9ydDo1MjYwOSwgYWRkcmVzc2VzOlsvMTI3LjAuMC4xLCAvMDowOjA6MDowOjA6MDoxXV0sIGlkbGU9dHJ1ZSwgY29udGV4dD1EZWZhdWx0RGFlbW9uQ29udGV4dFt1aWQ9ZDIxMjU4OWMtNDg5Ny00ZGEyLTkwN2YtYjU1ODU2NGFmY2JiLGphdmFIb21lPUM6XG9wdFxqZGsxLjcuMF83NixkYWVtb25SZWdpc3RyeURpcj1DOlxVc2Vyc1xqd2lcLmdyYWRsZVxkYWVtb24scGlkPTQ2MDAsaWRsZVRpbWVvdXQ9MTA4MDAwMDAsZGFlbW9uT3B0cz0tWFg6TWF4UGVybVNpemU9MjU2bSwtWFg6K0hlYXBEdW1wT25PdXRPZk1lbW9yeUVycm9yLC1YbXgxMDI0bSwtRGZpbGUuZW5jb2Rpbmc9d2luZG93cy0xMjUyLC1EdXNlci5jb3VudHJ5PURFLC1EdXNlci5sYW5ndWFnZT1kZSwtRHVzZXIudmFyaWFudF19Lg0KLTwvcHJlPg0KLTwvc3Bhbj4NCi08L2Rpdj4NCi08L2Rpdj4NCi08ZGl2IGlkPSJmb290ZXIiPg0KLTxwPg0KLTxkaXY+DQotPGxhYmVsIGNsYXNzPSJoaWRkZW4iIGlkPSJsYWJlbC1mb3ItbGluZS13cmFwcGluZy10b2dnbGUiIGZvcj0ibGluZS13cmFwcGluZy10b2dnbGUiPldyYXAgbGluZXMNCi08aW5wdXQgaWQ9ImxpbmUtd3JhcHBpbmctdG9nZ2xlIiB0eXBlPSJjaGVja2JveCIgYXV0b2NvbXBsZXRlPSJvZmYiLz4NCi08L2xhYmVsPg0KLTwvZGl2PkdlbmVyYXRlZCBieSANCi08YSBocmVmPSJodHRwOi8vd3d3LmdyYWRsZS5vcmciPkdyYWRsZSAyLjQ8L2E+IGF0IDI5LjA2LjIwMTUgMjE6MDM6NDk8L3A+DQotPC9kaXY+DQotPC9kaXY+DQotPC9ib2R5Pg0KLTwvaHRtbD4NCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3JlcG9ydHMvdGVzdHMvY2xhc3Nlcy9vcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0UGx1Z2luUHJvamVjdFNwZWMuaHRtbCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9jbGFzc2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRQbHVnaW5Qcm9qZWN0U3BlYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1M2RkMmQ1Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9jbGFzc2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRQbHVnaW5Qcm9qZWN0U3BlYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPg0KLTxodG1sPg0KLTxoZWFkPg0KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+DQotPG1ldGEgaHR0cC1lcXVpdj0ieC11YS1jb21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIi8+DQotPHRpdGxlPlRlc3QgcmVzdWx0cyAtIENsYXNzIG9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRQbHVnaW5Qcm9qZWN0U3BlYzwvdGl0bGU+DQotPGxpbmsgaHJlZj0iLi4vY3NzL2Jhc2Utc3R5bGUuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+DQotPGxpbmsgaHJlZj0iLi4vY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPg0KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQotPC9oZWFkPg0KLTxib2R5Pg0KLTxkaXYgaWQ9ImNvbnRlbnQiPg0KLTxoMT5DbGFzcyBvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0UGx1Z2luUHJvamVjdFNwZWM8L2gxPg0KLTxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4NCi08YSBocmVmPSIuLi9pbmRleC5odG1sIj5hbGw8L2E+ICZndDsgDQotPGEgaHJlZj0iLi4vcGFja2FnZXMvb3JnLmFwYWNoZS5yYXQuZ3JhZGxlLmh0bWwiPm9yZy5hcGFjaGUucmF0LmdyYWRsZTwvYT4gJmd0OyBSYXRQbHVnaW5Qcm9qZWN0U3BlYzwvZGl2Pg0KLTxkaXYgaWQ9InN1bW1hcnkiPg0KLTx0YWJsZT4NCi08dHI+DQotPHRkPg0KLTxkaXYgY2xhc3M9InN1bW1hcnlHcm91cCI+DQotPHRhYmxlPg0KLTx0cj4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCIgaWQ9InRlc3RzIj4NCi08ZGl2IGNsYXNzPSJjb3VudGVyIj40PC9kaXY+DQotPHA+dGVzdHM8L3A+DQotPC9kaXY+DQotPC90ZD4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCIgaWQ9ImZhaWx1cmVzIj4NCi08ZGl2IGNsYXNzPSJjb3VudGVyIj4wPC9kaXY+DQotPHA+ZmFpbHVyZXM8L3A+DQotPC9kaXY+DQotPC90ZD4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCIgaWQ9Imlnbm9yZWQiPg0KLTxkaXYgY2xhc3M9ImNvdW50ZXIiPjA8L2Rpdj4NCi08cD5pZ25vcmVkPC9wPg0KLTwvZGl2Pg0KLTwvdGQ+DQotPHRkPg0KLTxkaXYgY2xhc3M9ImluZm9Cb3giIGlkPSJkdXJhdGlvbiI+DQotPGRpdiBjbGFzcz0iY291bnRlciI+MS40MTlzPC9kaXY+DQotPHA+ZHVyYXRpb248L3A+DQotPC9kaXY+DQotPC90ZD4NCi08L3RyPg0KLTwvdGFibGU+DQotPC9kaXY+DQotPC90ZD4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCBzdWNjZXNzIiBpZD0ic3VjY2Vzc1JhdGUiPg0KLTxkaXYgY2xhc3M9InBlcmNlbnQiPjEwMCU8L2Rpdj4NCi08cD5zdWNjZXNzZnVsPC9wPg0KLTwvZGl2Pg0KLTwvdGQ+DQotPC90cj4NCi08L3RhYmxlPg0KLTwvZGl2Pg0KLTxkaXYgaWQ9InRhYnMiPg0KLTx1bCBjbGFzcz0idGFiTGlua3MiPg0KLTxsaT4NCi08YSBocmVmPSIjdGFiMCI+VGVzdHM8L2E+DQotPC9saT4NCi08L3VsPg0KLTxkaXYgaWQ9InRhYjAiIGNsYXNzPSJ0YWIiPg0KLTxoMj5UZXN0czwvaDI+DQotPHRhYmxlPg0KLTx0aGVhZD4NCi08dHI+DQotPHRoPlRlc3Q8L3RoPg0KLTx0aD5EdXJhdGlvbjwvdGg+DQotPHRoPlJlc3VsdDwvdGg+DQotPC90cj4NCi08L3RoZWFkPg0KLTx0cj4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPmFwcGx5IGRvZXMgbm90IHRocm93IGV4Y2VwdGlvbnM8L3RkPg0KLTx0ZD4xLjEwOXM8L3RkPg0KLTx0ZCBjbGFzcz0ic3VjY2VzcyI+cGFzc2VkPC90ZD4NCi08L3RyPg0KLTx0cj4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPmFwcGx5IGlzIGZpbmUgb24gYWxsIGxldmVscyBvZiBtdWx0aXByb2plY3Q8L3RkPg0KLTx0ZD4wLjA5MXM8L3RkPg0KLTx0ZCBjbGFzcz0ic3VjY2VzcyI+cGFzc2VkPC90ZD4NCi08L3RyPg0KLTx0cj4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPmFwcGx5IGlzIGlkZW1wb3RlbnQ8L3RkPg0KLTx0ZD4wLjA5M3M8L3RkPg0KLTx0ZCBjbGFzcz0ic3VjY2VzcyI+cGFzc2VkPC90ZD4NCi08L3RyPg0KLTx0cj4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPmFwcGx5IHRvIG11bHRpcGxlIHN1YnByb2plY3RzPC90ZD4NCi08dGQ+MC4xMjZzPC90ZD4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPnBhc3NlZDwvdGQ+DQotPC90cj4NCi08L3RhYmxlPg0KLTwvZGl2Pg0KLTwvZGl2Pg0KLTxkaXYgaWQ9ImZvb3RlciI+DQotPHA+DQotPGRpdj4NCi08bGFiZWwgY2xhc3M9ImhpZGRlbiIgaWQ9ImxhYmVsLWZvci1saW5lLXdyYXBwaW5nLXRvZ2dsZSIgZm9yPSJsaW5lLXdyYXBwaW5nLXRvZ2dsZSI+V3JhcCBsaW5lcw0KLTxpbnB1dCBpZD0ibGluZS13cmFwcGluZy10b2dnbGUiIHR5cGU9ImNoZWNrYm94IiBhdXRvY29tcGxldGU9Im9mZiIvPg0KLTwvbGFiZWw+DQotPC9kaXY+R2VuZXJhdGVkIGJ5IA0KLTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3JhZGxlLm9yZyI+R3JhZGxlIDIuNDwvYT4gYXQgMjkuMDYuMjAxNSAyMTowMzo0OTwvcD4NCi08L2Rpdj4NCi08L2Rpdj4NCi08L2JvZHk+DQotPC9odG1sPg0KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9jc3MvYmFzZS1zdHlsZS5jc3MgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3JlcG9ydHMvdGVzdHMvY3NzL2Jhc2Utc3R5bGUuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YWZhNzNlLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9jc3MvYmFzZS1zdHlsZS5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAotCi1ib2R5IHsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKLSAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKLSAgICBmb250LXNpemU6IDEycHQ7Ci19Ci0KLWJvZHksIGEsIGE6dmlzaXRlZCB7Ci0gICAgY29sb3I6ICMzMDMwMzA7Ci19Ci0KLSNjb250ZW50IHsKLSAgICBwYWRkaW5nLWxlZnQ6IDUwcHg7Ci0gICAgcGFkZGluZy1yaWdodDogNTBweDsKLSAgICBwYWRkaW5nLXRvcDogMzBweDsKLSAgICBwYWRkaW5nLWJvdHRvbTogMzBweDsKLX0KLQotI2NvbnRlbnQgaDEgewotICAgIGZvbnQtc2l6ZTogMTYwJTsKLSAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwotfQotCi0jZm9vdGVyIHsKLSAgICBtYXJnaW4tdG9wOiAxMDBweDsKLSAgICBmb250LXNpemU6IDgwJTsKLSAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwotfQotCi0jZm9vdGVyLCAjZm9vdGVyIGEgewotICAgIGNvbG9yOiAjYTBhMGEwOwotfQotCi0jbGluZS13cmFwcGluZy10b2dnbGUgewotICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ci19Ci0KLSNsYWJlbC1mb3ItbGluZS13cmFwcGluZy10b2dnbGUgewotICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ci19Ci0KLXVsIHsKLSAgICBtYXJnaW4tbGVmdDogMDsKLX0KLQotaDEsIGgyLCBoMyB7Ci0gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKLX0KLQotaDIgewotICAgIGZvbnQtc2l6ZTogMTIwJTsKLX0KLQotdWwudGFiTGlua3MgewotICAgIHBhZGRpbmctbGVmdDogMDsKLSAgICBwYWRkaW5nLXRvcDogMTBweDsKLSAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKLSAgICBvdmVyZmxvdzogYXV0bzsKLSAgICBtaW4td2lkdGg6IDgwMHB4OwotICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7Ci0gICAgd2lkdGg6IDgwMHB4OwotfQotCi11bC50YWJMaW5rcyBsaSB7Ci0gICAgZmxvYXQ6IGxlZnQ7Ci0gICAgaGVpZ2h0OiAxMDAlOwotICAgIGxpc3Qtc3R5bGU6IG5vbmU7Ci0gICAgcGFkZGluZy1sZWZ0OiAxMHB4OwotICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7Ci0gICAgcGFkZGluZy10b3A6IDVweDsKLSAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwotICAgIG1hcmdpbi1ib3R0b206IDA7Ci0gICAgLW1vei1ib3JkZXItcmFkaXVzOiA3cHg7Ci0gICAgYm9yZGVyLXJhZGl1czogN3B4OwotICAgIG1hcmdpbi1yaWdodDogMjVweDsKLSAgICBib3JkZXI6IHNvbGlkIDFweCAjZDRkNGQ0OwotICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7Ci19Ci0KLXVsLnRhYkxpbmtzIGxpOmhvdmVyIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwotfQotCi11bC50YWJMaW5rcyBsaS5zZWxlY3RlZCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2M1ZjBmNTsKLSAgICBib3JkZXItY29sb3I6ICNjNWYwZjU7Ci19Ci0KLXVsLnRhYkxpbmtzIGEgewotICAgIGZvbnQtc2l6ZTogMTIwJTsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBvdXRsaW5lOiBub25lOwotICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotdWwudGFiTGlua3MgbGkgaDIgewotICAgIG1hcmdpbjogMDsKLSAgICBwYWRkaW5nOiAwOwotfQotCi1kaXYudGFiIHsKLX0KLQotZGl2LnNlbGVjdGVkIHsKLSAgICBkaXNwbGF5OiBibG9jazsKLX0KLQotZGl2LmRlc2VsZWN0ZWQgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLWRpdi50YWIgdGFibGUgewotICAgIG1pbi13aWR0aDogMzUwcHg7Ci0gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKLSAgICB3aWR0aDogMzUwcHg7Ci0gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKLX0KLQotZGl2LnRhYiB0aCwgZGl2LnRhYiB0YWJsZSB7Ci0gICAgYm9yZGVyLWJvdHRvbTogc29saWQgI2QwZDBkMCAxcHg7Ci19Ci0KLWRpdi50YWIgdGggewotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci0gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKLSAgICBwYWRkaW5nLWxlZnQ6IDZlbTsKLX0KLQotZGl2LnRhYiB0aDpmaXJzdC1jaGlsZCB7Ci0gICAgcGFkZGluZy1sZWZ0OiAwOwotfQotCi1kaXYudGFiIHRkIHsKLSAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwotICAgIHBhZGRpbmctbGVmdDogNmVtOwotICAgIHBhZGRpbmctdG9wOiA1cHg7Ci0gICAgcGFkZGluZy1ib3R0b206IDVweDsKLX0KLQotZGl2LnRhYiB0ZDpmaXJzdC1jaGlsZCB7Ci0gICAgcGFkZGluZy1sZWZ0OiAwOwotfQotCi1kaXYudGFiIHRkLm51bWVyaWMsIGRpdi50YWIgdGgubnVtZXJpYyB7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci19Ci0KLXNwYW4uY29kZSB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIG1hcmdpbi10b3A6IDBlbTsKLSAgICBtYXJnaW4tYm90dG9tOiAxZW07Ci19Ci0KLXNwYW4uY29kZSBwcmUgewotICAgIGZvbnQtc2l6ZTogMTFwdDsKLSAgICBwYWRkaW5nLXRvcDogMTBweDsKLSAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKLSAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7Ci0gICAgcGFkZGluZy1yaWdodDogMTBweDsKLSAgICBtYXJnaW46IDA7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsKLSAgICBib3JkZXI6IHNvbGlkIDFweCAjZDBkMGQwOwotICAgIG1pbi13aWR0aDogNzAwcHg7Ci0gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKLSAgICB3aWR0aDogNzAwcHg7Ci19Ci0KLXNwYW4ud3JhcHBlZCBwcmUgewotICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKLSAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Ci0gICAgd29yZC1icmVhazogYnJlYWstYWxsOwotfQotCi1sYWJlbC5oaWRkZW4gewotICAgIGRpc3BsYXk6IG5vbmU7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9yZXBvcnRzL3Rlc3RzL2Nzcy9zdHlsZS5jc3MgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3JlcG9ydHMvdGVzdHMvY3NzL3N0eWxlLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RjNDkxMy4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3JlcG9ydHMvdGVzdHMvY3NzL3N0eWxlLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLQotI3N1bW1hcnkgewotICAgIG1hcmdpbi10b3A6IDMwcHg7Ci0gICAgbWFyZ2luLWJvdHRvbTogNDBweDsKLX0KLQotI3N1bW1hcnkgdGFibGUgewotICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Ci19Ci0KLSNzdW1tYXJ5IHRkIHsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwotfQotCi0uYnJlYWRjcnVtYnMsIC5icmVhZGNydW1icyBhIHsKLSAgICBjb2xvcjogIzYwNjA2MDsKLX0KLQotLmluZm9Cb3ggewotICAgIHdpZHRoOiAxMTBweDsKLSAgICBwYWRkaW5nLXRvcDogMTVweDsKLSAgICBwYWRkaW5nLWJvdHRvbTogMTVweDsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci19Ci0KLS5pbmZvQm94IHAgewotICAgIG1hcmdpbjogMDsKLX0KLQotLmNvdW50ZXIsIC5wZXJjZW50IHsKLSAgICBmb250LXNpemU6IDEyMCU7Ci0gICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgbWFyZ2luLWJvdHRvbTogOHB4OwotfQotCi0jZHVyYXRpb24gewotICAgIHdpZHRoOiAxMjVweDsKLX0KLQotI3N1Y2Nlc3NSYXRlLCAuc3VtbWFyeUdyb3VwIHsKLSAgICBib3JkZXI6IHNvbGlkIDJweCAjZDBkMGQwOwotICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDsKLSAgICBib3JkZXItcmFkaXVzOiAxMHB4OwotfQotCi0jc3VjY2Vzc1JhdGUgewotICAgIHdpZHRoOiAxNDBweDsKLSAgICBtYXJnaW4tbGVmdDogMzVweDsKLX0KLQotI3N1Y2Nlc3NSYXRlIC5wZXJjZW50IHsKLSAgICBmb250LXNpemU6IDE4MCU7Ci19Ci0KLS5zdWNjZXNzLCAuc3VjY2VzcyBhIHsKLSAgICBjb2xvcjogIzAwODAwMDsKLX0KLQotZGl2LnN1Y2Nlc3MsICNzdWNjZXNzUmF0ZS5zdWNjZXNzIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJkOWJiOwotICAgIGJvcmRlci1jb2xvcjogIzAwODAwMDsKLX0KLQotLmZhaWx1cmVzLCAuZmFpbHVyZXMgYSB7Ci0gICAgY29sb3I6ICNiNjA4MDg7Ci19Ci0KLS5za2lwcGVkLCAuc2tpcHBlZCBhIHsKLSAgICBjb2xvcjogI2MwOTg1MzsKLX0KLQotZGl2LmZhaWx1cmVzLCAjc3VjY2Vzc1JhdGUuZmFpbHVyZXMgewotICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2RhZGE7Ci0gICAgYm9yZGVyLWNvbG9yOiAjYjYwODA4OwotfQotCi11bC5saW5rTGlzdCB7Ci0gICAgcGFkZGluZy1sZWZ0OiAwOwotfQotCi11bC5saW5rTGlzdCBsaSB7Ci0gICAgbGlzdC1zdHlsZTogbm9uZTsKLSAgICBtYXJnaW4tYm90dG9tOiA1cHg7Ci19CmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3JlcG9ydHMvdGVzdHMvaW5kZXguaHRtbCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9pbmRleC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDA1NmM1Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9pbmRleC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPg0KLTxodG1sPg0KLTxoZWFkPg0KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+DQotPG1ldGEgaHR0cC1lcXVpdj0ieC11YS1jb21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIi8+DQotPHRpdGxlPlRlc3QgcmVzdWx0cyAtIFRlc3QgU3VtbWFyeTwvdGl0bGU+DQotPGxpbmsgaHJlZj0iY3NzL2Jhc2Utc3R5bGUuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+DQotPGxpbmsgaHJlZj0iY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPg0KLTxzY3JpcHQgc3JjPSJqcy9yZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQotPC9oZWFkPg0KLTxib2R5Pg0KLTxkaXYgaWQ9ImNvbnRlbnQiPg0KLTxoMT5UZXN0IFN1bW1hcnk8L2gxPg0KLTxkaXYgaWQ9InN1bW1hcnkiPg0KLTx0YWJsZT4NCi08dHI+DQotPHRkPg0KLTxkaXYgY2xhc3M9InN1bW1hcnlHcm91cCI+DQotPHRhYmxlPg0KLTx0cj4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCIgaWQ9InRlc3RzIj4NCi08ZGl2IGNsYXNzPSJjb3VudGVyIj44PC9kaXY+DQotPHA+dGVzdHM8L3A+DQotPC9kaXY+DQotPC90ZD4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCIgaWQ9ImZhaWx1cmVzIj4NCi08ZGl2IGNsYXNzPSJjb3VudGVyIj4wPC9kaXY+DQotPHA+ZmFpbHVyZXM8L3A+DQotPC9kaXY+DQotPC90ZD4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCIgaWQ9Imlnbm9yZWQiPg0KLTxkaXYgY2xhc3M9ImNvdW50ZXIiPjA8L2Rpdj4NCi08cD5pZ25vcmVkPC9wPg0KLTwvZGl2Pg0KLTwvdGQ+DQotPHRkPg0KLTxkaXYgY2xhc3M9ImluZm9Cb3giIGlkPSJkdXJhdGlvbiI+DQotPGRpdiBjbGFzcz0iY291bnRlciI+OC40NzVzPC9kaXY+DQotPHA+ZHVyYXRpb248L3A+DQotPC9kaXY+DQotPC90ZD4NCi08L3RyPg0KLTwvdGFibGU+DQotPC9kaXY+DQotPC90ZD4NCi08dGQ+DQotPGRpdiBjbGFzcz0iaW5mb0JveCBzdWNjZXNzIiBpZD0ic3VjY2Vzc1JhdGUiPg0KLTxkaXYgY2xhc3M9InBlcmNlbnQiPjEwMCU8L2Rpdj4NCi08cD5zdWNjZXNzZnVsPC9wPg0KLTwvZGl2Pg0KLTwvdGQ+DQotPC90cj4NCi08L3RhYmxlPg0KLTwvZGl2Pg0KLTxkaXYgaWQ9InRhYnMiPg0KLTx1bCBjbGFzcz0idGFiTGlua3MiPg0KLTxsaT4NCi08YSBocmVmPSIjdGFiMCI+UGFja2FnZXM8L2E+DQotPC9saT4NCi08bGk+DQotPGEgaHJlZj0iI3RhYjEiPkNsYXNzZXM8L2E+DQotPC9saT4NCi08L3VsPg0KLTxkaXYgaWQ9InRhYjAiIGNsYXNzPSJ0YWIiPg0KLTxoMj5QYWNrYWdlczwvaDI+DQotPHRhYmxlPg0KLTx0aGVhZD4NCi08dHI+DQotPHRoPlBhY2thZ2U8L3RoPg0KLTx0aD5UZXN0czwvdGg+DQotPHRoPkZhaWx1cmVzPC90aD4NCi08dGg+SWdub3JlZDwvdGg+DQotPHRoPkR1cmF0aW9uPC90aD4NCi08dGg+U3VjY2VzcyByYXRlPC90aD4NCi08L3RyPg0KLTwvdGhlYWQ+DQotPHRib2R5Pg0KLTx0cj4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPg0KLTxhIGhyZWY9InBhY2thZ2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5odG1sIj5vcmcuYXBhY2hlLnJhdC5ncmFkbGU8L2E+DQotPC90ZD4NCi08dGQ+ODwvdGQ+DQotPHRkPjA8L3RkPg0KLTx0ZD4wPC90ZD4NCi08dGQ+OC40NzVzPC90ZD4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPjEwMCU8L3RkPg0KLTwvdHI+DQotPC90Ym9keT4NCi08L3RhYmxlPg0KLTwvZGl2Pg0KLTxkaXYgaWQ9InRhYjEiIGNsYXNzPSJ0YWIiPg0KLTxoMj5DbGFzc2VzPC9oMj4NCi08dGFibGU+DQotPHRoZWFkPg0KLTx0cj4NCi08dGg+Q2xhc3M8L3RoPg0KLTx0aD5UZXN0czwvdGg+DQotPHRoPkZhaWx1cmVzPC90aD4NCi08dGg+SWdub3JlZDwvdGg+DQotPHRoPkR1cmF0aW9uPC90aD4NCi08dGg+U3VjY2VzcyByYXRlPC90aD4NCi08L3RyPg0KLTwvdGhlYWQ+DQotPHRib2R5Pg0KLTx0cj4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiLz4NCi08YSBocmVmPSJjbGFzc2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMuaHRtbCI+b3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdEludGVncmF0aW9uU3BlYzwvYT4NCi08dGQ+NDwvdGQ+DQotPHRkPjA8L3RkPg0KLTx0ZD4wPC90ZD4NCi08dGQ+Ny4wNTZzPC90ZD4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPjEwMCU8L3RkPg0KLTwvdHI+DQotPHRyPg0KLTx0ZCBjbGFzcz0ic3VjY2VzcyIvPg0KLTxhIGhyZWY9ImNsYXNzZXMvb3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpblByb2plY3RTcGVjLmh0bWwiPm9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRQbHVnaW5Qcm9qZWN0U3BlYzwvYT4NCi08dGQ+NDwvdGQ+DQotPHRkPjA8L3RkPg0KLTx0ZD4wPC90ZD4NCi08dGQ+MS40MTlzPC90ZD4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPjEwMCU8L3RkPg0KLTwvdHI+DQotPC90Ym9keT4NCi08L3RhYmxlPg0KLTwvZGl2Pg0KLTwvZGl2Pg0KLTxkaXYgaWQ9ImZvb3RlciI+DQotPHA+DQotPGRpdj4NCi08bGFiZWwgY2xhc3M9ImhpZGRlbiIgaWQ9ImxhYmVsLWZvci1saW5lLXdyYXBwaW5nLXRvZ2dsZSIgZm9yPSJsaW5lLXdyYXBwaW5nLXRvZ2dsZSI+V3JhcCBsaW5lcw0KLTxpbnB1dCBpZD0ibGluZS13cmFwcGluZy10b2dnbGUiIHR5cGU9ImNoZWNrYm94IiBhdXRvY29tcGxldGU9Im9mZiIvPg0KLTwvbGFiZWw+DQotPC9kaXY+R2VuZXJhdGVkIGJ5IA0KLTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3JhZGxlLm9yZyI+R3JhZGxlIDIuNDwvYT4gYXQgMjkuMDYuMjAxNSAyMTowMzo0OTwvcD4NCi08L2Rpdj4NCi08L2Rpdj4NCi08L2JvZHk+DQotPC9odG1sPg0KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9qcy9yZXBvcnQuanMgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3JlcG9ydHMvdGVzdHMvanMvcmVwb3J0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4M2JhYjRhLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9qcy9yZXBvcnQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOTQgKzAsMCBAQAotKGZ1bmN0aW9uICh3aW5kb3csIGRvY3VtZW50KSB7Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgdmFyIHRhYnMgPSB7fTsKLQotICAgIGZ1bmN0aW9uIGNoYW5nZUVsZW1lbnRDbGFzcyhlbGVtZW50LCBjbGFzc1ZhbHVlKSB7Ci0gICAgICAgIGlmIChlbGVtZW50LmdldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIikpIHsKLSAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJjbGFzc05hbWUiLCBjbGFzc1ZhbHVlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsIGNsYXNzVmFsdWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZ2V0Q2xhc3NBdHRyaWJ1dGUoZWxlbWVudCkgewotICAgICAgICBpZiAoZWxlbWVudC5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpKSB7Ci0gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3NWYWx1ZSkgewotICAgICAgICBjaGFuZ2VFbGVtZW50Q2xhc3MoZWxlbWVudCwgZ2V0Q2xhc3NBdHRyaWJ1dGUoZWxlbWVudCkgKyAiICIgKyBjbGFzc1ZhbHVlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGVtZW50LCBjbGFzc1ZhbHVlKSB7Ci0gICAgICAgIGNoYW5nZUVsZW1lbnRDbGFzcyhlbGVtZW50LCBnZXRDbGFzc0F0dHJpYnV0ZShlbGVtZW50KS5yZXBsYWNlKGNsYXNzVmFsdWUsICIiKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gaW5pdFRhYnMoKSB7Ci0gICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFicyIpOwotCi0gICAgICAgIHRhYnMudGFicyA9IGZpbmRUYWJzKGNvbnRhaW5lcik7Ci0gICAgICAgIHRhYnMudGl0bGVzID0gZmluZFRpdGxlcyh0YWJzLnRhYnMpOwotICAgICAgICB0YWJzLmhlYWRlcnMgPSBmaW5kSGVhZGVycyhjb250YWluZXIpOwotICAgICAgICB0YWJzLnNlbGVjdCA9IHNlbGVjdDsKLSAgICAgICAgdGFicy5kZXNlbGVjdEFsbCA9IGRlc2VsZWN0QWxsOwotICAgICAgICB0YWJzLnNlbGVjdCgwKTsKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZXRDaGVja0JveCgpIHsKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaW5lLXdyYXBwaW5nLXRvZ2dsZSIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGdldExhYmVsRm9yQ2hlY2tCb3goKSB7Ci0gICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGFiZWwtZm9yLWxpbmUtd3JhcHBpbmctdG9nZ2xlIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZmluZENvZGVCbG9ja3MoKSB7Ci0gICAgICAgIHZhciBzcGFucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJzIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNwYW4iKTsKLSAgICAgICAgdmFyIGNvZGVCbG9ja3MgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzcGFucy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKHNwYW5zW2ldLmNsYXNzTmFtZS5pbmRleE9mKCJjb2RlIikgPj0gMCkgewotICAgICAgICAgICAgICAgIGNvZGVCbG9ja3MucHVzaChzcGFuc1tpXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGNvZGVCbG9ja3M7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZm9yQWxsQ29kZUJsb2NrcyhvcGVyYXRpb24pIHsKLSAgICAgICAgdmFyIGNvZGVCbG9ja3MgPSBmaW5kQ29kZUJsb2NrcygpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29kZUJsb2Nrcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgb3BlcmF0aW9uKGNvZGVCbG9ja3NbaV0sICJ3cmFwcGVkIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0b2dnbGVMaW5lV3JhcHBpbmcoKSB7Ci0gICAgICAgIHZhciBjaGVja0JveCA9IGdldENoZWNrQm94KCk7Ci0KLSAgICAgICAgaWYgKGNoZWNrQm94LmNoZWNrZWQpIHsKLSAgICAgICAgICAgIGZvckFsbENvZGVCbG9ja3MoYWRkQ2xhc3MpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yQWxsQ29kZUJsb2NrcyhyZW1vdmVDbGFzcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpbml0Q29udHJvbHMoKSB7Ci0gICAgICAgIGlmIChmaW5kQ29kZUJsb2NrcygpLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIHZhciBjaGVja0JveCA9IGdldENoZWNrQm94KCk7Ci0gICAgICAgICAgICB2YXIgbGFiZWwgPSBnZXRMYWJlbEZvckNoZWNrQm94KCk7Ci0KLSAgICAgICAgICAgIGNoZWNrQm94Lm9uY2xpY2sgPSB0b2dnbGVMaW5lV3JhcHBpbmc7Ci0gICAgICAgICAgICBjaGVja0JveC5jaGVja2VkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJlbW92ZUNsYXNzKGxhYmVsLCAiaGlkZGVuIik7Ci0gICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3dpdGNoVGFiKCkgewotICAgICAgICB2YXIgaWQgPSB0aGlzLmlkLnN1YnN0cigxKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMudGFicy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgaWYgKHRhYnMudGFic1tpXS5pZCA9PT0gaWQpIHsKLSAgICAgICAgICAgICAgICB0YWJzLnNlbGVjdChpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzZWxlY3QoaSkgewotICAgICAgICB0aGlzLmRlc2VsZWN0QWxsKCk7Ci0KLSAgICAgICAgY2hhbmdlRWxlbWVudENsYXNzKHRoaXMudGFic1tpXSwgInRhYiBzZWxlY3RlZCIpOwotICAgICAgICBjaGFuZ2VFbGVtZW50Q2xhc3ModGhpcy5oZWFkZXJzW2ldLCAic2VsZWN0ZWQiKTsKLQotICAgICAgICB3aGlsZSAodGhpcy5oZWFkZXJzW2ldLmZpcnN0Q2hpbGQpIHsKLSAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tpXS5yZW1vdmVDaGlsZCh0aGlzLmhlYWRlcnNbaV0uZmlyc3RDaGlsZCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgaDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMiIpOwotCi0gICAgICAgIGgyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMudGl0bGVzW2ldKSk7Ci0gICAgICAgIHRoaXMuaGVhZGVyc1tpXS5hcHBlbmRDaGlsZChoMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGVzZWxlY3RBbGwoKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBjaGFuZ2VFbGVtZW50Q2xhc3ModGhpcy50YWJzW2ldLCAidGFiIGRlc2VsZWN0ZWQiKTsKLSAgICAgICAgICAgIGNoYW5nZUVsZW1lbnRDbGFzcyh0aGlzLmhlYWRlcnNbaV0sICJkZXNlbGVjdGVkIik7Ci0KLSAgICAgICAgICAgIHdoaWxlICh0aGlzLmhlYWRlcnNbaV0uZmlyc3RDaGlsZCkgewotICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tpXS5yZW1vdmVDaGlsZCh0aGlzLmhlYWRlcnNbaV0uZmlyc3RDaGlsZCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiQSIpOwotCi0gICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgiaWQiLCAibHRhYiIgKyBpKTsKLSAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJocmVmIiwgIiN0YWIiICsgaSk7Ci0gICAgICAgICAgICBhLm9uY2xpY2sgPSBzd2l0Y2hUYWI7Ci0gICAgICAgICAgICBhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMudGl0bGVzW2ldKSk7Ci0KLSAgICAgICAgICAgIHRoaXMuaGVhZGVyc1tpXS5hcHBlbmRDaGlsZChhKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbmRUYWJzKGNvbnRhaW5lcikgewotICAgICAgICByZXR1cm4gZmluZENoaWxkRWxlbWVudHMoY29udGFpbmVyLCAiRElWIiwgInRhYiIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbmRIZWFkZXJzKGNvbnRhaW5lcikgewotICAgICAgICB2YXIgb3duZXIgPSBmaW5kQ2hpbGRFbGVtZW50cyhjb250YWluZXIsICJVTCIsICJ0YWJMaW5rcyIpOwotICAgICAgICByZXR1cm4gZmluZENoaWxkRWxlbWVudHMob3duZXJbMF0sICJMSSIsIG51bGwpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbmRUaXRsZXModGFicykgewotICAgICAgICB2YXIgdGl0bGVzID0gW107Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgdGFiID0gdGFic1tpXTsKLSAgICAgICAgICAgIHZhciBoZWFkZXIgPSBmaW5kQ2hpbGRFbGVtZW50cyh0YWIsICJIMiIsIG51bGwpWzBdOwotCi0gICAgICAgICAgICBoZWFkZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChoZWFkZXIpOwotCi0gICAgICAgICAgICBpZiAoaGVhZGVyLmlubmVyVGV4dCkgewotICAgICAgICAgICAgICAgIHRpdGxlcy5wdXNoKGhlYWRlci5pbm5lclRleHQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB0aXRsZXMucHVzaChoZWFkZXIudGV4dENvbnRlbnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHRpdGxlczsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBmaW5kQ2hpbGRFbGVtZW50cyhjb250YWluZXIsIG5hbWUsIHRhcmdldENsYXNzKSB7Ci0gICAgICAgIHZhciBlbGVtZW50cyA9IFtdOwotICAgICAgICB2YXIgY2hpbGRyZW4gPSBjb250YWluZXIuY2hpbGROb2RlczsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbi5pdGVtKGkpOwotCi0gICAgICAgICAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT09IDEgJiYgY2hpbGQubm9kZU5hbWUgPT09IG5hbWUpIHsKLSAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Q2xhc3MgJiYgY2hpbGQuY2xhc3NOYW1lLmluZGV4T2YodGFyZ2V0Q2xhc3MpIDwgMCkgewotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKGNoaWxkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBlbGVtZW50czsKLSAgICB9Ci0KLSAgICAvLyBFbnRyeSBwb2ludC4KLQotICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgaW5pdFRhYnMoKTsKLSAgICAgICAgaW5pdENvbnRyb2xzKCk7Ci0gICAgfTsKLX0gKHdpbmRvdywgd2luZG93LmRvY3VtZW50KSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9yZXBvcnRzL3Rlc3RzL3BhY2thZ2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5odG1sIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9yZXBvcnRzL3Rlc3RzL3BhY2thZ2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjZjNWM4Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVwb3J0cy90ZXN0cy9wYWNrYWdlcy9vcmcuYXBhY2hlLnJhdC5ncmFkbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4NCi08aHRtbD4NCi08aGVhZD4NCi08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPg0KLTxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIvPg0KLTx0aXRsZT5UZXN0IHJlc3VsdHMgLSBQYWNrYWdlIG9yZy5hcGFjaGUucmF0LmdyYWRsZTwvdGl0bGU+DQotPGxpbmsgaHJlZj0iLi4vY3NzL2Jhc2Utc3R5bGUuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+DQotPGxpbmsgaHJlZj0iLi4vY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPg0KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQotPC9oZWFkPg0KLTxib2R5Pg0KLTxkaXYgaWQ9ImNvbnRlbnQiPg0KLTxoMT5QYWNrYWdlIG9yZy5hcGFjaGUucmF0LmdyYWRsZTwvaDE+DQotPGRpdiBjbGFzcz0iYnJlYWRjcnVtYnMiPg0KLTxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPmFsbDwvYT4gJmd0OyBvcmcuYXBhY2hlLnJhdC5ncmFkbGU8L2Rpdj4NCi08ZGl2IGlkPSJzdW1tYXJ5Ij4NCi08dGFibGU+DQotPHRyPg0KLTx0ZD4NCi08ZGl2IGNsYXNzPSJzdW1tYXJ5R3JvdXAiPg0KLTx0YWJsZT4NCi08dHI+DQotPHRkPg0KLTxkaXYgY2xhc3M9ImluZm9Cb3giIGlkPSJ0ZXN0cyI+DQotPGRpdiBjbGFzcz0iY291bnRlciI+ODwvZGl2Pg0KLTxwPnRlc3RzPC9wPg0KLTwvZGl2Pg0KLTwvdGQ+DQotPHRkPg0KLTxkaXYgY2xhc3M9ImluZm9Cb3giIGlkPSJmYWlsdXJlcyI+DQotPGRpdiBjbGFzcz0iY291bnRlciI+MDwvZGl2Pg0KLTxwPmZhaWx1cmVzPC9wPg0KLTwvZGl2Pg0KLTwvdGQ+DQotPHRkPg0KLTxkaXYgY2xhc3M9ImluZm9Cb3giIGlkPSJpZ25vcmVkIj4NCi08ZGl2IGNsYXNzPSJjb3VudGVyIj4wPC9kaXY+DQotPHA+aWdub3JlZDwvcD4NCi08L2Rpdj4NCi08L3RkPg0KLTx0ZD4NCi08ZGl2IGNsYXNzPSJpbmZvQm94IiBpZD0iZHVyYXRpb24iPg0KLTxkaXYgY2xhc3M9ImNvdW50ZXIiPjguNDc1czwvZGl2Pg0KLTxwPmR1cmF0aW9uPC9wPg0KLTwvZGl2Pg0KLTwvdGQ+DQotPC90cj4NCi08L3RhYmxlPg0KLTwvZGl2Pg0KLTwvdGQ+DQotPHRkPg0KLTxkaXYgY2xhc3M9ImluZm9Cb3ggc3VjY2VzcyIgaWQ9InN1Y2Nlc3NSYXRlIj4NCi08ZGl2IGNsYXNzPSJwZXJjZW50Ij4xMDAlPC9kaXY+DQotPHA+c3VjY2Vzc2Z1bDwvcD4NCi08L2Rpdj4NCi08L3RkPg0KLTwvdHI+DQotPC90YWJsZT4NCi08L2Rpdj4NCi08ZGl2IGlkPSJ0YWJzIj4NCi08dWwgY2xhc3M9InRhYkxpbmtzIj4NCi08bGk+DQotPGEgaHJlZj0iI3RhYjAiPkNsYXNzZXM8L2E+DQotPC9saT4NCi08L3VsPg0KLTxkaXYgaWQ9InRhYjAiIGNsYXNzPSJ0YWIiPg0KLTxoMj5DbGFzc2VzPC9oMj4NCi08dGFibGU+DQotPHRocmVhZD4NCi08dHI+DQotPHRoPkNsYXNzPC90aD4NCi08dGg+VGVzdHM8L3RoPg0KLTx0aD5GYWlsdXJlczwvdGg+DQotPHRoPklnbm9yZWQ8L3RoPg0KLTx0aD5EdXJhdGlvbjwvdGg+DQotPHRoPlN1Y2Nlc3MgcmF0ZTwvdGg+DQotPC90cj4NCi08L3RocmVhZD4NCi08dHI+DQotPHRkIGNsYXNzPSJzdWNjZXNzIj4NCi08YSBocmVmPSIuLi9jbGFzc2VzL29yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMuaHRtbCI+UmF0SW50ZWdyYXRpb25TcGVjPC9hPg0KLTwvdGQ+DQotPHRkPjQ8L3RkPg0KLTx0ZD4wPC90ZD4NCi08dGQ+MDwvdGQ+DQotPHRkPjcuMDU2czwvdGQ+DQotPHRkIGNsYXNzPSJzdWNjZXNzIj4xMDAlPC90ZD4NCi08L3RyPg0KLTx0cj4NCi08dGQgY2xhc3M9InN1Y2Nlc3MiPg0KLTxhIGhyZWY9Ii4uL2NsYXNzZXMvb3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpblByb2plY3RTcGVjLmh0bWwiPlJhdFBsdWdpblByb2plY3RTcGVjPC9hPg0KLTwvdGQ+DQotPHRkPjQ8L3RkPg0KLTx0ZD4wPC90ZD4NCi08dGQ+MDwvdGQ+DQotPHRkPjEuNDE5czwvdGQ+DQotPHRkIGNsYXNzPSJzdWNjZXNzIj4xMDAlPC90ZD4NCi08L3RyPg0KLTwvdGFibGU+DQotPC9kaXY+DQotPC9kaXY+DQotPGRpdiBpZD0iZm9vdGVyIj4NCi08cD4NCi08ZGl2Pg0KLTxsYWJlbCBjbGFzcz0iaGlkZGVuIiBpZD0ibGFiZWwtZm9yLWxpbmUtd3JhcHBpbmctdG9nZ2xlIiBmb3I9ImxpbmUtd3JhcHBpbmctdG9nZ2xlIj5XcmFwIGxpbmVzDQotPGlucHV0IGlkPSJsaW5lLXdyYXBwaW5nLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giIGF1dG9jb21wbGV0ZT0ib2ZmIi8+DQotPC9sYWJlbD4NCi08L2Rpdj5HZW5lcmF0ZWQgYnkgDQotPGEgaHJlZj0iaHR0cDovL3d3dy5ncmFkbGUub3JnIj5HcmFkbGUgMi40PC9hPiBhdCAyOS4wNi4yMDE1IDIxOjAzOjQ5PC9wPg0KLTwvZGl2Pg0KLTwvZGl2Pg0KLTwvYm9keT4NCi08L2h0bWw+DQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9yZXNvdXJjZXMvbWFpbi9NRVRBLUlORi9ncmFkbGUtcGx1Z2lucy9vcmcuYXBhY2hlLnJhdC5wcm9wZXJ0aWVzIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9yZXNvdXJjZXMvbWFpbi9NRVRBLUlORi9ncmFkbGUtcGx1Z2lucy9vcmcuYXBhY2hlLnJhdC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmJiMmJlLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvcmVzb3VyY2VzL21haW4vTUVUQS1JTkYvZ3JhZGxlLXBsdWdpbnMvb3JnLmFwYWNoZS5yYXQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLSMgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQotIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKLSMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KLSMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQotIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0jICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCi0jIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCi0jICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQotIyBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKLSMgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwotIyB1bmRlciB0aGUgTGljZW5zZS4KLQotaW1wbGVtZW50YXRpb24tY2xhc3M9b3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpbgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC9yZXNvdXJjZXMvbWFpbi9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvYXBhY2hlLXJhdC1vdXRwdXQtdG8taHRtbC54c2wgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3Jlc291cmNlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9hcGFjaGUtcmF0LW91dHB1dC10by1odG1sLnhzbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGNmMTljNS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3Jlc291cmNlcy9tYWluL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9hcGFjaGUtcmF0LW91dHB1dC10by1odG1sLnhzbAorKysgL2Rldi9udWxsCkBAIC0xLDIwNCArMCwwIEBACi08eHNsOnRyYW5zZm9ybSB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMi4wIj4KLQotPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKgotICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQotICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCi0gKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgotICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQotICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQotICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAotICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQotICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCi0gKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCi0gKiB1bmRlciB0aGUgTGljZW5zZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiotLT4KLQotPCEtLSBUaGlzIHN0eWxlIHNoZWV0IGNvbnZlcnRzIGFueSByYXQtcmVwb3J0LnhtbCBmaWxlLiAgLS0+Ci0KLTx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgotCi0gIDxodG1sPgotICAgIDxoZWFkPgotICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgotICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICAgICZsdDshLS0KLWJvZHkge21hcmdpbi10b3A6IDBweDtmb250LXNpemU6IDAuOGVtO2JhY2tncm91bmQtY29sb3I6ICNGOUY3RUQ7fQotCi1oMSB7Y29sb3I6cmVkO30KLWgyIHtjb2xvcjpibHVlO30KLWgzIHtjb2xvcjpncmVlbjt9Ci1oNCB7Y29sb3I6b3JhbmdlO30KLQotLyogVGFibGUgRGVzaWduICovCi0KLXRhYmxlLHRyLHRkIHt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkO2JvcmRlcjoxcHggc29saWQgIzAwMDt9Ci1jYXB0aW9uIHtjb2xvcjpibHVlO3RleHQtYWxpZ246bGVmdDt9Ci0ubm90ZXMsIC5iaW5hcmllcywgLmFyY2hpdmVzLCAuc3RhbmRhcmRzIHt3aWR0aDoyNSU7fQotLm5vdGVzIHtiYWNrZ3JvdW5kOiNEN0VERUU7fQotLmJpbmFyaWVzIHtiYWNrZ3JvdW5kOiNEMEYyRjQ7fQotLmFyY2hpdmVzIHtiYWNrZ3JvdW5kOiNBQkU3RTk7fQotLnN0YW5kYXJkcyB7YmFja2dyb3VuZDojQTBGMEY0O30KLS5saWNlbmNlZCwgLmdlbmVyYXRlZCB7d2lkdGg6NTAlO30KLS5saWNlbmNlZCB7YmFja2dyb3VuZDojQzZFQkREO30KLS5nZW5lcmF0ZWQge2JhY2tncm91bmQ6I0FCRTlEMjt9Ci0uamF2YV9ub3RlIHtiYWNrZ3JvdW5kOiNENkVCQzY7fQotLmdlbmVyYXRlZF9ub3RlIHtiYWNrZ3JvdW5kOiNDOUU3QTk7fQotLnVua25vd24ge3dpZHRoOjEwMCU7YmFja2dyb3VuZDojRTkyMDIwO30KLS51bmtub3duLXplcm8ge2NvbG9yOiMwMENDMDA7fQotLmNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MCBhdXRvO30KLS0tJmd0OwotICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzLz4KLSAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJnZW5lcmF0ZWQiLz4KLSAgICA8L2JvZHk+Ci0gIDwvaHRtbD4KLTwveHNsOnRlbXBsYXRlPgotCi08eHNsOnRlbXBsYXRlIG1hdGNoPSJyYXQtcmVwb3J0Ij4KLQotICA8aDE+UmF0IFJlcG9ydDwvaDE+Ci08ZGl2IGNsYXNzPSJjZW50ZXIiPgotPHRhYmxlIGlkPSJyYXQtcmVwb3J0cyBzdW1tYXJ5IiBjZWxsc3BhY2luZz0iMCIgc3VtbWFyeT0iQSBzbmFwc2hvdCBzdW1tYXJ5IG9mIHRoaXMgcmF0IHJlcG9ydCI+Ci08Y2FwdGlvbj4KLVRhYmxlIDE6IEEgc25hcHNob3Qgc3VtbWFyeSBvZiB0aGlzIHJhdCByZXBvcnQuCi08L2NhcHRpb24+Ci0gIDx0cj4KLSAgICA8dGQgY29sc3Bhbj0iMSIgY2xhc3M9Im5vdGVzIj5Ob3RlczogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImNvdW50KGRlc2NlbmRhbnQ6OnR5cGVbYXR0cmlidXRlOjpuYW1lPSZxdW90O25vdGljZSZxdW90O10pIi8+PC90ZD4KLSAgICA8dGQgY29sc3Bhbj0iMSIgY2xhc3M9ImJpbmFyaWVzIj5CaW5hcmllczogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImNvdW50KGRlc2NlbmRhbnQ6OnR5cGVbYXR0cmlidXRlOjpuYW1lPSZxdW90O2JpbmFyeSZxdW90O10pIi8+PC90ZD4KLSAgICA8dGQgY29sc3Bhbj0iMSIgY2xhc3M9ImFyY2hpdmVzIj5BcmNoaXZlczogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImNvdW50KGRlc2NlbmRhbnQ6OnR5cGVbYXR0cmlidXRlOjpuYW1lPSZxdW90O2FyY2hpdmUmcXVvdDtdKSIvPjwvdGQ+Ci0gICAgPHRkIGNvbHNwYW49IjEiIGNsYXNzPSJzdGFuZGFyZHMiPlN0YW5kYXJkczogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImNvdW50KGRlc2NlbmRhbnQ6OnR5cGVbYXR0cmlidXRlOjpuYW1lPSZxdW90O3N0YW5kYXJkJnF1b3Q7XSkiLz48L3RkPgotICA8L3RyPgotICA8dHI+Ci0gICAgPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJsaWNlbmNlZCI+QXBhY2hlIExpY2Vuc2VkOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iY291bnQoZGVzY2VuZGFudDo6aGVhZGVyLXR5cGVbYXR0cmlidXRlOjpuYW1lPSZxdW90O0FMICAgJnF1b3Q7XSkiLz48L3RkPgotICAgIDx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0iZ2VuZXJhdGVkIj5HZW5lcmF0ZWQgRG9jdW1lbnRzOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iY291bnQoZGVzY2VuZGFudDo6aGVhZGVyLXR5cGVbYXR0cmlidXRlOjpuYW1lPSZxdW90O0dFTiAgJnF1b3Q7XSkiLz48L3RkPgotICA8L3RyPgotICA8dHI+Ci0gICAgPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJqYXZhX25vdGUiPk5vdGU6IEphdmFEb2NzIGFyZSBnZW5lcmF0ZWQgYW5kIHNvIGxpY2Vuc2UgaGVhZGVyIGlzIG9wdGlvbmFsPC90ZD4KLSAgICA8dGQgY29sc3Bhbj0iMiIgY2xhc3M9ImdlbmVyYXRlZF9ub3RlIj5Ob3RlOiBHZW5lcmF0ZWQgZmlsZXMgZG8gbm90IHJlcXVpcmUgbGljZW5zZSBoZWFkZXJzPC90ZD4KLSAgPC90cj4KLSAgPHRyPgotPHhzbDpjaG9vc2U+Ci0gIDx4c2w6d2hlbiB0ZXN0PSJjb3VudChkZXNjZW5kYW50OjpoZWFkZXItdHlwZVthdHRyaWJ1dGU6Om5hbWU9JnF1b3Q7Pz8/Pz8mcXVvdDtdKSAmZ3Q7IDAiPgotICAgIDx0ZCBjb2xzcGFuPSI0IiBjbGFzcz0idW5rbm93biI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImNvdW50KGRlc2NlbmRhbnQ6OmhlYWRlci10eXBlW2F0dHJpYnV0ZTo6bmFtZT0mcXVvdDs/Pz8/PyZxdW90O10pIi8+IFVua25vd24gTGljZW5zZXMgLSBvciBmaWxlcyB3aXRob3V0IGEgbGljZW5zZS48L3RkPgotICA8L3hzbDp3aGVuPgotICA8eHNsOm90aGVyd2lzZT4KLSAgICA8dGQgY29sc3Bhbj0iNCIgY2xhc3M9InVua25vd24temVybyI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImNvdW50KGRlc2NlbmRhbnQ6OmhlYWRlci10eXBlW2F0dHJpYnV0ZTo6bmFtZT0mcXVvdDs/Pz8/PyZxdW90O10pIi8+IFVua25vd24gTGljZW5zZXMgLSBvciBmaWxlcyB3aXRob3V0IGEgbGljZW5zZS48L3RkPgotICA8L3hzbDpvdGhlcndpc2U+Ci08L3hzbDpjaG9vc2U+Ci0gIDwvdHI+Ci08L3RhYmxlPgotPC9kaXY+Ci08aHIvPgotICA8aDM+VW5hcHByb3ZlZCBMaWNlbnNlczo8L2gzPgotCi0gIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJkZXNjZW5kYW50OjpyZXNvdXJjZVtsaWNlbnNlLWFwcHJvdmFsL0BuYW1lPSZxdW90O2ZhbHNlJnF1b3Q7XSI+Ci0gIDx4c2w6dGV4dD4gIDwveHNsOnRleHQ+Ci0gIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjxici8+Ci0gIDx4c2w6dGV4dD4KLTwveHNsOnRleHQ+Ci08L3hzbDpmb3ItZWFjaD4KLTxoci8+Ci0KLTxoMz5BcmNoaXZlczo8L2gzPgotCi08eHNsOmZvci1lYWNoIHNlbGVjdD0iZGVzY2VuZGFudDo6cmVzb3VyY2VbdHlwZS9AbmFtZT0mcXVvdDthcmNoaXZlJnF1b3Q7XSI+Ci0gKyA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KLSA8YnIvPgotIDwveHNsOmZvci1lYWNoPgotIDxoci8+Ci0KLSA8cD4KLSAgIEZpbGVzIHdpdGggQXBhY2hlIExpY2Vuc2UgaGVhZGVycyB3aWxsIGJlIG1hcmtlZCBBTDxici8+Ci0gICBCaW5hcnkgZmlsZXMgKHdoaWNoIGRvIG5vdCByZXF1aXJlIEFMIGhlYWRlcnMpIHdpbGwgYmUgbWFya2VkIEI8YnIvPgotICBDb21wcmVzc2VkIGFyY2hpdmVzIHdpbGwgYmUgbWFya2VkIEE8YnIvPgotICBOb3RpY2VzLCBsaWNlbnNlcyBldGMgd2lsbCBiZSBtYXJrZWQgTjxici8+Ci0gIDwvcD4KLQotIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJkZXNjZW5kYW50OjpyZXNvdXJjZSI+Ci0gIDx4c2w6Y2hvb3NlPgotICAgPHhzbDp3aGVuIHRlc3Q9ImxpY2Vuc2UtYXBwcm92YWwvQG5hbWU9JnF1b3Q7ZmFsc2UmcXVvdDsiPiE8L3hzbDp3aGVuPgotICAgPHhzbDpvdGhlcndpc2U+PHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PjwveHNsOm90aGVyd2lzZT4KLSA8L3hzbDpjaG9vc2U+Ci0gPHhzbDpjaG9vc2U+Ci0gICA8eHNsOndoZW4gdGVzdD0idHlwZS9AbmFtZT0mcXVvdDtub3RpY2UmcXVvdDsiPk4gICA8L3hzbDp3aGVuPgotICAgPHhzbDp3aGVuIHRlc3Q9InR5cGUvQG5hbWU9JnF1b3Q7YXJjaGl2ZSZxdW90OyI+QSAgIDwveHNsOndoZW4+Ci0gICA8eHNsOndoZW4gdGVzdD0idHlwZS9AbmFtZT0mcXVvdDtiaW5hcnkmcXVvdDsiPkIgICA8L3hzbDp3aGVuPgotICAgPHhzbDp3aGVuIHRlc3Q9InR5cGUvQG5hbWU9JnF1b3Q7c3RhbmRhcmQmcXVvdDsiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJoZWFkZXItdHlwZS9AbmFtZSIvPjwveHNsOndoZW4+Ci0gICA8eHNsOm90aGVyd2lzZT4hISEhITwveHNsOm90aGVyd2lzZT4KLSA8L3hzbDpjaG9vc2U+Ci0gPHhzbDp0ZXh0PiAgICAgIDwveHNsOnRleHQ+Ci0gPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PGJyLz4KLSA8eHNsOnRleHQ+Ci0gPC94c2w6dGV4dD4KLSA8L3hzbDpmb3ItZWFjaD4KLSA8aHIvPgotCi0gPGgzPlByaW50aW5nIGhlYWRlcnMgZm9yIGZpbGVzIHdpdGhvdXQgQUwgaGVhZGVyLi4uPC9oMz4KLQotIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJkZXNjZW5kYW50OjpyZXNvdXJjZVtoZWFkZXItdHlwZS9AbmFtZT0mcXVvdDs/Pz8/PyZxdW90O10iPgotCi0gICA8aDQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9oND4KLSAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImhlYWRlci1zYW1wbGUiLz4KLSAgPGhyLz4KLTwveHNsOmZvci1lYWNoPgotPGJyLz4KLQotIDwhLS0gPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJyZXNvdXJjZSIvPgotICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iaGVhZGVyLXNhbXBsZSIvPgotICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iaGVhZGVyLXR5cGUiLz4KLSAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImxpY2Vuc2UtZmFtaWx5Ii8+Ci0gICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJsaWNlbnNlLWFwcHJvdmFsIi8+Ci0gICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJ0eXBlIi8+IC0tPgotCi08L3hzbDp0ZW1wbGF0ZT4KLQotPHhzbDp0ZW1wbGF0ZSBtYXRjaD0icmVzb3VyY2UiPgotICA8ZGl2PgotICAgIDxoMz5SZXNvdXJjZTogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9oMz4KLSAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzLz4KLSAgICA8L2Rpdj4KLTwveHNsOnRlbXBsYXRlPgotCi08eHNsOnRlbXBsYXRlIG1hdGNoPSJoZWFkZXItc2FtcGxlIj4KLSAgPHhzbDppZiB0ZXN0PSJub3JtYWxpemUtc3BhY2UoLikgIT0gJyciPgotICA8aDQ+Rmlyc3QgZmV3IGxpbmVzIG9mIG5vbi1jb21wbGlhbnQgZmlsZTwvaDQ+Ci0gICAgPHA+Ci0gICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPgotICAgIDwvcD4KLSAgICA8L3hzbDppZj4KLSAgICA8aDQ+T3RoZXIgSW5mbzo8L2g0PgotPC94c2w6dGVtcGxhdGU+Ci0KLTx4c2w6dGVtcGxhdGUgbWF0Y2g9ImhlYWRlci10eXBlIj4KLSAgSGVhZGVyIFR5cGU6IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgotICA8YnIvPgotPC94c2w6dGVtcGxhdGU+Ci0KLTx4c2w6dGVtcGxhdGUgbWF0Y2g9ImxpY2Vuc2UtZmFtaWx5Ij4KLSAgTGljZW5zZSBGYW1pbHk6IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgotICA8YnIvPgotPC94c2w6dGVtcGxhdGU+Ci0KLTx4c2w6dGVtcGxhdGUgbWF0Y2g9ImxpY2Vuc2UtYXBwcm92YWwiPgotICBMaWNlbnNlIEFwcHJvdmFsOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KLSAgPGJyLz4KLTwveHNsOnRlbXBsYXRlPgotCi08eHNsOnRlbXBsYXRlIG1hdGNoPSJ0eXBlIj4KLSAgVHlwZTogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+Ci0gIDxici8+Ci08L3hzbDp0ZW1wbGF0ZT4KLQotPHhzbDp0ZW1wbGF0ZSBuYW1lPSJnZW5lcmF0ZWQiPgotPC94c2w6dGVtcGxhdGU+Ci08L3hzbDp0cmFuc2Zvcm0+CmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3Rlc3QtcmVzdWx0cy9URVNULW9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMueG1sIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90ZXN0LXJlc3VsdHMvVEVTVC1vcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWZkMGFjYy4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3Rlc3QtcmVzdWx0cy9URVNULW9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCi08dGVzdHN1aXRlIG5hbWU9Im9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMiIHRlc3RzPSI0IiBza2lwcGVkPSIwIiBmYWlsdXJlcz0iMCIgZXJyb3JzPSIwIiB0aW1lc3RhbXA9IjIwMTUtMDYtMjlUMTk6MDM6NDEiIGhvc3RuYW1lPSJQQ0pXSTAyIiB0aW1lPSI3LjA1NiI+DQotICA8cHJvcGVydGllcy8+DQotICA8dGVzdGNhc2UgbmFtZT0ic3VjY2VzcyIgY2xhc3NuYW1lPSJvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjIiB0aW1lPSIzLjMwMyIvPg0KLSAgPHRlc3RjYXNlIG5hbWU9ImRvIG5vdCBmYWlsIGJ1dCByZXBvcnQgZXJyb3JzIHdoZW4gcmF0LmZhaWxPbkVycm9yIGlzIGZhbHNlIiBjbGFzc25hbWU9Im9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMiIHRpbWU9IjEuMjczIi8+DQotICA8dGVzdGNhc2UgbmFtZT0iZmFpbCB0aGUgYnVpbGQgd2hlbiBmaW5kaW5nIGEgZmlsZSB3aXRoIHVuYXBwcm92ZWQvdW5rbm93biBsaWNlbnNlIiBjbGFzc25hbWU9Im9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWMiIHRpbWU9IjEuMjE5Ii8+DQotICA8dGVzdGNhc2UgbmFtZT0ic3VjY2VzcyBvbiBjdXN0b20gcmVwb3J0UGF0aCIgY2xhc3NuYW1lPSJvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjIiB0aW1lPSIxLjI2MSIvPg0KLSAgPHN5c3RlbS1vdXQ+PCFbQ0RBVEFbUnVubmluZyB0ZXN0IGZyb20gQzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGVcYnVpbGRcdGVzdFxvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjXHN1Y2Nlc3MNCi1Ub29saW5nIEFQSSBpcyB1c2luZyB0YXJnZXQgR3JhZGxlIHZlcnNpb246IDIuNC4NCi1Db25uZWN0ZWQgdG8gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uIERpc3BhdGNoaW5nIHJlcXVlc3QgQnVpbGR7aWQ9MmVlZTFkMzYtZWExYi00NDBjLTkxMzAtYmIzZTU1MTk5ZjVhLjEsIGN1cnJlbnREaXI9QzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGV9Lg0KLVJlY2VpdmVkIHJlc3VsdCBTdWNjZXNzW3ZhbHVlPW9yZy5ncmFkbGUudG9vbGluZy5pbnRlcm5hbC5wcm92aWRlci5CdWlsZEFjdGlvblJlc3VsdEA2NTgwODIyOF0gZnJvbSBkYWVtb24gRGFlbW9uSW5mb3twaWQ9NDYwMCwgYWRkcmVzcz1bNWM1MzM2M2EtZDUwNy00NjU5LWIxYTItMWRmZmE1MDY0N2YxIHBvcnQ6NTI2MDksIGFkZHJlc3NlczpbLzEyNy4wLjAuMSwgLzA6MDowOjA6MDowOjA6MV1dLCBpZGxlPXRydWUsIGNvbnRleHQ9RGVmYXVsdERhZW1vbkNvbnRleHRbdWlkPWQyMTI1ODljLTQ4OTctNGRhMi05MDdmLWI1NTg1NjRhZmNiYixqYXZhSG9tZT1DOlxvcHRcamRrMS43LjBfNzYsZGFlbW9uUmVnaXN0cnlEaXI9QzpcVXNlcnNcandpXC5ncmFkbGVcZGFlbW9uLHBpZD00NjAwLGlkbGVUaW1lb3V0PTEwODAwMDAwLGRhZW1vbk9wdHM9LVhYOk1heFBlcm1TaXplPTI1Nm0sLVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvciwtWG14MTAyNG0sLURmaWxlLmVuY29kaW5nPXdpbmRvd3MtMTI1MiwtRHVzZXIuY291bnRyeT1ERSwtRHVzZXIubGFuZ3VhZ2U9ZGUsLUR1c2VyLnZhcmlhbnRdfS4NCi1SdW5uaW5nIHRlc3QgZnJvbSBDOlxVc2Vyc1xqd2lcYWZ3XGFwYWNoZS1yYXRcYXBhY2hlLXJhdC1ncmFkbGVcc3JjXGdyYWRsZVxidWlsZFx0ZXN0XG9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWNcZG8tbm90LWZhaWwtYnV0LXJlcG9ydC1lcnJvcnMtd2hlbi1yYXQtZmFpbE9uRXJyb3ItaXMtZmFsc2UNCi1Ub29saW5nIEFQSSBpcyB1c2luZyB0YXJnZXQgR3JhZGxlIHZlcnNpb246IDIuNC4NCi1Db25uZWN0ZWQgdG8gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uIERpc3BhdGNoaW5nIHJlcXVlc3QgQnVpbGR7aWQ9ZDBkMTBhN2YtNDMwYS00ZGZjLTkxMTYtMzJkY2YwNTZkOGMyLjEsIGN1cnJlbnREaXI9QzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGV9Lg0KLVJlY2VpdmVkIHJlc3VsdCBTdWNjZXNzW3ZhbHVlPW9yZy5ncmFkbGUudG9vbGluZy5pbnRlcm5hbC5wcm92aWRlci5CdWlsZEFjdGlvblJlc3VsdEA1ZWExYTg5Y10gZnJvbSBkYWVtb24gRGFlbW9uSW5mb3twaWQ9NDYwMCwgYWRkcmVzcz1bNWM1MzM2M2EtZDUwNy00NjU5LWIxYTItMWRmZmE1MDY0N2YxIHBvcnQ6NTI2MDksIGFkZHJlc3NlczpbLzEyNy4wLjAuMSwgLzA6MDowOjA6MDowOjA6MV1dLCBpZGxlPXRydWUsIGNvbnRleHQ9RGVmYXVsdERhZW1vbkNvbnRleHRbdWlkPWQyMTI1ODljLTQ4OTctNGRhMi05MDdmLWI1NTg1NjRhZmNiYixqYXZhSG9tZT1DOlxvcHRcamRrMS43LjBfNzYsZGFlbW9uUmVnaXN0cnlEaXI9QzpcVXNlcnNcandpXC5ncmFkbGVcZGFlbW9uLHBpZD00NjAwLGlkbGVUaW1lb3V0PTEwODAwMDAwLGRhZW1vbk9wdHM9LVhYOk1heFBlcm1TaXplPTI1Nm0sLVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvciwtWG14MTAyNG0sLURmaWxlLmVuY29kaW5nPXdpbmRvd3MtMTI1MiwtRHVzZXIuY291bnRyeT1ERSwtRHVzZXIubGFuZ3VhZ2U9ZGUsLUR1c2VyLnZhcmlhbnRdfS4NCi1SdW5uaW5nIHRlc3QgZnJvbSBDOlxVc2Vyc1xqd2lcYWZ3XGFwYWNoZS1yYXRcYXBhY2hlLXJhdC1ncmFkbGVcc3JjXGdyYWRsZVxidWlsZFx0ZXN0XG9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWNcZmFpbC10aGUtYnVpbGQtd2hlbi1maW5kaW5nLWEtZmlsZS13aXRoLXVuYXBwcm92ZWQtdW5rbm93bi1saWNlbnNlDQotVG9vbGluZyBBUEkgaXMgdXNpbmcgdGFyZ2V0IEdyYWRsZSB2ZXJzaW9uOiAyLjQuDQotQ29ubmVjdGVkIHRvIGRhZW1vbiBEYWVtb25JbmZve3BpZD00NjAwLCBhZGRyZXNzPVs1YzUzMzYzYS1kNTA3LTQ2NTktYjFhMi0xZGZmYTUwNjQ3ZjEgcG9ydDo1MjYwOSwgYWRkcmVzc2VzOlsvMTI3LjAuMC4xLCAvMDowOjA6MDowOjA6MDoxXV0sIGlkbGU9dHJ1ZSwgY29udGV4dD1EZWZhdWx0RGFlbW9uQ29udGV4dFt1aWQ9ZDIxMjU4OWMtNDg5Ny00ZGEyLTkwN2YtYjU1ODU2NGFmY2JiLGphdmFIb21lPUM6XG9wdFxqZGsxLjcuMF83NixkYWVtb25SZWdpc3RyeURpcj1DOlxVc2Vyc1xqd2lcLmdyYWRsZVxkYWVtb24scGlkPTQ2MDAsaWRsZVRpbWVvdXQ9MTA4MDAwMDAsZGFlbW9uT3B0cz0tWFg6TWF4UGVybVNpemU9MjU2bSwtWFg6K0hlYXBEdW1wT25PdXRPZk1lbW9yeUVycm9yLC1YbXgxMDI0bSwtRGZpbGUuZW5jb2Rpbmc9d2luZG93cy0xMjUyLC1EdXNlci5jb3VudHJ5PURFLC1EdXNlci5sYW5ndWFnZT1kZSwtRHVzZXIudmFyaWFudF19LiBEaXNwYXRjaGluZyByZXF1ZXN0IEJ1aWxke2lkPTIzZTk5MzVkLTgyNDMtNDU5YS04MThkLTNhZWU0NjZhYjhjMC4xLCBjdXJyZW50RGlyPUM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVxzcmNcZ3JhZGxlfS4NCi1SZWNlaXZlZCByZXN1bHQgQ29tbWFuZEZhaWx1cmVbdmFsdWU9b3JnLmdyYWRsZS5sYXVuY2hlci5leGVjLlJlcG9ydGVkRXhjZXB0aW9uOiBvcmcuZ3JhZGxlLmludGVybmFsLmV4Y2VwdGlvbnMuTG9jYXRpb25Bd2FyZUV4Y2VwdGlvbjogRXhlY3V0aW9uIGZhaWxlZCBmb3IgdGFzayAnOnJhdCcuXSBmcm9tIGRhZW1vbiBEYWVtb25JbmZve3BpZD00NjAwLCBhZGRyZXNzPVs1YzUzMzYzYS1kNTA3LTQ2NTktYjFhMi0xZGZmYTUwNjQ3ZjEgcG9ydDo1MjYwOSwgYWRkcmVzc2VzOlsvMTI3LjAuMC4xLCAvMDowOjA6MDowOjA6MDoxXV0sIGlkbGU9dHJ1ZSwgY29udGV4dD1EZWZhdWx0RGFlbW9uQ29udGV4dFt1aWQ9ZDIxMjU4OWMtNDg5Ny00ZGEyLTkwN2YtYjU1ODU2NGFmY2JiLGphdmFIb21lPUM6XG9wdFxqZGsxLjcuMF83NixkYWVtb25SZWdpc3RyeURpcj1DOlxVc2Vyc1xqd2lcLmdyYWRsZVxkYWVtb24scGlkPTQ2MDAsaWRsZVRpbWVvdXQ9MTA4MDAwMDAsZGFlbW9uT3B0cz0tWFg6TWF4UGVybVNpemU9MjU2bSwtWFg6K0hlYXBEdW1wT25PdXRPZk1lbW9yeUVycm9yLC1YbXgxMDI0bSwtRGZpbGUuZW5jb2Rpbmc9d2luZG93cy0xMjUyLC1EdXNlci5jb3VudHJ5PURFLC1EdXNlci5sYW5ndWFnZT1kZSwtRHVzZXIudmFyaWFudF19Lg0KLVJ1bm5pbmcgdGVzdCBmcm9tIEM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVxzcmNcZ3JhZGxlXGJ1aWxkXHRlc3Rcb3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdEludGVncmF0aW9uU3BlY1xzdWNjZXNzLW9uLWN1c3RvbS1yZXBvcnRQYXRoDQotVG9vbGluZyBBUEkgaXMgdXNpbmcgdGFyZ2V0IEdyYWRsZSB2ZXJzaW9uOiAyLjQuDQotQ29ubmVjdGVkIHRvIGRhZW1vbiBEYWVtb25JbmZve3BpZD00NjAwLCBhZGRyZXNzPVs1YzUzMzYzYS1kNTA3LTQ2NTktYjFhMi0xZGZmYTUwNjQ3ZjEgcG9ydDo1MjYwOSwgYWRkcmVzc2VzOlsvMTI3LjAuMC4xLCAvMDowOjA6MDowOjA6MDoxXV0sIGlkbGU9dHJ1ZSwgY29udGV4dD1EZWZhdWx0RGFlbW9uQ29udGV4dFt1aWQ9ZDIxMjU4OWMtNDg5Ny00ZGEyLTkwN2YtYjU1ODU2NGFmY2JiLGphdmFIb21lPUM6XG9wdFxqZGsxLjcuMF83NixkYWVtb25SZWdpc3RyeURpcj1DOlxVc2Vyc1xqd2lcLmdyYWRsZVxkYWVtb24scGlkPTQ2MDAsaWRsZVRpbWVvdXQ9MTA4MDAwMDAsZGFlbW9uT3B0cz0tWFg6TWF4UGVybVNpemU9MjU2bSwtWFg6K0hlYXBEdW1wT25PdXRPZk1lbW9yeUVycm9yLC1YbXgxMDI0bSwtRGZpbGUuZW5jb2Rpbmc9d2luZG93cy0xMjUyLC1EdXNlci5jb3VudHJ5PURFLC1EdXNlci5sYW5ndWFnZT1kZSwtRHVzZXIudmFyaWFudF19LiBEaXNwYXRjaGluZyByZXF1ZXN0IEJ1aWxke2lkPWM3ZThhYzRiLWY3ZWQtNGQ0MC05ZTNjLTQ1MjljOGIxOWVmZS4xLCBjdXJyZW50RGlyPUM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVxzcmNcZ3JhZGxlfS4NCi1SZWNlaXZlZCByZXN1bHQgU3VjY2Vzc1t2YWx1ZT1vcmcuZ3JhZGxlLnRvb2xpbmcuaW50ZXJuYWwucHJvdmlkZXIuQnVpbGRBY3Rpb25SZXN1bHRAMWE4MGQ3MjBdIGZyb20gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uDQotXV0+PC9zeXN0ZW0tb3V0Pg0KLSAgPHN5c3RlbS1lcnI+PCFbQ0RBVEFbXV0+PC9zeXN0ZW0tZXJyPg0KLTwvdGVzdHN1aXRlPg0KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdGVzdC1yZXN1bHRzL1RFU1Qtb3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpblByb2plY3RTcGVjLnhtbCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdGVzdC1yZXN1bHRzL1RFU1Qtb3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpblByb2plY3RTcGVjLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhkZTM0YS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3Rlc3QtcmVzdWx0cy9URVNULW9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRQbHVnaW5Qcm9qZWN0U3BlYy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KLTx0ZXN0c3VpdGUgbmFtZT0ib3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpblByb2plY3RTcGVjIiB0ZXN0cz0iNCIgc2tpcHBlZD0iMCIgZmFpbHVyZXM9IjAiIGVycm9ycz0iMCIgdGltZXN0YW1wPSIyMDE1LTA2LTI5VDE5OjAzOjQ4IiBob3N0bmFtZT0iUENKV0kwMiIgdGltZT0iMS40MjEiPg0KLSAgPHByb3BlcnRpZXMvPg0KLSAgPHRlc3RjYXNlIG5hbWU9ImFwcGx5IGRvZXMgbm90IHRocm93IGV4Y2VwdGlvbnMiIGNsYXNzbmFtZT0ib3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpblByb2plY3RTcGVjIiB0aW1lPSIxLjEwOSIvPg0KLSAgPHRlc3RjYXNlIG5hbWU9ImFwcGx5IGlzIGlkZW1wb3RlbnQiIGNsYXNzbmFtZT0ib3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpblByb2plY3RTcGVjIiB0aW1lPSIwLjA5MyIvPg0KLSAgPHRlc3RjYXNlIG5hbWU9ImFwcGx5IGlzIGZpbmUgb24gYWxsIGxldmVscyBvZiBtdWx0aXByb2plY3QiIGNsYXNzbmFtZT0ib3JnLmFwYWNoZS5yYXQuZ3JhZGxlLlJhdFBsdWdpblByb2plY3RTcGVjIiB0aW1lPSIwLjA5MSIvPg0KLSAgPHRlc3RjYXNlIG5hbWU9ImFwcGx5IHRvIG11bHRpcGxlIHN1YnByb2plY3RzIiBjbGFzc25hbWU9Im9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRQbHVnaW5Qcm9qZWN0U3BlYyIgdGltZT0iMC4xMjYiLz4NCi0gIDxzeXN0ZW0tb3V0PjwhW0NEQVRBW11dPjwvc3lzdGVtLW91dD4NCi0gIDxzeXN0ZW0tZXJyPjwhW0NEQVRBW11dPjwvc3lzdGVtLWVycj4NCi08L3Rlc3RzdWl0ZT4NCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3Rlc3QtcmVzdWx0cy9iaW5hcnkvdGVzdC9vdXRwdXQuYmluIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90ZXN0LXJlc3VsdHMvYmluYXJ5L3Rlc3Qvb3V0cHV0LmJpbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWZiMjQzMC4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3Rlc3QtcmVzdWx0cy9iaW5hcnkvdGVzdC9vdXRwdXQuYmluCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotAQIBiAFSdW5uaW5nIHRlc3QgZnJvbSBDOlxVc2Vyc1xqd2lcYWZ3XGFwYWNoZS1yYXRcYXBhY2hlLXJhdC1ncmFkbGVcc3JjXGdyYWRsZVxidWlsZFx0ZXN0XG9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWNcc3VjY2Vzcw0KLQECATBUb29saW5nIEFQSSBpcyB1c2luZyB0YXJnZXQgR3JhZGxlIHZlcnNpb246IDIuNC4BAgECDQotAQIB7wRDb25uZWN0ZWQgdG8gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uIERpc3BhdGNoaW5nIHJlcXVlc3QgQnVpbGR7aWQ9MmVlZTFkMzYtZWExYi00NDBjLTkxMzAtYmIzZTU1MTk5ZjVhLjEsIGN1cnJlbnREaXI9QzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGV9LgECAQINCi0BAgG7BFJlY2VpdmVkIHJlc3VsdCBTdWNjZXNzW3ZhbHVlPW9yZy5ncmFkbGUudG9vbGluZy5pbnRlcm5hbC5wcm92aWRlci5CdWlsZEFjdGlvblJlc3VsdEA2NTgwODIyOF0gZnJvbSBkYWVtb24gRGFlbW9uSW5mb3twaWQ9NDYwMCwgYWRkcmVzcz1bNWM1MzM2M2EtZDUwNy00NjU5LWIxYTItMWRmZmE1MDY0N2YxIHBvcnQ6NTI2MDksIGFkZHJlc3NlczpbLzEyNy4wLjAuMSwgLzA6MDowOjA6MDowOjA6MV1dLCBpZGxlPXRydWUsIGNvbnRleHQ9RGVmYXVsdERhZW1vbkNvbnRleHRbdWlkPWQyMTI1ODljLTQ4OTctNGRhMi05MDdmLWI1NTg1NjRhZmNiYixqYXZhSG9tZT1DOlxvcHRcamRrMS43LjBfNzYsZGFlbW9uUmVnaXN0cnlEaXI9QzpcVXNlcnNcandpXC5ncmFkbGVcZGFlbW9uLHBpZD00NjAwLGlkbGVUaW1lb3V0PTEwODAwMDAwLGRhZW1vbk9wdHM9LVhYOk1heFBlcm1TaXplPTI1Nm0sLVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvciwtWG14MTAyNG0sLURmaWxlLmVuY29kaW5nPXdpbmRvd3MtMTI1MiwtRHVzZXIuY291bnRyeT1ERSwtRHVzZXIubGFuZ3VhZ2U9ZGUsLUR1c2VyLnZhcmlhbnRdfS4BAgECDQotAQIDvAFSdW5uaW5nIHRlc3QgZnJvbSBDOlxVc2Vyc1xqd2lcYWZ3XGFwYWNoZS1yYXRcYXBhY2hlLXJhdC1ncmFkbGVcc3JjXGdyYWRsZVxidWlsZFx0ZXN0XG9yZy5hcGFjaGUucmF0LmdyYWRsZS5SYXRJbnRlZ3JhdGlvblNwZWNcZG8tbm90LWZhaWwtYnV0LXJlcG9ydC1lcnJvcnMtd2hlbi1yYXQtZmFpbE9uRXJyb3ItaXMtZmFsc2UNCi0BAgMwVG9vbGluZyBBUEkgaXMgdXNpbmcgdGFyZ2V0IEdyYWRsZSB2ZXJzaW9uOiAyLjQuAQIDAg0KLQECA+8EQ29ubmVjdGVkIHRvIGRhZW1vbiBEYWVtb25JbmZve3BpZD00NjAwLCBhZGRyZXNzPVs1YzUzMzYzYS1kNTA3LTQ2NTktYjFhMi0xZGZmYTUwNjQ3ZjEgcG9ydDo1MjYwOSwgYWRkcmVzc2VzOlsvMTI3LjAuMC4xLCAvMDowOjA6MDowOjA6MDoxXV0sIGlkbGU9dHJ1ZSwgY29udGV4dD1EZWZhdWx0RGFlbW9uQ29udGV4dFt1aWQ9ZDIxMjU4OWMtNDg5Ny00ZGEyLTkwN2YtYjU1ODU2NGFmY2JiLGphdmFIb21lPUM6XG9wdFxqZGsxLjcuMF83NixkYWVtb25SZWdpc3RyeURpcj1DOlxVc2Vyc1xqd2lcLmdyYWRsZVxkYWVtb24scGlkPTQ2MDAsaWRsZVRpbWVvdXQ9MTA4MDAwMDAsZGFlbW9uT3B0cz0tWFg6TWF4UGVybVNpemU9MjU2bSwtWFg6K0hlYXBEdW1wT25PdXRPZk1lbW9yeUVycm9yLC1YbXgxMDI0bSwtRGZpbGUuZW5jb2Rpbmc9d2luZG93cy0xMjUyLC1EdXNlci5jb3VudHJ5PURFLC1EdXNlci5sYW5ndWFnZT1kZSwtRHVzZXIudmFyaWFudF19LiBEaXNwYXRjaGluZyByZXF1ZXN0IEJ1aWxke2lkPWQwZDEwYTdmLTQzMGEtNGRmYy05MTE2LTMyZGNmMDU2ZDhjMi4xLCBjdXJyZW50RGlyPUM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVxzcmNcZ3JhZGxlfS4BAgMCDQotAQIDuwRSZWNlaXZlZCByZXN1bHQgU3VjY2Vzc1t2YWx1ZT1vcmcuZ3JhZGxlLnRvb2xpbmcuaW50ZXJuYWwucHJvdmlkZXIuQnVpbGRBY3Rpb25SZXN1bHRANWVhMWE4OWNdIGZyb20gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uAQIDAg0KLQECBMMBUnVubmluZyB0ZXN0IGZyb20gQzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGVcYnVpbGRcdGVzdFxvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjXGZhaWwtdGhlLWJ1aWxkLXdoZW4tZmluZGluZy1hLWZpbGUtd2l0aC11bmFwcHJvdmVkLXVua25vd24tbGljZW5zZQ0KLQECBDBUb29saW5nIEFQSSBpcyB1c2luZyB0YXJnZXQgR3JhZGxlIHZlcnNpb246IDIuNC4BAgQCDQotAQIE7wRDb25uZWN0ZWQgdG8gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uIERpc3BhdGNoaW5nIHJlcXVlc3QgQnVpbGR7aWQ9MjNlOTkzNWQtODI0My00NTlhLTgxOGQtM2FlZTQ2NmFiOGMwLjEsIGN1cnJlbnREaXI9QzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGV9LgECBAINCi0BAgSHBVJlY2VpdmVkIHJlc3VsdCBDb21tYW5kRmFpbHVyZVt2YWx1ZT1vcmcuZ3JhZGxlLmxhdW5jaGVyLmV4ZWMuUmVwb3J0ZWRFeGNlcHRpb246IG9yZy5ncmFkbGUuaW50ZXJuYWwuZXhjZXB0aW9ucy5Mb2NhdGlvbkF3YXJlRXhjZXB0aW9uOiBFeGVjdXRpb24gZmFpbGVkIGZvciB0YXNrICc6cmF0Jy5dIGZyb20gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uAQIEAg0KLQECBZ0BUnVubmluZyB0ZXN0IGZyb20gQzpcVXNlcnNcandpXGFmd1xhcGFjaGUtcmF0XGFwYWNoZS1yYXQtZ3JhZGxlXHNyY1xncmFkbGVcYnVpbGRcdGVzdFxvcmcuYXBhY2hlLnJhdC5ncmFkbGUuUmF0SW50ZWdyYXRpb25TcGVjXHN1Y2Nlc3Mtb24tY3VzdG9tLXJlcG9ydFBhdGgNCi0BAgUwVG9vbGluZyBBUEkgaXMgdXNpbmcgdGFyZ2V0IEdyYWRsZSB2ZXJzaW9uOiAyLjQuAQIFAg0KLQECBe8EQ29ubmVjdGVkIHRvIGRhZW1vbiBEYWVtb25JbmZve3BpZD00NjAwLCBhZGRyZXNzPVs1YzUzMzYzYS1kNTA3LTQ2NTktYjFhMi0xZGZmYTUwNjQ3ZjEgcG9ydDo1MjYwOSwgYWRkcmVzc2VzOlsvMTI3LjAuMC4xLCAvMDowOjA6MDowOjA6MDoxXV0sIGlkbGU9dHJ1ZSwgY29udGV4dD1EZWZhdWx0RGFlbW9uQ29udGV4dFt1aWQ9ZDIxMjU4OWMtNDg5Ny00ZGEyLTkwN2YtYjU1ODU2NGFmY2JiLGphdmFIb21lPUM6XG9wdFxqZGsxLjcuMF83NixkYWVtb25SZWdpc3RyeURpcj1DOlxVc2Vyc1xqd2lcLmdyYWRsZVxkYWVtb24scGlkPTQ2MDAsaWRsZVRpbWVvdXQ9MTA4MDAwMDAsZGFlbW9uT3B0cz0tWFg6TWF4UGVybVNpemU9MjU2bSwtWFg6K0hlYXBEdW1wT25PdXRPZk1lbW9yeUVycm9yLC1YbXgxMDI0bSwtRGZpbGUuZW5jb2Rpbmc9d2luZG93cy0xMjUyLC1EdXNlci5jb3VudHJ5PURFLC1EdXNlci5sYW5ndWFnZT1kZSwtRHVzZXIudmFyaWFudF19LiBEaXNwYXRjaGluZyByZXF1ZXN0IEJ1aWxke2lkPWM3ZThhYzRiLWY3ZWQtNGQ0MC05ZTNjLTQ1MjljOGIxOWVmZS4xLCBjdXJyZW50RGlyPUM6XFVzZXJzXGp3aVxhZndcYXBhY2hlLXJhdFxhcGFjaGUtcmF0LWdyYWRsZVxzcmNcZ3JhZGxlfS4BAgUCDQotAQIFuwRSZWNlaXZlZCByZXN1bHQgU3VjY2Vzc1t2YWx1ZT1vcmcuZ3JhZGxlLnRvb2xpbmcuaW50ZXJuYWwucHJvdmlkZXIuQnVpbGRBY3Rpb25SZXN1bHRAMWE4MGQ3MjBdIGZyb20gZGFlbW9uIERhZW1vbkluZm97cGlkPTQ2MDAsIGFkZHJlc3M9WzVjNTMzNjNhLWQ1MDctNDY1OS1iMWEyLTFkZmZhNTA2NDdmMSBwb3J0OjUyNjA5LCBhZGRyZXNzZXM6Wy8xMjcuMC4wLjEsIC8wOjA6MDowOjA6MDowOjFdXSwgaWRsZT10cnVlLCBjb250ZXh0PURlZmF1bHREYWVtb25Db250ZXh0W3VpZD1kMjEyNTg5Yy00ODk3LTRkYTItOTA3Zi1iNTU4NTY0YWZjYmIsamF2YUhvbWU9Qzpcb3B0XGpkazEuNy4wXzc2LGRhZW1vblJlZ2lzdHJ5RGlyPUM6XFVzZXJzXGp3aVwuZ3JhZGxlXGRhZW1vbixwaWQ9NDYwMCxpZGxlVGltZW91dD0xMDgwMDAwMCxkYWVtb25PcHRzPS1YWDpNYXhQZXJtU2l6ZT0yNTZtLC1YWDorSGVhcER1bXBPbk91dE9mTWVtb3J5RXJyb3IsLVhteDEwMjRtLC1EZmlsZS5lbmNvZGluZz13aW5kb3dzLTEyNTIsLUR1c2VyLmNvdW50cnk9REUsLUR1c2VyLmxhbmd1YWdlPWRlLC1EdXNlci52YXJpYW50XX0uAQIFAg0KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdGVzdC1yZXN1bHRzL2JpbmFyeS90ZXN0L291dHB1dC5iaW4uaWR4IGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90ZXN0LXJlc3VsdHMvYmluYXJ5L3Rlc3Qvb3V0cHV0LmJpbi5pZHgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3MGI2MGYuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90ZXN0LXJlc3VsdHMvYmluYXJ5L3Rlc3Qvb3V0cHV0LmJpbi5pZHgKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3Rlc3QtcmVzdWx0cy9iaW5hcnkvdGVzdC9yZXN1bHRzLmJpbiBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdGVzdC1yZXN1bHRzL2JpbmFyeS90ZXN0L3Jlc3VsdHMuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDEyNTU1Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdGVzdC1yZXN1bHRzL2JpbmFyeS90ZXN0L3Jlc3VsdHMuYmluCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvZ3Jvb3Z5ZG9jL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW4uZ3Jvb3Z5IGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvZ3Jvb3Z5ZG9jL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW4uZ3Jvb3Z5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTY2ZmRhLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL2dyb292eWRvYy9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luLmdyb292eQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCi0gKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKLSAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCi0gKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCi0gKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCi0gKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCi0gKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgotICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCi0gKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKLSAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKLSAqIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi1wYWNrYWdlIG9yZy5hcGFjaGUucmF0LmdyYWRsZQotCi1pbXBvcnQgb3JnLmdyYWRsZS5hcGkuUGx1Z2luCi1pbXBvcnQgb3JnLmdyYWRsZS5hcGkuUHJvamVjdAotaW1wb3J0IG9yZy5ncmFkbGUuYXBpLlRhc2sKLWltcG9ydCBvcmcuZ3JhZGxlLmFwaS5wbHVnaW5zLkphdmFCYXNlUGx1Z2luCi0KLWNsYXNzIFJhdFBsdWdpbiBpbXBsZW1lbnRzIFBsdWdpbjxQcm9qZWN0PiB7Ci0KLSAgICB2b2lkIGFwcGx5KCBQcm9qZWN0IHByb2plY3QgKSB7Ci0gICAgICAgIGNvbmZpZ3VyZURlcGVuZGVuY2llcyggcHJvamVjdCApCi0gICAgICAgIFRhc2sgcmF0VGFzayA9IHByb2plY3QudGFzaygKLSAgICAgICAgICAgICdyYXQnLAotICAgICAgICAgICAgdHlwZTogUmF0VGFzaywKLSAgICAgICAgICAgIGdyb3VwOiAnQXBhY2hlIENyZWFkdXInLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSdW5zIEFwYWNoZSBSYXQgY2hlY2tzJwotICAgICAgICApCi0gICAgICAgIGlmKCBwcm9qZWN0LnBsdWdpbnMuaGFzUGx1Z2luKCBKYXZhQmFzZVBsdWdpbiApICkgewotICAgICAgICAgICAgcHJvamVjdC50YXNrc1tKYXZhQmFzZVBsdWdpbi5DSEVDS19UQVNLX05BTUVdLmRlcGVuZHNPbiByYXRUYXNrCi0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2b2lkIGNvbmZpZ3VyZURlcGVuZGVuY2llcyggUHJvamVjdCBwcm9qZWN0ICkgewotICAgICAgICBwcm9qZWN0LmNvbmZpZ3VyYXRpb25zIHsKLSAgICAgICAgICAgIHJhdAotICAgICAgICB9Ci0gICAgICAgIHByb2plY3QucmVwb3NpdG9yaWVzIHsKLSAgICAgICAgICAgIGpjZW50ZXIoKQotICAgICAgICAgICAgLy8gbWF2ZW4geyB1cmwgJ2h0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cycgfQotICAgICAgICB9Ci0gICAgICAgIHByb2plY3QuZGVwZW5kZW5jaWVzIHsKLSAgICAgICAgICAgIHJhdCAnb3JnLmFwYWNoZS5yYXQ6YXBhY2hlLXJhdC10YXNrczowLjExJwotICAgICAgICAgICAgLy8gcmF0ICdvcmcuYXBhY2hlLnJhdDphcGFjaGUtcmF0LXRhc2tzOjAuMTItU05BUFNIT1QnCi0gICAgICAgIH0KLSAgICB9Ci19CmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC9ncm9vdnlkb2Mvb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suZ3Jvb3Z5IGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvZ3Jvb3Z5ZG9jL29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmdyb292eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2YzNWYzZS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC9ncm9vdnlkb2Mvb3JnL2FwYWNoZS9yYXQvZ3JhZGxlL1JhdFRhc2suZ3Jvb3Z5CisrKyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLS8qCi0gKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCi0gKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKLSAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCi0gKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCi0gKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0gKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCi0gKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCi0gKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgotICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCi0gKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKLSAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKLSAqIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi1wYWNrYWdlIG9yZy5hcGFjaGUucmF0LmdyYWRsZQotCi1pbXBvcnQgb3JnLmdyYWRsZS5hcGkuRGVmYXVsdFRhc2sKLWltcG9ydCBvcmcuZ3JhZGxlLmFwaS5HcmFkbGVFeGNlcHRpb24KLWltcG9ydCBvcmcuZ3JhZGxlLmFwaS50YXNrcy5JbnB1dAotaW1wb3J0IG9yZy5ncmFkbGUuYXBpLnRhc2tzLklucHV0RmlsZXMKLWltcG9ydCBvcmcuZ3JhZGxlLmFwaS50YXNrcy5PdXRwdXREaXJlY3RvcnkKLWltcG9ydCBvcmcuZ3JhZGxlLmFwaS50YXNrcy5UYXNrQWN0aW9uCi1pbXBvcnQgb3JnLmdyYWRsZS5hcGkuaW50ZXJuYWwucHJvamVjdC5Jc29sYXRlZEFudEJ1aWxkZXIKLQotY2xhc3MgUmF0VGFzayBleHRlbmRzIERlZmF1bHRUYXNrIHsKLQotICAgIGJvb2xlYW4gZmFpbE9uRXJyb3IgPSB0cnVlCi0gICAgYm9vbGVhbiB2ZXJib3NlID0gZmFsc2UKLQotICAgIEBJbnB1dAotICAgIFN0cmluZyBpbnB1dERpciA9ICcuJwotCi0gICAgQElucHV0Ci0gICAgTGlzdDxTdHJpbmc+IGV4Y2x1ZGVzID0gWycqKi8uZ3JhZGxlLyoqJ10KLQotICAgIEBPdXRwdXREaXJlY3RvcnkKLSAgICBGaWxlIHJlcG9ydERpciA9IHByb2plY3QuZmlsZSggcHJvamVjdC5idWlsZERpci5jYW5vbmljYWxQYXRoICsgJy9yZXBvcnRzL3JhdCcgKQotCi0gICAgQElucHV0RmlsZXMKLSAgICBTZXQ8RmlsZT4gZ2V0SW5wdXRGaWxlcygpIHsKLSAgICAgICAgcHJvamVjdC5maWxlVHJlZShkaXI6IGlucHV0RGlyLCBleGNsdWRlczogZXhjbHVkZXMpLmZpbGVzCi0gICAgfQotCi0gICAgQFRhc2tBY3Rpb24KLSAgICBkZWYgcmF0KCkgewotICAgICAgICBpZiggIXJlcG9ydERpci5leGlzdHMoKSApIHsKLSAgICAgICAgICAgIHJlcG9ydERpci5ta2RpcnMoKQotICAgICAgICB9Ci0gICAgICAgIGRlZiB4bWxSZXBvcnQgPSBnZW5lcmF0ZVhtbFJlcG9ydCgpCi0gICAgICAgIGRlZiBlcnJvckNvdW50ID0gY291bnRVbmFwcm92ZWRVbmtub3duTGljZW5zZXMoIHhtbFJlcG9ydCApCi0gICAgICAgIGRlZiBodG1sUmVwb3J0ID0gZ2VuZXJhdGVIdG1sUmVwb3J0KCB4bWxSZXBvcnQgKQotICAgICAgICBpZiggZmFpbE9uRXJyb3IgJiYgZXJyb3JDb3VudCA+IDAgKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgR3JhZGxlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICJGb3VuZCAkZXJyb3JDb3VudCBmaWxlcyB3aXRoIHVuYXBwcm92ZWQvdW5rbm93biBsaWNlbnNlcy4gU2VlICR7aHRtbFJlcG9ydC50b1VSSSgpfSIKLSAgICAgICAgICAgICkKLSAgICAgICAgfQotICAgIH0KLQotICAgIGRlZiBnZW5lcmF0ZVhtbFJlcG9ydCgpIHsKLSAgICAgICAgZGVmIHhtbFJlcG9ydCA9IG5ldyBGaWxlKCByZXBvcnREaXIgLCAncmF0LXJlcG9ydC54bWwnICkKLSAgICAgICAgZGVmIGFudEJ1aWxkZXIgPSBzZXJ2aWNlcy5nZXQoIElzb2xhdGVkQW50QnVpbGRlciApCi0gICAgICAgIGRlZiByYXRDbGFzc3BhdGggPSBwcm9qZWN0LmNvbmZpZ3VyYXRpb25zLnJhdAotICAgICAgICBhbnRCdWlsZGVyLndpdGhDbGFzc3BhdGgoIHJhdENsYXNzcGF0aCApLmV4ZWN1dGUgewotICAgICAgICAgICAgYW50LnRhc2tkZWYoIHJlc291cmNlOiAnb3JnL2FwYWNoZS9yYXQvYW50dGFza3MvYW50bGliLnhtbCcgKQotICAgICAgICAgICAgYW50LnJlcG9ydCggZm9ybWF0OiAneG1sJywgcmVwb3J0RmlsZTogeG1sUmVwb3J0LmFic29sdXRlUGF0aCApIHsKLSAgICAgICAgICAgICAgICBmaWxlc2V0KCBkaXI6IGlucHV0RGlyICkgewotICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuc2V0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVzLmVhY2ggeyBleGNsdWRlKCBuYW1lOiBpdCApIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBwcm9qZWN0LmxvZ2dlci5pbmZvICJSYXQgWE1MIHJlcG9ydDogJHt4bWxSZXBvcnQudG9VUkkoKX0iCi0gICAgICAgIHJldHVybiB4bWxSZXBvcnQKLSAgICB9Ci0KLSAgICBkZWYgY291bnRVbmFwcm92ZWRVbmtub3duTGljZW5zZXMoIHhtbFJlcG9ydCApIHsKLSAgICAgICAgZGVmIHJhdFhtbCA9IG5ldyBYbWxQYXJzZXIoKS5wYXJzZSggeG1sUmVwb3J0ICkKLSAgICAgICAgZGVmIGVycm9yQ291bnQgPSAwCi0gICAgICAgIHJhdFhtbC5yZXNvdXJjZS5lYWNoIHsgcmVzb3VyY2UgLT4KLSAgICAgICAgICAgIGlmKCByZXNvdXJjZS4nbGljZW5zZS1hcHByb3ZhbCcuQG5hbWVbMF0gPT0gImZhbHNlIiApIHsKLSAgICAgICAgICAgICAgICBkZWYgbG9nID0gJ1VuYXBwcm92ZWQvdW5rbm93biBsaWNlbnNlOiAnICsgcmVzb3VyY2UuQG5hbWUKLSAgICAgICAgICAgICAgICBpZiggdmVyYm9zZSApIHByaW50bG4oIGxvZyApCi0gICAgICAgICAgICAgICAgZWxzZSAgcHJvamVjdC5sb2dnZXIuZGVidWcoIGxvZyApCi0gICAgICAgICAgICAgICAgZXJyb3JDb3VudCsrCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGVycm9yQ291bnQKLSAgICB9Ci0KLSAgICBkZWYgZ2VuZXJhdGVIdG1sUmVwb3J0KCB4bWxSZXBvcnQgKSB7Ci0gICAgICAgIGRlZiBodG1sUmVwb3J0ID0gbmV3IEZpbGUoIHJlcG9ydERpciwgJ2luZGV4Lmh0bWwnICkKLSAgICAgICAgZGVmIHN0eWxlc2hlZXQgPSBwcm9qZWN0LmZpbGUoIHByb2plY3QuYnVpbGREaXIuY2Fub25pY2FsUGF0aCArICcvdG1wL3JhdC9zdHlsZXNoZWV0LnhzbCcgKQotICAgICAgICBzdHlsZXNoZWV0LnBhcmVudEZpbGUubWtkaXJzKCkKLSAgICAgICAgc3R5bGVzaGVldC50ZXh0ID0gdGhpcy5nZXRDbGFzcygpLmdldFJlc291cmNlKCAnYXBhY2hlLXJhdC1vdXRwdXQtdG8taHRtbC54c2wnICkudGV4dAotICAgICAgICBkZWYgYW50QnVpbGRlciA9IHNlcnZpY2VzLmdldCggSXNvbGF0ZWRBbnRCdWlsZGVyICkKLSAgICAgICAgZGVmIHJhdENsYXNzcGF0aCA9IHByb2plY3QuY29uZmlndXJhdGlvbnMucmF0Ci0gICAgICAgIGFudEJ1aWxkZXIud2l0aENsYXNzcGF0aCggcmF0Q2xhc3NwYXRoICkuZXhlY3V0ZSB7Ci0gICAgICAgICAgICBhbnQueHNsdCgKLSAgICAgICAgICAgICAgICBpbjogeG1sUmVwb3J0LmFic29sdXRlUGF0aCwKLSAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGVzaGVldC5hYnNvbHV0ZVBhdGgsCi0gICAgICAgICAgICAgICAgb3V0OiBodG1sUmVwb3J0LmFic29sdXRlUGF0aCwKLSAgICAgICAgICAgICAgICBjbGFzc3BhdGg6IHJhdENsYXNzcGF0aAotICAgICAgICAgICAgKQotICAgICAgICB9Ci0gICAgICAgIHByb2plY3QubG9nZ2VyLmluZm8gIlJhdCBIVE1MIHJlcG9ydDogJHtodG1sUmVwb3J0LnRvVVJJKCl9IgotICAgICAgICByZXR1cm4gaHRtbFJlcG9ydAotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvamFyL01BTklGRVNULk1GIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvamFyL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODYzMGMwLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL2phci9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wDQotDQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvcHVibGlzaFBsdWdpbkdyb292eURvY3NKYXIvTUFOSUZFU1QuTUYgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC9wdWJsaXNoUGx1Z2luR3Jvb3Z5RG9jc0phci9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg2MzBjMC4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC9wdWJsaXNoUGx1Z2luR3Jvb3Z5RG9jc0phci9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wDQotDQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvcHVibGlzaFBsdWdpbkphci9NQU5JRkVTVC5NRiBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL3B1Ymxpc2hQbHVnaW5KYXIvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4NjMwYzAuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvcHVibGlzaFBsdWdpbkphci9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wDQotDQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvcHVibGlzaFBsdWdpbkphdmFEb2NzSmFyL01BTklGRVNULk1GIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvcHVibGlzaFBsdWdpbkphdmFEb2NzSmFyL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODYzMGMwLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL3B1Ymxpc2hQbHVnaW5KYXZhRG9jc0phci9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wDQotDQpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvdGVzdC9qYXJfZXh0cmFjdF8xMzYzOTQ2ODk1NzA3NTMyNV90bXAgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC90ZXN0L2phcl9leHRyYWN0XzEzNjM5NDY4OTU3MDc1MzI1X3RtcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIzN2EwNS4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC90ZXN0L2phcl9leHRyYWN0XzEzNjM5NDY4OTU3MDc1MzI1X3RtcAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL3Rlc3QvamFyX2V4dHJhY3RfMjA4MDYwMzI5NDQ4NTQ1MzkwOF90bXAgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC90ZXN0L2phcl9leHRyYWN0XzIwODA2MDMyOTQ0ODU0NTM5MDhfdG1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2UwY2Y5Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL3Rlc3QvamFyX2V4dHJhY3RfMjA4MDYwMzI5NDQ4NTQ1MzkwOF90bXAKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC90ZXN0L2phcl9leHRyYWN0XzU0NTUzNTEzODkyMjQ1NTQ3OTdfdG1wIGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvdGVzdC9qYXJfZXh0cmFjdF81NDU1MzUxMzg5MjI0NTU0Nzk3X3RtcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdjYzM2ZC4uMDAwMDAwMAotLS0gYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC90ZXN0L2phcl9leHRyYWN0XzU0NTUzNTEzODkyMjQ1NTQ3OTdfdG1wCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvdGVzdC9qYXJfZXh0cmFjdF82MzI1MDY0NDMwMjIxODMwNzMwX3RtcCBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL3Rlc3QvamFyX2V4dHJhY3RfNjMyNTA2NDQzMDIyMTgzMDczMF90bXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkZTA3MmIuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L2dyYWRsZS1idWlsZC90bXAvdGVzdC9qYXJfZXh0cmFjdF82MzI1MDY0NDMwMjIxODMwNzMwX3RtcAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL3Rlc3QvamFyX2V4dHJhY3RfODk3NDgyNjQ3MTI0MzczNjA0M190bXAgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvZ3JhZGxlLWJ1aWxkL3RtcC90ZXN0L2phcl9leHRyYWN0Xzg5NzQ4MjY0NzEyNDM3MzYwNDNfdG1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDcwZmUxLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9ncmFkbGUtYnVpbGQvdG1wL3Rlc3QvamFyX2V4dHJhY3RfODk3NDgyNjQ3MTI0MzczNjA0M190bXAKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvbWF2ZW4tYXJjaGl2ZXIvcG9tLnByb3BlcnRpZXMgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvbWF2ZW4tYXJjaGl2ZXIvcG9tLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxMGMxODguLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L21hdmVuLWFyY2hpdmVyL3BvbS5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jR2VuZXJhdGVkIGJ5IE1hdmVuDQotI01vbiBKdW4gMjkgMjE6MDM6NDkgQ0VTVCAyMDE1DQotdmVyc2lvbj0wLjEyLVNOQVBTSE9UDQotZ3JvdXBJZD1vcmcuYXBhY2hlLnJhdA0KLWFydGlmYWN0SWQ9YXBhY2hlLXJhdC1ncmFkbGUNCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvbWF2ZW4tc2hhcmVkLWFyY2hpdmUtcmVzb3VyY2VzL01FVEEtSU5GL0RFUEVOREVOQ0lFUyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9tYXZlbi1zaGFyZWQtYXJjaGl2ZS1yZXNvdXJjZXMvTUVUQS1JTkYvREVQRU5ERU5DSUVTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NGQ0NjYwLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9tYXZlbi1zaGFyZWQtYXJjaGl2ZS1yZXNvdXJjZXMvTUVUQS1JTkYvREVQRU5ERU5DSUVTCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBUcmFuc2l0aXZlIGRlcGVuZGVuY2llcyBvZiB0aGlzIHByb2plY3QgZGV0ZXJtaW5lZCBmcm9tIHRoZQotLy8gbWF2ZW4gcG9tIG9yZ2FuaXplZCBieSBvcmdhbml6YXRpb24uCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotQXBhY2hlIENyZWFkdXIgUmF0OjpQbHVnaW40R3JhZGxlCi0KLQotRnJvbTogJ0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uJyAoaHR0cDovL3d3dy5hcGFjaGUub3JnKQotICAtIEFwYWNoZSBDcmVhZHVyIFJhdDo6QVBJIChodHRwOi8vY3JlYWR1ci5hcGFjaGUub3JnL3JhdC9hcGFjaGUtcmF0LWFwaS8pIG9yZy5hcGFjaGUucmF0OmFwYWNoZS1yYXQtYXBpOmphcjowLjEyLVNOQVBTSE9UCi0gICAgTGljZW5zZTogQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMiAgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQpCi0gIC0gQXBhY2hlIENyZWFkdXIgUmF0OjpDb3JlIChodHRwOi8vY3JlYWR1ci5hcGFjaGUub3JnL3JhdC9hcGFjaGUtcmF0LWNvcmUvKSBvcmcuYXBhY2hlLnJhdDphcGFjaGUtcmF0LWNvcmU6amFyOjAuMTItU05BUFNIT1QKLSAgICBMaWNlbnNlOiBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLSAgLSBBcGFjaGUgQ3JlYWR1ciBSYXQ6OlRhc2tzNEFudCAoaHR0cDovL2NyZWFkdXIuYXBhY2hlLm9yZy9yYXQvYXBhY2hlLXJhdC10YXNrcy8pIG9yZy5hcGFjaGUucmF0OmFwYWNoZS1yYXQtdGFza3M6amFyOjAuMTItU05BUFNIT1QKLSAgICBMaWNlbnNlOiBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLQotRnJvbTogJ1RoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbicgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8pCi0gIC0gQ29tbW9ucyBDTEkgKGh0dHA6Ly9jb21tb25zLmFwYWNoZS5vcmcvY2xpLykgY29tbW9ucy1jbGk6Y29tbW9ucy1jbGk6amFyOjEuMgotICAgIExpY2Vuc2U6IFRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjAgIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0KQotICAtIENvbW1vbnMgQ29sbGVjdGlvbnMgKGh0dHA6Ly9jb21tb25zLmFwYWNoZS5vcmcvY29sbGVjdGlvbnMvKSBjb21tb25zLWNvbGxlY3Rpb25zOmNvbW1vbnMtY29sbGVjdGlvbnM6amFyOjMuMi4xCi0gICAgTGljZW5zZTogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQpCi0gIC0gQ29tbW9ucyBJTyAoaHR0cDovL2NvbW1vbnMuYXBhY2hlLm9yZy9pby8pIGNvbW1vbnMtaW86Y29tbW9ucy1pbzpqYXI6Mi4yCi0gICAgTGljZW5zZTogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQpCi0gIC0gQ29tbW9ucyBMYW5nIChodHRwOi8vY29tbW9ucy5hcGFjaGUub3JnL2xhbmcvKSBjb21tb25zLWxhbmc6Y29tbW9ucy1sYW5nOmphcjoyLjYKLSAgICBMaWNlbnNlOiBUaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLSAgLSBDb21tb25zIENvbXByZXNzIChodHRwOi8vY29tbW9ucy5hcGFjaGUub3JnL2NvbXByZXNzLykgb3JnLmFwYWNoZS5jb21tb25zOmNvbW1vbnMtY29tcHJlc3M6amFyOjEuNQotICAgIExpY2Vuc2U6IFRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjAgIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0KQotCi0KLQotCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvbWF2ZW4tc2hhcmVkLWFyY2hpdmUtcmVzb3VyY2VzL01FVEEtSU5GL0xJQ0VOU0UgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvbWF2ZW4tc2hhcmVkLWFyY2hpdmUtcmVzb3VyY2VzL01FVEEtSU5GL0xJQ0VOU0UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2NDU2OTUuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L21hdmVuLXNoYXJlZC1hcmNoaXZlLXJlc291cmNlcy9NRVRBLUlORi9MSUNFTlNFCisrKyAvZGV2L251bGwKQEAgLTEsMjAyICswLDAgQEAKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KLQotICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCi0KLSAgIDEuIERlZmluaXRpb25zLgotCi0gICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAotICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCi0KLSAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5Ci0gICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCi0KLSAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKLSAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KLSAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCi0gICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKLSAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCi0gICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKLSAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCi0KLSAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCi0KLSAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAotICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgotICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KLQotICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKLSAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKLSAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKLSAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KLQotICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKLSAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKLSAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawotICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KLQotICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAotICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQotICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKLSAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgotICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAotICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KLQotICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKLSAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKLSAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQotICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgotICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCi0gICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKLSAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKLSAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi0gICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAotICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKLSAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAotICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKLSAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgotCi0gICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCi0gICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KLQotICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0gICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0gICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCi0gICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKLSAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCi0KLSAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAotICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLSAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAotICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCi0gICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQotICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKLSAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKLSAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91Ci0gICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawotICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKLSAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKLSAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQotICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotCi0gICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQotICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0Ci0gICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQotICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0KLSAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCi0gICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKLQotICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwotICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAotCi0gICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKLSAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCi0gICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKLSAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCi0gICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAotCi0gICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKLSAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0Ci0gICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCi0gICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90Ci0gICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCi0gICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKLSAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCi0gICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCi0gICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAotICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwotICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKLSAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgotICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCi0gICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCi0gICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCi0gICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgotCi0gICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKLSAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKLSAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKLSAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAotICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCi0gICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgotCi0gICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCi0gICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKLSAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0gICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KLSAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKLSAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCi0gICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCi0KLSAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKLSAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKLSAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQotICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCi0KLSAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgotICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAotICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKLSAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCi0gICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCi0gICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKLSAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQotICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgotCi0gICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKLSAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAotICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKLSAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCi0gICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCi0gICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKLSAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKLSAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKLSAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCi0gICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCi0gICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCi0KLSAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKLSAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCi0gICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAotICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKLSAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5Ci0gICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgotICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAotICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5Ci0gICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCi0gICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KLQotICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCi0KLSAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KLQotICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKLSAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKLSAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCi0gICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQotICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCi0gICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCi0gICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKLSAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KLQotICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCi0KLSAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0KLSAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLQotICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvbWF2ZW4tc2hhcmVkLWFyY2hpdmUtcmVzb3VyY2VzL01FVEEtSU5GL05PVElDRSBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9tYXZlbi1zaGFyZWQtYXJjaGl2ZS1yZXNvdXJjZXMvTUVUQS1JTkYvTk9USUNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTY1OWI4Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9tYXZlbi1zaGFyZWQtYXJjaGl2ZS1yZXNvdXJjZXMvTUVUQS1JTkYvTk9USUNFCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0KLUFwYWNoZSBDcmVhZHVyIFJhdDo6UGx1Z2luNEdyYWRsZQotQ29weXJpZ2h0IDIwMDYtMjAxNSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgotCi1UaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGF0Ci1UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8pLgotCi0KZGlmZiAtLWdpdCBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC9yYXQudHh0IGIvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L3JhdC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzODRlMmYuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L3JhdC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0NCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLVN1bW1hcnkNCi0tLS0tLS0tDQotR2VuZXJhdGVkIGF0OiAyMDE1LTA2LTI5VDIxOjAzOjM3KzAyOjAwDQotTm90ZXM6IDANCi1CaW5hcmllczogMA0KLUFyY2hpdmVzOiAwDQotU3RhbmRhcmRzOiAxMw0KLQ0KLUFwYWNoZSBMaWNlbnNlZDogMTMNCi1HZW5lcmF0ZWQgRG9jdW1lbnRzOiAwDQotDQotSmF2YURvY3MgYXJlIGdlbmVyYXRlZCBhbmQgc28gbGljZW5zZSBoZWFkZXIgaXMgb3B0aW9uYWwNCi1HZW5lcmF0ZWQgZmlsZXMgZG8gbm90IHJlcXVpcmVkIGxpY2Vuc2UgaGVhZGVycw0KLQ0KLTAgVW5rbm93biBMaWNlbnNlcw0KLQ0KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0NCi1VbmFwcHJvdmVkIGxpY2Vuc2VzOg0KLQ0KLQ0KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0NCi1BcmNoaXZlczoNCi0NCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAgRmlsZXMgd2l0aCBBcGFjaGUgTGljZW5zZSBoZWFkZXJzIHdpbGwgYmUgbWFya2VkIEFMDQotICBCaW5hcnkgZmlsZXMgKHdoaWNoIGRvIG5vdCByZXF1aXJlIEFMIGhlYWRlcnMpIHdpbGwgYmUgbWFya2VkIEINCi0gIENvbXByZXNzZWQgYXJjaGl2ZXMgd2lsbCBiZSBtYXJrZWQgQQ0KLSAgTm90aWNlcywgbGljZW5zZXMgZXRjIHdpbGwgYmUgbWFya2VkIE4NCi0gIEFMICAgIEM6L1VzZXJzL2p3aS9hZncvYXBhY2hlLXJhdC9hcGFjaGUtcmF0LWdyYWRsZS9wb20ueG1sDQotICBBTCAgICBDOi9Vc2Vycy9qd2kvYWZ3L2FwYWNoZS1yYXQvYXBhY2hlLXJhdC1ncmFkbGUvc3JjL2dyYWRsZS9idWlsZC5ncmFkbGUNCi0gIEFMICAgIEM6L1VzZXJzL2p3aS9hZncvYXBhY2hlLXJhdC9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlL2dyYWRsZS5wcm9wZXJ0aWVzDQotICBBTCAgICBDOi9Vc2Vycy9qd2kvYWZ3L2FwYWNoZS1yYXQvYXBhY2hlLXJhdC1ncmFkbGUvc3JjL2dyYWRsZS9zZXR0aW5ncy5ncmFkbGUNCi0gIEFMICAgIEM6L1VzZXJzL2p3aS9hZncvYXBhY2hlLXJhdC9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlL3NyYy9tYWluL2dyb292eS9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0UGx1Z2luLmdyb292eQ0KLSAgQUwgICAgQzovVXNlcnMvandpL2Fmdy9hcGFjaGUtcmF0L2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRUYXNrLmdyb292eQ0KLSAgQUwgICAgQzovVXNlcnMvandpL2Fmdy9hcGFjaGUtcmF0L2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvc3JjL21haW4vcmVzb3VyY2VzL01FVEEtSU5GL2dyYWRsZS1wbHVnaW5zL29yZy5hcGFjaGUucmF0LnByb3BlcnRpZXMNCi0gIEFMICAgIEM6L1VzZXJzL2p3aS9hZncvYXBhY2hlLXJhdC9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvYXBhY2hlLXJhdC1vdXRwdXQtdG8taHRtbC54c2wNCi0gIEFMICAgIEM6L1VzZXJzL2p3aS9hZncvYXBhY2hlLXJhdC9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvZ3JhZGxlL3NyYy90ZXN0L2dyb292eS9vcmcvYXBhY2hlL3JhdC9ncmFkbGUvUmF0SW50ZWdyYXRpb25TcGVjLmdyb292eQ0KLSAgQUwgICAgQzovVXNlcnMvandpL2Fmdy9hcGFjaGUtcmF0L2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9ncmFkbGUvc3JjL3Rlc3QvZ3Jvb3Z5L29yZy9hcGFjaGUvcmF0L2dyYWRsZS9SYXRQbHVnaW5Qcm9qZWN0U3BlYy5ncm9vdnkNCi0gIEFMICAgIEM6L1VzZXJzL2p3aS9hZncvYXBhY2hlLXJhdC9hcGFjaGUtcmF0LWdyYWRsZS9zcmMvc2l0ZS9hcHQvaW5kZXguYXB0DQotICBBTCAgICBDOi9Vc2Vycy9qd2kvYWZ3L2FwYWNoZS1yYXQvYXBhY2hlLXJhdC1ncmFkbGUvc3JjL3NpdGUvcmVzb3VyY2VzL2Nzcy9zaXRlLmNzcw0KLSAgQUwgICAgQzovVXNlcnMvandpL2Fmdy9hcGFjaGUtcmF0L2FwYWNoZS1yYXQtZ3JhZGxlL3NyYy9zaXRlL3NpdGUueG1sDQotIA0KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotIFByaW50aW5nIGhlYWRlcnMgZm9yIGZpbGVzIHdpdGhvdXQgQUwgaGVhZGVyLi4uDQotIA0KLSAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvdGVzdC1jbGFzc2VzL01FVEEtSU5GL0RFUEVOREVOQ0lFUyBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC90ZXN0LWNsYXNzZXMvTUVUQS1JTkYvREVQRU5ERU5DSUVTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NGQ0NjYwLi4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC90ZXN0LWNsYXNzZXMvTUVUQS1JTkYvREVQRU5ERU5DSUVTCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBUcmFuc2l0aXZlIGRlcGVuZGVuY2llcyBvZiB0aGlzIHByb2plY3QgZGV0ZXJtaW5lZCBmcm9tIHRoZQotLy8gbWF2ZW4gcG9tIG9yZ2FuaXplZCBieSBvcmdhbml6YXRpb24uCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotQXBhY2hlIENyZWFkdXIgUmF0OjpQbHVnaW40R3JhZGxlCi0KLQotRnJvbTogJ0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uJyAoaHR0cDovL3d3dy5hcGFjaGUub3JnKQotICAtIEFwYWNoZSBDcmVhZHVyIFJhdDo6QVBJIChodHRwOi8vY3JlYWR1ci5hcGFjaGUub3JnL3JhdC9hcGFjaGUtcmF0LWFwaS8pIG9yZy5hcGFjaGUucmF0OmFwYWNoZS1yYXQtYXBpOmphcjowLjEyLVNOQVBTSE9UCi0gICAgTGljZW5zZTogQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMiAgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQpCi0gIC0gQXBhY2hlIENyZWFkdXIgUmF0OjpDb3JlIChodHRwOi8vY3JlYWR1ci5hcGFjaGUub3JnL3JhdC9hcGFjaGUtcmF0LWNvcmUvKSBvcmcuYXBhY2hlLnJhdDphcGFjaGUtcmF0LWNvcmU6amFyOjAuMTItU05BUFNIT1QKLSAgICBMaWNlbnNlOiBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLSAgLSBBcGFjaGUgQ3JlYWR1ciBSYXQ6OlRhc2tzNEFudCAoaHR0cDovL2NyZWFkdXIuYXBhY2hlLm9yZy9yYXQvYXBhY2hlLXJhdC10YXNrcy8pIG9yZy5hcGFjaGUucmF0OmFwYWNoZS1yYXQtdGFza3M6amFyOjAuMTItU05BUFNIT1QKLSAgICBMaWNlbnNlOiBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLQotRnJvbTogJ1RoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbicgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8pCi0gIC0gQ29tbW9ucyBDTEkgKGh0dHA6Ly9jb21tb25zLmFwYWNoZS5vcmcvY2xpLykgY29tbW9ucy1jbGk6Y29tbW9ucy1jbGk6amFyOjEuMgotICAgIExpY2Vuc2U6IFRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjAgIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0KQotICAtIENvbW1vbnMgQ29sbGVjdGlvbnMgKGh0dHA6Ly9jb21tb25zLmFwYWNoZS5vcmcvY29sbGVjdGlvbnMvKSBjb21tb25zLWNvbGxlY3Rpb25zOmNvbW1vbnMtY29sbGVjdGlvbnM6amFyOjMuMi4xCi0gICAgTGljZW5zZTogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQpCi0gIC0gQ29tbW9ucyBJTyAoaHR0cDovL2NvbW1vbnMuYXBhY2hlLm9yZy9pby8pIGNvbW1vbnMtaW86Y29tbW9ucy1pbzpqYXI6Mi4yCi0gICAgTGljZW5zZTogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAgKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQpCi0gIC0gQ29tbW9ucyBMYW5nIChodHRwOi8vY29tbW9ucy5hcGFjaGUub3JnL2xhbmcvKSBjb21tb25zLWxhbmc6Y29tbW9ucy1sYW5nOmphcjoyLjYKLSAgICBMaWNlbnNlOiBUaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wICAoaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCkKLSAgLSBDb21tb25zIENvbXByZXNzIChodHRwOi8vY29tbW9ucy5hcGFjaGUub3JnL2NvbXByZXNzLykgb3JnLmFwYWNoZS5jb21tb25zOmNvbW1vbnMtY29tcHJlc3M6amFyOjEuNQotICAgIExpY2Vuc2U6IFRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjAgIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0KQotCi0KLQotCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvdGVzdC1jbGFzc2VzL01FVEEtSU5GL0xJQ0VOU0UgYi9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvdGVzdC1jbGFzc2VzL01FVEEtSU5GL0xJQ0VOU0UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2NDU2OTUuLjAwMDAwMDAKLS0tIGEvYXBhY2hlLXJhdC1ncmFkbGUvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9NRVRBLUlORi9MSUNFTlNFCisrKyAvZGV2L251bGwKQEAgLTEsMjAyICswLDAgQEAKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KLQotICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCi0KLSAgIDEuIERlZmluaXRpb25zLgotCi0gICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAotICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCi0KLSAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5Ci0gICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCi0KLSAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKLSAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KLSAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCi0gICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKLSAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCi0gICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKLSAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCi0KLSAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCi0KLSAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAotICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgotICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KLQotICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKLSAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKLSAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKLSAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KLQotICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKLSAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKLSAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawotICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KLQotICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAotICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQotICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKLSAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgotICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAotICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KLQotICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKLSAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKLSAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQotICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgotICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCi0gICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKLSAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKLSAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi0gICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAotICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKLSAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAotICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKLSAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgotCi0gICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCi0gICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KLQotICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0gICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0gICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCi0gICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKLSAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCi0KLSAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAotICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLSAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAotICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCi0gICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQotICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKLSAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKLSAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91Ci0gICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawotICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKLSAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKLSAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQotICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotCi0gICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQotICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0Ci0gICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQotICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0KLSAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCi0gICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKLQotICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwotICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAotCi0gICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKLSAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCi0gICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKLSAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCi0gICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAotCi0gICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKLSAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0Ci0gICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCi0gICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90Ci0gICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCi0gICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKLSAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCi0gICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCi0gICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAotICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwotICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKLSAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgotICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCi0gICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCi0gICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCi0gICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgotCi0gICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKLSAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKLSAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKLSAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAotICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCi0gICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgotCi0gICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCi0gICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKLSAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0gICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KLSAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKLSAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCi0gICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCi0KLSAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKLSAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKLSAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQotICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCi0KLSAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgotICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAotICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKLSAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCi0gICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCi0gICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKLSAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQotICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgotCi0gICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKLSAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAotICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKLSAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCi0gICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCi0gICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKLSAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKLSAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKLSAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCi0gICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCi0gICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCi0KLSAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKLSAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCi0gICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAotICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKLSAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5Ci0gICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgotICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAotICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5Ci0gICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCi0gICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KLQotICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCi0KLSAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KLQotICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKLSAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKLSAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCi0gICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQotICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCi0gICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCi0gICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKLSAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KLQotICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCi0KLSAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0KLSAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLQotICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9hcGFjaGUtcmF0LWdyYWRsZS90YXJnZXQvdGVzdC1jbGFzc2VzL01FVEEtSU5GL05PVElDRSBiL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC90ZXN0LWNsYXNzZXMvTUVUQS1JTkYvTk9USUNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTY1OWI4Li4wMDAwMDAwCi0tLSBhL2FwYWNoZS1yYXQtZ3JhZGxlL3RhcmdldC90ZXN0LWNsYXNzZXMvTUVUQS1JTkYvTk9USUNFCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0KLUFwYWNoZSBDcmVhZHVyIFJhdDo6UGx1Z2luNEdyYWRsZQotQ29weXJpZ2h0IDIwMDYtMjAxNSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgotCi1UaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGF0Ci1UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8pLgotCi0K