ZGlmZiAtLWdpdCBhLy5jbGFzc3BhdGggYi8uY2xhc3NwYXRoCmluZGV4IDNkYWMyMDEuLjQyY2JmYmMgMTAwNjQ0Ci0tLSBhLy5jbGFzc3BhdGgKKysrIGIvLmNsYXNzcGF0aApAQCAtMjEsMTMgKzIxLDEzIEBACiAJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L3dpY2tldC0xLjQuMjIuamFyIiBzb3VyY2VwYXRoPSJleHQvc3JjL3dpY2tldC0xLjQuMjIuamFyIiAvPgogCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJsaWIiIHBhdGg9ImV4dC93aWNrZXQtYXV0aC1yb2xlcy0xLjQuMjIuamFyIiBzb3VyY2VwYXRoPSJleHQvc3JjL3dpY2tldC1hdXRoLXJvbGVzLTEuNC4yMi5qYXIiIC8+CiAJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L3dpY2tldC1leHRlbnNpb25zLTEuNC4yMi5qYXIiIHNvdXJjZXBhdGg9ImV4dC9zcmMvd2lja2V0LWV4dGVuc2lvbnMtMS40LjIyLmphciIgLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ibGliIiBwYXRoPSJleHQvbHVjZW5lLWNvcmUtNC4xMC40LmphciIgc291cmNlcGF0aD0iZXh0L3NyYy9sdWNlbmUtY29yZS00LjEwLjQuamFyIiAvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJsaWIiIHBhdGg9ImV4dC9sdWNlbmUtYW5hbHl6ZXJzLWNvbW1vbi00LjEwLjQuamFyIiBzb3VyY2VwYXRoPSJleHQvc3JjL2x1Y2VuZS1hbmFseXplcnMtY29tbW9uLTQuMTAuNC5qYXIiIC8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L2x1Y2VuZS1oaWdobGlnaHRlci00LjEwLjQuamFyIiBzb3VyY2VwYXRoPSJleHQvc3JjL2x1Y2VuZS1oaWdobGlnaHRlci00LjEwLjQuamFyIiAvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJsaWIiIHBhdGg9ImV4dC9sdWNlbmUtbWVtb3J5LTQuMTAuNC5qYXIiIHNvdXJjZXBhdGg9ImV4dC9zcmMvbHVjZW5lLW1lbW9yeS00LjEwLjQuamFyIiAvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJsaWIiIHBhdGg9ImV4dC9sdWNlbmUtcXVlcmllcy00LjEwLjQuamFyIiBzb3VyY2VwYXRoPSJleHQvc3JjL2x1Y2VuZS1xdWVyaWVzLTQuMTAuNC5qYXIiIC8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L2x1Y2VuZS1xdWVyeXBhcnNlci00LjEwLjQuamFyIiBzb3VyY2VwYXRoPSJleHQvc3JjL2x1Y2VuZS1xdWVyeXBhcnNlci00LjEwLjQuamFyIiAvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJsaWIiIHBhdGg9ImV4dC9sdWNlbmUtc2FuZGJveC00LjEwLjQuamFyIiBzb3VyY2VwYXRoPSJleHQvc3JjL2x1Y2VuZS1zYW5kYm94LTQuMTAuNC5qYXIiIC8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L2x1Y2VuZS1jb3JlLTUuNS4yLmphciIgc291cmNlcGF0aD0iZXh0L3NyYy9sdWNlbmUtY29yZS01LjUuMi5qYXIiIC8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L2x1Y2VuZS1hbmFseXplcnMtY29tbW9uLTUuNS4yLmphciIgc291cmNlcGF0aD0iZXh0L3NyYy9sdWNlbmUtYW5hbHl6ZXJzLWNvbW1vbi01LjUuMi5qYXIiIC8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L2x1Y2VuZS1oaWdobGlnaHRlci01LjUuMi5qYXIiIHNvdXJjZXBhdGg9ImV4dC9zcmMvbHVjZW5lLWhpZ2hsaWdodGVyLTUuNS4yLmphciIgLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ibGliIiBwYXRoPSJleHQvbHVjZW5lLW1lbW9yeS01LjUuMi5qYXIiIHNvdXJjZXBhdGg9ImV4dC9zcmMvbHVjZW5lLW1lbW9yeS01LjUuMi5qYXIiIC8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L2x1Y2VuZS1xdWVyaWVzLTUuNS4yLmphciIgc291cmNlcGF0aD0iZXh0L3NyYy9sdWNlbmUtcXVlcmllcy01LjUuMi5qYXIiIC8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L2x1Y2VuZS1xdWVyeXBhcnNlci01LjUuMi5qYXIiIHNvdXJjZXBhdGg9ImV4dC9zcmMvbHVjZW5lLXF1ZXJ5cGFyc2VyLTUuNS4yLmphciIgLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ibGliIiBwYXRoPSJleHQvbHVjZW5lLXNhbmRib3gtNS41LjIuamFyIiBzb3VyY2VwYXRoPSJleHQvc3JjL2x1Y2VuZS1zYW5kYm94LTUuNS4yLmphciIgLz4KIAk8Y2xhc3NwYXRoZW50cnkga2luZD0ibGliIiBwYXRoPSJleHQvamFrYXJ0YS1yZWdleHAtMS40LmphciIgLz4KIAk8Y2xhc3NwYXRoZW50cnkga2luZD0ibGliIiBwYXRoPSJleHQvcGVnZG93bi0xLjUuMC5qYXIiIHNvdXJjZXBhdGg9ImV4dC9zcmMvcGVnZG93bi0xLjUuMC5qYXIiIC8+CiAJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImxpYiIgcGF0aD0iZXh0L3BhcmJvaWxlZC1qYXZhLTEuMS43LmphciIgc291cmNlcGF0aD0iZXh0L3NyYy9wYXJib2lsZWQtamF2YS0xLjEuNy5qYXIiIC8+CmRpZmYgLS1naXQgYS9idWlsZC5tb3hpZSBiL2J1aWxkLm1veGllCmluZGV4IGViMDVlMmMuLmYyMTI0MWQgMTAwNjQ0Ci0tLSBhL2J1aWxkLm1veGllCisrKyBiL2J1aWxkLm1veGllCkBAIC0xMDYsNyArMTA2LDcgQEAKICAgamV0dHkudmVyc2lvbiAgOiA5LjIuMTMudjIwMTUwNzMwCiAgIHNsZjRqLnZlcnNpb24gIDogMS43LjEyCiAgIHdpY2tldC52ZXJzaW9uIDogMS40LjIyCi0gIGx1Y2VuZS52ZXJzaW9uIDogNC4xMC40CisgIGx1Y2VuZS52ZXJzaW9uIDogNS41LjIKICAgamdpdC52ZXJzaW9uICAgOiA0LjEuMS4yMDE1MTExMzE4MTAtcgogICBncm9vdnkudmVyc2lvbiA6IDIuNC40CiAgIGJvdW5jeWNhc3RsZS52ZXJzaW9uIDogMS41MgpAQCAtMTQ2LDkgKzE0Niw5IEBACiAtIGNvbXBpbGUgJ29yZy5hcGFjaGUud2lja2V0OndpY2tldC1leHRlbnNpb25zOiR7d2lja2V0LnZlcnNpb259JyA6d2FyICFvcmcubW9ja2l0bwogLSBjb21waWxlICdvcmcuYXBhY2hlLmx1Y2VuZTpsdWNlbmUtY29yZToke2x1Y2VuZS52ZXJzaW9ufScgOndhciA6ZmVkY2xpZW50CiAtIGNvbXBpbGUgJ29yZy5hcGFjaGUubHVjZW5lOmx1Y2VuZS1hbmFseXplcnMtY29tbW9uOiR7bHVjZW5lLnZlcnNpb259JyA6d2FyIDpmZWRjbGllbnQKLS0gY29tcGlsZSAnb3JnLmFwYWNoZS5sdWNlbmU6bHVjZW5lLWhpZ2hsaWdodGVyOiR7bHVjZW5lLnZlcnNpb259JyA6d2FyIDpmZWRjbGllbnQKKy0gY29tcGlsZSAnb3JnLmFwYWNoZS5sdWNlbmU6bHVjZW5lLWhpZ2hsaWdodGVyOiR7bHVjZW5lLnZlcnNpb259JyA6d2FyIDpmZWRjbGllbnQgIW9yZy5hcGFjaGUubHVjZW5lOmx1Y2VuZS1qb2luCiAtIGNvbXBpbGUgJ29yZy5hcGFjaGUubHVjZW5lOmx1Y2VuZS1tZW1vcnk6JHtsdWNlbmUudmVyc2lvbn0nIDp3YXIgOmZlZGNsaWVudAotLSBjb21waWxlICdvcmcuYXBhY2hlLmx1Y2VuZTpsdWNlbmUtcXVlcnlwYXJzZXI6JHtsdWNlbmUudmVyc2lvbn0nIDp3YXIgOmZlZGNsaWVudAorLSBjb21waWxlICdvcmcuYXBhY2hlLmx1Y2VuZTpsdWNlbmUtcXVlcnlwYXJzZXI6JHtsdWNlbmUudmVyc2lvbn0nIDp3YXIgOmZlZGNsaWVudCAhb3JnLmFwYWNoZS5sdWNlbmU6bHVjZW5lLXNwYXRpYWwKIC0gY29tcGlsZSAnb3JnLnBlZ2Rvd246cGVnZG93bjoxLjUuMCcgOndhcgogLSBjb21waWxlICdvcmcuZnVzZXNvdXJjZS53aWtpdGV4dDp3aWtpdGV4dC1jb3JlOiR7d2lraXRleHQudmVyc2lvbn0nIDp3YXIKIC0gY29tcGlsZSAnb3JnLmZ1c2Vzb3VyY2Uud2lraXRleHQ6dHdpa2ktY29yZToke3dpa2l0ZXh0LnZlcnNpb259JyA6d2FyCmRpZmYgLS1naXQgYS9naXRibGl0LmltbCBiL2dpdGJsaXQuaW1sCmluZGV4IDAzOGM0ZjQuLjFmNGFhMjQgMTAwNjQ0Ci0tLSBhL2dpdGJsaXQuaW1sCisrKyBiL2dpdGJsaXQuaW1sCkBAIC0xODAsNzkgKzE4MCw3OSBAQAogICAgICAgPC9saWJyYXJ5PgogICAgIDwvb3JkZXJFbnRyeT4KICAgICA8b3JkZXJFbnRyeSB0eXBlPSJtb2R1bGUtbGlicmFyeSI+Ci0gICAgICA8bGlicmFyeSBuYW1lPSJsdWNlbmUtY29yZS00LjEwLjQuamFyIj4KKyAgICAgIDxsaWJyYXJ5IG5hbWU9Imx1Y2VuZS1jb3JlLTUuNS4yLmphciI+CiAgICAgICAgIDxDTEFTU0VTPgotICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9sdWNlbmUtY29yZS00LjEwLjQuamFyIS8iIC8+CisgICAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kTU9EVUxFX0RJUiQvZXh0L2x1Y2VuZS1jb3JlLTUuNS4yLmphciEvIiAvPgogICAgICAgICA8L0NMQVNTRVM+CiAgICAgICAgIDxKQVZBRE9DIC8+CiAgICAgICAgIDxTT1VSQ0VTPgotICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9zcmMvbHVjZW5lLWNvcmUtNC4xMC40LmphciEvIiAvPgorICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9zcmMvbHVjZW5lLWNvcmUtNS41LjIuamFyIS8iIC8+CiAgICAgICAgIDwvU09VUkNFUz4KICAgICAgIDwvbGlicmFyeT4KICAgICA8L29yZGVyRW50cnk+CiAgICAgPG9yZGVyRW50cnkgdHlwZT0ibW9kdWxlLWxpYnJhcnkiPgotICAgICAgPGxpYnJhcnkgbmFtZT0ibHVjZW5lLWFuYWx5emVycy1jb21tb24tNC4xMC40LmphciI+CisgICAgICA8bGlicmFyeSBuYW1lPSJsdWNlbmUtYW5hbHl6ZXJzLWNvbW1vbi01LjUuMi5qYXIiPgogICAgICAgICA8Q0xBU1NFUz4KLSAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvbHVjZW5lLWFuYWx5emVycy1jb21tb24tNC4xMC40LmphciEvIiAvPgorICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9sdWNlbmUtYW5hbHl6ZXJzLWNvbW1vbi01LjUuMi5qYXIhLyIgLz4KICAgICAgICAgPC9DTEFTU0VTPgogICAgICAgICA8SkFWQURPQyAvPgogICAgICAgICA8U09VUkNFUz4KLSAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvc3JjL2x1Y2VuZS1hbmFseXplcnMtY29tbW9uLTQuMTAuNC5qYXIhLyIgLz4KKyAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvc3JjL2x1Y2VuZS1hbmFseXplcnMtY29tbW9uLTUuNS4yLmphciEvIiAvPgogICAgICAgICA8L1NPVVJDRVM+CiAgICAgICA8L2xpYnJhcnk+CiAgICAgPC9vcmRlckVudHJ5PgogICAgIDxvcmRlckVudHJ5IHR5cGU9Im1vZHVsZS1saWJyYXJ5Ij4KLSAgICAgIDxsaWJyYXJ5IG5hbWU9Imx1Y2VuZS1oaWdobGlnaHRlci00LjEwLjQuamFyIj4KKyAgICAgIDxsaWJyYXJ5IG5hbWU9Imx1Y2VuZS1oaWdobGlnaHRlci01LjUuMi5qYXIiPgogICAgICAgICA8Q0xBU1NFUz4KLSAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvbHVjZW5lLWhpZ2hsaWdodGVyLTQuMTAuNC5qYXIhLyIgLz4KKyAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvbHVjZW5lLWhpZ2hsaWdodGVyLTUuNS4yLmphciEvIiAvPgogICAgICAgICA8L0NMQVNTRVM+CiAgICAgICAgIDxKQVZBRE9DIC8+CiAgICAgICAgIDxTT1VSQ0VTPgotICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9zcmMvbHVjZW5lLWhpZ2hsaWdodGVyLTQuMTAuNC5qYXIhLyIgLz4KKyAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvc3JjL2x1Y2VuZS1oaWdobGlnaHRlci01LjUuMi5qYXIhLyIgLz4KICAgICAgICAgPC9TT1VSQ0VTPgogICAgICAgPC9saWJyYXJ5PgogICAgIDwvb3JkZXJFbnRyeT4KICAgICA8b3JkZXJFbnRyeSB0eXBlPSJtb2R1bGUtbGlicmFyeSI+Ci0gICAgICA8bGlicmFyeSBuYW1lPSJsdWNlbmUtbWVtb3J5LTQuMTAuNC5qYXIiPgorICAgICAgPGxpYnJhcnkgbmFtZT0ibHVjZW5lLW1lbW9yeS01LjUuMi5qYXIiPgogICAgICAgICA8Q0xBU1NFUz4KLSAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvbHVjZW5lLW1lbW9yeS00LjEwLjQuamFyIS8iIC8+CisgICAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kTU9EVUxFX0RJUiQvZXh0L2x1Y2VuZS1tZW1vcnktNS41LjIuamFyIS8iIC8+CiAgICAgICAgIDwvQ0xBU1NFUz4KICAgICAgICAgPEpBVkFET0MgLz4KICAgICAgICAgPFNPVVJDRVM+Ci0gICAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kTU9EVUxFX0RJUiQvZXh0L3NyYy9sdWNlbmUtbWVtb3J5LTQuMTAuNC5qYXIhLyIgLz4KKyAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvc3JjL2x1Y2VuZS1tZW1vcnktNS41LjIuamFyIS8iIC8+CiAgICAgICAgIDwvU09VUkNFUz4KICAgICAgIDwvbGlicmFyeT4KICAgICA8L29yZGVyRW50cnk+CiAgICAgPG9yZGVyRW50cnkgdHlwZT0ibW9kdWxlLWxpYnJhcnkiPgotICAgICAgPGxpYnJhcnkgbmFtZT0ibHVjZW5lLXF1ZXJpZXMtNC4xMC40LmphciI+CisgICAgICA8bGlicmFyeSBuYW1lPSJsdWNlbmUtcXVlcmllcy01LjUuMi5qYXIiPgogICAgICAgICA8Q0xBU1NFUz4KLSAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvbHVjZW5lLXF1ZXJpZXMtNC4xMC40LmphciEvIiAvPgorICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9sdWNlbmUtcXVlcmllcy01LjUuMi5qYXIhLyIgLz4KICAgICAgICAgPC9DTEFTU0VTPgogICAgICAgICA8SkFWQURPQyAvPgogICAgICAgICA8U09VUkNFUz4KLSAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvc3JjL2x1Y2VuZS1xdWVyaWVzLTQuMTAuNC5qYXIhLyIgLz4KKyAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvc3JjL2x1Y2VuZS1xdWVyaWVzLTUuNS4yLmphciEvIiAvPgogICAgICAgICA8L1NPVVJDRVM+CiAgICAgICA8L2xpYnJhcnk+CiAgICAgPC9vcmRlckVudHJ5PgogICAgIDxvcmRlckVudHJ5IHR5cGU9Im1vZHVsZS1saWJyYXJ5Ij4KLSAgICAgIDxsaWJyYXJ5IG5hbWU9Imx1Y2VuZS1xdWVyeXBhcnNlci00LjEwLjQuamFyIj4KKyAgICAgIDxsaWJyYXJ5IG5hbWU9Imx1Y2VuZS1xdWVyeXBhcnNlci01LjUuMi5qYXIiPgogICAgICAgICA8Q0xBU1NFUz4KLSAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvbHVjZW5lLXF1ZXJ5cGFyc2VyLTQuMTAuNC5qYXIhLyIgLz4KKyAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvbHVjZW5lLXF1ZXJ5cGFyc2VyLTUuNS4yLmphciEvIiAvPgogICAgICAgICA8L0NMQVNTRVM+CiAgICAgICAgIDxKQVZBRE9DIC8+CiAgICAgICAgIDxTT1VSQ0VTPgotICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9zcmMvbHVjZW5lLXF1ZXJ5cGFyc2VyLTQuMTAuNC5qYXIhLyIgLz4KKyAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC9leHQvc3JjL2x1Y2VuZS1xdWVyeXBhcnNlci01LjUuMi5qYXIhLyIgLz4KICAgICAgICAgPC9TT1VSQ0VTPgogICAgICAgPC9saWJyYXJ5PgogICAgIDwvb3JkZXJFbnRyeT4KICAgICA8b3JkZXJFbnRyeSB0eXBlPSJtb2R1bGUtbGlicmFyeSI+Ci0gICAgICA8bGlicmFyeSBuYW1lPSJsdWNlbmUtc2FuZGJveC00LjEwLjQuamFyIj4KKyAgICAgIDxsaWJyYXJ5IG5hbWU9Imx1Y2VuZS1zYW5kYm94LTUuNS4yLmphciI+CiAgICAgICAgIDxDTEFTU0VTPgotICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9sdWNlbmUtc2FuZGJveC00LjEwLjQuamFyIS8iIC8+CisgICAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kTU9EVUxFX0RJUiQvZXh0L2x1Y2VuZS1zYW5kYm94LTUuNS4yLmphciEvIiAvPgogICAgICAgICA8L0NMQVNTRVM+CiAgICAgICAgIDxKQVZBRE9DIC8+CiAgICAgICAgIDxTT1VSQ0VTPgotICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9zcmMvbHVjZW5lLXNhbmRib3gtNC4xMC40LmphciEvIiAvPgorICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkL2V4dC9zcmMvbHVjZW5lLXNhbmRib3gtNS41LjIuamFyIS8iIC8+CiAgICAgICAgIDwvU09VUkNFUz4KICAgICAgIDwvbGlicmFyeT4KICAgICA8L29yZGVyRW50cnk+CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3NlcnZpY2UvTHVjZW5lUmVwb0luZGV4U3RvcmUuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvc2VydmljZS9MdWNlbmVSZXBvSW5kZXhTdG9yZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmN2QwODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3NlcnZpY2UvTHVjZW5lUmVwb0luZGV4U3RvcmUuamF2YQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IDIwMTcgZ2l0YmxpdC5jb20uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uZ2l0YmxpdC5zZXJ2aWNlOworCitpbXBvcnQgamF2YS5pby5GaWxlOworCitpbXBvcnQgY29tLmdpdGJsaXQudXRpbHMuTHVjZW5lSW5kZXhTdG9yZTsKKworLyoqCisgKiBAYXV0aG9yIEZsb3JpYW4gWnNjaG9ja2UKKyAqCisgKiBAc2luY2UgMS45LjAKKyAqLworY2xhc3MgTHVjZW5lUmVwb0luZGV4U3RvcmUgZXh0ZW5kcyBMdWNlbmVJbmRleFN0b3JlCit7CisKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTFVDRU5FX0RJUiA9ICJsdWNlbmUiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT05GX0ZJTEUgPSAiZ2JfbHVjZW5lLmNvbmYiOworCisKKwkvKioKKwkgKiBAcGFyYW0gcmVwb3NpdG9yeUZvbGRlcgorCSAqIAkJCVRoZSBkaXJlY3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkgZm9yIHRoaXMgaW5kZXgKKwkgKiBAcGFyYW0gaW5kZXhWZXJzaW9uCisJICogCQkJVmVyc2lvbiBvZiB0aGUgaW5kZXggZGVmaW5pdGlvbgorCSAqLworCXB1YmxpYyBMdWNlbmVSZXBvSW5kZXhTdG9yZShGaWxlIHJlcG9zaXRvcnlGb2xkZXIsIGludCBpbmRleFZlcnNpb24pIHsKKwkJc3VwZXIobmV3IEZpbGUocmVwb3NpdG9yeUZvbGRlciwgTFVDRU5FX0RJUiksIGluZGV4VmVyc2lvbik7CisJfQorCisKKwkvKioKKwkgKiBHZXQgdGhlIGluZGV4IGNvbmZpZyBGaWxlLgorCSAqCisJICogQHJldHVybglUaGUgaW5kZXggY29uZmlnIEZpbGUKKwkgKi8KKwlwdWJsaWMgRmlsZSBnZXRDb25maWdGaWxlKCkgeworCQlyZXR1cm4gbmV3IEZpbGUodGhpcy5pbmRleEZvbGRlciwgQ09ORl9GSUxFKTsKKwl9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvc2VydmljZS9MdWNlbmVTZXJ2aWNlLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3NlcnZpY2UvTHVjZW5lU2VydmljZS5qYXZhCmluZGV4IDA5N2EzOWIuLjkwNmEwYjUgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvc2VydmljZS9MdWNlbmVTZXJ2aWNlLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC9zZXJ2aWNlL0x1Y2VuZVNlcnZpY2UuamF2YQpAQCAtNjUsNyArNjUsNiBAQAogaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLnNlYXJjaC5oaWdobGlnaHQuU2ltcGxlU3BhbkZyYWdtZW50ZXI7DQogaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLnN0b3JlLkRpcmVjdG9yeTsNCiBpbXBvcnQgb3JnLmFwYWNoZS5sdWNlbmUuc3RvcmUuRlNEaXJlY3Rvcnk7DQotaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLnV0aWwuVmVyc2lvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuamdpdC5kaWZmLkRpZmZFbnRyeS5DaGFuZ2VUeXBlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZ2l0LmxpYi5Db25zdGFudHM7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpnaXQubGliLkZpbGVNb2RlOw0KQEAgLTExOCwxNSArMTE3LDkgQEAKIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRklFTERfREFURSA9ICJkYXRlIjsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZJRUxEX1RBRyA9ICJ0YWciOw0KIA0KLQlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09ORl9GSUxFID0gImx1Y2VuZS5jb25mIjsNCi0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExVQ0VORV9ESVIgPSAibHVjZW5lIjsNCi0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTkZfSU5ERVggPSAiaW5kZXgiOw0KLQlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09ORl9WRVJTSU9OID0gInZlcnNpb24iOw0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09ORl9BTElBUyA9ICJhbGlhc2VzIjsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTkZfQlJBTkNIID0gImJyYW5jaGVzIjsNCiANCi0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgVmVyc2lvbiBMVUNFTkVfVkVSU0lPTiA9IFZlcnNpb24uTFVDRU5FXzRfMTBfMDsNCi0NCiAJcHJpdmF0ZSBmaW5hbCBMb2dnZXIgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoTHVjZW5lU2VydmljZS5jbGFzcyk7DQogDQogCXByaXZhdGUgZmluYWwgSVN0b3JlZFNldHRpbmdzIHN0b3JlZFNldHRpbmdzOw0KQEAgLTI2Nyw3ICsyNjAsNyBAQAogCQkvLyBjbG9zZSBhbGwgd3JpdGVycw0KIAkJZm9yIChTdHJpbmcgd3JpdGVyIDogd3JpdGVycy5rZXlTZXQoKSkgew0KIAkJCXRyeSB7DQotCQkJCXdyaXRlcnMuZ2V0KHdyaXRlcikuY2xvc2UodHJ1ZSk7DQorCQkJCXdyaXRlcnMuZ2V0KHdyaXRlcikuY2xvc2UoKTsNCiAJCQl9IGNhdGNoIChUaHJvd2FibGUgdCkgew0KIAkJCQlsb2dnZXIuZXJyb3IoIkZhaWxlZCB0byBjbG9zZSBMdWNlbmUgd3JpdGVyIGZvciAiICsgd3JpdGVyLCB0KTsNCiAJCQl9DQpAQCAtMjkzLDI2ICsyODYsMTMgQEAKIAkgKiBAcmV0dXJuIHRydWUsIGlmIHN1Y2Nlc3NmdWwNCiAJICovDQogCXB1YmxpYyBib29sZWFuIGRlbGV0ZUluZGV4KFN0cmluZyByZXBvc2l0b3J5TmFtZSkgew0KLQkJdHJ5IHsNCi0JCQkvLyBjbG9zZSBhbnkgb3BlbiB3cml0ZXIvc2VhcmNoZXINCi0JCQljbG9zZShyZXBvc2l0b3J5TmFtZSk7DQorCQkvLyBjbG9zZSBhbnkgb3BlbiB3cml0ZXIvc2VhcmNoZXINCisJCWNsb3NlKHJlcG9zaXRvcnlOYW1lKTsNCiANCi0JCQkvLyBkZWxldGUgdGhlIGluZGV4IGZvbGRlcg0KLQkJCUZpbGUgcmVwb3NpdG9yeUZvbGRlciA9IEZpbGVLZXkucmVzb2x2ZShuZXcgRmlsZShyZXBvc2l0b3JpZXNGb2xkZXIsIHJlcG9zaXRvcnlOYW1lKSwgRlMuREVURUNURUQpOw0KLQkJCUZpbGUgbHVjZW5lSW5kZXggPSBuZXcgRmlsZShyZXBvc2l0b3J5Rm9sZGVyLCBMVUNFTkVfRElSKTsNCi0JCQlpZiAobHVjZW5lSW5kZXguZXhpc3RzKCkpIHsNCi0JCQkJb3JnLmVjbGlwc2UuamdpdC51dGlsLkZpbGVVdGlscy5kZWxldGUobHVjZW5lSW5kZXgsDQotCQkJCQkJb3JnLmVjbGlwc2UuamdpdC51dGlsLkZpbGVVdGlscy5SRUNVUlNJVkUpOw0KLQkJCX0NCi0JCQkvLyBkZWxldGUgdGhlIGNvbmZpZyBmaWxlDQotCQkJRmlsZSBsdWNlbmVDb25maWcgPSBuZXcgRmlsZShyZXBvc2l0b3J5Rm9sZGVyLCBDT05GX0ZJTEUpOw0KLQkJCWlmIChsdWNlbmVDb25maWcuZXhpc3RzKCkpIHsNCi0JCQkJbHVjZW5lQ29uZmlnLmRlbGV0ZSgpOw0KLQkJCX0NCi0JCQlyZXR1cm4gdHJ1ZTsNCi0JCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsNCi0JCQl0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlKTsNCi0JCX0NCisJCS8vIGRlbGV0ZSB0aGUgaW5kZXggZm9sZGVyDQorCQlGaWxlIHJlcG9zaXRvcnlGb2xkZXIgPSBGaWxlS2V5LnJlc29sdmUobmV3IEZpbGUocmVwb3NpdG9yaWVzRm9sZGVyLCByZXBvc2l0b3J5TmFtZSksIEZTLkRFVEVDVEVEKTsNCisJCUx1Y2VuZVJlcG9JbmRleFN0b3JlIGx1Y2VuZUluZGV4ID0gbmV3IEx1Y2VuZVJlcG9JbmRleFN0b3JlKHJlcG9zaXRvcnlGb2xkZXIsIElOREVYX1ZFUlNJT04pOw0KKwkJcmV0dXJuIGx1Y2VuZUluZGV4LmRlbGV0ZSgpOw0KIAl9DQogDQogCS8qKg0KQEAgLTM4NiwyOSArMzY2LDIwIEBACiAJICogQHJldHVybiBhIGNvbmZpZyBvYmplY3QNCiAJICovDQogCXByaXZhdGUgRmlsZUJhc2VkQ29uZmlnIGdldENvbmZpZyhSZXBvc2l0b3J5IHJlcG9zaXRvcnkpIHsNCi0JCUZpbGUgZmlsZSA9IG5ldyBGaWxlKHJlcG9zaXRvcnkuZ2V0RGlyZWN0b3J5KCksIENPTkZfRklMRSk7DQotCQlGaWxlQmFzZWRDb25maWcgY29uZmlnID0gbmV3IEZpbGVCYXNlZENvbmZpZyhmaWxlLCBGUy5kZXRlY3QoKSk7DQorCQlMdWNlbmVSZXBvSW5kZXhTdG9yZSBsdWNlbmVJbmRleCA9IG5ldyBMdWNlbmVSZXBvSW5kZXhTdG9yZShyZXBvc2l0b3J5LmdldERpcmVjdG9yeSgpLCBJTkRFWF9WRVJTSU9OKTsNCisJCUZpbGVCYXNlZENvbmZpZyBjb25maWcgPSBuZXcgRmlsZUJhc2VkQ29uZmlnKGx1Y2VuZUluZGV4LmdldENvbmZpZ0ZpbGUoKSwgRlMuZGV0ZWN0KCkpOw0KIAkJcmV0dXJuIGNvbmZpZzsNCiAJfQ0KIA0KIAkvKioNCi0JICogUmVhZHMgdGhlIEx1Y2VuZSBjb25maWcgZmlsZSBmb3IgdGhlIHJlcG9zaXRvcnkgdG8gY2hlY2sgdGhlIGluZGV4DQotCSAqIHZlcnNpb24uIElmIHRoZSBpbmRleCB2ZXJzaW9uIGlzIGRpZmZlcmVudCwgdGhlbiByZWJ1aWxkIHRoZSByZXBvc2l0b3J5DQotCSAqIGluZGV4Lg0KKwkgKiBDaGVja3MgaWYgYW4gaW5kZXggZXhpc3RzIGZvciB0aGUgcmVwb3NpdG9yeSwgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGgNCisJICogSU5ERVhfVkVSU0lPTiBhbmQgdGhlIEx1Y2VuZSB2ZXJzaW9uLg0KIAkgKg0KIAkgKiBAcGFyYW0gcmVwb3NpdG9yeQ0KLQkgKiBAcmV0dXJuIHRydWUgb2YgdGhlIG9uLWRpc2sgaW5kZXggZm9ybWF0IGlzIGRpZmZlcmVudCB0aGFuIElOREVYX1ZFUlNJT04NCisJICogQHJldHVybiB0cnVlIGlmIG5vIGluZGV4IGlzIGZvdW5kIGZvciB0aGUgcmVwb3NpdG9yeSwgZmFsc2Ugb3RoZXJ3aXNlLg0KIAkgKi8NCiAJcHJpdmF0ZSBib29sZWFuIHNob3VsZFJlaW5kZXgoUmVwb3NpdG9yeSByZXBvc2l0b3J5KSB7DQotCQl0cnkgew0KLQkJCUZpbGVCYXNlZENvbmZpZyBjb25maWcgPSBnZXRDb25maWcocmVwb3NpdG9yeSk7DQotCQkJY29uZmlnLmxvYWQoKTsNCi0JCQlpbnQgaW5kZXhWZXJzaW9uID0gY29uZmlnLmdldEludChDT05GX0lOREVYLCBDT05GX1ZFUlNJT04sIDApOw0KLQkJCS8vIHJlaW5kZXggaWYgdmVyc2lvbnMgZG8gbm90IG1hdGNoDQotCQkJcmV0dXJuIGluZGV4VmVyc2lvbiAhPSBJTkRFWF9WRVJTSU9OOw0KLQkJfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsNCi0JCX0NCi0JCXJldHVybiB0cnVlOw0KKwkJcmV0dXJuICEgKG5ldyBMdWNlbmVSZXBvSW5kZXhTdG9yZShyZXBvc2l0b3J5LmdldERpcmVjdG9yeSgpLCBJTkRFWF9WRVJTSU9OKS5oYXNJbmRleCgpKTsNCiAJfQ0KIA0KIA0KQEAgLTYxOCw3ICs1ODksNiBAQAogCQkJcmVhZGVyLmNsb3NlKCk7DQogDQogCQkJLy8gY29tbWl0IGFsbCBjaGFuZ2VzIGFuZCByZXNldCB0aGUgc2VhcmNoZXINCi0JCQljb25maWcuc2V0SW50KENPTkZfSU5ERVgsIG51bGwsIENPTkZfVkVSU0lPTiwgSU5ERVhfVkVSU0lPTik7DQogCQkJY29uZmlnLnNhdmUoKTsNCiAJCQl3cml0ZXIuY29tbWl0KCk7DQogCQkJcmVzZXRJbmRleFNlYXJjaGVyKG1vZGVsLm5hbWUpOw0KQEAgLTcyMSwxMCArNjkxLDkgQEAKIAkJU3RyaW5nIHBhdHRlcm4gPSBNZXNzYWdlRm9ybWF0LmZvcm1hdCgiezB9Oid7JzB9IEFORCB7MX06XCIneycxJ30nXCIgQU5EIHsyfTpcIid7JzInfSdcIiIsIEZJRUxEX09CSkVDVF9UWVBFLCBGSUVMRF9CUkFOQ0gsIEZJRUxEX1BBVEgpOw0KIAkJU3RyaW5nIHEgPSBNZXNzYWdlRm9ybWF0LmZvcm1hdChwYXR0ZXJuLCBTZWFyY2hPYmplY3RUeXBlLmJsb2IubmFtZSgpLCBicmFuY2gsIHBhdGgpOw0KIA0KLQkJQm9vbGVhblF1ZXJ5IHF1ZXJ5ID0gbmV3IEJvb2xlYW5RdWVyeSgpOw0KLQkJU3RhbmRhcmRBbmFseXplciBhbmFseXplciA9IG5ldyBTdGFuZGFyZEFuYWx5emVyKExVQ0VORV9WRVJTSU9OKTsNCi0JCVF1ZXJ5UGFyc2VyIHFwID0gbmV3IFF1ZXJ5UGFyc2VyKExVQ0VORV9WRVJTSU9OLCBGSUVMRF9TVU1NQVJZLCBhbmFseXplcik7DQotCQlxdWVyeS5hZGQocXAucGFyc2UocSksIE9jY3VyLk1VU1QpOw0KKwkJU3RhbmRhcmRBbmFseXplciBhbmFseXplciA9IG5ldyBTdGFuZGFyZEFuYWx5emVyKCk7DQorCQlRdWVyeVBhcnNlciBxcCA9IG5ldyBRdWVyeVBhcnNlcihGSUVMRF9TVU1NQVJZLCBhbmFseXplcik7DQorCQlCb29sZWFuUXVlcnkgcXVlcnkgPSBuZXcgQm9vbGVhblF1ZXJ5LkJ1aWxkZXIoKS5hZGQocXAucGFyc2UocSksIE9jY3VyLk1VU1QpLmJ1aWxkKCk7DQogDQogCQlJbmRleFdyaXRlciB3cml0ZXIgPSBnZXRJbmRleFdyaXRlcihyZXBvc2l0b3J5TmFtZSk7DQogCQlpbnQgbnVtRG9jc0JlZm9yZSA9IHdyaXRlci5udW1Eb2NzKCk7DQpAQCAtODQ4LDcgKzgxNyw2IEBACiAJCQkJfQ0KIA0KIAkJCQkvLyB1cGRhdGUgdGhlIGNvbmZpZw0KLQkJCQljb25maWcuc2V0SW50KENPTkZfSU5ERVgsIG51bGwsIENPTkZfVkVSU0lPTiwgSU5ERVhfVkVSU0lPTik7DQogCQkJCWNvbmZpZy5zZXRTdHJpbmcoQ09ORl9BTElBUywgbnVsbCwga2V5TmFtZSwgYnJhbmNoTmFtZSk7DQogCQkJCWNvbmZpZy5zZXRTdHJpbmcoQ09ORl9CUkFOQ0gsIG51bGwsIGtleU5hbWUsIGJyYW5jaC5nZXRPYmplY3RJZCgpLmdldE5hbWUoKSk7DQogCQkJCWNvbmZpZy5zYXZlKCk7DQpAQCAtOTY2LDE2ICs5MzQsMTMgQEAKIAkgKi8NCiAJcHJpdmF0ZSBJbmRleFdyaXRlciBnZXRJbmRleFdyaXRlcihTdHJpbmcgcmVwb3NpdG9yeSkgdGhyb3dzIElPRXhjZXB0aW9uIHsNCiAJCUluZGV4V3JpdGVyIGluZGV4V3JpdGVyID0gd3JpdGVycy5nZXQocmVwb3NpdG9yeSk7DQotCQlGaWxlIHJlcG9zaXRvcnlGb2xkZXIgPSBGaWxlS2V5LnJlc29sdmUobmV3IEZpbGUocmVwb3NpdG9yaWVzRm9sZGVyLCByZXBvc2l0b3J5KSwgRlMuREVURUNURUQpOw0KLQkJRmlsZSBpbmRleEZvbGRlciA9IG5ldyBGaWxlKHJlcG9zaXRvcnlGb2xkZXIsIExVQ0VORV9ESVIpOw0KLQkJRGlyZWN0b3J5IGRpcmVjdG9yeSA9IEZTRGlyZWN0b3J5Lm9wZW4oaW5kZXhGb2xkZXIpOw0KLQ0KIAkJaWYgKGluZGV4V3JpdGVyID09IG51bGwpIHsNCi0JCQlpZiAoIWluZGV4Rm9sZGVyLmV4aXN0cygpKSB7DQotCQkJCWluZGV4Rm9sZGVyLm1rZGlycygpOw0KLQkJCX0NCi0JCQlTdGFuZGFyZEFuYWx5emVyIGFuYWx5emVyID0gbmV3IFN0YW5kYXJkQW5hbHl6ZXIoTFVDRU5FX1ZFUlNJT04pOw0KLQkJCUluZGV4V3JpdGVyQ29uZmlnIGNvbmZpZyA9IG5ldyBJbmRleFdyaXRlckNvbmZpZyhMVUNFTkVfVkVSU0lPTiwgYW5hbHl6ZXIpOw0KKwkJCUZpbGUgcmVwb3NpdG9yeUZvbGRlciA9IEZpbGVLZXkucmVzb2x2ZShuZXcgRmlsZShyZXBvc2l0b3JpZXNGb2xkZXIsIHJlcG9zaXRvcnkpLCBGUy5ERVRFQ1RFRCk7DQorCQkJTHVjZW5lUmVwb0luZGV4U3RvcmUgaW5kZXhTdG9yZSA9IG5ldyBMdWNlbmVSZXBvSW5kZXhTdG9yZShyZXBvc2l0b3J5Rm9sZGVyLCBJTkRFWF9WRVJTSU9OKTsNCisJCQlpbmRleFN0b3JlLmNyZWF0ZSgpOw0KKwkJCURpcmVjdG9yeSBkaXJlY3RvcnkgPSBGU0RpcmVjdG9yeS5vcGVuKGluZGV4U3RvcmUuZ2V0UGF0aCgpKTsNCisJCQlTdGFuZGFyZEFuYWx5emVyIGFuYWx5emVyID0gbmV3IFN0YW5kYXJkQW5hbHl6ZXIoKTsNCisJCQlJbmRleFdyaXRlckNvbmZpZyBjb25maWcgPSBuZXcgSW5kZXhXcml0ZXJDb25maWcoYW5hbHl6ZXIpOw0KIAkJCWNvbmZpZy5zZXRPcGVuTW9kZShPcGVuTW9kZS5DUkVBVEVfT1JfQVBQRU5EKTsNCiAJCQlpbmRleFdyaXRlciA9IG5ldyBJbmRleFdyaXRlcihkaXJlY3RvcnksIGNvbmZpZyk7DQogCQkJd3JpdGVycy5wdXQocmVwb3NpdG9yeSwgaW5kZXhXcml0ZXIpOw0KQEAgLTEwMjgsMTggKzk5MywxOCBAQAogCQkJcmV0dXJuIG51bGw7DQogCQl9DQogCQlTZXQ8U2VhcmNoUmVzdWx0PiByZXN1bHRzID0gbmV3IExpbmtlZEhhc2hTZXQ8U2VhcmNoUmVzdWx0PigpOw0KLQkJU3RhbmRhcmRBbmFseXplciBhbmFseXplciA9IG5ldyBTdGFuZGFyZEFuYWx5emVyKExVQ0VORV9WRVJTSU9OKTsNCisJCVN0YW5kYXJkQW5hbHl6ZXIgYW5hbHl6ZXIgPSBuZXcgU3RhbmRhcmRBbmFseXplcigpOw0KIAkJdHJ5IHsNCiAJCQkvLyBkZWZhdWx0IHNlYXJjaCBjaGVja3Mgc3VtbWFyeSBhbmQgY29udGVudA0KLQkJCUJvb2xlYW5RdWVyeSBxdWVyeSA9IG5ldyBCb29sZWFuUXVlcnkoKTsNCisJCQlCb29sZWFuUXVlcnkuQnVpbGRlciBibGRyID0gbmV3IEJvb2xlYW5RdWVyeS5CdWlsZGVyKCk7DQogCQkJUXVlcnlQYXJzZXIgcXA7DQotCQkJcXAgPSBuZXcgUXVlcnlQYXJzZXIoTFVDRU5FX1ZFUlNJT04sIEZJRUxEX1NVTU1BUlksIGFuYWx5emVyKTsNCisJCQlxcCA9IG5ldyBRdWVyeVBhcnNlcihGSUVMRF9TVU1NQVJZLCBhbmFseXplcik7DQogCQkJcXAuc2V0QWxsb3dMZWFkaW5nV2lsZGNhcmQodHJ1ZSk7DQotCQkJcXVlcnkuYWRkKHFwLnBhcnNlKHRleHQpLCBPY2N1ci5TSE9VTEQpOw0KKwkJCWJsZHIuYWRkKHFwLnBhcnNlKHRleHQpLCBPY2N1ci5TSE9VTEQpOw0KIA0KLQkJCXFwID0gbmV3IFF1ZXJ5UGFyc2VyKExVQ0VORV9WRVJTSU9OLCBGSUVMRF9DT05URU5ULCBhbmFseXplcik7DQorCQkJcXAgPSBuZXcgUXVlcnlQYXJzZXIoRklFTERfQ09OVEVOVCwgYW5hbHl6ZXIpOw0KIAkJCXFwLnNldEFsbG93TGVhZGluZ1dpbGRjYXJkKHRydWUpOw0KLQkJCXF1ZXJ5LmFkZChxcC5wYXJzZSh0ZXh0KSwgT2NjdXIuU0hPVUxEKTsNCisJCQlibGRyLmFkZChxcC5wYXJzZSh0ZXh0KSwgT2NjdXIuU0hPVUxEKTsNCiANCiAJCQlJbmRleFNlYXJjaGVyIHNlYXJjaGVyOw0KIAkJCWlmIChyZXBvc2l0b3JpZXMubGVuZ3RoID09IDEpIHsNCkBAIC0xMDU3LDEwICsxMDIyLDExIEBACiAJCQkJc2VhcmNoZXIgPSBuZXcgSW5kZXhTZWFyY2hlcihyZWFkZXIpOw0KIAkJCX0NCiANCisJCQlCb29sZWFuUXVlcnkgcXVlcnkgPSBibGRyLmJ1aWxkKCk7DQogCQkJUXVlcnkgcmV3cml0dGVuUXVlcnkgPSBzZWFyY2hlci5yZXdyaXRlKHF1ZXJ5KTsNCiAJCQlsb2dnZXIuZGVidWcocmV3cml0dGVuUXVlcnkudG9TdHJpbmcoKSk7DQogDQotCQkJVG9wU2NvcmVEb2NDb2xsZWN0b3IgY29sbGVjdG9yID0gVG9wU2NvcmVEb2NDb2xsZWN0b3IuY3JlYXRlKDUwMDAsIHRydWUpOw0KKwkJCVRvcFNjb3JlRG9jQ29sbGVjdG9yIGNvbGxlY3RvciA9IFRvcFNjb3JlRG9jQ29sbGVjdG9yLmNyZWF0ZSg1MDAwKTsNCiAJCQlzZWFyY2hlci5zZWFyY2gocmV3cml0dGVuUXVlcnksIGNvbGxlY3Rvcik7DQogCQkJaW50IG9mZnNldCA9IE1hdGgubWF4KDAsIChwYWdlIC0gMSkgKiBwYWdlU2l6ZSk7DQogCQkJU2NvcmVEb2NbXSBoaXRzID0gY29sbGVjdG9yLnRvcERvY3Mob2Zmc2V0LCBwYWdlU2l6ZSkuc2NvcmVEb2NzOw0KQEAgLTEyMjUsNyArMTE5MSw3IEBACiAJICovDQogCXByaXZhdGUgY2xhc3MgTXVsdGlTb3VyY2VSZWFkZXIgZXh0ZW5kcyBNdWx0aVJlYWRlciB7DQogDQotCQlNdWx0aVNvdXJjZVJlYWRlcihJbmRleFJlYWRlciBbXSByZWFkZXJzKSB7DQorCQlNdWx0aVNvdXJjZVJlYWRlcihJbmRleFJlYWRlciBbXSByZWFkZXJzKSB0aHJvd3MgSU9FeGNlcHRpb24gew0KIAkJCXN1cGVyKHJlYWRlcnMsIGZhbHNlKTsNCiAJCX0NCiANCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3RpY2tldHMvQnJhbmNoVGlja2V0U2VydmljZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL0JyYW5jaFRpY2tldFNlcnZpY2UuamF2YQppbmRleCA3YmVmNDM1Li44NDMwYzU0IDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3RpY2tldHMvQnJhbmNoVGlja2V0U2VydmljZS5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvdGlja2V0cy9CcmFuY2hUaWNrZXRTZXJ2aWNlLmphdmEKQEAgLTExMCw5ICsxMTAsOCBAQAogCX0KIAogCUBPdmVycmlkZQotCXB1YmxpYyBCcmFuY2hUaWNrZXRTZXJ2aWNlIHN0YXJ0KCkgeworCXB1YmxpYyB2b2lkIG9uU3RhcnQoKSB7CiAJCWxvZy5pbmZvKCJ7fSBzdGFydGVkIiwgZ2V0Q2xhc3MoKS5nZXRTaW1wbGVOYW1lKCkpOwotCQlyZXR1cm4gdGhpczsKIAl9CiAKIAlAT3ZlcnJpZGUKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvdGlja2V0cy9GaWxlVGlja2V0U2VydmljZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL0ZpbGVUaWNrZXRTZXJ2aWNlLmphdmEKaW5kZXggMWU4MmYwZC4uMDU2NzA0NiAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL0ZpbGVUaWNrZXRTZXJ2aWNlLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL0ZpbGVUaWNrZXRTZXJ2aWNlLmphdmEKQEAgLTgwLDkgKzgwLDggQEAKIAl9CiAKIAlAT3ZlcnJpZGUKLQlwdWJsaWMgRmlsZVRpY2tldFNlcnZpY2Ugc3RhcnQoKSB7CisJcHVibGljIHZvaWQgb25TdGFydCgpIHsKIAkJbG9nLmluZm8oInt9IHN0YXJ0ZWQiLCBnZXRDbGFzcygpLmdldFNpbXBsZU5hbWUoKSk7Ci0JCXJldHVybiB0aGlzOwogCX0KIAogCUBPdmVycmlkZQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL0lUaWNrZXRTZXJ2aWNlLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3RpY2tldHMvSVRpY2tldFNlcnZpY2UuamF2YQppbmRleCAyMGI2NTA1Li4zMjUyYTYwIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3RpY2tldHMvSVRpY2tldFNlcnZpY2UuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3RpY2tldHMvSVRpY2tldFNlcnZpY2UuamF2YQpAQCAtMTgxLDcgKzE4MSwyNCBAQAogCSAqIEBzaW5jZSAxLjQuMAogCSAqLwogCUBPdmVycmlkZQotCXB1YmxpYyBhYnN0cmFjdCBJVGlja2V0U2VydmljZSBzdGFydCgpOworCXB1YmxpYyBmaW5hbCBJVGlja2V0U2VydmljZSBzdGFydCgpIHsKKwkJb25TdGFydCgpOworCQlpZiAoc2hvdWxkUmVpbmRleCgpKSB7CisJCQlsb2cuaW5mbygiUmUtaW5kZXhpbmcgYWxsIHRpY2tldHMuLi4iKTsKKy8vCQkJbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKwkJCXJlaW5kZXgoKTsKKy8vCQkJZmxvYXQgZHVyYXRpb24gPSAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWUpIC8gMTAwMGY7CisvLwkJCWxvZy5pbmZvKCJCdWlsdCBMdWNlbmUgaW5kZXggb3ZlciBhbGwgdGlja2V0cyBpbiB7fSBzZWNzIiwgZHVyYXRpb24pOworCQl9CisJCXJldHVybiB0aGlzOworCX0KKworCS8qKgorCSAqIFN0YXJ0IHRoZSBzcGVjaWZpYyB0aWNrZXQgc2VydmljZSBpbXBsZW1lbnRhdGlvbi4KKwkgKgorCSAqIEBzaW5jZSAxLjkuMAorCSAqLworCXB1YmxpYyBhYnN0cmFjdCB2b2lkIG9uU3RhcnQoKTsKIAogCS8qKgogCSAqIFN0b3AgdGhlIHNlcnZpY2UuCkBAIC0xOTcsNiArMjE0LDEyIEBACiAJfQogCiAJLyoqCisJICogQ2xvc2VzIGFueSBvcGVuIHJlc291cmNlcyB1c2VkIGJ5IHRoaXMgc2VydmljZS4KKwkgKiBAc2luY2UgMS40LjAKKwkgKi8KKwlwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBjbG9zZSgpOworCisJLyoqCiAJICogQ3JlYXRlcyBhIHRpY2tldCBub3RpZmllci4gIFRoZSB0aWNrZXQgbm90aWZpZXIgaXMgbm90IHRocmVhZC1zYWZlIQogCSAqIEBzaW5jZSAxLjQuMAogCSAqLwpAQCAtMjc0LDEyICsyOTcsNiBAQAogCX0KIAogCS8qKgotCSAqIENsb3NlcyBhbnkgb3BlbiByZXNvdXJjZXMgdXNlZCBieSB0aGlzIHNlcnZpY2UuCi0JICogQHNpbmNlIDEuNC4wCi0JICovCi0JcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgY2xvc2UoKTsKLQotCS8qKgogCSAqIFJlc2V0IGFsbCBjYWNoZXMgaW4gdGhlIHNlcnZpY2UuCiAJICogQHNpbmNlIDEuNC4wCiAJICovCkBAIC0xMzQzLDYgKzEzNjAsMTggQEAKIAkJcmV0dXJuIGluZGV4ZXIucXVlcnlGb3IocXVlcnksIHBhZ2UsIHBhZ2VTaXplLCBzb3J0QnksIGRlc2NlbmRpbmcpOwogCX0KIAorCisJLyoqCisJICogQ2hlY2tzIHRpY2tldHMgc2hvdWxkIGdldCByZS1pbmRleGVkLgorCSAqCisJICogQHJldHVybiB0cnVlIGlmIHRpY2tldHMgc2hvdWxkIGdldCByZS1pbmRleGVkLCBmYWxzZSBvdGhlcndpc2UuCisJICovCisJcHJpdmF0ZSBib29sZWFuIHNob3VsZFJlaW5kZXgoKQorCXsKKwkJcmV0dXJuIGluZGV4ZXIuc2hvdWxkUmVpbmRleCgpOworCX0KKworCiAJLyoqCiAJICogRGVzdHJveXMgYW4gZXhpc3RpbmcgaW5kZXggYW5kIHJlaW5kZXhlcyBhbGwgdGlja2V0cy4KIAkgKiBUaGlzIG9wZXJhdGlvbiBtYXkgYmUgZXhwZW5zaXZlIGFuZCB0aW1lLWNvbnN1bWluZy4KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvdGlja2V0cy9OdWxsVGlja2V0U2VydmljZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL051bGxUaWNrZXRTZXJ2aWNlLmphdmEKaW5kZXggMzk0N2I5NC4uMDUwYzY5OSAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL051bGxUaWNrZXRTZXJ2aWNlLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL051bGxUaWNrZXRTZXJ2aWNlLmphdmEKQEAgLTYxLDkgKzYxLDggQEAKIAl9CiAKIAlAT3ZlcnJpZGUKLQlwdWJsaWMgTnVsbFRpY2tldFNlcnZpY2Ugc3RhcnQoKSB7CisJcHVibGljIHZvaWQgb25TdGFydCgpIHsKIAkJbG9nLmluZm8oInt9IHN0YXJ0ZWQiLCBnZXRDbGFzcygpLmdldFNpbXBsZU5hbWUoKSk7Ci0JCXJldHVybiB0aGlzOwogCX0KIAogCUBPdmVycmlkZQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL1JlZGlzVGlja2V0U2VydmljZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL1JlZGlzVGlja2V0U2VydmljZS5qYXZhCmluZGV4IDBmOWFkMTcuLjRlNjMyMzEgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvdGlja2V0cy9SZWRpc1RpY2tldFNlcnZpY2UuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3RpY2tldHMvUmVkaXNUaWNrZXRTZXJ2aWNlLmphdmEKQEAgLTgzLDEyICs4MywxMSBAQAogCX0KIAogCUBPdmVycmlkZQotCXB1YmxpYyBSZWRpc1RpY2tldFNlcnZpY2Ugc3RhcnQoKSB7CisJcHVibGljIHZvaWQgb25TdGFydCgpIHsKIAkJbG9nLmluZm8oInt9IHN0YXJ0ZWQiLCBnZXRDbGFzcygpLmdldFNpbXBsZU5hbWUoKSk7CiAJCWlmICghaXNSZWFkeSgpKSB7CiAJCQlsb2cud2Fybigie30gaXMgbm90IHJlYWR5ISIsIGdldENsYXNzKCkuZ2V0U2ltcGxlTmFtZSgpKTsKIAkJfQotCQlyZXR1cm4gdGhpczsKIAl9CiAKIAlAT3ZlcnJpZGUKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvdGlja2V0cy9UaWNrZXRJbmRleGVyLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3RpY2tldHMvVGlja2V0SW5kZXhlci5qYXZhCmluZGV4IGUyZDUzYWYuLjdjMTY0NDggMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvdGlja2V0cy9UaWNrZXRJbmRleGVyLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC90aWNrZXRzL1RpY2tldEluZGV4ZXIuamF2YQpAQCAtMzEsNiArMzEsOCBAQAogaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLmRvY3VtZW50LkZpZWxkLlN0b3JlOwogaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLmRvY3VtZW50LkludEZpZWxkOwogaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLmRvY3VtZW50LkxvbmdGaWVsZDsKK2ltcG9ydCBvcmcuYXBhY2hlLmx1Y2VuZS5kb2N1bWVudC5OdW1lcmljRG9jVmFsdWVzRmllbGQ7CitpbXBvcnQgb3JnLmFwYWNoZS5sdWNlbmUuZG9jdW1lbnQuU29ydGVkRG9jVmFsdWVzRmllbGQ7CiBpbXBvcnQgb3JnLmFwYWNoZS5sdWNlbmUuZG9jdW1lbnQuVGV4dEZpZWxkOwogaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLmluZGV4LkRpcmVjdG9yeVJlYWRlcjsKIGltcG9ydCBvcmcuYXBhY2hlLmx1Y2VuZS5pbmRleC5JbmRleFdyaXRlcjsKQEAgLTQ5LDcgKzUxLDcgQEAKIGltcG9ydCBvcmcuYXBhY2hlLmx1Y2VuZS5zZWFyY2guVG9wU2NvcmVEb2NDb2xsZWN0b3I7CiBpbXBvcnQgb3JnLmFwYWNoZS5sdWNlbmUuc3RvcmUuRGlyZWN0b3J5OwogaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLnN0b3JlLkZTRGlyZWN0b3J5OwotaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLnV0aWwuVmVyc2lvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmx1Y2VuZS51dGlsLkJ5dGVzUmVmOwogaW1wb3J0IG9yZy5zbGY0ai5Mb2dnZXI7CiBpbXBvcnQgb3JnLnNsZjRqLkxvZ2dlckZhY3Rvcnk7CiAKQEAgLTYwLDcgKzYyLDcgQEAKIGltcG9ydCBjb20uZ2l0YmxpdC5tb2RlbHMuVGlja2V0TW9kZWwuQXR0YWNobWVudDsKIGltcG9ydCBjb20uZ2l0YmxpdC5tb2RlbHMuVGlja2V0TW9kZWwuUGF0Y2hzZXQ7CiBpbXBvcnQgY29tLmdpdGJsaXQubW9kZWxzLlRpY2tldE1vZGVsLlN0YXR1czsKLWltcG9ydCBjb20uZ2l0YmxpdC51dGlscy5GaWxlVXRpbHM7CitpbXBvcnQgY29tLmdpdGJsaXQudXRpbHMuTHVjZW5lSW5kZXhTdG9yZTsKIGltcG9ydCBjb20uZ2l0YmxpdC51dGlscy5TdHJpbmdVdGlsczsKIAogLyoqCkBAIC0xMDgsNiArMTEwLDggQEAKIAkJcHJpb3JpdHkoVHlwZS5JTlQpLAogCQlzZXZlcml0eShUeXBlLklOVCk7CiAKKwkJZmluYWwgc3RhdGljIGludCBJTkRFWF9WRVJTSU9OID0gMjsKKwogCQlmaW5hbCBUeXBlIGZpZWxkVHlwZTsKIAogCQlMdWNlbmUoVHlwZSBmaWVsZFR5cGUpIHsKQEAgLTE2NywxNiArMTcxLDE1IEBACiAKIAlwcml2YXRlIGZpbmFsIExvZ2dlciBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcihnZXRDbGFzcygpKTsKIAotCXByaXZhdGUgZmluYWwgVmVyc2lvbiBsdWNlbmVWZXJzaW9uID0gVmVyc2lvbi5MVUNFTkVfNDY7Ci0KLQlwcml2YXRlIGZpbmFsIEZpbGUgbHVjZW5lRGlyOworCXByaXZhdGUgZmluYWwgTHVjZW5lSW5kZXhTdG9yZSBpbmRleFN0b3JlOwogCiAJcHJpdmF0ZSBJbmRleFdyaXRlciB3cml0ZXI7CiAKIAlwcml2YXRlIEluZGV4U2VhcmNoZXIgc2VhcmNoZXI7CiAKIAlwdWJsaWMgVGlja2V0SW5kZXhlcihJUnVudGltZU1hbmFnZXIgcnVudGltZU1hbmFnZXIpIHsKLQkJdGhpcy5sdWNlbmVEaXIgPSBydW50aW1lTWFuYWdlci5nZXRGaWxlT3JGb2xkZXIoS2V5cy50aWNrZXRzLmluZGV4Rm9sZGVyLCAiJHtiYXNlRm9sZGVyfS90aWNrZXRzL2x1Y2VuZSIpOworCQlGaWxlIGx1Y2VuZURpciA9IHJ1bnRpbWVNYW5hZ2VyLmdldEZpbGVPckZvbGRlcihLZXlzLnRpY2tldHMuaW5kZXhGb2xkZXIsICIke2Jhc2VGb2xkZXJ9L3RpY2tldHMvbHVjZW5lIik7CisJCXRoaXMuaW5kZXhTdG9yZSA9IG5ldyBMdWNlbmVJbmRleFN0b3JlKGx1Y2VuZURpciwgTHVjZW5lLklOREVYX1ZFUlNJT04pOwogCX0KIAogCS8qKgpAQCAtMTkyLDcgKzE5NSw3IEBACiAJICovCiAJcHVibGljIHZvaWQgZGVsZXRlQWxsKCkgewogCQljbG9zZSgpOwotCQlGaWxlVXRpbHMuZGVsZXRlKGx1Y2VuZURpcik7CisJCWluZGV4U3RvcmUuZGVsZXRlKCk7CiAJfQogCiAJLyoqCkBAIC0yMDEsMTAgKzIwNCw5IEBACiAJcHVibGljIGJvb2xlYW4gZGVsZXRlQWxsKFJlcG9zaXRvcnlNb2RlbCByZXBvc2l0b3J5KSB7CiAJCXRyeSB7CiAJCQlJbmRleFdyaXRlciB3cml0ZXIgPSBnZXRXcml0ZXIoKTsKLQkJCVN0YW5kYXJkQW5hbHl6ZXIgYW5hbHl6ZXIgPSBuZXcgU3RhbmRhcmRBbmFseXplcihsdWNlbmVWZXJzaW9uKTsKLQkJCVF1ZXJ5UGFyc2VyIHFwID0gbmV3IFF1ZXJ5UGFyc2VyKGx1Y2VuZVZlcnNpb24sIEx1Y2VuZS5yaWQubmFtZSgpLCBhbmFseXplcik7Ci0JCQlCb29sZWFuUXVlcnkgcXVlcnkgPSBuZXcgQm9vbGVhblF1ZXJ5KCk7Ci0JCQlxdWVyeS5hZGQocXAucGFyc2UocmVwb3NpdG9yeS5nZXRSSUQoKSksIE9jY3VyLk1VU1QpOworCQkJU3RhbmRhcmRBbmFseXplciBhbmFseXplciA9IG5ldyBTdGFuZGFyZEFuYWx5emVyKCk7CisJCQlRdWVyeVBhcnNlciBxcCA9IG5ldyBRdWVyeVBhcnNlcihMdWNlbmUucmlkLm5hbWUoKSwgYW5hbHl6ZXIpOworCQkJQm9vbGVhblF1ZXJ5IHF1ZXJ5ID0gbmV3IEJvb2xlYW5RdWVyeS5CdWlsZGVyKCkuYWRkKHFwLnBhcnNlKHJlcG9zaXRvcnkuZ2V0UklEKCkpLCBPY2N1ci5NVVNUKS5idWlsZCgpOwogCiAJCQlpbnQgbnVtRG9jc0JlZm9yZSA9IHdyaXRlci5udW1Eb2NzKCk7CiAJCQl3cml0ZXIuZGVsZXRlRG9jdW1lbnRzKHF1ZXJ5KTsKQEAgLTIyNSw2ICsyMjcsMTggQEAKIAl9CiAKIAkvKioKKwkgKiBDaGVja3MgaWYgYSB0aWNrZXRzIGluZGV4IGV4aXN0cywgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggTHVjZW5lLklOREVYX1ZFUlNJT04KKwkgKiBhbmQgdGhlIEx1Y2VuZSBjb2RlYyB2ZXJzaW9uLgorCSAqCisJICogQHJldHVybiB0cnVlIGlmIG5vIHRpY2tldHMgaW5kZXggaXMgZm91bmQsIGZhbHNlIG90aGVyd2lzZS4KKwkgKgorCSAqIEBzaW5jZSAxLjkuMAorCSAqLworCWJvb2xlYW4gc2hvdWxkUmVpbmRleCgpIHsKKwkJcmV0dXJuICEgdGhpcy5pbmRleFN0b3JlLmhhc0luZGV4KCk7CisJfQorCisJLyoqCiAJICogQnVsayBBZGQvVXBkYXRlIHRpY2tldHMgaW4gdGhlIEx1Y2VuZSBpbmRleAogCSAqCiAJICogQHBhcmFtIHRpY2tldHMKQEAgLTI4NywxMCArMzAxLDkgQEAKIAkgKiBAcmV0dXJuIHRydWUsIGlmIGRlbGV0ZWQsIGZhbHNlIGlmIG5vIHJlY29yZCB3YXMgZGVsZXRlZAogCSAqLwogCXByaXZhdGUgYm9vbGVhbiBkZWxldGUoU3RyaW5nIHJlcG9zaXRvcnksIGxvbmcgdGlja2V0SWQsIEluZGV4V3JpdGVyIHdyaXRlcikgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0JCVN0YW5kYXJkQW5hbHl6ZXIgYW5hbHl6ZXIgPSBuZXcgU3RhbmRhcmRBbmFseXplcihsdWNlbmVWZXJzaW9uKTsKLQkJUXVlcnlQYXJzZXIgcXAgPSBuZXcgUXVlcnlQYXJzZXIobHVjZW5lVmVyc2lvbiwgTHVjZW5lLmRpZC5uYW1lKCksIGFuYWx5emVyKTsKLQkJQm9vbGVhblF1ZXJ5IHF1ZXJ5ID0gbmV3IEJvb2xlYW5RdWVyeSgpOwotCQlxdWVyeS5hZGQocXAucGFyc2UoU3RyaW5nVXRpbHMuZ2V0U0hBMShyZXBvc2l0b3J5ICsgdGlja2V0SWQpKSwgT2NjdXIuTVVTVCk7CisJCVN0YW5kYXJkQW5hbHl6ZXIgYW5hbHl6ZXIgPSBuZXcgU3RhbmRhcmRBbmFseXplcigpOworCQlRdWVyeVBhcnNlciBxcCA9IG5ldyBRdWVyeVBhcnNlcihMdWNlbmUuZGlkLm5hbWUoKSwgYW5hbHl6ZXIpOworCQlCb29sZWFuUXVlcnkgcXVlcnkgPSBuZXcgQm9vbGVhblF1ZXJ5LkJ1aWxkZXIoKS5hZGQocXAucGFyc2UoU3RyaW5nVXRpbHMuZ2V0U0hBMShyZXBvc2l0b3J5ICsgdGlja2V0SWQpKSwgT2NjdXIuTVVTVCkuYnVpbGQoKTsKIAogCQlpbnQgbnVtRG9jc0JlZm9yZSA9IHdyaXRlci5udW1Eb2NzKCk7CiAJCXdyaXRlci5kZWxldGVEb2N1bWVudHMocXVlcnkpOwpAQCAtMzMxLDMwICszNDQsMzAgQEAKIAkJCXJldHVybiBDb2xsZWN0aW9ucy5lbXB0eUxpc3QoKTsKIAkJfQogCQlTZXQ8UXVlcnlSZXN1bHQ+IHJlc3VsdHMgPSBuZXcgTGlua2VkSGFzaFNldDxRdWVyeVJlc3VsdD4oKTsKLQkJU3RhbmRhcmRBbmFseXplciBhbmFseXplciA9IG5ldyBTdGFuZGFyZEFuYWx5emVyKGx1Y2VuZVZlcnNpb24pOworCQlTdGFuZGFyZEFuYWx5emVyIGFuYWx5emVyID0gbmV3IFN0YW5kYXJkQW5hbHl6ZXIoKTsKIAkJdHJ5IHsKIAkJCS8vIHNlYXJjaCB0aGUgdGl0bGUsIGRlc2NyaXB0aW9uIGFuZCBjb250ZW50Ci0JCQlCb29sZWFuUXVlcnkgcXVlcnkgPSBuZXcgQm9vbGVhblF1ZXJ5KCk7CisJCQlCb29sZWFuUXVlcnkuQnVpbGRlciBibGRyID0gbmV3IEJvb2xlYW5RdWVyeS5CdWlsZGVyKCk7CiAJCQlRdWVyeVBhcnNlciBxcDsKIAotCQkJcXAgPSBuZXcgUXVlcnlQYXJzZXIobHVjZW5lVmVyc2lvbiwgTHVjZW5lLnRpdGxlLm5hbWUoKSwgYW5hbHl6ZXIpOworCQkJcXAgPSBuZXcgUXVlcnlQYXJzZXIoTHVjZW5lLnRpdGxlLm5hbWUoKSwgYW5hbHl6ZXIpOwogCQkJcXAuc2V0QWxsb3dMZWFkaW5nV2lsZGNhcmQodHJ1ZSk7Ci0JCQlxdWVyeS5hZGQocXAucGFyc2UodGV4dCksIE9jY3VyLlNIT1VMRCk7CisJCQlibGRyLmFkZChxcC5wYXJzZSh0ZXh0KSwgT2NjdXIuU0hPVUxEKTsKIAotCQkJcXAgPSBuZXcgUXVlcnlQYXJzZXIobHVjZW5lVmVyc2lvbiwgTHVjZW5lLmJvZHkubmFtZSgpLCBhbmFseXplcik7CisJCQlxcCA9IG5ldyBRdWVyeVBhcnNlcihMdWNlbmUuYm9keS5uYW1lKCksIGFuYWx5emVyKTsKIAkJCXFwLnNldEFsbG93TGVhZGluZ1dpbGRjYXJkKHRydWUpOwotCQkJcXVlcnkuYWRkKHFwLnBhcnNlKHRleHQpLCBPY2N1ci5TSE9VTEQpOworCQkJYmxkci5hZGQocXAucGFyc2UodGV4dCksIE9jY3VyLlNIT1VMRCk7CiAKLQkJCXFwID0gbmV3IFF1ZXJ5UGFyc2VyKGx1Y2VuZVZlcnNpb24sIEx1Y2VuZS5jb250ZW50Lm5hbWUoKSwgYW5hbHl6ZXIpOworCQkJcXAgPSBuZXcgUXVlcnlQYXJzZXIoTHVjZW5lLmNvbnRlbnQubmFtZSgpLCBhbmFseXplcik7CiAJCQlxcC5zZXRBbGxvd0xlYWRpbmdXaWxkY2FyZCh0cnVlKTsKLQkJCXF1ZXJ5LmFkZChxcC5wYXJzZSh0ZXh0KSwgT2NjdXIuU0hPVUxEKTsKKwkJCWJsZHIuYWRkKHFwLnBhcnNlKHRleHQpLCBPY2N1ci5TSE9VTEQpOwogCiAJCQlJbmRleFNlYXJjaGVyIHNlYXJjaGVyID0gZ2V0U2VhcmNoZXIoKTsKLQkJCVF1ZXJ5IHJld3JpdHRlblF1ZXJ5ID0gc2VhcmNoZXIucmV3cml0ZShxdWVyeSk7CisJCQlRdWVyeSByZXdyaXR0ZW5RdWVyeSA9IHNlYXJjaGVyLnJld3JpdGUoYmxkci5idWlsZCgpKTsKIAogCQkJbG9nLmRlYnVnKHJld3JpdHRlblF1ZXJ5LnRvU3RyaW5nKCkpOwogCi0JCQlUb3BTY29yZURvY0NvbGxlY3RvciBjb2xsZWN0b3IgPSBUb3BTY29yZURvY0NvbGxlY3Rvci5jcmVhdGUoNTAwMCwgdHJ1ZSk7CisJCQlUb3BTY29yZURvY0NvbGxlY3RvciBjb2xsZWN0b3IgPSBUb3BTY29yZURvY0NvbGxlY3Rvci5jcmVhdGUoNTAwMCk7CiAJCQlzZWFyY2hlci5zZWFyY2gocmV3cml0dGVuUXVlcnksIGNvbGxlY3Rvcik7CiAJCQlpbnQgb2Zmc2V0ID0gTWF0aC5tYXgoMCwgKHBhZ2UgLSAxKSAqIHBhZ2VTaXplKTsKIAkJCVNjb3JlRG9jW10gaGl0cyA9IGNvbGxlY3Rvci50b3BEb2NzKG9mZnNldCwgcGFnZVNpemUpLnNjb3JlRG9jczsKQEAgLTM5Miw5ICs0MDUsOSBAQAogCQl9CiAKIAkJU2V0PFF1ZXJ5UmVzdWx0PiByZXN1bHRzID0gbmV3IExpbmtlZEhhc2hTZXQ8UXVlcnlSZXN1bHQ+KCk7Ci0JCVN0YW5kYXJkQW5hbHl6ZXIgYW5hbHl6ZXIgPSBuZXcgU3RhbmRhcmRBbmFseXplcihsdWNlbmVWZXJzaW9uKTsKKwkJU3RhbmRhcmRBbmFseXplciBhbmFseXplciA9IG5ldyBTdGFuZGFyZEFuYWx5emVyKCk7CiAJCXRyeSB7Ci0JCQlRdWVyeVBhcnNlciBxcCA9IG5ldyBRdWVyeVBhcnNlcihsdWNlbmVWZXJzaW9uLCBMdWNlbmUuY29udGVudC5uYW1lKCksIGFuYWx5emVyKTsKKwkJCVF1ZXJ5UGFyc2VyIHFwID0gbmV3IFF1ZXJ5UGFyc2VyKEx1Y2VuZS5jb250ZW50Lm5hbWUoKSwgYW5hbHl6ZXIpOwogCQkJUXVlcnkgcXVlcnkgPSBxcC5wYXJzZShxdWVyeVRleHQpOwogCiAJCQlJbmRleFNlYXJjaGVyIHNlYXJjaGVyID0gZ2V0U2VhcmNoZXIoKTsKQEAgLTQwOSw3ICs0MjIsNyBAQAogCQkJCXNvcnQgPSBuZXcgU29ydChMdWNlbmUuZnJvbVN0cmluZyhzb3J0QnkpLmFzU29ydEZpZWxkKGRlc2MpKTsKIAkJCX0KIAkJCWludCBtYXhTaXplID0gNTAwMDsKLQkJCVRvcEZpZWxkRG9jcyBkb2NzID0gc2VhcmNoZXIuc2VhcmNoKHJld3JpdHRlblF1ZXJ5LCBudWxsLCBtYXhTaXplLCBzb3J0LCBmYWxzZSwgZmFsc2UpOworCQkJVG9wRmllbGREb2NzIGRvY3MgPSBzZWFyY2hlci5zZWFyY2gocmV3cml0dGVuUXVlcnksIG1heFNpemUsIHNvcnQsIGZhbHNlLCBmYWxzZSk7CiAJCQlpbnQgc2l6ZSA9IChwYWdlU2l6ZSA8PSAwKSA/IG1heFNpemUgOiBwYWdlU2l6ZTsKIAkJCWludCBvZmZzZXQgPSBNYXRoLm1heCgwLCAocGFnZSAtIDEpICogc2l6ZSk7CiAJCQlTY29yZURvY1tdIGhpdHMgPSBzdWJzZXQoZG9jcy5zY29yZURvY3MsIG9mZnNldCwgc2l6ZSk7CkBAIC00NDMsMTQgKzQ1NiwxMSBAQAogCiAJcHJpdmF0ZSBJbmRleFdyaXRlciBnZXRXcml0ZXIoKSB0aHJvd3MgSU9FeGNlcHRpb24gewogCQlpZiAod3JpdGVyID09IG51bGwpIHsKLQkJCURpcmVjdG9yeSBkaXJlY3RvcnkgPSBGU0RpcmVjdG9yeS5vcGVuKGx1Y2VuZURpcik7CisJCQlpbmRleFN0b3JlLmNyZWF0ZSgpOwogCi0JCQlpZiAoIWx1Y2VuZURpci5leGlzdHMoKSkgewotCQkJCWx1Y2VuZURpci5ta2RpcnMoKTsKLQkJCX0KLQotCQkJU3RhbmRhcmRBbmFseXplciBhbmFseXplciA9IG5ldyBTdGFuZGFyZEFuYWx5emVyKGx1Y2VuZVZlcnNpb24pOwotCQkJSW5kZXhXcml0ZXJDb25maWcgY29uZmlnID0gbmV3IEluZGV4V3JpdGVyQ29uZmlnKGx1Y2VuZVZlcnNpb24sIGFuYWx5emVyKTsKKwkJCURpcmVjdG9yeSBkaXJlY3RvcnkgPSBGU0RpcmVjdG9yeS5vcGVuKGluZGV4U3RvcmUuZ2V0UGF0aCgpKTsKKwkJCVN0YW5kYXJkQW5hbHl6ZXIgYW5hbHl6ZXIgPSBuZXcgU3RhbmRhcmRBbmFseXplcigpOworCQkJSW5kZXhXcml0ZXJDb25maWcgY29uZmlnID0gbmV3IEluZGV4V3JpdGVyQ29uZmlnKGFuYWx5emVyKTsKIAkJCWNvbmZpZy5zZXRPcGVuTW9kZShPcGVuTW9kZS5DUkVBVEVfT1JfQVBQRU5EKTsKIAkJCXdyaXRlciA9IG5ldyBJbmRleFdyaXRlcihkaXJlY3RvcnksIGNvbmZpZyk7CiAJCX0KQEAgLTU1NCwxNCArNTY0LDE3IEBACiAJCQlyZXR1cm47CiAJCX0KIAkJZG9jLmFkZChuZXcgTG9uZ0ZpZWxkKGx1Y2VuZS5uYW1lKCksIHZhbHVlLmdldFRpbWUoKSwgU3RvcmUuWUVTKSk7CisJCWRvYy5hZGQobmV3IE51bWVyaWNEb2NWYWx1ZXNGaWVsZChsdWNlbmUubmFtZSgpLCB2YWx1ZS5nZXRUaW1lKCkpKTsKIAl9CiAKIAlwcml2YXRlIHZvaWQgdG9Eb2NGaWVsZChEb2N1bWVudCBkb2MsIEx1Y2VuZSBsdWNlbmUsIGxvbmcgdmFsdWUpIHsKIAkJZG9jLmFkZChuZXcgTG9uZ0ZpZWxkKGx1Y2VuZS5uYW1lKCksIHZhbHVlLCBTdG9yZS5ZRVMpKTsKKwkJZG9jLmFkZChuZXcgTnVtZXJpY0RvY1ZhbHVlc0ZpZWxkKGx1Y2VuZS5uYW1lKCksIHZhbHVlKSk7CiAJfQogCiAJcHJpdmF0ZSB2b2lkIHRvRG9jRmllbGQoRG9jdW1lbnQgZG9jLCBMdWNlbmUgbHVjZW5lLCBpbnQgdmFsdWUpIHsKIAkJZG9jLmFkZChuZXcgSW50RmllbGQobHVjZW5lLm5hbWUoKSwgdmFsdWUsIFN0b3JlLllFUykpOworCQlkb2MuYWRkKG5ldyBOdW1lcmljRG9jVmFsdWVzRmllbGQobHVjZW5lLm5hbWUoKSwgdmFsdWUpKTsKIAl9CiAKIAlwcml2YXRlIHZvaWQgdG9Eb2NGaWVsZChEb2N1bWVudCBkb2MsIEx1Y2VuZSBsdWNlbmUsIFN0cmluZyB2YWx1ZSkgewpAQCAtNTY5LDYgKzU4Miw3IEBACiAJCQlyZXR1cm47CiAJCX0KIAkJZG9jLmFkZChuZXcgb3JnLmFwYWNoZS5sdWNlbmUuZG9jdW1lbnQuRmllbGQobHVjZW5lLm5hbWUoKSwgdmFsdWUsIFRleHRGaWVsZC5UWVBFX1NUT1JFRCkpOworCQlkb2MuYWRkKG5ldyBTb3J0ZWREb2NWYWx1ZXNGaWVsZChsdWNlbmUubmFtZSgpLCBuZXcgQnl0ZXNSZWYodmFsdWUpKSk7CiAJfQogCiAJLyoqCkBAIC02NjMsNCArNjc3LDQgQEAKIAkJaW50IGkgPSBJbnRlZ2VyLnBhcnNlSW50KHZhbCk7CiAJCXJldHVybiBpOwogCX0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3V0aWxzL0x1Y2VuZUluZGV4U3RvcmUuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvdXRpbHMvTHVjZW5lSW5kZXhTdG9yZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwNWUyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3V0aWxzL0x1Y2VuZUluZGV4U3RvcmUuamF2YQpAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTcgZ2l0YmxpdC5jb20uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uZ2l0YmxpdC51dGlsczsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLm5pby5maWxlLlBhdGg7CisKKy8qKgorICogQGF1dGhvciBGbG9yaWFuIFpzY2hvY2tlCisgKgorICogQHNpbmNlIDEuOS4wCisgKi8KK3B1YmxpYyBjbGFzcyBMdWNlbmVJbmRleFN0b3JlCit7CisKKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMVUNFTkVfQ09ERUNfVkVSU0lPTiA9IDU0OworCisJcHJvdGVjdGVkIEZpbGUgaW5kZXhGb2xkZXI7CisKKwkvKioKKwkgKiBDb25zdHJ1Y3RvciBmb3IgYSBiYXNlIGZvbGRlciB0aGF0IGNvbnRhaW5zIHRoZSB2ZXJzaW9uIHNwZWNpZmljIGluZGV4IGZvbGRlcnMKKwkgKiBhbmQgYW4gaW5kZXggdmVyc2lvbi4KKwkgKgorCSAqIEBwYXJhbSBsdWNlbmVGb2xkZXIKKwkgKiAJCQlQYXRoIHRvIHRoZSBiYXNlIGZvbGRlciBmb3IgdGhlIEx1Y2VuZSBpbmRpY2VzLCBpLmUuIHRoZSBjb21tb24gImx1Y2VuZSIgZGlyZWN0b3J5LgorCSAqIEBwYXJhbSBpbmRleFZlcnNpb24KKwkgKiAJCQlWZXJzaW9uIG9mIHRoZSBpbmRleCBkZWZpbml0aW9uCisJICovCisJcHVibGljIEx1Y2VuZUluZGV4U3RvcmUoRmlsZSBsdWNlbmVGb2xkZXIsIGludCBpbmRleFZlcnNpb24pCisJeworCQl0aGlzLmluZGV4Rm9sZGVyID0gbmV3IEZpbGUobHVjZW5lRm9sZGVyLCBpbmRleFZlcnNpb24gKyAiXyIgKyBMVUNFTkVfQ09ERUNfVkVSU0lPTik7CisJfQorCisKKworCS8qKgorCSAqIENyZWF0ZSB0aGUgTHVjZW5lIGluZGV4IGRpcmVjdG9yeSBmb3IgdGhpcyBpbmRleCB2ZXJzaW9uIGFuZCBMdWNlbmUgY29kZWMgdmVyc2lvbgorCSAqLworCXB1YmxpYyB2b2lkIGNyZWF0ZSgpCisJeworCQlpZiAoISBpbmRleEZvbGRlci5leGlzdHMoKSkgeworCQkJaW5kZXhGb2xkZXIubWtkaXJzKCk7CisJCX0KKwl9CisKKworCS8qKgorCSAqIERlbGV0ZSB0aGUgTHVjZW5lIGluZGV4IGRpcmVjdG9yeSBmb3IgdGhpcyBpbmRleCB2ZXJzaW9uIGFuZCBMdWNlbmUgY29kZWMgdmVyc2lvbgorCSAqCisJICogQHJldHVybglUcnVlIGlmIHRoZSBkaXJlY3RvcnkgY291bGQgc3VjY2Vzc2Z1bGx5IGJlIGRlbGV0ZWQuCisJICovCisJcHVibGljIGJvb2xlYW4gZGVsZXRlKCkKKwl7CisJCWlmIChpbmRleEZvbGRlci5leGlzdHMoKSkgeworCQkJcmV0dXJuIEZpbGVVdGlscy5kZWxldGUoaW5kZXhGb2xkZXIpOworCQl9CisJCXJldHVybiB0cnVlOworCX0KKworCisKKwkvKioKKwkgKiBAcmV0dXJuCVRoZSBQYXRoIHRvIHRoZSBpbmRleCBmb2xkZXIKKwkgKi8KKwlwdWJsaWMgUGF0aCBnZXRQYXRoKCkKKwl7CisJCXJldHVybiBpbmRleEZvbGRlci50b1BhdGgoKTsKKwl9CisKKworCisJLyoqCisJICogQ2hlY2sgaWYgYW4gaW5kZXggb2YgdGhlIHJlc3BlY3RpdmUgdmVyc2lvbiwgb3IgY29tcGF0aWJsZSwgYWxyZWFkeSBleGlzdHMuCisJICoKKwkgKiBAcmV0dXJuCVRydWUgaWYgYW4gaW5kZXggZXhpc3RzLCBGYWxzZSBvdGhlcndpc2UKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBoYXNJbmRleCgpCisJeworCQlyZXR1cm4gaW5kZXhGb2xkZXIuZXhpc3RzKCkgJiYKKwkJCQlpbmRleEZvbGRlci5pc0RpcmVjdG9yeSgpICYmCisJCQkJKGluZGV4Rm9sZGVyLmxpc3QoKS5sZW5ndGggPiAxKTsgIC8vIE11c3QgaGF2ZSBtb3JlIHRoYW4gJ3dyaXRlLmxvY2snCisJfQorCit9CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwLnByb3BlcnRpZXMgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwLnByb3BlcnRpZXMKaW5kZXggNjYxMDFmNC4uYzQ2YmQ2MyAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcC5wcm9wZXJ0aWVzCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHAucHJvcGVydGllcwpAQCAtMjE4LDcgKzIxOCw4IEBACiBnYi53b3JraW5nQ29weSA9IHdvcmtpbmcgY29weQogZ2Iud29ya2luZ0NvcHlXYXJuaW5nID0gdGhpcyByZXBvc2l0b3J5IGhhcyBhIHdvcmtpbmcgY29weSBhbmQgY2FuIG5vdCByZWNlaXZlIHB1c2hlcwogZ2IucXVlcnkgPSBxdWVyeQotZ2IucXVlcnlIZWxwID0gU3RhbmRhcmQgcXVlcnkgc3ludGF4IGlzIHN1cHBvcnRlZC48cC8+PHAvPlBsZWFzZSBzZWUgPGEgdGFyZ2V0PSJfbmV3IiBocmVmPSJodHRwOi8vbHVjZW5lLmFwYWNoZS5vcmcvY29yZS9vbGRfdmVyc2lvbmVkX2RvY3MvdmVyc2lvbnMvM181XzAvcXVlcnlwYXJzZXJzeW50YXguaHRtbCI+THVjZW5lIFF1ZXJ5IFBhcnNlciBTeW50YXg8L2E+IGZvciBkZXRhaWxzLgorZ2IucXVlcnlIZWxwID0gU3RhbmRhcmQgcXVlcnkgc3ludGF4IGlzIHN1cHBvcnRlZC48cC8+PHAvPlBsZWFzZSBzZWUgJHtxdWVyeVN5bnRheH0gZm9yIGRldGFpbHMuCitnYi5xdWVyeVN5bnRheCA9IEx1Y2VuZSBRdWVyeSBQYXJzZXIgU3ludGF4CiBnYi5xdWVyeVJlc3VsdHMgPSByZXN1bHRzIHswfSAtIHsxfSAoezJ9IGhpdHMpCiBnYi5ub0hpdHMgPSBubyBoaXRzCiBnYi5hdXRob3JlZCA9IGF1dGhvcmVkCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2NzLnByb3BlcnRpZXMgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2NzLnByb3BlcnRpZXMKaW5kZXggNThmMGQzOS4uNDVlYjQyOCAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9jcy5wcm9wZXJ0aWVzCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfY3MucHJvcGVydGllcwpAQCAtMSw2ICsxLDYgQEAKIAogZ2IuemlwPXppcAotZ2IucmVwb3NpdG9yeT1cdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCitnYi5yZXBvc2l0b3J5PXJlcG96aXRcdTAwZTFcdTAxNTkKIGdiLm93bmVyPXZsYXN0blx1MDBlZGsKIGdiLmRlc2NyaXB0aW9uPXBvcGlzCiBnYi5sYXN0Q2hhbmdlPXBvc2xlZG5cdTAwZWQgem1cdTAxMWJuYQpAQCAtMjIsNyArMjIsNyBAQAogZ2IuYWxsQnJhbmNoZXM9dlx1MDE2MWVjaG55IHZcdTAxMWJ0dmUuLi4KIGdiLm1vcmVMb2dzPXZcdTAxNjFlY2hueSBjb21taXR5Li4uCiBnYi5zdW1tYXJ5PXNvdWhybgotZ2IubmV3UmVwb3NpdG9yeT1ub3ZcdTAwZTkgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYgorZ2IubmV3UmVwb3NpdG9yeT1ub3ZcdTAwZmQgcmVwb3ppdFx1MDBlMVx1MDE1OQogZ2IubmV3VXNlcj1ub3ZcdTAwZmQgdVx1MDE3ZWl2YXRlbAogZ2IucGFnZUZpcnN0PXBydm5cdTAwZWQKIGdiLnBhZ2VQcmV2aW91cz1wXHUwMTU5ZWRjaG96XHUwMGVkCkBAIC01NSw3ICs1NSw3IEBACiBnYi5pc0Zyb3plbj1qZSB6bXJhXHUwMTdlZW5cdTAwZmQKIGdiLmNhbmNlbD16cnVcdTAxNjFpdAogZ2IuY2hhbmdlUGFzc3dvcmQ9em1cdTAxMWJuaXQgaGVzbG8KLWdiLnJlcG9zaXRvcmllcz1cdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCitnYi5yZXBvc2l0b3JpZXM9cmVwb3ppdFx1MDBlMVx1MDE1OWUKIGdiLmZyZXF1ZW5jeT1mcmVrdmVuY2UKIGdiLmZvbGRlcj1zbG9cdTAxN2VrYQogZ2IubGFzdFB1bGw9cG9zbGVkblx1MDBlZCBwdWxsCkBAIC03OCwxNyArNzgsMTcgQEAKIGdiLmxvZz16XHUwMGUxem5hbQogZ2IudGlja2V0PVx1MDBmYWtvbAogZ2IuY29tbWl0ZGlmZj1jb21taXRkaWZmCi1nYi50aWNrZXRzPXVrb2x5CitnYi50aWNrZXRzPVx1MDBmYWtvbHkKIGdiLmRpZmZ0b2N1cnJlbnQ9cG9yb3ZuZWogc2Ugc291XHUwMTBkYXNuXHUwMGZkbQogZ2IubWV0cmljcz1tZXRyaWt5CiBnYi5tYXJrZG93bj1tYXJrZG93bgogZ2IubWlzc2luZ1VzZXJuYW1lPUNoeWJcdTAwZmQgdVx1MDE3ZWl2YXRlbHNrXHUwMGU5IGptXHUwMGU5bm8KIGdiLnNlYXJjaFR5cGVUb29sdGlwPVZ5YmVydGUgdHlwIGhsZWRcdTAwZTFuXHUwMGVkCi1nYi5lbmFibGVUaWNrZXRzPXBvdm9saXQgdWtvbHkKK2diLmVuYWJsZVRpY2tldHM9cG92b2xpdCBcdTAwZmFrb2x5CiBnYi5zaG93UmVtb3RlQnJhbmNoZXM9dWtcdTAwZTF6YXQgdnpkXHUwMGUxbGVuXHUwMGU5IHZcdTAxMWJ0dmUKIGdiLmVkaXRVc2Vycz11cHJhdml0IHVcdTAxN2VpdmF0ZWxlCiBnYi5jb25maXJtUGFzc3dvcmQ9cG90dnJkaXQgaGVzbG8KLWdiLnJlc3RyaWN0ZWRSZXBvc2l0b3JpZXM9b21lemVuXHUwMGU5IFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIKK2diLnJlc3RyaWN0ZWRSZXBvc2l0b3JpZXM9b21lemVuXHUwMGZkIHJlcG96aXRcdTAwZTFcdTAxNTkKIGdiLmNhbkFkbWluPW1cdTAxNmZcdTAxN2VlIGFkbWluaXN0cm92YXQKIGdiLm5vdFJlc3RyaWN0ZWQ9YW5vbnltblx1MDBlZCBwcm9obFx1MDBlZFx1MDE3ZWVuXHUwMGVkLCBjbG9uZSBhIHB1c2gKIGdiLnZpZXc9cHJvaGxcdTAwZWRcdTAxN2Vlblx1MDBlZApAQCAtOTcsOCArOTcsOCBAQAogZ2IucHVzaFJlc3RyaWN0ZWQ9b3ZcdTAxMWJcdTAxNTllblx1MDBmZCBwdXNoCiBnYi5jbG9uZVJlc3RyaWN0ZWQ9b3ZcdTAxMWJcdTAxNTllblx1MDBmZCBjbG9uZSBhIHB1c2gKIGdiLnZpZXdSZXN0cmljdGVkPW92XHUwMTFiXHUwMTU5ZW5cdTAwZTkgcHJvaGxcdTAwZWRcdTAxN2Vlblx1MDBlZCwgY2xvbmUgYSBwdXNoCi1nYi51c2VEb2NzRGVzY3JpcHRpb249dnlwXHUwMGVkXHUwMTYxZSBNYXJrZG93biBkb2t1bWVudGFjaSB2IFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRpCi1nYi5mZWRlcmF0ZWRSZXBvc2l0b3J5RGVmaW5pdGlvbnM9ZGVmaW5pY2UgXHUwMGZhbG9cdTAxN2VpXHUwMTYxXHUwMTY1CitnYi51c2VEb2NzRGVzY3JpcHRpb249dnlwXHUwMGVkXHUwMTYxZSBNYXJrZG93biBkb2t1bWVudGFjaSB2IHJlcG96aXRcdTAwZTFcdTAxNTlpCitnYi5mZWRlcmF0ZWRSZXBvc2l0b3J5RGVmaW5pdGlvbnM9ZGVmaW5pY2UgcmVwb3ppdFx1MDBlMVx1MDE1OVx1MDE2ZgogZ2IuZmVkZXJhdGVkVXNlckRlZmluaXRpb25zPWRlZmluaWNlIHVcdTAxN2VpdmF0ZWxcdTAxNmYKIGdiLmZlZGVyYXRlZFNldHRpbmdEZWZpbml0aW9ucz1kZWZpbmljZSBuYXN0YXZlblx1MDBlZAogZ2IudHlwZT10eXAKQEAgLTEzOSw3ICsxMzksNyBAQAogZ2IuYWN0aXZpdHk9YWt0aXZpdGEKIGdiLnN1YnNjcmliZT1wXHUwMTU5aWhsXHUwMGUxc2l0CiBnYi5icmFuY2g9dlx1MDExYnRldgotZ2IucmVjZW50QWN0aXZpdHk9cG9zbGVkblx1MDBlZCBrYXRpdml0YQorZ2IucmVjZW50QWN0aXZpdHk9cG9zbGVkblx1MDBlZCBha3Rpdml0YQogZ2IuY29tbWl0cz16bVx1MDExYm55CiBnYi50ZWFtcz10XHUwMGZkbXkKIGdiLnRlYW1OYW1lPWptXHUwMGU5bm8gdFx1MDBmZG11CkBAIC0xNDcsMTYgKzE0NywxNiBAQAogZ2IudGVhbU1lbWJlcnNoaXBzPVx1MDEwZGxlbnN0dlx1MDBlZCB2IHRcdTAwZmRtdQogZ2IubmV3VGVhbT1ub3ZcdTAwZmQgdFx1MDBmZG0KIGdiLnBlcm1pdHRlZFRlYW1zPXBvdm9sZW5cdTAwZTkgdFx1MDBmZG15Ci1nYi5lbXB0eVJlcG9zaXRvcnk9cHJcdTAwZTF6ZG5cdTAwZTkgdWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIKLWdiLnJlcG9zaXRvcnlVcmw9VVJMIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIKK2diLmVtcHR5UmVwb3NpdG9yeT1wclx1MDBlMXpkblx1MDBmZCByZXBveml0XHUwMGUxXHUwMTU5CitnYi5yZXBvc2l0b3J5VXJsPVVSTCByZXBveml0XHUwMGUxXHUwMTU5ZQogZ2IuZmlsdGVycz1maWx0cnkKIGdiLmdlbmVyYWxEZXNjcmlwdGlvbj1vYmVjblx1MDBlMSBuYXN0YXZlblx1MDBlZAogZ2IucGFnZXM9c3RyXHUwMGUxbmt5CiBnYi53b3JraW5nQ29weT1wcmFjb3ZuXHUwMGVkIGtvcGllCiBnYi5lbXB0eT1wclx1MDBlMXpkblx1MDBmZAotZ2IuZGVsZXRlUmVwb3NpdG9yeT1TbWF6YXQgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiAiezB9Ij8KLWdiLnJlcG9zaXRvcnlEZWxldGVkPVx1MDBkYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIgJyd7MH0nJyBzbWF6XHUwMGUxbm8uCi1nYi5yZXBvc2l0b3J5RGVsZXRlRmFpbGVkPVNtYXpcdTAwZTFuXHUwMGVkIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIgJyd7MH0nJyBzZWxoYWxvIQorZ2IuZGVsZXRlUmVwb3NpdG9yeT1TbWF6YXQgcmVwb3ppdFx1MDBlMVx1MDE1OSAiezB9Ij8KK2diLnJlcG9zaXRvcnlEZWxldGVkPVJlcG96aXRcdTAwZTFcdTAxNTkgJyd7MH0nJyBzbWF6XHUwMGUxbm8uCitnYi5yZXBvc2l0b3J5RGVsZXRlRmFpbGVkPVNtYXpcdTAwZTFuXHUwMGVkIHJlcG96aXRcdTAwZTFcdTAxNTllICcnezB9Jycgc2VsaGFsbyEKIGdiLmRlbGV0ZVVzZXI9U21hemF0IHVcdTAxN2VpdmF0ZWxlICJ7MH0iPwogZ2IudXNlckRlbGV0ZWQ9VVx1MDE3ZWl2YXRlbCAnJ3swfScnIHNtYXpcdTAwZTFuLgogZ2IudXNlckRlbGV0ZUZhaWxlZD1DaHliYSBwcmkgbWF6XHUwMGUxblx1MDBlZCB1XHUwMTdlaXZhdGVsZSAnJ3swfScnIQpAQCAtMjEyLDcgKzIxMiw3IEBACiBnYi5vbmVDb21taXRUbz0xIGNvbW1pdCBkbwogZ2Iubm9NaWxlc3RvbmVTZWxlY3RlZD1tZXpuXHUwMGVkayBuZXZ5YnJcdTAwZTFuCiBnYi52ZXRvPXZldG92YXQKLWdiLmlsbGVnYWxDaGFyYWN0ZXJSZXBvc2l0b3J5TmFtZT1OZXBsYXRuXHUwMGZkIHpuYWsgJyd7MH0nJyB2ZSBqbVx1MDBlOW5cdTAxMWIgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYi4KK2diLmlsbGVnYWxDaGFyYWN0ZXJSZXBvc2l0b3J5TmFtZT1OZXBsYXRuXHUwMGZkIHpuYWsgJyd7MH0nJyB2ZSBqbVx1MDBlOW5cdTAxMWIgcmVwb3ppdFx1MDBlMVx1MDE1OWUuCiBnYi5lcnJvckFkbWluTG9naW5SZXF1aXJlZD1BZG1pbmlzdHJhY2UgdnlcdTAxN2VhZHVqZSBwXHUwMTU5aWhsXHUwMGUxXHUwMTYxZW5cdTAwZWQKIGdiLmNvbXBhcmU9cG9yb3ZuYXQKIGdiLm5DbG9zZWRUaWNrZXRzPXswfSB6YXZcdTAxNTllbm8KQEAgLTIyMSw3ICsyMjEsNyBAQAogZ2Iuc29ydD1zZVx1MDE1OWFkaXQKIGdiLmRlbGV0ZWRCcmFuY2g9c21hemF0IHZcdTAxMWJ0ZXYKIGdiLmV4cG9ydD1leHBvcnRvdmF0Ci1nYi5teVJlcG9zaXRvcmllcz1tb2plIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIKK2diLm15UmVwb3NpdG9yaWVzPW1vamUgcmVwb3ppdFx1MDBlMVx1MDE1OWUKIGdiLm1kNUZpbmdlclByaW50PU1ENSBvdGlzawogZ2Iud2F0Y2hpbmc9c2xlZG92YXQKIGdiLnNoYTFGaW5nZXJQcmludD1TSEExIG90aXNrCkBAIC0yNTYsNyArMjU2LDcgQEAKIGdiLnVwZGF0ZWQ9YWt0dWFsaXpvdlx1MDBlMW5vCiBnYi52b3RlcnM9aGxhc3VqXHUwMGVkY1x1MDBlZAogZ2IuYXQ9dgotZ2Iubm9TZWxlY3RlZFJlcG9zaXRvcmllc1dhcm5pbmc9cHJvc1x1MDBlZG0gdnliZXJ0ZSBqZWRubyBuZWJvIHZcdTAwZWRjZSBcdTAwZmFsb1x1MDE3ZWlcdTAxNjFcdTAxNjUhCitnYi5ub1NlbGVjdGVkUmVwb3NpdG9yaWVzV2FybmluZz1wcm9zXHUwMGVkbSB2eWJlcnRlIGplZGVuIG5lYm8gdlx1MDBlZGNlIHJlcG96aXRcdTAwZTFcdTAxNTlcdTAxNmYhCiBnYi50aWNrZXROPVx1MDBmYWtvbCAjezAKIGdiLnRpbWUuaW5Ib3Vycz1iXHUwMTFiaGVtIHswfSBob2RpbgogZ2Iuc29ydE5ld2VzdD1uZWpub3ZcdTAxMWJqXHUwMTYxXHUwMGVkCkBAIC0yNzQsNyArMjc0LDcgQEAKIGdiLmRpZmZEZWxldGVkRmlsZT1Tb3Vib3IgYnlsIHNtYXpcdTAwZTFuCiBnYi51c2VyQ3JlYXRlZD1Ob3ZcdTAwZmQgdVx1MDE3ZWl2YXRlbCAnJ3swfScnIFx1MDBmYXNwXHUwMTFiXHUwMTYxblx1MDExYiB2eXR2b1x1MDE1OWVuLgogZ2IudGVhbUNyZWF0ZWQ9Tm92XHUwMGZkIHRcdTAwZmRtICcnezB9JycgXHUwMGZhc3BcdTAxMWJcdTAxNjFuXHUwMTFiIHZ5dHZvXHUwMTU5ZW4uCi1nYi5pc1NwYXJrbGVzaGFyZWQ9XHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiBqZSBTcGFya2xlc2hhcmUKK2diLmlzU3BhcmtsZXNoYXJlZD1yZXBveml0XHUwMGUxXHUwMTU5IGplIFNwYXJrbGVzaGFyZQogZ2IublRvdGFsVGlja2V0cz17MH0gY2Vsa2VtCiBnYi5hbGw9dlx1MDE2MWVjaG55CiBnYi5uZXc9bm92XHUwMGZkCkBAIC0zMTUsMTMgKzMxNSwxMyBAQAogZ2IuaW5kZXhlZEJyYW5jaGVzRGVzY3JpcHRpb249VnliZXJ0ZSB2XHUwMTFidGV2IGt0ZXJcdTAwZTEgYnVkZSBpbmRleG92XHUwMGUxbmEgcG9tb2NcdTAwZWQgTHVjZW5lCiBnYi5jb3VsZE5vdENyZWF0ZUZlZGVyYXRpb25Qcm9wb3NhbD1OZWx6ZSB2eXR2b1x1MDE1OWl0IG5cdTAwZTF2cmggZmVkZXJhY2UhCiBnYi5jb21wbGV0ZUdyYXZhdGFyUHJvZmlsZT1Eb2tvblx1MDEwZGV0ZSBwcm9maWwgbmEgR3JhdmF0YXIuY29tCi1nYi5lcnJvck9ubHlBZG1pbk9yT3duZXJNYXlFZGl0UmVwb3NpdG9yeT1Qb3V6ZSBhZG1pbmlzdHJcdTAwZTF0b3IgbmVibyB2bGFzdG5cdTAwZWRrIG1cdTAxNmZcdTAxN2VlIHVwcmF2b3ZhdCBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCitnYi5lcnJvck9ubHlBZG1pbk9yT3duZXJNYXlFZGl0UmVwb3NpdG9yeT1Qb3V6ZSBhZG1pbmlzdHJcdTAwZTF0b3IgbmVibyB2bGFzdG5cdTAwZWRrIG1cdTAxNmZcdTAxN2VlIHVwcmF2b3ZhdCByZXBveml0XHUwMGUxXHUwMTU5CiBnYi5kaWZmQ29waWVkRmlsZT1Tb3Vib3IgYnlsIHprb3BcdTAwZWRyb3ZcdTAwZTFuIHogezB9CiBnYi5mYWlsZWRUb1JlYWRNZXNzYWdlPU5lbHplIHBcdTAxNTllXHUwMTBkXHUwMGVkc3Qgdlx1MDBmZGNob3pcdTAwZWQgenByXHUwMGUxdnUgeiB7MH0hCiBnYi5vcmdhbml6YXRpb25hbFVuaXQ9b3JnYW5pemFcdTAxMGRuXHUwMGVkIGplZG5vdGthCiBnYi5uZXdTU0xDZXJ0aWZpY2F0ZT1ub3ZcdTAwZmQgc2VydmVyb3ZcdTAwZmQgU1NMIGNlcnRpZmlrXHUwMGUxdAotZ2IuYW5vbnltb3VzUG9saWN5RGVzY3JpcHRpb249S2Rva29saSBtXHUwMTZmXHUwMTdlZSB6b2JyYXppdCBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiIGEgcHJvdlx1MDBlMWRcdTAxMWJ0IGNsb25lIGEgcHVzaC4KLWdiLmRlbGV0ZVJlcG9zaXRvcnlEZXNjcmlwdGlvbj1TbWF6YW5cdTAwZTEgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiBidWRvdSBuZW9ibm92aXRlbG5cdTAwZTEuCitnYi5hbm9ueW1vdXNQb2xpY3lEZXNjcmlwdGlvbj1LZG9rb2xpIG1cdTAxNmZcdTAxN2VlIHpvYnJheml0IHJlcG96aXRcdTAwZTFcdTAxNTkgYSBwcm92XHUwMGUxZFx1MDExYnQgY2xvbmUgYSBwdXNoLgorZ2IuZGVsZXRlUmVwb3NpdG9yeURlc2NyaXB0aW9uPVNtYXphblx1MDBlOSByZXBveml0XHUwMGUxXHUwMTU5ZSBidWRvdSBuZW9ibm92aXRlbG5cdTAwZTEuCiBnYi5hbGxvd0ZvcmtzPXBvdm9saXQgZm9ya3kKIGdiLm5ld01pbGVzdG9uZT1ub3ZcdTAwZmQgbWV6blx1MDBlZGsKIGdiLm5GZWRlcmF0aW9uUHJvcG9zYWxzVG9SZXZpZXc9ezB9IG5cdTAwZTF2cmhcdTAxNmYgZmVkZXJhY1x1MDBlZCBcdTAxMGRla1x1MDBlMSBuYSBwb3NvdXplblx1MDBlZC4KQEAgLTMzMCw3ICszMzAsNyBAQAogZ2IuZmFpbGVkVG9VcGRhdGVVc2VyPUFrdHVhbGl6YWNlIHVcdTAxN2VpdmF0ZWxza1x1MDBlOWhvIFx1MDBmYVx1MDEwZHR1IHNlbGhhbGEhCiBnYi5jb21taXRJc051bGw9Q29tbWl0IGplIG51bGwKIGdiLmNlcnRpZmljYXRlPWNlcnRpZmlrXHUwMGUxdAotZ2IuaXNNaXJyb3I9dG90byBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiIGplIHpyY2FkbG8KK2diLmlzTWlycm9yPXRlbnRvIHJlcG96aXRcdTAwZTFcdTAxNTkgamUgenJjYWRsbwogZ2IuYWNjZXNzUG9saWN5PU9wclx1MDBlMXZuXHUwMTFiblx1MDBlZCBwXHUwMTU5XHUwMGVkc3R1cHUKIGdiLnRvZGF5c0FjdGl2aXR5Tm9uZT1kbmVzIC8gbmljCiBnYi50cmFuc3BvcnRQcmVmZXJlbmNlPVByZWZlcmVuY2UgdHJhbnNwb3J0dQpAQCAtMzQ1LDcgKzM0NSw3IEBACiBnYi5hY2NvdW50UHJlZmVyZW5jZXM9UHJlZmVyZW5jZSBcdTAwZmFcdTAxMGR0dQogZ2IuYWN0aXZlPWFrdGl2blx1MDBlZAogZ2IuYWN0aXZlQXV0aG9ycz1ha3Rpdm5cdTAwZWQgdVx1MDE3ZWl2YXRlbFx1MDBlOQotZ2IuYWN0aXZlUmVwb3NpdG9yaWVzPWFrdGl2blx1MDBlZCBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCitnYi5hY3RpdmVSZXBvc2l0b3JpZXM9YWt0aXZuXHUwMGVkIHJlcG96aXRcdTAwZTFcdTAxNTllCiBnYi5hZGRDb21tZW50PXBcdTAxNTlpZGF0IGtvbWVudFx1MDBlMVx1MDE1OQogZ2IuYWRkZWRPbmVDb21taXQ9cFx1MDE1OWlkXHUwMGUxbiAxIGNvbW1pdAogZ2Iub3BhY2l0eUFkanVzdD1OYXN0YXZpdCBuZXByXHUwMTZmaGxlZG5vc3QKQEAgLTM1MywxMSArMzUzLDExIEBACiBnYi5hZmZpbGlhdGlvbkNoYW5nZWQ9cFx1MDE1OVx1MDBlZHNsdVx1MDE2MW5vc3Qgc2Ugem1cdTAxMWJuaWxhCiBnYi5tb3JlQ2hhbmdlcz12XHUwMTYxZWNobnkgem1cdTAxMWJueS4uLgogZ2IudmVyaWZ5Q29tbWl0dGVyTm90ZT12XHUwMTYxZWNobmEgc2xvdVx1MDEwZGVuXHUwMGVkIHZ5XHUwMTdlYWR1alx1MDBlZCAiLS1uby1mZiIgYWJ5IHNlIHZ5bnV0aWxhIGlkZW50aXRhIHZcdTAwZmR2b2pcdTAwZTFcdTAxNTllCi1nYi50b2tlbkp1ckRlc2NyaXB0aW9uPXZcdTAxNjFlY2huYSBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCi1nYi50b2tlblVuckRlc2NyaXB0aW9uPXZcdTAxNjFlY2huYSBcdTAxNmZsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiIGEgdVx1MDE3ZWl2YXRlbFx1MDBlOQotZ2IudG9rZW5BbGxEZXNjcmlwdGlvbj12XHUwMTYxZWNobmEgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiwgdVx1MDE3ZWl2YXRlbFx1MDBlOSBhIG5hc3RhdmVuXHUwMGVkCitnYi50b2tlbkp1ckRlc2NyaXB0aW9uPXZcdTAxNjFlY2hueSByZXBveml0XHUwMGUxXHUwMTU5ZQorZ2IudG9rZW5VbnJEZXNjcmlwdGlvbj12XHUwMTYxZWNobnkgcmVwb3ppdFx1MDBlMVx1MDE1OWUgYSB1XHUwMTdlaXZhdGVsXHUwMGU5CitnYi50b2tlbkFsbERlc2NyaXB0aW9uPXZcdTAxNjFlY2hueSByZXBveml0XHUwMGUxXHUwMTU5ZSwgdVx1MDE3ZWl2YXRlbFx1MDBlOSBhIG5hc3RhdmVuXHUwMGVkCiBnYi5oZWFwQWxsb2NhdGVkPWFsb2tvdmFuXHUwMGUxIGhhbGRhCi1nYi5hbGxvd0ZvcmtzRGVzY3JpcHRpb249cG92b2xpdCBvcHJcdTAwZTF2blx1MDExYm5cdTAwZmRtIHVcdTAxN2VpdmF0ZWxcdTAxNmZtIHZ5dHZcdTAwZTFcdTAxNTlldCBmb3JrIHRvaG90byBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCitnYi5hbGxvd0ZvcmtzRGVzY3JpcHRpb249cG92b2xpdCBvcHJcdTAwZTF2blx1MDExYm5cdTAwZmRtIHVcdTAxN2VpdmF0ZWxcdTAxNmZtIHZ5dHZcdTAwZTFcdTAxNTlldCBmb3JrIHRvaG90byByZXBveml0XHUwMGUxXHUwMTU5ZQogZ2IuYWNjZXB0TmV3VGlja2V0c0Rlc2NyaXB0aW9uPXBvdm9saXQgdnl0dlx1MDBlMVx1MDE1OWVuXHUwMGVkIGhsXHUwMGUxXHUwMTYxZW5cdTAwZWQgbyBjaHliXHUwMGUxY2gsIHZ5bGVwXHUwMTYxZW5cdTAwZWQsIHVsb2h5IGEgZGFsXHUwMTYxXHUwMGVkY2ggXHUwMGZha29sXHUwMTZmCiBnYi5hY2NlcHROZXdUaWNrZXRzPXBvdm9saXQgbm92XHUwMGU5IFx1MDBmYWtvbHkKIGdiLmFub255bW91c1VzZXI9YW5vbnltCkBAIC0zNjgsMTIgKzM2OCwxMiBAQAogZ2IuYm9keT10XHUwMTFibG8KIGdiLmNhQ29tcHJvbWlzZT1DQSBrb21wcm9taXRvdlx1MDBlMW5hCiBnYi5jYW5BZG1pbkRlc2NyaXB0aW9uPW1cdTAxNmZcdTAxN2VlIHNwcmF2b3ZhdCBHaXRibGl0IHNlcnZlcgotZ2IuY2FuQ3JlYXRlRGVzY3JpcHRpb249bVx1MDE2Zlx1MDE3ZWUgdnl0dlx1MDBlMVx1MDE1OWV0IG9zb2JuXHUwMGVkIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIKK2diLmNhbkNyZWF0ZURlc2NyaXB0aW9uPW1cdTAxNmZcdTAxN2VlIHZ5dHZcdTAwZTFcdTAxNTlldCBvc29iblx1MDBlZCByZXBveml0XHUwMGUxXHUwMTU5CiBnYi5jYW5Gb3JrPW1cdTAxNmZcdTAxN2VlIHByb3ZcdTAwZTFkXHUwMTFidCBmb3JrCi1nYi5jYW5Gb3JrRGVzY3JpcHRpb249bVx1MDE2Zlx1MDE3ZWUgcHJvdlx1MDBlMWRcdTAxMWJ0IGZvcmsgb3ByXHUwMGUxdm5cdTAxMWJuXHUwMGZkY2ggXHUwMGZhbG9cdTAxN2VpXHUwMTYxdCBkbyBvc29iblx1MDBlZGNoIFx1MDBmYWxvXHUwMTdlaVx1MDE2MVx1MDE2NQotZ2IuY2FuTm90TG9hZFJlcG9zaXRvcnk9TmVsemUgbmFcdTAxMGRcdTAwZWRzdCBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCitnYi5jYW5Gb3JrRGVzY3JpcHRpb249bVx1MDE2Zlx1MDE3ZWUgcHJvdlx1MDBlMWRcdTAxMWJ0IGZvcmsgb3ByXHUwMGUxdm5cdTAxMWJuXHUwMGZkY2ggcmVwb3ppdFx1MDBlMVx1MDE1OVx1MDE2ZiBkbyBvc29iblx1MDBlZGNoIHJlcG96aXRcdTAwZTFcdTAxNTlcdTAxNmYKK2diLmNhbk5vdExvYWRSZXBvc2l0b3J5PU5lbHplIG5hXHUwMTBkXHUwMGVkc3QgcmVwb3ppdFx1MDBlMVx1MDE1OQogZ2IuY2FuTm90UHJvcG9zZVBhdGNoc2V0PW5lbHplIG5hdnJobm91dCBzYWR1IHptXHUwMTFibgotZ2IuYWNjZXB0TmV3UGF0Y2hzZXRzRGVzY3JpcHRpb249cFx1MDE1OWltb3V0IHNhZHkgem1cdTAxMWJuIHBcdTAxNTllZGFuXHUwMGZkY2ggcG9tb2NcdTAwZWQgcHVzaCBkbyB0b2hvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYgorZ2IuYWNjZXB0TmV3UGF0Y2hzZXRzRGVzY3JpcHRpb249cFx1MDE1OWltb3V0IHNhZHkgem1cdTAxMWJuIHBcdTAxNTllZGFuXHUwMGZkY2ggcG9tb2NcdTAwZWQgcHVzaCBkbyB0b2hvdG8gcmVwb3ppdFx1MDBlMVx1MDE1OWUKIGdiLmNoZWNrb3V0U3RlcDI9UFx1MDE1OWVrb250cm9sb3ZhdCBzYWR1IHptXHUwMTFibgogZ2IuY2hlY2tvdXRWaWFDb21tYW5kTGluZT1QXHUwMTU5ZWtvbnRyb2xvdmF0IHBvbW9jXHUwMGVkIHBcdTAxNTlcdTAwZWRrYXpvdlx1MDBlOSBcdTAxNTlcdTAwZTFka3kKIGdiLmNoZWNrb3V0PWNoZWNrb3V0CkBAIC00MDQsMjQgKzQwNCwyNCBAQAogZ2IudmVyaWZ5Q29tbWl0dGVyPW92XHUwMTFiXHUwMTU5aXQgdlx1MDBmZHZvalx1MDBlMVx1MDE1OWUKIGdiLnVzZXJuYW1lVW5hdmFpbGFibGU9VVx1MDE3ZWl2YXRlbHNrXHUwMGU5IGptXHUwMGU5bm8gJyd7MH0nJyBuZW5cdTAwZWQgZG9zdHVwblx1MDBlOS4KIGdiLnVzZXJQZXJtaXNzaW9ucz1vcHJcdTAwZTF2blx1MDExYm5cdTAwZWQgdVx1MDE3ZWl2YXRlbGUKLWdiLm5hbWVEZXNjcmlwdGlvbj1wb3VcdTAxN2VcdTAwZWR2YXQgJy8nIGsgc2Vza3VwZW5cdTAwZWQgXHUwMGZhbG9cdTAxN2VpXHUwMTYxXHUwMTY1LCBuYXBcdTAxNTkuIGxpYnJhcmllcy9teWNvb2xsaWIuZ2l0CitnYi5uYW1lRGVzY3JpcHRpb249cG91XHUwMTdlXHUwMGVkdmF0ICcvJyBrIHNlc2t1cGVuXHUwMGVkIHJlcG96aXRcdTAwZTFcdTAxNTlcdTAxNmYsIG5hcFx1MDE1OS4gbGlicmFyaWVzL215Y29vbGxpYi5naXQKIGdiLmhlYXBVc2VkPXBvdVx1MDE3ZWl0XHUwMGUxIGhhbGRhCiBnYi51cGxvYWRlZFBhdGNoc2V0TlJldmlzaW9uTj1uYWhyXHUwMGUxbmEgc2FkYSB6bVx1MDExYm4gezB9IHJldml6ZSB7MX0KIGdiLnVwbG9hZGVkUGF0Y2hzZXROPW5haHJcdTAwZTFuYSBzYWRhIHptXHUwMTFibiB7MH0KIGdiLnVuc3Rhcj1vZHpuYVx1MDEwZAogZ2IudGl0bGU9dGl0dWxlawogZ2IudGlja2V0U2V0dGluZ3M9TmFzdGF2ZW5cdTAwZWQgXHUwMGZha29sdQotZ2IucmVwb3NpdG9yeUlzRnJvemVuPVx1MDBkYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIgamUgem1yYVx1MDE3ZWVuXHUwMGU5LgotZ2IucmVwb3NpdG9yeUlzTWlycm9yPVx1MDBkYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIgamUgenJjYWRsbyBwb3V6ZSBwcm8gXHUwMTBkdGVuXHUwMGVkLgorZ2IucmVwb3NpdG9yeUlzRnJvemVuPVJlcG96aXRcdTAwZTFcdTAxNTkgamUgem1yYVx1MDE3ZWVuXHUwMGU5LgorZ2IucmVwb3NpdG9yeUlzTWlycm9yPVJlcG96aXRcdTAwZTFcdTAxNTkgamUgenJjYWRsbyBwb3V6ZSBwcm8gXHUwMTBkdGVuXHUwMGVkLgogZ2Iuc2VydmVyRG9lc05vdEFjY2VwdFBhdGNoc2V0cz1UZW50byBzZXJ2ZXIgbmVha2NlcHR1amUgc2FkeSB6bVx1MDExYm4uCiBnYi50aWNrZXRJc0Nsb3NlZD1UZW50byBcdTAwZmFrb2wgamUgdXphdlx1MDE1OWVuXHUwMGZkLgotZ2IuaW5pdFdpdGhSZWFkbWVEZXNjcmlwdGlvbj1Ub3RvIHZ5dHZvXHUwMTU5XHUwMGVkIGplZG5vZHVjaFx1MDBmZCBSRUFETUUgZG9rdW1lbnQgdmUgdmFcdTAxNjFlbSBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0aS4KK2diLmluaXRXaXRoUmVhZG1lRGVzY3JpcHRpb249VG90byB2eXR2b1x1MDE1OVx1MDBlZCBqZWRub2R1Y2hcdTAwZmQgUkVBRE1FIGRva3VtZW50IHZlIHZhXHUwMTYxZW0gcmVwb3ppdFx1MDBlMVx1MDE1OWkuCiBnYi50aWNrZXRQYXRjaHNldD1cdTAwZmFrb2wgezB9LCBwc2FkYSB6bVx1MDExYm4gezF9CiBnYi52b3RlPWhsYXNvdmF0IHBybyB0b3RvIHswfQogZ2Iudm90ZXM9aGxhc3kKIGdiLndhdGNoPXNsZWRvdmF0IHRvdG8gezB9CiBnYi51cGRhdGVkQnk9YWt0dWFsaXpvdmFsCi1nYi51bmF1dGhvcml6ZWRBY2Nlc3NGb3JSZXBvc2l0b3J5PU5lYXV0b3Jpem92YW5cdTAwZmQgcFx1MDE1OVx1MDBlZHN0dXAgZG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYi4KK2diLnVuYXV0aG9yaXplZEFjY2Vzc0ZvclJlcG9zaXRvcnk9TmVhdXRvcml6b3Zhblx1MDBmZCBwXHUwMTU5XHUwMGVkc3R1cCBkbyByZXBveml0XHUwMGUxXHUwMTU5ZS4KIGdiLmZpbGVOb3RNZXJnZWFibGU9TmVsemUgcHJvdlx1MDBlOXN0IGNvbW1pdCB7MH0uIFRlbnRvIHNvdWJvciBuZWx6ZSBhdXRvbWF0aWNreSBzbG91XHUwMTBkaXQuCiBnYi5wYXRjaHNldE5vdEFwcHJvdmVkTW9yZT1Qb3N1em92YXRlbCBtdXNcdTAwZWQgc2Nodlx1MDBlMWxpdCB0dXRvIHNhZHUgem1cdTAxMWJuLgogZ2IudGVhbVBlcm1pc3Npb249b3ByXHUwMGUxdm5cdTAxMWJuXHUwMGVkIG5hc3RhdmlsICJ7MH0iIFx1MDEwZGxlbnN0dlx1MDBlZCB2IHRcdTAwZmRtdQpAQCAtNDU5LDcgKzQ1OSw3IEBACiBnYi5maWxlc3RvcmVIZWxwPUphayBwb3VcdTAxN2VcdTAwZWR2YXQgXHUwMGRhbG9cdTAxN2VpXHUwMTBkdFx1MDExYiB2ZWxrXHUwMGZkY2ggc291Ym9yXHUwMTZmPwogZ2IuZmlsZXN0b3JlPXZlbGtcdTAwZTkgc291Ym9yeQogZ2IuZmlsZXN0b3JlU3RhdHM9XHUwMGRhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiB2ZWxrXHUwMGZkY2ggc291Ym9yXHUwMTZmIG9ic2FodWplIHswfSBzb3Vib3JcdTAxNmYgbyBjZWxrb3ZcdTAwZTkgdmVsaWtvc3RpIHsxfS4gICh7Mn0gemJcdTAwZmR2XHUwMGUxKQotZ2IuZmluZFNvbWVSZXBvc2l0b3JpZXM9bmFqXHUwMGVkdCBuXHUwMTFiamFrXHUwMGUxIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIKK2diLmZpbmRTb21lUmVwb3NpdG9yaWVzPW5halx1MDBlZHQgblx1MDExYmpha1x1MDBlOSByZXBveml0XHUwMGUxXHUwMTU5ZQogZ2IucmVwb3NpdG9yeUZvcmtGYWlsZWQ9Zm9yayBzZWxoYWwKIGdiLmZvcmtJblByb2dyZXNzPWZvcmsgcHJvYlx1MDBlZGhcdTAwZTEKIGdiLmZvcmtSZXBvc2l0b3J5PXByb3ZcdTAwZTlzdCBmb3JrIHswfT8KQEAgLTQ5MiwxMiArNDkyLDEyIEBACiBnYi5uZXdDZXJ0aWZpY2F0ZURlZmF1bHRzPXZcdTAwZmRjaG96XHUwMGVkIGhvZG5vdHkgbm92XHUwMGU5aG8gY2VydGlmaWtcdTAwZTF0dQogZ2Iubm9Db21tZW50cz1cdTAxN2VcdTAwZTFkblx1MDBlOSBrb21lbnRcdTAwZTFcdTAxNTllCiBnYi5ub25lPVx1MDE3ZVx1MDBlMWRuXHUwMGU5Ci1nYi5ub0luZGV4ZWRSZXBvc2l0b3JpZXNXYXJuaW5nPVx1MDE3ZVx1MDBlMWRuXHUwMGU5IHogdmFcdTAxNjFpY2ggXHUwMGZhbG9cdTAxN2VpXHUwMTYxXHUwMTY1IG5lblx1MDBlZCBuYWtvbmZpZ3Vyb3ZcdTAwZTFubyBwcm8gaW5kZXhvdlx1MDBlMW5cdTAwZWQgcG9tb2NcdTAwZWQgTHVjZW5lCitnYi5ub0luZGV4ZWRSZXBvc2l0b3JpZXNXYXJuaW5nPVx1MDE3ZVx1MDBlMWRuXHUwMGZkIHogdmFcdTAxNjFpY2ggcmVwb3ppdFx1MDBlMVx1MDE1OVx1MDE2ZiBuZW5cdTAwZWQgbmFrb25maWd1cm92XHUwMGUxbiBwcm8gaW5kZXhvdlx1MDBlMW5cdTAwZWQgcG9tb2NcdTAwZWQgTHVjZW5lCiBnYi5zb3J0T2xkZXN0PW5lanN0YXJcdTAxNjFcdTAwZWQKIGdiLm93bmVkPXZsYXN0blx1MDBlZAogZ2Iuc3RhcnJlZD1vem5hXHUwMTBkZW5cdTAwZTkKIGdiLnN0YXJyZWRBbmRPd25lZD1vem5hXHUwMTBkZW5cdTAwZTkgYSB2bGFzdG5cdTAwZWQKLWdiLnN0YXJyZWRSZXBvc2l0b3JpZXM9b3puYVx1MDEwZGVuXHUwMGUxIHVsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCitnYi5zdGFycmVkUmVwb3NpdG9yaWVzPW96bmFcdTAxMGRlblx1MDBlOSByZXBveml0XHUwMGUxXHUwMTU5ZQogZ2Iuc3Rhcj1vem5hXHUwMTBkaXQKIGdiLmluaXRXaXRoR2l0aWdub3JlPVBcdTAxNTlpZGF0IHNvdWJvciAuZ2l0aWdub3JlCiBnYi50aW1lLmluTWludXRlcz1iXHUwMTFiaGVtIHswfSBtaW51dApAQCAtNTA5LDggKzUwOSw4IEBACiBnYi5zZXNzaW9uRW5kZWQ9U2V6ZW5cdTAwZWQgYnlsbyB6YXZcdTAxNTllbm8KIGdiLm15VXJsRGVzY3JpcHRpb249dmVcdTAxNTllam5cdTAxMWIgZG9zdHVwblx1MDBlMSBVUkwgdmFcdTAxNjFcdTAwZWQgR2l0YmxpdCBpbnN0YW5jZQogZ2IuYWRkaXRpb249cFx1MDE1OVx1MDBlZGRhdmVrCi1nYi5hY2Nlc3NQZXJtaXNzaW9uc0ZvclVzZXJEZXNjcmlwdGlvbj1uYXN0YXZ0ZSBcdTAxMGRsZW5zdHZcdTAwZWQgdiB0XHUwMGZkbWVjaCBuZWJvIHBvdm9sdGUgcFx1MDE1OVx1MDBlZHN0dXAgZG8genZvbGVuXHUwMGZkY2ggb21lemVuXHUwMGZkY2ggXHUwMGZhbG9cdTAxN2VpXHUwMTYxXHUwMTY1Ci1nYi5hY2Nlc3NQZXJtaXNzaW9uc0ZvclRlYW1EZXNjcmlwdGlvbj1uYXN0YXZ0ZSBcdTAxMGRsZW55IHRcdTAwZmRtdSBhIHBvdm9sdGUgcFx1MDE1OVx1MDBlZHN0dXAgZG8genZvbGVuXHUwMGZkY2ggb21lemVuXHUwMGZkY2ggXHUwMGZhbG9cdTAxN2VpXHUwMTYxXHUwMTY1CitnYi5hY2Nlc3NQZXJtaXNzaW9uc0ZvclVzZXJEZXNjcmlwdGlvbj1uYXN0YXZ0ZSBcdTAxMGRsZW5zdHZcdTAwZWQgdiB0XHUwMGZkbWVjaCBuZWJvIHBvdm9sdGUgcFx1MDE1OVx1MDBlZHN0dXAgZG8genZvbGVuXHUwMGZkY2ggb21lemVuXHUwMGZkY2ggcmVwb3ppdFx1MDBlMVx1MDE1OVx1MDE2ZgorZ2IuYWNjZXNzUGVybWlzc2lvbnNGb3JUZWFtRGVzY3JpcHRpb249bmFzdGF2dGUgXHUwMTBkbGVueSB0XHUwMGZkbXUgYSBwb3ZvbHRlIHBcdTAxNTlcdTAwZWRzdHVwIGRvIHp2b2xlblx1MDBmZGNoIG9tZXplblx1MDBmZGNoIHJlcG96aXRcdTAwZTFcdTAxNTlcdTAxNmYKIGdiLmhlYWRSZWZEZXNjcmlwdGlvbj1WXHUwMGZkY2hvelx1MDBlZCB2XHUwMTFidGV2IGt0ZXJcdTAwZTEgYnVkZSBrbG9ub3ZcdTAwZTFuYSBhIGJ1ZGUgem9icmF6ZW5hIG5hIHNvdWhybm5cdTAwZTkgc3RyXHUwMGUxbmNlLgogZ2IucGFzc3dvcmRDaGFuZ2VBYm9ydGVkPVptXHUwMTFibmEgaGVzbGEgcFx1MDE1OWVydVx1MDE2MWVuYS4KIGdiLm1vbnRobHlBY3Rpdml0eT1tXHUwMTFic1x1MDBlZFx1MDEwZG5cdTAwZWQgYWt0aXZpdGEKQEAgLTUyNCw3ICs1MjQsNyBAQAogZ2IuY2Vzc2F0aW9uT2ZPcGVyYXRpb249emFzdGF2ZW5cdTAwZWQgcHJvdm96dQogZ2IuY29tbWl0dGVkPWNvbW1pdG92XHUwMGUxbm8KIGdiLmNvbW1pdEFjdGl2aXR5RE9XPWFrdGl2aXRhIGNvbW1pdFx1MDE2ZiBwb2RsZSBkbmUgdiB0XHUwMGZkZG51Ci1nYi5mZWRlcmF0aW9uUmVwb3NpdG9yeURlc2NyaXB0aW9uPXNkXHUwMGVkbGV0IHRvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiBzIG9zdGF0blx1MDBlZG1pIEdpdGJsaXQgc2VydmVyeQorZ2IuZmVkZXJhdGlvblJlcG9zaXRvcnlEZXNjcmlwdGlvbj1zZFx1MDBlZGxldCB0ZW50byByZXBveml0XHUwMGUxXHUwMTU5IHMgb3N0YXRuXHUwMGVkbWkgR2l0YmxpdCBzZXJ2ZXJ5CiBnYi5hbGxvd0F1dGhlbnRpY2F0ZWREZXNjcmlwdGlvbj11ZFx1MDExYmxpdCBwclx1MDBlMXZvIFJXKyB2XHUwMTYxZW0gcFx1MDE1OWlobFx1MDBlMVx1MDE2MWVuXHUwMGZkbSB1XHUwMTdlaXZhdGVsXHUwMTZmbQogZ2IuYWxsb3dOYW1lZERlc2NyaXB0aW9uPXVkXHUwMTFibGl0IHBcdTAxNTllc25cdTAwZTEgb3ByXHUwMGUxdm5cdTAxMWJuXHUwMGVkIHBvam1lbm92YW5cdTAwZmRtIHVcdTAxN2VpdmF0ZWxcdTAxNmZtIGEgdFx1MDBmZG1cdTAxNmZtCiBnYi5hdXRob3JpemF0aW9uQ29udHJvbD1rb250cm9sYSBhdXRvcml6YWNlCkBAIC01NDEsMTQgKzU0MSwxNCBAQAogZ2IucGFzc3dvcmRIaW50UmVxdWlyZWQ9blx1MDBlMXBvdlx1MDExYmRhIGhlc2xhIGplIHBvXHUwMTdlYWRvdlx1MDBlMW5hIQogZ2IuaW49dgogZ2Iuc3RhdGVQcm92aW5jZT1zdFx1MDBlMXQgbmVibyBwcm92aW5jaWUKLWdiLmZvcmtzUHJvaGliaXRlZFdhcm5pbmc9XHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiB6YWthenVqZSBmb3JreQotZ2Iud29ya2luZ0NvcHlXYXJuaW5nPXRvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiBtXHUwMGUxIHByYWNvdm5cdTAwZWQga29waWkgYSBuZW1cdTAxNmZcdTAxN2VlIHBcdTAxNTlpalx1MDBlZG1hdCBwdXNoCitnYi5mb3Jrc1Byb2hpYml0ZWRXYXJuaW5nPXJlcG96aXRcdTAwZTFcdTAxNTkgemFrYXp1amUgZm9ya3kKK2diLndvcmtpbmdDb3B5V2FybmluZz10ZW50byByZXBveml0XHUwMGUxXHUwMTU5IG1cdTAwZTEgcHJhY292blx1MDBlZCBrb3BpaSBhIG5lbVx1MDE2Zlx1MDE3ZWUgcFx1MDE1OWlqXHUwMGVkbWF0IHB1c2gKIGdiLmZlZGVyYXRpb25TdHJhdGVneT1zdHJhdGVnaWUgZmVkZXJhY2UKIGdiLmlzRmVkZXJhdGVkPWplIHZlIGZlZGVyYWNpCiBnYi5tZXRyaWNBdXRob3JFeGNsdXNpb25zPXZ5bG91XHUwMTBkaXQgYXV0b3JhIHogbWV0cmlrCiBnYi5mYWlsZWRUb0ZpbmRBY2NvdW50PWNoeWJhIHBcdTAxNTlpIGhsZWRcdTAwZTFuXHUwMGVkIHVcdTAxN2VpdmF0ZWxza1x1MDBlOWhvIFx1MDBmYVx1MDEwZHR1ICcnezB9JycKIGdiLmZhaWxlZFRvRmluZEdyYXZhdGFyUHJvZmlsZT1DaHliYSBwXHUwMTU5aSBobGVkXHUwMGUxblx1MDBlZCBwcm9maWx1IEdyYXZhdGFyIHBybyB7MH0KLWdiLmZlZGVyYXRlVGhpcz10b3RvIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIgdmUgZmVkZXJhY2kKK2diLmZlZGVyYXRlVGhpcz10ZW50byByZXBveml0XHUwMGUxXHUwMTU5IHZlIGZlZGVyYWNpCiBnYi5mZWRlcmF0ZU9yaWdpbj1vcmlnaW4gdmUgZmVkZXJhY2kKIGdiLmZvcms9Zm9yawogZ2IuY29tYmluZWRNZDVSZW5hbWU9R2l0YmxpdCBqZSBuYWtvbmZpZ3Vyb3ZcdTAwZTFuIHBybyBrb21iaW5vdmFuXHUwMGU5IE1ENSBoZVx1MDE2MW92XHUwMGUxblx1MDBlZCBoZXNsYS4gTXVzXHUwMGVkdGUgemFkYXQgbm92XHUwMGU5IGhlc2xvIHBcdTAxNTlpIHBcdTAxNTllam1lbm92XHUwMGUxblx1MDBlZCBcdTAwZmFcdTAxMGR0dS4KQEAgLTU3Niw3ICs1NzYsNyBAQAogZ2Iuc2tpcFN1bW1hcnlNZXRyaWNzPXBcdTAxNTllc2tvXHUwMTBkaXQgc291aHJublx1MDBlOSBtZXRyaWt5CiBnYi5tYXhBY3Rpdml0eUNvbW1pdHM9bWF4aW1cdTAwZTFsblx1MDBlZCBha3Rpdml0YSBjb21taXRcdTAxNmYKIGdiLnNraXBTdW1tYXJ5TWV0cmljc0Rlc2NyaXB0aW9uPW5lcG9cdTAxMGRcdTAwZWR0YXQgbWV0cmlreSBuYSBzb3Vocm5uXHUwMGU5IHN0clx1MDBlMW5jZSAocmVkdWt1amUgXHUwMTBkYXMgbmFcdTAxMGRcdTAwZWR0XHUwMGUxblx1MDBlZCBzdHJcdTAwZTFua3kpCi1nYi5za2lwU2l6ZUNhbGN1bGF0aW9uRGVzY3JpcHRpb249bmVwb1x1MDEwZFx1MDBlZHRhdCB2ZWxpa29zdCBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiIChyZWR1a3VqZSBcdTAxMGRhcyBuYVx1MDEwZFx1MDBlZHRcdTAwZTFuXHUwMGVkIHN0clx1MDBlMW5reSkKK2diLnNraXBTaXplQ2FsY3VsYXRpb25EZXNjcmlwdGlvbj1uZXBvXHUwMTBkXHUwMGVkdGF0IHZlbGlrb3N0IHJlcG96aXRcdTAwZTFcdTAxNTllIChyZWR1a3VqZSBcdTAxMGRhcyBuYVx1MDEwZFx1MDBlZHRcdTAwZTFuXHUwMGVkIHN0clx1MDBlMW5reSkKIGdiLmZhaWxlZFRvRmluZENvbW1pdD1OZWx6ZSBuYWxcdTAwZTl6dCBjb21taXQgInswfSIgdiB7MX0hCiBnYi5tYXJrZG93bkZhaWx1cmU9Q2h5YmEgcFx1MDE1OWkgenByYWNvdlx1MDBlMW5cdTAwZWQgTWFya2Rvd24gb2JzYWh1IQogZ2IuZmFpbGVkVG9TZW5kUHJvcG9zYWw9U2VsaGFsbyBvZGVzbFx1MDBlMW5cdTAwZWQgblx1MDBlMXZyaHUhCkBAIC01ODQsMTYgKzU4NCwxNiBAQAogZ2IuY291bGROb3RGaW5kRmVkZXJhdGlvblJlZ2lzdHJhdGlvbj1OZWx6ZSBuYWxcdTAwZTl6dCByZWdpc3RyYWNpIGZlZGVyYWNlIQogZ2IuY291bGROb3RGaW5kRmVkZXJhdGlvblByb3Bvc2FsPU5lbHplIG5hbFx1MDBlOXp0IG5cdTAwZTF2cmggayBmZWRlcmFjaSEKIGdiLnRlYW1OYW1lVW5hdmFpbGFibGU9VFx1MDBmZG0gc2Ugam1cdTAwZTluZW0gJyd7MH0nJyBuZW5cdTAwZWQgZG9zdHVwblx1MDBmZC4KLWdiLm93bmVyRGVzY3JpcHRpb249dmxhc3RuXHUwMGVkayBtXHUwMTZmXHUwMTdlZSB1cHJhdm92YXQgbmFzdGF2ZW5cdTAwZWQgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYgotZ2IubmV3Q2xpZW50Q2VydGlmaWNhdGVNZXNzYWdlPVBPWk5cdTAwYzFNS0E6XG4nSGVzbG8nIG5lblx1MDBlZCB1XHUwMTdlaXZhdGVsc2tcdTAwZTkgaGVzbG8uIEplIHRvIGhlc2xvIGsgb2NocmFuXHUwMGU5IFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIga2xcdTAwZWRcdTAxMGRcdTAxNmYuIFRvdG8gaGVzbG8gbmVidWRlIG5pa2FtIHVsb1x1MDE3ZWVubyB0YWtcdTAxN2VlIG11c1x1MDBlZHRlIHphZGF0IHRha1x1MDBlOSBuXHUwMGUxcG92XHUwMTFiZHUsIGt0ZXJcdTAwZTEgYnVkZSBwXHUwMTU5aWxvXHUwMTdlZW5hIGsgaW5zdHJ1a2NcdTAwZWRtIHVcdTAxN2VpdmF0ZWxvdmEgUkVBRE1FLgorZ2Iub3duZXJEZXNjcmlwdGlvbj12bGFzdG5cdTAwZWRrIG1cdTAxNmZcdTAxN2VlIHVwcmF2b3ZhdCBuYXN0YXZlblx1MDBlZCByZXBveml0XHUwMGUxXHUwMTU5ZQorZ2IubmV3Q2xpZW50Q2VydGlmaWNhdGVNZXNzYWdlPVBPWk5cdTAwYzFNS0E6XG4nSGVzbG8nIG5lblx1MDBlZCB1XHUwMTdlaXZhdGVsc2tcdTAwZTkgaGVzbG8uIEplIHRvIGhlc2xvIGsgb2NocmFuXHUwMTFiIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIga2xcdTAwZWRcdTAxMGRcdTAxNmYuIFRvdG8gaGVzbG8gbmVidWRlIG5pa2FtIHVsb1x1MDE3ZWVubyB0YWtcdTAxN2VlIG11c1x1MDBlZHRlIHphZGF0IHRha1x1MDBlOSBuXHUwMGUxcG92XHUwMTFiZHUsIGt0ZXJcdTAwZTEgYnVkZSBwXHUwMTU5aWxvXHUwMTdlZW5hIGsgaW5zdHJ1a2NcdTAwZWRtIHVcdTAxN2VpdmF0ZWxvdmEgUkVBRE1FLgogZ2IuZW1haWxDZXJ0aWZpY2F0ZUJ1bmRsZT1iYWxcdTAwZWRrIGtsaWVudHNrXHUwMGU5aG8gY2VydGlmaWtcdTAwZTF0dSBlLW1haWx1CiBnYi5wYXNzd29yZENoYW5nZWQ9SGVzbG8gXHUwMGZhc3BcdTAxMWJcdTAxNjFuXHUwMTFiIHptXHUwMTFiblx1MDExYm5vLgogZ2IucGFzc3dvcmRzRG9Ob3RNYXRjaD1IZXNsYSBzZSBuZXNob2R1alx1MDBlZCEKIGdiLnBlcm1pc3Npb249T3ByXHUwMGUxdm5cdTAxMWJuXHUwMGVkCiBnYi50ZWFtUGVybWlzc2lvbnM9b3ByXHUwMGUxdm5cdTAxMWJuXHUwMGVkIHRcdTAwZmRtdQotZ2IucmVwb3NpdG9yeVBlcm1pc3Npb25zPW9wclx1MDBlMXZuXHUwMTFiblx1MDBlZCBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiCitnYi5yZXBvc2l0b3J5UGVybWlzc2lvbnM9b3ByXHUwMGUxdm5cdTAxMWJuXHUwMGVkIHJlcG96aXRcdTAwZTFcdTAxNTllCiBnYi5jcmVhdGVkTmV3QnJhbmNoPXZ5dHZvXHUwMTU5aXQgbm92b3Ugdlx1MDExYnRcdTAxMWJ2Ci1nYi50ZWFtTXVzdFNwZWNpZnlSZXBvc2l0b3J5PVRcdTAwZmRtIG11c1x1MDBlZCBuYXN0YXZpdCBuZWptXHUwMGU5blx1MDExYiBqZWRubyBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiLgorZ2IudGVhbU11c3RTcGVjaWZ5UmVwb3NpdG9yeT1UXHUwMGZkbSBtdXNcdTAwZWQgbmFzdGF2aXQgbmVqbVx1MDBlOW5cdTAxMWIgamVkZW4gcmVwb3ppdFx1MDBlMVx1MDE1OS4KIGdiLmVtYWlsTWVPbk15VGlja2V0Q2hhbmdlcz1Qb3NsYXQgZS1tYWlsIHBcdTAxNTlpIHptXHUwMTFiblx1MDExYiBtXHUwMGU5aG8gXHUwMGZha29sdQogZ2IucGF0Y2hzZXRNZXJnZWFibGVNb3JlPVRhdG8gc2FkYSB6bVx1MDExYm4gbVx1MDE2Zlx1MDE3ZWUgYlx1MDBmZHQgc2xvdVx1MDEwZGVuYSBkbyB7MH0gdGFrXHUwMGU5IHBvbW9jXHUwMGVkIHBcdTAxNTlcdTAwZWRrYXpvdlx1MDBlOSBcdTAxNTlcdTAwZTFka3kuCiBnYi5jcmVhdGVkVGhpc1RpY2tldD1cdTAwZmFrb2wgdnl0dm9cdTAxNTllbgpAQCAtNjA2LDggKzYwNiw4IEBACiBnYi5wdFNpbXBsaWZpZWRNZXJnZT16amVkbm9kdVx1MDE2MWVuXHUwMGUxIHN5bnRheGUgc2x1XHUwMTBkb3ZcdTAwZTFuXHUwMGVkCiBnYi5jb21wYXJlVG9OPXBvcm92bmF0IHMgezB9CiBnYi5hdXRoZW50aWNhdGVkUHVzaFBvbGljeT1PbWV6aXQgUHVzaCAoUFx1MDE1OWlobFx1MDBlMVx1MDE2MWVuXHUwMGZkKQotZ2IuYXV0aGVudGljYXRlZFB1c2hQb2xpY3lEZXNjcmlwdGlvbj1LZG9rb2xpIG1cdTAxNmZcdTAxN2VlIHByb2hsXHUwMGVkXHUwMTdlZXQgYSBrbG9ub3ZhdCB0b3RvIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIuIFZcdTAxNjFpY2huaSBwXHUwMTU5aWhsXHUwMGUxXHUwMTYxZW5cdTAwZWQgdVx1MDE3ZWl2YXRlbFx1MDBlOSBidWRvdSBtXHUwMGVkdCBwclx1MDBlMXZhIFJXKy4KLWdiLmNsb25lUG9saWN5RGVzY3JpcHRpb249S2Rva29saSBtXHUwMTZmXHUwMTdlZSB2aWRcdTAxMWJ0IHRvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYi4gTVx1MDE2Zlx1MDE3ZWV0ZSB2eWJyYXQsIGtkbyBtXHUwMTZmXHUwMTdlZSBrbG9ub3ZhdCBhIHByb3ZcdTAwZTFkXHUwMTFidCBwdXNoLgorZ2IuYXV0aGVudGljYXRlZFB1c2hQb2xpY3lEZXNjcmlwdGlvbj1LZG9rb2xpIG1cdTAxNmZcdTAxN2VlIHByb2hsXHUwMGVkXHUwMTdlZXQgYSBrbG9ub3ZhdCB0ZW50byByZXBveml0XHUwMGUxXHUwMTU5LiBWXHUwMTYxaWNobmkgcFx1MDE1OWlobFx1MDBlMVx1MDE2MWVuXHUwMGVkIHVcdTAxN2VpdmF0ZWxcdTAwZTkgYnVkb3UgbVx1MDBlZHQgcHJcdTAwZTF2YSBSVysuCitnYi5jbG9uZVBvbGljeURlc2NyaXB0aW9uPUtkb2tvbGkgbVx1MDE2Zlx1MDE3ZWUgdmlkXHUwMTFidCB0ZW50byByZXBveml0XHUwMGUxXHUwMTU5LiBNXHUwMTZmXHUwMTdlZXRlIHZ5YnJhdCwga2RvIG1cdTAxNmZcdTAxN2VlIGtsb25vdmF0IGEgcHJvdlx1MDBlMWRcdTAxMWJ0IHB1c2guCiBnYi5jbG9uZVBvbGljeT1PbWV6aXQga2xvbm92XHUwMGUxblx1MDBlZCBhIFB1c2gKIGdiLmNsb3NlQnJvd3Nlcj1Qcm9zXHUwMGVkbSB6YXZcdTAxNTlldGUgcHJvaGxcdTAwZWRcdTAxN2VlXHUwMTBkIGtlIHNwclx1MDBlMXZuXHUwMGU5bXUgdWtvblx1MDEwZGVuXHUwMGVkIHNlemVuXHUwMGVkLgogZ2IuY29tbWl0TWVzc2FnZVJlbmRlcmVyRGVzY3JpcHRpb249WnByXHUwMGUxdmEgY29tbWl0dSBtXHUwMTZmXHUwMTdlZSBiXHUwMGZkdCB6b2JyYXplbmEgamFrbyBwcm9zdFx1MDBmZCB0ZXh0IG5lYm8gdnlrcmVzbGVuYSBqYWtvIG1hcmt1cC4KQEAgLTYyMSwxMSArNjIxLDExIEBACiBnYi5kZWxldGVkVGFnPXNtYXphdCB0YWcKIGdiLmRlbGV0ZVBhdGNoc2V0PVNtYXphdCBzYWR1IHptXHUwMTFibiB7MH0KIGdiLmRlbGV0ZVBhdGNoc2V0U3VjY2Vzcz1TbWF6YXQgc2FkdSB6bVx1MDExYm4gezB9LgotZ2IuZGVsZXRlUmVwb3NpdG9yeUhlYWRlcj1TbWF6YXQgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYgorZ2IuZGVsZXRlUmVwb3NpdG9yeUhlYWRlcj1TbWF6YXQgcmVwb3ppdFx1MDBlMVx1MDE1OQogZ2IuZGlzYWJsZVVzZXI9emFrXHUwMGUxemF0IHVcdTAxN2VpdmF0ZWxlCiBnYi5kaXNhYmxlVXNlckRlc2NyaXB0aW9uPXphbWV6aXQgdG9tdXRvIFx1MDBmYVx1MDEwZHR1IHYgcFx1MDE1OWlobFx1MDBlMVx1MDE2MWVuXHUwMGVkCiBnYi5kaXNwbGF5TmFtZURlc2NyaXB0aW9uPVByZWZlcm92YW5cdTAwZTkgam1cdTAwZTlubyBwcm96b2JyYXplblx1MDBlZAotZ2IuZG9jc1dlbGNvbWUxPU1cdTAxNmZcdTAxN2VldGUgcG91XHUwMTdlXHUwMGVkdCBkb2t1bWVudGFjaSBrIGRva3VtZW50b3ZcdTAwZTFuXHUwMGVkIHZhXHUwMTYxZWhvIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIuCitnYi5kb2NzV2VsY29tZTE9TVx1MDE2Zlx1MDE3ZWV0ZSBwb3VcdTAxN2VcdTAwZWR0IGRva3VtZW50YWNpIGsgZG9rdW1lbnRvdlx1MDBlMW5cdTAwZWQgdmFcdTAxNjFlaG8gcmVwb3ppdFx1MDBlMVx1MDE1OWUuCiBnYi5kb2NzV2VsY29tZTI9WmFcdTAxMGRuXHUwMTFidGUgY29tbWl0ZW0gc291Ym9ydSBSRUFETUUubWQgbmVibyBIT01FLm1kLgogZ2IuZW1haWxDbGllbnRDZXJ0aWZpY2F0ZVN1YmplY3Q9Vlx1MDBlMVx1MDE2MSBHaXRibGl0IGtsaWVudHNrXHUwMGZkIGNlcnRpZmlrXHUwMGUxdCBwcm8gezB9CiBnYi5tYW51YWw9cnVcdTAxMGRuXHUwMTFiCkBAIC02MzUsNyArNjM1LDcgQEAKIGdiLnJldm9rZWQ9enJ1XHUwMTYxaXQKIGdiLnJld2luZD1SRVdJTkQKIGdiLnBlcm1pc3Npb25zPW9wclx1MDBlMXZuXHUwMTFiblx1MDBlZAotZ2IucGVyc29uYWxSZXBvc2l0b3JpZXM9b3NvYm5cdTAwZWQgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYgorZ2IucGVyc29uYWxSZXBvc2l0b3JpZXM9b3NvYm5cdTAwZWQgcmVwb3ppdFx1MDBlMVx1MDE1OWUKIGdiLnBsZWFzZVNldERlc3RpbmF0aW9uVXJsPVByb3NcdTAwZWRtIHphZGVqdGUgY2lsb3ZvdSBVUkwgcHJvIHZcdTAwZTFcdTAxNjEgblx1MDBlMXZyaCEKIGdiLnBhdGNoc2V0PXNhZGEgem1cdTAxMWJuCiBnYi5wcm9wb3NhbD1uXHUwMGUxdnJoCkBAIC02NTQsMTUgKzY1NCwxNSBAQAogZ2IuaWxsZWdhbFJlbGF0aXZlU2xhc2g9UkVsYXRpdm5cdTAwZWQgcmVmZXJlbmNlIG5hIGFkcmVzXHUwMGUxXHUwMTU5ICguLi8pIGpzb3UgemFrXHUwMGUxelx1MDBlMW55LgogZ2IudXNlVGlja2V0c0Rlc2NyaXB0aW9uPXBvdXplIHBybyBcdTAxMGR0ZW5cdTAwZWQsIGlkc3RyaWJ1b3Zhblx1MDBlOSBUaWNnaXQgXHUwMGZha29seQogZ2IucHJpdmlsZWdlV2l0aGRyYXduPXN0YVx1MDE3ZWVuXHUwMGVkIHByaXZpbGVnaVx1MDBlZAotZ2IucmVwb3NpdG9yeU5vdFNwZWNpZmllZEZvcj1cdTAwZGFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiIG5lblx1MDBlZCBuYXN0YXZlbm8gcHJvIHswfSEKLWdiLm93bmVyUGVybWlzc2lvbj12bGFzdG5cdTAwZWRrIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIKK2diLnJlcG9zaXRvcnlOb3RTcGVjaWZpZWRGb3I9UmVwb3ppdFx1MDBlMVx1MDE1OSBuZW5cdTAwZWQgbmFzdGF2ZW4gcHJvIHswfSEKK2diLm93bmVyUGVybWlzc2lvbj12bGFzdG5cdTAwZWRrIHJlcG96aXRcdTAwZTFcdTAxNTllCiBnYi5yZXF1aXJlQXBwcm92YWw9dnlcdTAxN2VhZHVqZSBzY2h2XHUwMGUxbGVuXHUwMGVkCiBnYi52ZXJpZnlDb21taXR0ZXJEZXNjcmlwdGlvbj12eVx1MDE3ZWFkdWplIGFieSBzZSBpZGVudGl0YSB2XHUwMGZkdm9qXHUwMGUxXHUwMTU5ZSBzaG9kb3ZhbGEgcyBHaXRibGl0IFx1MDBmYVx1MDEwZHRlbSBwb3VcdTAxN2VpdFx1MDBmZG0gcHJvIHB1c2gKIGdiLnJlc3BvbnNpYmxlPXpvZHBvdlx1MDExYmRuXHUwMGZkCiBnYi5hY2Nlc3NQZXJtaXNzaW9uc0Rlc2NyaXB0aW9uPW9tZXppdCBwXHUwMTU5XHUwMGVkc3R1cCBuYSB1XHUwMTdlaXZhdGVsXHUwMGU5IGEgdFx1MDBmZG15XG4KIGdiLm5hbWVkUHVzaFBvbGljeT1PbWV6aXQgUHVzaCAoUG9qbWVub3Zhblx1MDBmZCkKIGdiLnZpZXdQb2xpY3k9T21leml0IHByb2hsXHUwMGVkXHUwMTdlZW5cdTAwZWQsIGtsb25vdlx1MDBlMW5cdTAwZWQgYSBQdXNoCi1nYi5yYXc9bmV6cHJhY292YW5cdTAwZmQKK2diLnJhdz1yYXcKIGdiLnNlYXJjaEZvckF1dGhvcj1WeWhsZWRhdCBjb21taXR5IHBvZGxlIGF1dG9yYQogZ2Iuc2VhcmNoRm9yQ29tbWl0dGVyPVZ5aGxlZGF0IGNvbW1pdHkgcG9kbGUgdlx1MDBmZHZvalx1MDBlMVx1MDE1OWUKIGdiLmlzRnJvemVuRGVzY3JpcHRpb249emFrXHUwMGUxemF0IG9wZXJhY2UgcHVzaApAQCAtNjc3LDE4ICs2NzcsMTggQEAKIGdiLmhvb2tTY3JpcHRzRGVzY3JpcHRpb249c3B1c3RpdCBHcm9vdnkgc2tyaXB0IHBvIHB1c2ggbmEgdGVudG8gR2l0YmxpdCBzZXJ2ZXIKIGdiLm5vSGl0cz1cdTAxN2VcdTAwZTFkblx1MDBlOSB2XHUwMGZkc2xlZGt5CiBnYi5xdWVyeVJlc3VsdHM9dlx1MDBmZHNsZWRlayB7MH0gLSB7MX0gKHsyfSB2XHUwMGZkc2xlZGtcdTAxNmYpCi1nYi5wbGVhc2VTZXRSZXBvc2l0b3J5TmFtZT1Qcm9zXHUwMGVkbSwgbmFzdGF2dGUgam1cdTAwZTlubyBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiIQorZ2IucGxlYXNlU2V0UmVwb3NpdG9yeU5hbWU9UHJvc1x1MDBlZG0sIG5hc3RhdnRlIGptXHUwMGU5bm8gcmVwb3ppdFx1MDBlMVx1MDE1OWUhCiBnYi5pbGxlZ2FsTGVhZGluZ1NsYXNoPVBvXHUwMTBkXHUwMGUxdGVcdTAxMGRuXHUwMGVkIHJlZmVyZW5jZSBuYSBrb1x1MDE1OWVub3ZcdTAwZmQgYWRyZXNcdTAwZTFcdTAxNTkgKC8pIGpzb3UgemFrXHUwMGUxelx1MDBlMW55LgogZ2Iuc2VsZWN0QWNjZXNzUmVzdHJpY3Rpb249UHJvc1x1MDBlZG0sIHZ5YmVydGUgb21lemVuXHUwMGVkIHBcdTAxNTlcdTAwZWRzdHVwdSEKIGdiLnBsZWFzZVNldFRlYW1OYW1lPVByb3NcdTAwZWRtLCB6YWRlanRlIGptXHUwMGU5bm8gdFx1MDBmZG11IQogZ2IucGxlYXNlU2V0VXNlcm5hbWU9UHJvc1x1MDBlZG0sIHphZGVqdGUgdVx1MDE3ZWl2YXRlbHNrXHUwMGU5IGptXHUwMGU5bm8hCi1nYi5yZXBvc2l0b3J5Tm90U3BlY2lmaWVkPVx1MDBkYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIgbmVuXHUwMGVkIHZ5YnJcdTAwZTFubyEKK2diLnJlcG9zaXRvcnlOb3RTcGVjaWZpZWQ9UmVwb3ppdFx1MDBlMVx1MDE1OSBuZW5cdTAwZWQgdnliclx1MDBlMW4hCiBnYi5wbGVhc2VTZXRHaXRibGl0VXJsPVByb3NcdTAwZWRtLCB6YWRlanRlIFVSTCB2YVx1MDE2MWVobyBHaXRibGl0dSEKLWdiLmVycm9yT25seUFkbWluTWF5Q3JlYXRlUmVwb3NpdG9yeT1Qb3V6ZSBhZG1pbmlzdHJcdTAwZTF0b3IgbVx1MDE2Zlx1MDE3ZWUgdnl0dlx1MDBlMVx1MDE1OWV0IFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIKK2diLmVycm9yT25seUFkbWluTWF5Q3JlYXRlUmVwb3NpdG9yeT1Qb3V6ZSBhZG1pbmlzdHJcdTAwZTF0b3IgbVx1MDE2Zlx1MDE3ZWUgdnl0dlx1MDBlMVx1MDE1OWV0IHJlcG96aXRcdTAwZTFcdTAxNTkKIGdiLnByZXBhcmluZ0Zvcms9dnl0dlx1MDBlMVx1MDE1OWVuXHUwMGVkIHZhXHUwMTYxZWhvIGZvcmt1Li4uCi1nYi5pbGxlZ2FsUGVyc29uYWxSZXBvc2l0b3J5TG9jYXRpb249dmFcdTAxNjFlIHNvdWtyb21cdTAwZTkgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiBtdXNcdTAwZWQgYlx1MDBmZHQgdW1cdTAwZWRzdFx1MDExYm5vIHYgInswfSIKK2diLmlsbGVnYWxQZXJzb25hbFJlcG9zaXRvcnlMb2NhdGlvbj12XHUwMGUxXHUwMTYxIHNvdWtyb21cdTAwZmQgcmVwb3ppdFx1MDBlMVx1MDE1OSBtdXNcdTAwZWQgYlx1MDBmZHQgdW1cdTAwZWRzdFx1MDExYm4gdiAiezB9IgogZ2IuZ2NUaHJlc2hvbGREZXNjcmlwdGlvbj1taW5pbVx1MDBlMWxuXHUwMGVkIGNlbGtvdlx1MDBlMSB2ZWxpa29zdCB1dm9sblx1MDExYm5cdTAwZmRjaCBvYmpla3RcdTAxNmYgcHJvIHZ5dm9sXHUwMGUxblx1MDBlZCBcdTAwZmFrbGlkdQotZ2IubWlzc2luZ1Blcm1pc3Npb249XHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiBwcm8gdG90byBvcHJcdTAwZTF2blx1MDExYm5cdTAwZWQgY2h5Ylx1MDBlZCEKK2diLm1pc3NpbmdQZXJtaXNzaW9uPXJlcG96aXRcdTAwZTFcdTAxNTkgcHJvIHRvdG8gb3ByXHUwMGUxdm5cdTAxMWJuXHUwMGVkIGNoeWJcdTAwZWQhCiBnYi5yZXZva2VDZXJ0aWZpY2F0ZVJlYXNvbj1Qcm9zXHUwMGVkbSwgdnliZXJ0ZSBkXHUwMTZmdm9kIHphbVx1MDBlZHRudXRcdTAwZWQgY2VydGlmaWtcdTAwZTF0dQogZ2IuaG9zdG5hbWVSZXF1aXJlZD1Qcm9zXHUwMGVkbSwgemFkZWp0ZSBob3N0bmFtZQogZ2IucGxlYXNlR2VuZXJhdGVDbGllbnRDZXJ0aWZpY2F0ZT1Qcm9zXHUwMGVkbSwgdnl0dm9cdTAxNTl0ZSBrbGllbnRza1x1MDBmZCBjZXJ0aWZpa1x1MDBlMXQgcHJvIHswfQpAQCAtNjk5LDcgKzY5OSw3IEBACiBnYi5zdGFyZ2F6ZXJzPXBvem9yb3ZhdGVsXHUwMGU5CiBnYi5yZXZpZXdQYXRjaHNldD1wb3NvdWRpdCB7MH0gc2FkdSB6bVx1MDExYm4gezF9CiBnYi5ob21lPWRvbVx1MDE2ZgotZ2IubWlycm9yV2FybmluZz10b3RvIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIgamUgenJjYWRsbyBhIG5lbVx1MDE2Zlx1MDE3ZWUgcFx1MDE1OWlqXHUwMGVkbWF0IHB1c2gKK2diLm1pcnJvcldhcm5pbmc9dGVudG8gcmVwb3ppdFx1MDBlMVx1MDE1OSBqZSB6cmNhZGxvIGEgbmVtXHUwMTZmXHUwMTdlZSBwXHUwMTU5aWpcdTAwZWRtYXQgcHVzaAogZ2Iubm9EZXNjcmlwdGlvbkdpdmVuPXBvcGlzIG5lblx1MDBlZCB6YWRcdTAwZTFuCiBnYi50b0JyYW5jaD1kbyB7MH0KIGdiLmNyZWF0ZWRCeT12eXR2b1x1MDE1OWlsCkBAIC03MjUsMTEgKzcyNSwxMSBAQAogZ2IubWVyZ2VTaGE9c2xvdVx1MDEwZGl0IFNIQQogZ2IucmV2aWV3ZXJzPXJlY2VuemVudGkKIGdiLm1lbnRpb25zPXptaW51amUKLWdiLnJlcG9zaXRvcnlEb2VzTm90QWNjZXB0UGF0Y2hzZXRzPVRvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiBuZXBcdTAxNTlpalx1MDBlZG1cdTAwZTEgc2FkeSB6bVx1MDExYm4uCitnYi5yZXBvc2l0b3J5RG9lc05vdEFjY2VwdFBhdGNoc2V0cz1UZW50byByZXBveml0XHUwMGUxXHUwMTU5IG5lcFx1MDE1OWlqXHUwMGVkbVx1MDBlMSBzYWR5IHptXHUwMTFibi4KIGdiLm9wZW5NaWxlc3RvbmVzPW90ZXZcdTAxNTllblx1MDBlOSBtZXpuXHUwMGVka3kKIGdiLmV4dGVuc2lvbnM9cm96XHUwMTYxXHUwMGVkXHUwMTU5ZW5cdTAwZWQKIGdiLnBsZWFzZVNlbGVjdFByb2plY3Q9UHJvc1x1MDBlZG0sIHZ5YmVydGUgcHJvamVrdCEKLWdiLmNoZWNrb3V0VmlhQ29tbWFuZExpbmVOb3RlPU1cdTAxNmZcdTAxN2VldGUgcFx1MDE1OWVrb250cm9sb3ZhdCBhIG90ZXN0b3ZhdCB0eXRvIHptXHUwMTFibnkgbG9rXHUwMGUxbG5cdTAxMWIgdiBrbG9udSB0b2hvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYi4KK2diLmNoZWNrb3V0VmlhQ29tbWFuZExpbmVOb3RlPU1cdTAxNmZcdTAxN2VldGUgcFx1MDE1OWVrb250cm9sb3ZhdCBhIG90ZXN0b3ZhdCB0eXRvIHptXHUwMTFibnkgbG9rXHUwMGUxbG5cdTAxMWIgdiBrbG9udSB0b2hvdG8gcmVwb3ppdFx1MDBlMVx1MDE1OWUuCiBnYi5jaGVja291dFN0ZXAxPVpcdTAwZWRza2F0IGFrdHVcdTAwZTFsblx1MDBlZCBzYWR1IHptXHUwMTFibiBcdTIwMTQgc3B1c1x1MDE2NXRlIHRvdG8geiB2YVx1MDE2MWVobyBwcm9qZWt0b3ZcdTAwZTlobyBhZHJlc1x1MDBlMVx1MDE1OWUKIGdiLm1lcmdpbmdWaWFDb21tYW5kTGluZU5vdGU9UG9rdWQgc2kgbmVwXHUwMTU5ZWpldGUgcG91XHUwMTdlXHUwMGVkdCB0bGFcdTAxMGRcdTAwZWR0a28gcHJvIHNsb3VcdTAxMGRlblx1MDBlZCwgbmVibyBuZWx6ZSBwcm92XHUwMGU5c3QgYXV0b21hdGlja1x1MDBlOSBzbG91XHUwMTBkZW5cdTAwZWQsIG1cdTAxNmZcdTAxN2VldGUgcHJvdlx1MDBlOXN0IG1hbnVcdTAwZTFsblx1MDBlZCBzbG91XHUwMTBkZW5cdTAwZWQgcG9tb2NcdTAwZWQgcFx1MDE1OVx1MDBlZGthem92XHUwMGU5IFx1MDE1OVx1MDBlMWRreS4KIGdiLm1lcmdlU3RlcDE9Vnl0dm9cdTAxNTlpdCBub3ZvdSB2XHUwMTFidGV2IHBybyBwcm9obFx1MDBlOWRudXRcdTAwZWQgem1cdTAxMWJuIFx1MjAxNCBzcHVzXHUwMTY1dGUgdG90IHogdmFcdTAxNjFlaG8gcHJvamVrdG92XHUwMGU5aG8gYWRyZXNcdTAwZTFcdTAxNTllCkBAIC03NDMsMjQgKzc0MywyNCBAQAogZ2IuaGFzTm90UmV2aWV3ZWQ9bmVwb3NvdWRpbAogZ2IubWVyZ2VUb0Rlc2NyaXB0aW9uPXZcdTAwZmRjaG96XHUwMGVkIGludGVncmFcdTAxMGRuXHUwMGVkIHZcdTAxMWJ0ZXYgcHJvIHNsdVx1MDEwZG92XHUwMGUxblx1MDBlZCBzYWQgem1cdTAxMWJuIHogXHUwMGZha29sXHUwMTZmCiBnYi5tZXJnZVR5cGVEZXNjcmlwdGlvbj1zbG91XHUwMTBkaXQgXHUwMGZha29sIHMgcFx1MDE1OWVzdW5lbSB2cFx1MDE1OWVkLCBwb2t1ZCBqZSBwb3RcdTAxNTllYmEsIG5lYm8gdlx1MDE3ZWR5IHMgY29tbWl0ZW0gbyBzbG91XHUwMTBkZW5cdTAwZWQgZG8gaW50ZWdyYVx1MDEwZG5cdTAwZWQgdlx1MDExYnR2ZQotZ2IueW91RG9Ob3RIYXZlQ2xvbmVQZXJtaXNzaW9uPU5lbVx1MDBlMXRlIG9wclx1MDBlMXZuXHUwMTFiblx1MDBlZCBwcm8ga2xvbm92XHUwMGUxblx1MDBlZCB0b2hvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYi4KK2diLnlvdURvTm90SGF2ZUNsb25lUGVybWlzc2lvbj1OZW1cdTAwZTF0ZSBvcHJcdTAwZTF2blx1MDExYm5cdTAwZWQgcHJvIGtsb25vdlx1MDBlMW5cdTAwZWQgdG9ob3RvIHJlcG96aXRcdTAwZTFcdTAxNTllLgogZ2IubWlsZXN0b25lRGVsZXRlRmFpbGVkPVNlbGhhbG8gb2RzdHJhblx1MDExYm5cdTAwZWQgbWV6blx1MDBlZGt1ICcnezB9JychCiBnYi5ub3RpZnlDaGFuZ2VkT3BlblRpY2tldHM9cG9zXHUwMGVkbGF0IHVwb3pvcm5cdTAxMWJuXHUwMGVkIG5hIHptXHUwMTFiblx1MDExYm5cdTAwZTkgb3Rldlx1MDE1OWVuXHUwMGU5IFx1MDBmYWtvbHkKIGdiLmFjY2Vzc1BvbGljeURlc2NyaXB0aW9uPVZ5YmVydGUgcG9saXRpa3kgcFx1MDE1OVx1MDBlZHN0dXB1IHBybyBvdmxcdTAwZTFkXHUwMGUxblx1MDBlZCB2aWRpdGVsbm9zdGkgYSBwclx1MDBlMXZlY2ggZ2l0dS4KLWdiLm5hbWVkUHVzaFBvbGljeURlc2NyaXB0aW9uPUtkb2tvbGkgbVx1MDE2Zlx1MDE3ZWUgdmlkXHUwMTFidCBhIGtsb25vdmF0IHRvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYi4gTVx1MDE2Zlx1MDE3ZWV0ZSB2eWJyYXQsIGtkbyBtXHUwMTZmXHUwMTdlZSBwcm92XHUwMGUxZFx1MDExYnQgcHVzaC4KLWdiLnZpZXdQb2xpY3lEZXNjcmlwdGlvbj1NXHUwMTZmXHUwMTdlZXRlIHZ5YnJhdCwga2RvIG1cdTAxNmZcdTAxN2VlIHZpZFx1MDExYnQsIGtsb25vdmF0IGEgcHJvdlx1MDBlMWRcdTAxMWJ0IHB1c2ggZG8gdG9ob3QgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYi4KLWdiLmluaXRpYWxDb21taXREZXNjcmlwdGlvbj1Ub3RvIHZcdTAwZTFtIHVtb1x1MDE3ZW5cdTAwZWQgPGNvZGU+Z2l0IGNsb25lPC9jb2RlPiB0b3RvIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIgb2thbVx1MDE3ZWl0XHUwMTFiLiBQXHUwMTU5ZXNrb1x1MDEwZHRlIHRlbnRvIGtyb2ssIHBva3VkIGpzdGUgamlcdTAxN2Ugc3B1c3RpbGkgbG9rXHUwMGUxbG5cdTAxMWIgPGNvZGU+Z2l0IGluaXQ8L2NvZGU+LgorZ2IubmFtZWRQdXNoUG9saWN5RGVzY3JpcHRpb249S2Rva29saSBtXHUwMTZmXHUwMTdlZSB2aWRcdTAxMWJ0IGEga2xvbm92YXQgdGVudG8gcmVwb3ppdFx1MDBlMVx1MDE1OS4gTVx1MDE2Zlx1MDE3ZWV0ZSB2eWJyYXQsIGtkbyBtXHUwMTZmXHUwMTdlZSBwcm92XHUwMGUxZFx1MDExYnQgcHVzaC4KK2diLnZpZXdQb2xpY3lEZXNjcmlwdGlvbj1NXHUwMTZmXHUwMTdlZXRlIHZ5YnJhdCwga2RvIG1cdTAxNmZcdTAxN2VlIHZpZFx1MDExYnQsIGtsb25vdmF0IGEgcHJvdlx1MDBlMWRcdTAxMWJ0IHB1c2ggZG8gdG9ob3RvIHJlcG96aXRcdTAwZTFcdTAxNTllLgorZ2IuaW5pdGlhbENvbW1pdERlc2NyaXB0aW9uPVVtb1x1MDE3ZW5cdTAwZWQgdlx1MDBlMW0gb2thbVx1MDE3ZWl0XHUwMGZkIDxjb2RlPmdpdCBjbG9uZTwvY29kZT4gdG9ob3RvIHJlcG96aXRcdTAwZTFcdTAxNTllLiBQXHUwMTU5ZXNrb1x1MDEwZHRlIHRlbnRvIGtyb2ssIHBva3VkIGpzdGUgamlcdTAxN2Ugc3B1c3RpbGkgbG9rXHUwMGUxbG5cdTAxMWIgPGNvZGU+Z2l0IGluaXQ8L2NvZGU+LgogZ2IuaW5pdFdpdGhHaXRpZ25vcmVEZXNjcmlwdGlvbj1WbG9cdTAxN2VcdTAwZWQga29uZmlndXJhXHUwMTBkblx1MDBlZCBzb3Vib3IsIGt0ZXJcdTAwZmQgYnVkZSBcdTAxNTlcdTAwZWRrYXQga2xpZW50XHUwMTZmbSBHaXQsIGpha1x1MDBlOSBzb3Vib3J5LCBhZHJlc1x1MDBlMVx1MDE1OWUgbmVibyB2em9yeSBpZ25vcm92YXQuCiBnYi5wbGVhc2VTZWxlY3RHaXRJZ25vcmU9UHJvc1x1MDBlZG0sIHZ5YmVydGUgc291Ym9yIC5naXRpZ25vcmUKLWdiLm93bmVyc0Rlc2NyaXB0aW9uPVZsYXN0blx1MDBlZGNpIG1vaG91IHNwcmF2b3ZhdCB2XHUwMTYxZWNobmEgbmFzdGF2ZW5cdTAwZWQgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiwgYWxlIG5lbW9ob3UgcFx1MDE1OWVqbWVub3ZhdCBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiLCBwb2t1ZCB0byBuZW5cdTAwZWQgamVqaWNoIG9zb2JuXHUwMGVkIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWIuCitnYi5vd25lcnNEZXNjcmlwdGlvbj1WbGFzdG5cdTAwZWRjaSBtb2hvdSBzcHJhdm92YXQgdlx1MDE2MWVjaG5hIG5hc3RhdmVuXHUwMGVkIHJlcG96aXRcdTAwZTFcdTAxNTllLCBhbGUgbmVtb2hvdSBwXHUwMTU5ZWptZW5vdmF0IHJlcG96aXRcdTAwZTFcdTAxNTksIHBva3VkIHRvIG5lblx1MDBlZCBqZWppY2ggb3NvYm5cdTAwZWQgcmVwb3ppdFx1MDBlMVx1MDE1OS4KIGdiLnVzZXJQZXJtaXNzaW9uc0Rlc2NyaXB0aW9uPU1cdTAxNmZcdTAxN2VldGUgbmFzdGF2aXQgaW5kaXZpZHVcdTAwZTFsblx1MDBlZCB1XHUwMTdlaXZhdGVsc2tcdTAwZTEgb3ByXHUwMGUxdm5cdTAxMWJuXHUwMGVkLiBUb3RvIG5hc3RhdmVuXHUwMGVkIHBvdGxhXHUwMTBkXHUwMGVkIHByXHUwMGUxdmEgdFx1MDBmZG11IG5lYm8gcmVnZXguCiBnYi50ZWFtUGVybWlzc2lvbnNEZXNjcmlwdGlvbj1NXHUwMTZmXHUwMTdlZXRlIG5hc3Rhdml0IGluZGl2aWR1XHUwMGUxbG5cdTAwZWQgb3ByXHUwMGUxdm5cdTAxMWJuXHUwMGVkIHRcdTAwZmRtdS4gVG90byBuYXN0YXZlblx1MDBlZCBwb3RsYVx1MDEwZFx1MDBlZCBvcHJcdTAwZTF2blx1MDExYm5cdTAwZWQgcmVnZXguCi1nYi5yZWNlaXZlU2V0dGluZ3NEZXNjcmlwdGlvbj1OYXN0YXZlblx1MDBlZCBwXHUwMTU5XHUwMGVkam11IG92bFx1MDBlMWRcdTAwZTEgcHJvdlx1MDBlMWRcdTAxMWJuXHUwMGVkIG9wZXJhY2UgcHVzaCBzIFx1MDBmYWxvXHUwMTdlaVx1MDE2MXRcdTAxMWJtLgorZ2IucmVjZWl2ZVNldHRpbmdzRGVzY3JpcHRpb249TmFzdGF2ZW5cdTAwZWQgcFx1MDE1OVx1MDBlZGptdSBvdmxcdTAwZTFkXHUwMGUxIHByb3ZcdTAwZTFkXHUwMTFiblx1MDBlZCBvcGVyYWNlIHB1c2ggcyByZXBveml0XHUwMGUxXHUwMTU5ZW0uCiBnYi5wcmVSZWNlaXZlRGVzY3JpcHRpb249SFx1MDBlMVx1MDEwZGt5IHBcdTAxNTllZCBwXHUwMTU5aWpldFx1MDBlZG0gYnVkb3Ugdnlrb25cdTAwZTFueSBwbyBwXHUwMTU5aWpldFx1MDBlZCBjb21taXR1LCBhbGUgPGVtPlBcdTAxNThFRFRcdTAwY2RNPC9lbT4sIG5lXHUwMTdlIGJ1ZG91IGFrdHVhbGl6b3ZcdTAwZTFueSByZWZzLjxwPlRvdG8gamUgdmhvZG5cdTAwZmQgaFx1MDBlMVx1MDEwZGVrIHBybyB6YW1cdTAwZWR0bnV0XHUwMGVkIG9wZXJhY2UgcHVzaC48L3A+CiBnYi5wb3N0UmVjZWl2ZURlc2NyaXB0aW9uPUhcdTAwZTFcdTAxMGRreSBwbyBwXHUwMTU5aWpldFx1MDBlZCBidWRvdSB2eWtvblx1MDBlMW55IHBvIHBcdTAxNTlpamV0XHUwMGVkIGNvbW1pdHUsIGFsZSA8ZW0+UE9UT008L2VtPiwgY28gYnVkb3UgYWt0dWFsaXpvdlx1MDBlMW55IHJlZnMuPHA+VG90byBqZSB2aG9kblx1MDBmZCBoXHUwMGUxXHUwMTBkZWsgcHJvIHVwb3pvcm5cdTAxMWJuXHUwMGVkLCBzcHVcdTAxNjF0XHUwMTFiblx1MDBlZCBzZXN0YXZlblx1MDBlZCwgYXRkLjwvcD4KLWdiLmZlZGVyYXRpb25TdHJhdGVneURlc2NyaXB0aW9uPU92bFx1MDBlMWRhdCBqZXN0bGkgYSBqYWsgZmVkZXJvdmF0IHRvdG8gXHUwMGZhbG9cdTAxN2VpXHUwMTYxdFx1MDExYiBzIGppbVx1MDBmZG4gR2l0YmxpdC4KLWdiLmZlZGVyYXRpb25TZXRzRGVzY3JpcHRpb249VG90byBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiIGJ1ZGUgb2JzYVx1MDE3ZWVubyB2ZSB2eWJyYW5cdTAwZmRjaCBmZWRlcmFjXHUwMGVkY2guCi1nYi5vcmlnaW5EZXNjcmlwdGlvbj1VUkwsIHplIGt0ZXJcdTAwZTlobyBieW8gdG90byBcdTAwZmFsb1x1MDE3ZWlcdTAxNjF0XHUwMTFiIGtsb25vdlx1MDBlMW5vLgorZ2IuZmVkZXJhdGlvblN0cmF0ZWd5RGVzY3JpcHRpb249T3ZsXHUwMGUxZGF0IGplc3RsaSBhIGphayBmZWRlcm92YXQgdGVudG8gcmVwb3ppdFx1MDBlMVx1MDE1OSBzIGppbVx1MDBmZG4gR2l0YmxpdC4KK2diLmZlZGVyYXRpb25TZXRzRGVzY3JpcHRpb249VGVudG8gcmVwb3ppdFx1MDBlMVx1MDE1OSBidWRlIG9ic2FcdTAxN2VlbiB2ZSB2eWJyYW5cdTAwZmRjaCBmZWRlcmFjXHUwMGVkY2guCitnYi5vcmlnaW5EZXNjcmlwdGlvbj1VUkwsIHplIGt0ZXJcdTAwZTlobyBieWwgdGVudG8gcmVwb3ppdFx1MDBlMVx1MDE1OSBrbG9ub3ZcdTAwZTFuby4KIGdiLmdhcmJhZ2VDb2xsZWN0aW9uRGVzY3JpcHRpb249XHUwMGRha2xpZCB6YWJhbFx1MDBlZCB2b2xuXHUwMGU5IG9iamVrdHksIGt0ZXJcdTAwZTkgYnlseSBuYWhyXHUwMGUxbnkga2xpZW50eSBwb21vY1x1MDBlZCBwdXNoIGEgb2RzdHJhblx1MDBlZCBvYmpcdTAxMWJrdHksIG5hIGt0ZXJcdTAwZTkgdiByZXBveml0XHUwMGUxXHUwMTU5aSBuZXZlZGUgcmVmZXJlbmNlLgogZ2IucHJlZmVyZW5jZXM9cHJlZmVyZW5jZQogZ2IuYWNjb3VudFByZWZlcmVuY2VzRGVzY3JpcHRpb249U3Rhbm92dGUgcHJlZmVyZW5jZSB2YVx1MDE2MWVobyBcdTAwZmFcdTAxMGR0dQpAQCAtNzcyLDggKzc3Miw5IEBACiBnYi50cmFuc3BvcnRQcmVmZXJlbmNlRGVzY3JpcHRpb249VnliZXJ0ZSB0cmFuc3BvcnQsIGt0ZXJcdTAwZmQgcHJlZmVydWpldGUgcHJvIGtsb25vdlx1MDBlMW5cdTAwZWQKIGdiLnNvcnRIaWdoZXN0U2V2ZXJpdHk9bmVqdnlcdTAxNjFcdTAxNjFcdTAwZWQgelx1MDBlMXZhXHUwMTdlbm9zdAogZ2IuZGlmZkZpbGVEaWZmVG9vTGFyZ2U9Um96ZFx1MDBlZGwgamUgcFx1MDE1OVx1MDBlZGxpXHUwMTYxIHZlbGtcdTAwZmQKLWdiLm1pc3NpbmdJbnRlZ3JhdGlvbkJyYW5jaE1vcmU9Q1x1MDBlZGxvdlx1MDBlMSBpbnRlZ3JhXHUwMTBkblx1MDBlZCB2XHUwMTFidGV2IHYgXHUwMGZhbG9cdTAxN2VpXHUwMTYxdGkgbmVleGlzdHVqZSEKLWdiLnF1ZXJ5SGVscD1TdGFuZGFyZG5cdTAwZWQgc3ludGF4ZSBkb3Rhelx1MDE2ZiBqZSBwb2Rwb3Jvdlx1MDBlMW5hLjxwLz48cC8+UG9kXHUwMGVkdmVqdGUgc2UgcHJvc1x1MDBlZG0gbmEgPGEgdGFyZ2V0PSJfbmV3IiBocmVmPSJodHRwOi8vbHVjZW5lLmFwYWNoZS5vcmcvY29yZS9vbGRfdmVyc2lvbmVkX2RvY3MvdmVyc2lvbnMvM181XzAvcXVlcnlwYXJzZXJzeW50YXguaHRtbCI+THVjZW5lIFF1ZXJ5IFBhcnNlciBTeW50YXg8L2E+IHBybyBkZXRhaWx5LgorZ2IubWlzc2luZ0ludGVncmF0aW9uQnJhbmNoTW9yZT1DXHUwMGVkbG92XHUwMGUxIGludGVncmFcdTAxMGRuXHUwMGVkIHZcdTAxMWJ0ZXYgdiByZXBveml0XHUwMGUxXHUwMTU5aSBuZWV4aXN0dWplIQorZ2IucXVlcnlIZWxwPVN0YW5kYXJkblx1MDBlZCBzeW50YXhlIGRvdGF6XHUwMTZmIGplIHBvZHBvcm92XHUwMGUxbmEuPHAvPjxwLz5Qb2RcdTAwZWR2ZWp0ZSBzZSBwcm9zXHUwMGVkbSBuYSAke3F1ZXJ5U3ludGF4fSBwcm8gZGV0YWlseS4KK2diLnF1ZXJ5U3ludGF4PUx1Y2VuZSBRdWVyeSBQYXJzZXIgU3ludGF4CiBnYi5kaWZmVHJ1bmNhdGVkPURpZmYgb1x1MDE1OWl6bnV0IHBvIHBcdTAxNTllZGNob3pcdTAwZWRtIHNvdWJvcnUKIGdiLmJsYW1lPWJsYW1lCiBnYi5pbWdkaWZmU3VidHJhY3Q9T2RcdTAxMGRcdTAwZWR0YXQgKFx1MDEwZGVyblx1MDBlMSA9IHN0ZWpuXHUwMGU5bCkKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfZGUucHJvcGVydGllcyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfZGUucHJvcGVydGllcwppbmRleCBlY2EzZmQyLi45NTk5ZjdlIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2RlLnByb3BlcnRpZXMKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9kZS5wcm9wZXJ0aWVzCkBAIC0yMTgsNyArMjE4LDggQEAKIGdiLndvcmtpbmdDb3B5ID0gQXJiZWl0c2tvcGllCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBEaWVzZXMgUmVwb3NpdG9yeSBiZXNpdHp0IGVpbmUgQXJiZWl0c2tvcGllIHVuZCBrYW5uIGtlaW5lIFB1c2hlcyBlbXBmYW5nZW4KIGdiLnF1ZXJ5ID0gQWJmcmFnZQotZ2IucXVlcnlIZWxwID0gU3RhbmRhcmQgQWJmcmFnZXN5bnRheCB3aXJkIHVudGVyc3RcdTAwZmN0enQuPHAvPjxwLz5VbnRlciA8YSB0YXJnZXQ9Il9uZXciIGhyZWY9Imh0dHA6Ly9sdWNlbmUuYXBhY2hlLm9yZy9jb3JlL29sZF92ZXJzaW9uZWRfZG9jcy92ZXJzaW9ucy8zXzVfMC9xdWVyeXBhcnNlcnN5bnRheC5odG1sIj5MdWNlbmUgUXVlcnkgUGFyc2VyIFN5bnRheDwvYT4gZmluZGVuIFNpZSB3ZWl0ZXJlIERldGFpbHMuCitnYi5xdWVyeUhlbHAgPSBTdGFuZGFyZCBBYmZyYWdlc3ludGF4IHdpcmQgdW50ZXJzdFx1MDBmY3R6dC48cC8+PHAvPlVudGVyICR7cXVlcnlTeW50YXh9IGZpbmRlbiBTaWUgd2VpdGVyZSBEZXRhaWxzLgorZ2IucXVlcnlTeW50YXggPSBMdWNlbmUgUXVlcnkgUGFyc2VyIFN5bnRheAogZ2IucXVlcnlSZXN1bHRzID0gRXJnZWJuaXNzZSB7MH0gLSB7MX0gKHsyfSBUcmVmZmVyKQogZ2Iubm9IaXRzID0gS2VpbmUgVHJlZmZlcgogZ2IuYXV0aG9yZWQgPSBpc3QgQXV0b3Igdm9uCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2VzLnByb3BlcnRpZXMgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2VzLnByb3BlcnRpZXMKaW5kZXggNzkxYjI4Ni4uZmEwODQ4NSAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9lcy5wcm9wZXJ0aWVzCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfZXMucHJvcGVydGllcwpAQCAtMjE4LDcgKzIxOCw4IEBACiBnYi53b3JraW5nQ29weSA9IENvcGlhIGRlIHRyYWJham8NCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBFc3RlIHJlcG9zaXRvcmlvIHRpZW5lIHVuYSBjb3BpYSBkZSB0cmFiYWpvIHkgbm8gc2UgbGUgcHVlZGUgZW1wdWphcg0KIGdiLnF1ZXJ5ID0gQ29uc3VsdGENCi1nYi5xdWVyeUhlbHAgPSBTZSBhZG1pdGUgbGEgc2ludGF4aXMgZGUgY29uc3VsdGEgZXN0XHUwMEUxbmRhci48cC8+UG9yIGZhdm9yLCBsZWUgZWw6IDxhIHRhcmdldD0iX25ldyIgaHJlZj0iaHR0cDovL2x1Y2VuZS5hcGFjaGUub3JnL2NvcmUvb2xkX3ZlcnNpb25lZF9kb2NzL3ZlcnNpb25zLzNfNV8wL3F1ZXJ5cGFyc2Vyc3ludGF4Lmh0bWwiPkFuYWxpemFkb3Igc2ludFx1MDBFMWN0aWNvIGRlIGNvbnN1bHRhcyBkZSBMdWNlbmU8L2E+IHBhcmEgbVx1MDBFMXMgZGV0YWxsZXMuDQorZ2IucXVlcnlIZWxwID0gU2UgYWRtaXRlIGxhIHNpbnRheGlzIGRlIGNvbnN1bHRhIGVzdFx1MDBFMW5kYXIuPHAvPlBvciBmYXZvciwgbGVlIGVsOiAke3F1ZXJ5U3ludGF4fSBwYXJhIG1cdTAwRTFzIGRldGFsbGVzLg0KK2diLnF1ZXJ5U3ludGF4ID0gQW5hbGl6YWRvciBzaW50XHUwMEUxY3RpY28gZGUgY29uc3VsdGFzIGRlIEx1Y2VuZQ0KIGdiLnF1ZXJ5UmVzdWx0cyA9IFJlc3VsdGFkb3MgezB9IC0gezF9ICh7Mn0gY29pbmNpZGVuY2lhcykNCiBnYi5ub0hpdHMgPSBTaW4gY29pbmNpZGVuY2lhcw0KIGdiLmF1dGhvcmVkID0gQXV0b3INCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2ZyLnByb3BlcnRpZXMgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2ZyLnByb3BlcnRpZXMKaW5kZXggZDQ3OWIzZC4uM2U3NTcxMiAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9mci5wcm9wZXJ0aWVzCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfZnIucHJvcGVydGllcwpAQCAtMjE4LDcgKzIxOCw4IEBACiBnYi53b3JraW5nQ29weSA9IGRcdTAwZTlwXHUwMGY0dCBkZSB0cmF2YWlsCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBjZSBkXHUwMGU5cFx1MDBmNHQgcG9zc1x1MDBlOGRlIHVuIGRcdTAwZTlwXHUwMGY0dCBkZSB0cmF2YWlsIGV0IG5lIHBldXQgZG9uYyBwYXMgcmVjZXZvaXIgZGUgcHVzaGVzCiBnYi5xdWVyeSA9IHJlY2hlcmNoZQotZ2IucXVlcnlIZWxwID0gTGEgc3ludGF4ZSBMdWNlbmUgc3RhbmRhcmQgZXN0IHN1cHBvcnRcdTAwZTllLjxwLz48cC8+U2Ugclx1MDBlOWZcdTAwZTlyZXIgXHUwMGUwIGxhIDxhIHRhcmdldD0iX25ldyIgaHJlZj0iaHR0cDovL2x1Y2VuZS5hcGFjaGUub3JnL2NvcmUvb2xkX3ZlcnNpb25lZF9kb2NzL3ZlcnNpb25zLzNfNV8wL3F1ZXJ5cGFyc2Vyc3ludGF4Lmh0bWwiPlN5bnRheGUgZGUgcmVjaGVyY2hlIEx1Y2VuZTwvYT4gcG91ciBwbHVzIGRlIGRcdTAwZTl0YWlscy4KK2diLnF1ZXJ5SGVscCA9IExhIHN5bnRheGUgTHVjZW5lIHN0YW5kYXJkIGVzdCBzdXBwb3J0XHUwMGU5ZS48cC8+PHAvPlNlIHJcdTAwZTlmXHUwMGU5cmVyIFx1MDBlMCBsYSAke3F1ZXJ5U3ludGF4fSBwb3VyIHBsdXMgZGUgZFx1MDBlOXRhaWxzLgorZ2IucXVlcnlTeW50YXggPSBTeW50YXhlIGRlIHJlY2hlcmNoZSBMdWNlbmUKIGdiLnF1ZXJ5UmVzdWx0cyA9IHJcdTAwZTlzdWx0YXRzIHswfSAtIHsxfSAoezJ9IGhpdHMpCiBnYi5ub0hpdHMgPSBhdWN1biByXHUwMGU5c3VsdGF0cwogZ2IuYXV0aG9yZWQgPSBhdXRob3JlZApkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9pdC5wcm9wZXJ0aWVzIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9pdC5wcm9wZXJ0aWVzCmluZGV4IDcyMzBlYzguLjk3MDQ5NmIgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfaXQucHJvcGVydGllcworKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2l0LnByb3BlcnRpZXMKQEAgLTIxOCw3ICsyMTgsOCBAQAogZ2Iud29ya2luZ0NvcHkgPSBjb3BpYSBkaSBsYXZvcm8KIGdiLndvcmtpbmdDb3B5V2FybmluZyA9IHF1ZXN0byByZXBvc2l0b3J5IOggdW5hIGNvcGlhIGRpIGxhdm9ybyBhIG5vbiBhbW1ldHRlIHB1c2gKIGdiLnF1ZXJ5ID0gaW50ZXJyb2dhemlvbmUKLWdiLnF1ZXJ5SGVscCA9IExhIHNpbnRhc3NpIHN0YW5kYXJkIOggc3VwcG9ydGF0YS48cC8+PHAvPlNpIHZlZGkgPGEgdGFyZ2V0PSJfbmV3IiBocmVmPSJodHRwOi8vbHVjZW5lLmFwYWNoZS5vcmcvY29yZS9vbGRfdmVyc2lvbmVkX2RvY3MvdmVyc2lvbnMvM181XzAvcXVlcnlwYXJzZXJzeW50YXguaHRtbCI+THVjZW5lIFF1ZXJ5IFBhcnNlciBTeW50YXg8L2E+IHBlciB1bHRlcmlvcmkgZGV0dGFnbGkuCitnYi5xdWVyeUhlbHAgPSBMYSBzaW50YXNzaSBzdGFuZGFyZCDoIHN1cHBvcnRhdGEuPHAvPjxwLz5TaSB2ZWRpICR7cXVlcnlTeW50YXh9IHBlciB1bHRlcmlvcmkgZGV0dGFnbGkuCitnYi5xdWVyeVN5bnRheCA9IEx1Y2VuZSBRdWVyeSBQYXJzZXIgU3ludGF4CiBnYi5xdWVyeVJlc3VsdHMgPSByaXN1bHRhdGkgezB9IC0gezF9ICh7Mn0gY29ycmlzcG9uZGVuemUpCiBnYi5ub0hpdHMgPSBuZXNzdW5hIGNvcnJpc3BvbmRlbnphCiBnYi5hdXRob3JlZCA9IGNyZWF0byBkYQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9qYS5wcm9wZXJ0aWVzIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9qYS5wcm9wZXJ0aWVzCmluZGV4IGM4YTI0NDkuLjM2ZTIxYTcgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfamEucHJvcGVydGllcworKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2phLnByb3BlcnRpZXMKQEAgLTIxNyw3ICsyMTcsOCBAQAogZ2Iud29ya2luZ0NvcHkgPSBcdTRmNWNcdTY5NmRcdTMwYjNcdTMwZDRcdTMwZmMNCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBcdTMwNTNcdTMwNmVcdTMwZWFcdTMwZGRcdTMwYjhcdTMwYzhcdTMwZWFcdTMwNmJcdTMwNmZcdTRmNWNcdTY5NmRcdTMwYjNcdTMwZDRcdTMwZmNcdTMwNGNcdTMwNDJcdTMwOGJcdTMwNWZcdTMwODEgcHVzaCBcdTMwNjdcdTMwNGRcdTMwN2VcdTMwNWJcdTMwOTMNCiBnYi5xdWVyeSA9IFx1MzBhZlx1MzBhOFx1MzBlYVx1MzBmYw0KLWdiLnF1ZXJ5SGVscCA9IFx1NmExOVx1NmU5Nlx1NzY4NFx1MzA2YVx1MzBhZlx1MzBhOFx1MzBlYVx1MzBmY1x1NjZmOFx1NWYwZlx1MzA5Mlx1MzBiNVx1MzBkZFx1MzBmY1x1MzBjOFx1MzA1N1x1MzA2Nlx1MzA0NFx1MzA3ZVx1MzA1OVx1MzAwMjxwLz48cC8+XHU4YTczXHU3ZDMwXHUzMDZmIDxhIHRhcmdldD0iX25ldyIgaHJlZj0iaHR0cDovL2x1Y2VuZS5hcGFjaGUub3JnL2NvcmUvb2xkX3ZlcnNpb25lZF9kb2NzL3ZlcnNpb25zLzNfNV8wL3F1ZXJ5cGFyc2Vyc3ludGF4Lmh0bWwiPkx1Y2VuZSBRdWVyeSBQYXJzZXIgU3ludGF4PC9hPiBcdTMwOTJcdTUzYzJcdTcxNjdcdTMwNTdcdTMwNjZcdTRlMGJcdTMwNTVcdTMwNDRcdTMwMDINCitnYi5xdWVyeUhlbHAgPSBcdTZhMTlcdTZlOTZcdTc2ODRcdTMwNmFcdTMwYWZcdTMwYThcdTMwZWFcdTMwZmNcdTY2ZjhcdTVmMGZcdTMwOTJcdTMwYjVcdTMwZGRcdTMwZmNcdTMwYzhcdTMwNTdcdTMwNjZcdTMwNDRcdTMwN2VcdTMwNTlcdTMwMDI8cC8+PHAvPlx1OGE3M1x1N2QzMFx1MzA2ZiAke3F1ZXJ5U3ludGF4fSBcdTMwOTJcdTUzYzJcdTcxNjdcdTMwNTdcdTMwNjZcdTRlMGJcdTMwNTVcdTMwNDRcdTMwMDINCitnYi5xdWVyeVN5bnRheCA9IEx1Y2VuZSBRdWVyeSBQYXJzZXIgU3ludGF4DQogZ2IucXVlcnlSZXN1bHRzID0gXHU2OTFjXHU3ZDIyXHU3ZDUwXHU2NzljIHswfSAtIHsxfSAoezJ9IFx1MzBkMlx1MzBjM1x1MzBjOCkNCiBnYi5ub0hpdHMgPSBcdTg5OGJcdTMwNjRcdTMwNGJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwNjdcdTMwNTdcdTMwNWZcdTMwMDINCiBnYi5hdXRob3JlZCA9IGF1dGhvcmVkDQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9rby5wcm9wZXJ0aWVzIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9rby5wcm9wZXJ0aWVzCmluZGV4IDAzMWZmOGQuLmI0YTY3NWMgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfa28ucHJvcGVydGllcworKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX2tvLnByb3BlcnRpZXMKQEAgLTE4MCwxMTAgKzE4MCwxMTEgQEAKIGdiLnZlcnNpb24gPSBcdUJDODRcdUM4MDQKIGdiLnJlbGVhc2VEYXRlID0gXHVCOUI0XHVCOUFDXHVDOTg4IFx1QjBBMFx1QzlEQwogZ2IuZGF0ZSA9IGRhdGUKLWdiLmFjdGl2aXR5ID0gXHVDNTYxXHVEMkYwXHVCRTQ0XHVEMkYwCi1nYi5zdWJzY3JpYmUgPSBcdUFENkNcdUIzQzUKLWdiLmJyYW5jaCA9IFx1QkUwQ1x1Qjc5Q1x1Q0U1OAotZ2IubWF4SGl0cyA9IFx1QjlFNVx1QzJBNFx1RDc4OFx1RDJCOAotZ2IucmVjZW50QWN0aXZpdHkgPSBcdUNENUNcdUFERkMgXHVDNTYxXHVEMkYwXHVCRTQ0XHVEMkYwCi1nYi5yZWNlbnRBY3Rpdml0eVN0YXRzID0gXHVDOUMwXHVCMDlDIHswfVx1Qzc3QyAvIFx1Qzc5MVx1QzEzMVx1Qzc5MCB7Mn1cdUJBODVcdUM3NzQgezF9XHVBQzFDIFx1Q0VFNFx1QkMwQlx1RDU2OAotZ2IucmVjZW50QWN0aXZpdHlOb25lID0gXHVDOUMwXHVCMDlDIHswfVx1Qzc3QyAvIFx1QzVDNlx1Qzc0QwotZ2IuZGFpbHlBY3Rpdml0eSA9IFx1Qzc3Q1x1Qzc3QyBcdUM1NjFcdUQyRjBcdUJFNDRcdUQyRjAKLWdiLmFjdGl2ZVJlcG9zaXRvcmllcyA9IFx1QzBBQ1x1QzZBOVx1QzkxMVx1Qzc3OCBcdUM4MDBcdUM3QTVcdUMxOEMKLWdiLmFjdGl2ZUF1dGhvcnMgPSBcdUMwQUNcdUM2QTlcdUM5MTFcdUM3NzggXHVDNzkxXHVDMTMxXHVDNzkwCi1nYi5jb21taXRzID0gXHVDRUU0XHVCQzBCCi1nYi50ZWFtcyA9IFx1RDMwMAotZ2IudGVhbU5hbWUgPSBcdUQzMDAgXHVDNzc0XHVCOTg0Ci1nYi50ZWFtTWVtYmVycyA9IFx1RDMwMCBcdUJBNjRcdUJDODQKLWdiLnRlYW1NZW1iZXJzaGlwcyA9IFx1RDMwMCBcdUI5RjRcdUJDODRcdUMyN0QKLWdiLm5ld1RlYW0gPSBcdUMwQzhcdUI4NUNcdUM2QjQgXHVEMzAwCi1nYi5wZXJtaXR0ZWRUZWFtcyA9IFx1RDVDOFx1QzZBOVx1QjQxQyBcdUQzMDAKLWdiLmVtcHR5UmVwb3NpdG9yeSA9IFx1QkU0OCBcdUM4MDBcdUM3QTVcdUMxOEMKLWdiLnJlcG9zaXRvcnlVcmwgPSBcdUM4MDBcdUM3QTVcdUMxOEMgdXJsCi1nYi5tYWlsaW5nTGlzdHMgPSBcdUJBNTRcdUM3N0NcdUI5QzEgXHVCOUFDXHVDMkE0XHVEMkI4Ci1nYi5wcmVSZWNlaXZlU2NyaXB0cyA9IHByZS1yZWNlaXZlIFx1QzJBNFx1RDA2Q1x1QjlCRFx1RDJCOAotZ2IucG9zdFJlY2VpdmVTY3JpcHRzID0gcG9zdC1yZWNlaXZlIFx1QzJBNFx1RDA2Q1x1QjlCRFx1RDJCOAotZ2IuaG9va1NjcmlwdHMgPSBcdUQ2QzRcdUQwNkMgXHVDMkE0XHVEMDZDXHVCOUJEXHVEMkI4Ci1nYi5jdXN0b21GaWVsZHMgPSBcdUMwQUNcdUM2QTlcdUM3OTAgXHVENTQ0XHVCNERDCi1nYi5jdXN0b21GaWVsZHNEZXNjcmlwdGlvbiA9IFx1QURGOFx1QjhFOFx1QkU0NCBcdUQ2QzVcdUM1RDAgXHVDMEFDXHVDNkE5XHVDNzkwIFx1RDU0NFx1QjREQyBcdUMwQUNcdUM2QTkgXHVBQzAwXHVCMkE1Ci1nYi5hY2Nlc3NQZXJtaXNzaW9ucyA9IFx1QzgxMVx1QzE4RCBcdUFEOENcdUQ1NUMKLWdiLmZpbHRlcnMgPSBcdUQ1NDRcdUQxMzAKLWdiLmdlbmVyYWxEZXNjcmlwdGlvbiA9IFx1Qzc3Q1x1QkMxOCBcdUMxMjRcdUM4MTUKLWdiLmFjY2Vzc1Blcm1pc3Npb25zRGVzY3JpcHRpb24gPSBcdUM3MjBcdUM4MDBcdUM2NDAgXHVEMzAwXHVDNzNDXHVCODVDIFx1QzgxMVx1QzE4RFx1QUQ4Q1x1RDU1QyBcdUJEODBcdUM1RUMKLWdiLmFjY2Vzc1Blcm1pc3Npb25zRm9yVXNlckRlc2NyaXB0aW9uID0gXHVEMzAwXHVDNzQ0IFx1QzlDMFx1QzgxNVx1RDU1OFx1QUM3MFx1QjA5OCBcdUM4MTFcdUMxOEQgXHVBRDhDXHVENTVDXHVDNzQ0IFx1QzlDMFx1QzgxNVx1RDU2MCBcdUM4MDBcdUM3QTVcdUMxOEMgXHVDMTIwXHVEMERECi1nYi5hY2Nlc3NQZXJtaXNzaW9uc0ZvclRlYW1EZXNjcmlwdGlvbiA9IFx1RDMwMCBcdUI5RjRcdUJDODRcdUI5N0MgXHVDMTIwXHVEMEREXHVENTU4XHVBQ0UwLCBcdUM4MTFcdUMxOEQgXHVBRDhDXHVENTVDXHVDNzQ0IFx1QzlDMFx1QzgxNVx1RDU2MCBcdUM4MDBcdUM3QTVcdUMxOEMgXHVDMTIwXHVEMERECi1nYi5mZWRlcmF0aW9uUmVwb3NpdG9yeURlc2NyaXB0aW9uID0gXHVDNzc0IFx1QzgwMFx1QzdBNVx1QzE4Q1x1Qjk3QyBcdUIyRTRcdUI5NzggR2l0YmxpdCBcdUMxMUNcdUJDODRcdUM2NDAgXHVBQ0Y1XHVDNzIwCi1nYi5ob29rU2NyaXB0c0Rlc2NyaXB0aW9uID0gXHVDNzc0IEdpdGJsaXQgXHVDMTFDXHVCQzg0XHVDNUQwIFx1RDQ3OFx1QzJEQ1x1QjQxOFx1QkE3NCBcdUFERjhcdUI4RThcdUJFNDQoR3Jvb3Z5KSBcdUMyQTRcdUQwNkNcdUI5QkRcdUQyQjhcdUI5N0MgXHVDMkU0XHVENTg5Ci1nYi5yZXNldCA9IFx1QjlBQ1x1QzE0QgotZ2IucGFnZXMgPSBcdUQzOThcdUM3NzRcdUM5QzAKLWdiLndvcmtpbmdDb3B5ID0gXHVDNkNDXHVEMEI5IFx1Q0U3NFx1RDUzQwotZ2Iud29ya2luZ0NvcHlXYXJuaW5nID0gXHVDNzc0IFx1QzgwMFx1QzdBNVx1QzE4Q1x1QjI5NCBcdUM2Q0NcdUQwQjlcdUNFNzRcdUQ1M0NcdUI5N0MgXHVBQzAwXHVDOUMwXHVBQ0UwIFx1Qzc4OFx1QUNFMCBcdUQ0NzhcdUMyRENcdUI5N0MgXHVCQzFCXHVDNzQ0IFx1QzIxOCBcdUM1QzZcdUM3NEMKLWdiLnF1ZXJ5ID0gXHVDRkZDXHVCOUFDCi1nYi5xdWVyeUhlbHAgPSBcdUQ0NUNcdUM5MDAgXHVDRkZDXHVCOUFDIFx1QkIzOFx1QkM5NVx1Qzc0NCBcdUM5QzBcdUM2RDAuPHAvPjxwLz5cdUM3OTBcdUMxMzhcdUQ1NUMgXHVBQzgzXHVDNzQ0IFx1QzZEMFx1RDU1Q1x1QjJFNFx1QkE3NCA8YSB0YXJnZXQ9Il9uZXciIGhyZWY9Imh0dHA6Ly9sdWNlbmUuYXBhY2hlLm9yZy9jb3JlL29sZF92ZXJzaW9uZWRfZG9jcy92ZXJzaW9ucy8zXzVfMC9xdWVyeXBhcnNlcnN5bnRheC5odG1sIj5cdUI4RThcdUMyRTAgXHVDRkZDXHVCOUFDIFx1RDMwQ1x1QzExQyBcdUJCMzhcdUJDOTU8L2E+IFx1Qzc0NCBcdUJDMjlcdUJCMzhcdUQ1NzQgXHVDOEZDXHVDMTM4XHVDNjk0LgotZ2IucXVlcnlSZXN1bHRzID0gXHVBQzgwXHVDMEM5XHVBQ0IwXHVBQ0ZDIHswfSAtIHsxfSAoezJ9XHVBQzFDIFx1QUM4MFx1QzBDOVx1QjQyOCkKLWdiLm5vSGl0cyA9IFx1QUM4MFx1QzBDOSBcdUFDQjBcdUFDRkMgXHVDNUM2XHVDNzRDCi1nYi5hdXRob3JlZCA9IFx1QUMwMCBcdUM3OTFcdUMxMzFcdUQ1NjguCi1nYi5jb21taXR0ZWQgPSBcdUNFRTRcdUJDMEJcdUI0MjgKLWdiLmluZGV4ZWRCcmFuY2hlcyA9IFx1Qzc3OFx1QjM3MVx1QzJGMVx1RDU2MCBcdUJFMENcdUI3OUNcdUNFNTgKLWdiLmluZGV4ZWRCcmFuY2hlc0Rlc2NyaXB0aW9uID0gXHVCOEU4XHVDMkUwIFx1Qzc3OFx1QjM3MVx1QzJBNFx1QzVEMCBcdUQzRUNcdUQ1NjhcdUQ1NjAgXHVCRTBDXHVCNzlDXHVDRTU4IFx1QzEyMFx1RDBERAotZ2Iubm9JbmRleGVkUmVwb3NpdG9yaWVzV2FybmluZyA9IFx1QzgwMFx1QzdBNVx1QzE4Q1x1QUMwMCBcdUI4RThcdUMyRTAgXHVDNzc4XHVCMzcxXHVDMkYxXHVDNUQwIFx1QzEyNFx1QzgxNVx1QjQxOFx1QzlDMCBcdUM1NEFcdUM3NEMKLWdiLnVuZGVmaW5lZFF1ZXJ5V2FybmluZyA9IFx1Q0ZGQ1x1QjlBQyBcdUM5QzBcdUM4MTVcdUI0MThcdUM5QzAgXHVDNTRBXHVDNzRDIQotZ2Iubm9TZWxlY3RlZFJlcG9zaXRvcmllc1dhcm5pbmcgPSBcdUQ1NThcdUIwOTggXHVCNjEwXHVCMjk0IFx1QURGOCBcdUM3NzRcdUMwQzFcdUM3NTggXHVDODAwXHVDN0E1XHVDMThDXHVCOTdDIFx1QzEyMFx1RDBERFx1RDU1OFx1QzEzOFx1QzY5NCEKLWdiLmx1Y2VuZURpc2FibGVkID0gXHVCOEU4XHVDMkUwIFx1Qzc3OFx1QjM3MVx1QzJGMSBcdUM5MTFcdUM5QzBcdUI0MjgKLWdiLmZhaWxlZHRvUmVhZCA9IFx1Qzc3Q1x1QUUzMCBcdUMyRTRcdUQzMjgKLWdiLmlzTm90VmFsaWRGaWxlID0gXHVDNzIwXHVENkE4XHVENTVDIFx1RDMwQ1x1Qzc3Q1x1Qzc3NCBcdUM1NDRcdUIyRDgKLWdiLmZhaWxlZFRvUmVhZE1lc3NhZ2UgPSB7MH1cdUM1RDBcdUMxMUMgXHVCNTE0XHVEM0Y0XHVEMkI4IFx1QkE1NFx1QzJEQ1x1QzlDMCBcdUM3N0NcdUFFMzAgXHVDMkU0XHVEMzI4IQotZ2IucGFzc3dvcmRzRG9Ob3RNYXRjaCA9IFx1RDMyOFx1QzJBNFx1QzZDQ1x1QjREQ1x1QUMwMCBcdUM3N0NcdUNFNThcdUQ1NThcdUM5QzAgXHVDNTRBXHVDNTQ0XHVDNjk0IQotZ2IucGFzc3dvcmRUb29TaG9ydCA9IFx1RDMyOFx1QzJBNFx1QzZDQ1x1QjREQ1x1QUMwMCBcdUIxMDhcdUJCMzQgXHVDOUU3XHVDNTQ0XHVDNjk0LiBcdUM4MDFcdUM1QjRcdUIzQzQgezB9IFx1QUMxQyBcdUJCMzhcdUM3OTBcdUM1RUNcdUM1N0MgXHVENTY5XHVCMkM4XHVCMkU0LgotZ2IucGFzc3dvcmRDaGFuZ2VkID0gXHVEMzI4XHVDMkE0XHVDNkNDXHVCNERDXHVBQzAwIFx1QkNDMFx1QUNCRCBcdUMxMzFcdUFDRjUuCi1nYi5wYXNzd29yZENoYW5nZUFib3J0ZWQgPSBcdUQzMjhcdUMyQTRcdUM2Q0NcdUI0REMgXHVCQ0MwXHVBQ0JEIFx1Q0RFOFx1QzE4Q1x1QjQyOC4KLWdiLnBsZWFzZVNldFJlcG9zaXRvcnlOYW1lID0gXHVDODAwXHVDN0E1XHVDMThDIFx1Qzc3NFx1Qjk4NFx1Qzc0NCBcdUM3ODVcdUI4MjVcdUQ1NThcdUMxMzhcdUM2OTQhCi1nYi5pbGxlZ2FsTGVhZGluZ1NsYXNoID0gXHVDODAwXHVDN0E1XHVDMThDIFx1Qzc3NFx1Qjk4NCBcdUI2MTBcdUIyOTQgXHVEM0Y0XHVCMzU0XHVCMjk0ICgvKSBcdUI4NUMgXHVDMkRDXHVDNzkxXHVENTYwIFx1QzIxOCBcdUM1QzZcdUMyQjVcdUIyQzhcdUIyRTQuCi1nYi5pbGxlZ2FsUmVsYXRpdmVTbGFzaCA9IFx1QzBDMVx1QjMwMCBcdUFDQkRcdUI4NUMgXHVDOUMwXHVDODE1ICguLi8pIFx1Qzc0MCBcdUMwQUNcdUM2QTlcdUQ1NjAgXHVDMjE4IFx1QzVDNlx1QzJCNVx1QjJDOFx1QjJFNC4uCi1nYi5pbGxlZ2FsQ2hhcmFjdGVyUmVwb3NpdG9yeU5hbWUgPSBcdUJCMzhcdUM3OTAgJyd7MH0nJyBcdUM4MDBcdUM3QTVcdUMxOEMgXHVDNzc0XHVCOTg0XHVDNUQwIFx1QzBBQ1x1QzZBOVx1RDU2MCBcdUMyMTggXHVDNUM2XHVDNUI0XHVDNjk0IQotZ2Iuc2VsZWN0QWNjZXNzUmVzdHJpY3Rpb24gPSBcdUM4MTFcdUMxOEQgXHVBRDhDXHVENTVDXHVDNzQ0IFx1QzEyMFx1RDBERFx1RDU1OFx1QzEzOFx1QzY5NCEKLWdiLnNlbGVjdEZlZGVyYXRpb25TdHJhdGVneSA9IFx1RDM5OFx1QjM1NFx1QjgwOFx1Qzc3NFx1QzE1OCBcdUM4MTVcdUNDNDVcdUM3NDQgXHVDMTIwXHVEMEREXHVENTU4XHVDMTM4XHVDNjk0IQotZ2IucGxlYXNlU2V0VGVhbU5hbWUgPSBcdUQzMDBcdUM3NzRcdUI5ODRcdUM3NDQgXHVDNzg1XHVCODI1XHVENTU4XHVDMTM4XHVDNjk0IQotZ2IudGVhbU5hbWVVbmF2YWlsYWJsZSA9ICcnezB9JycgXHVEMzAwXHVDNzQwIFx1QzBBQ1x1QzZBOVx1RDU2MCBcdUMyMTggXHVDNUM2XHVDNUI0XHVDNjk0LgotZ2IudGVhbU11c3RTcGVjaWZ5UmVwb3NpdG9yeSA9IFx1RDMwMFx1Qzc0MCBcdUM4MDFcdUM1QjRcdUIzQzQgXHVENTU4XHVCMDk4XHVDNzU4IFx1QzgwMFx1QzdBNVx1QzE4Q1x1Qjk3QyBcdUM5QzBcdUM4MTVcdUQ1NzRcdUM1N0MgXHVENTY5XHVCMkM4XHVCMkU0LgotZ2IudGVhbUNyZWF0ZWQgPSBcdUMwQzhcdUI4NUNcdUM2QjQgXHVEMzAwICcnezB9JycgXHVDMEREXHVDMTMxIFx1QzY0NFx1QjhDQy4KLWdiLnBsZWFzZVNldFVzZXJuYW1lID0gXHVDNzIwXHVDODAwXHVCMTI0XHVDNzg0XHVDNzQ0IFx1Qzc4NVx1QjgyNVx1RDU1OFx1QzEzOFx1QzY5NCEKLWdiLnVzZXJuYW1lVW5hdmFpbGFibGUgPSAnJ3swfScnIFx1QzcyMFx1QzgwMFx1QjEyNFx1Qzc4NFx1Qzc0MCBcdUMwQUNcdUM2QTlcdUQ1NjAgXHVDMjE4IFx1QzVDNlx1QzVCNFx1QzY5NC4KLWdiLmNvbWJpbmVkTWQ1UmVuYW1lID0gR2l0YmxpdCBcdUM3NDAgY29tYmluZWQtbWQ1IFx1RDU3NFx1QzJGMSBcdUQzMjhcdUMyQTRcdUM2Q0NcdUI0RENcdUI4NUMgXHVDMTI0XHVDODE1XHVCNDE4XHVDNUM4XHVDMkI1XHVCMkM4XHVCMkU0LiBcdUFDQzRcdUM4MTUgXHVDNzc0XHVCOTg0IFx1QkNDMFx1QUNCRCBcdUMyREMgXHVDMEM4IFx1RDMyOFx1QzJBNFx1QzZDQ1x1QjREQ1x1Qjk3QyBcdUM3ODVcdUI4MjVcdUQ1NzRcdUM1N0MgXHVENTY5XHVCMkM4XHVCMkU0LgotZ2IudXNlckNyZWF0ZWQgPSBcdUMwQzhcdUI4NUNcdUM2QjQgXHVDNzIwXHVDODAwICcnezB9JycgXHVDMEREXHVDMTMxIFx1QzY0NFx1QjhDQy4KLWdiLmNvdWxkTm90RmluZEZlZGVyYXRpb25SZWdpc3RyYXRpb24gPSBcdUQzOThcdUIzNTRcdUI4MDhcdUM3NzRcdUMxNTggXHVCNEYxXHVCODVEXHVDNzQ0IFx1Q0MzRVx1Qzc0NCBcdUMyMTggXHVDNUM2XHVDMkI1XHVCMkM4XHVCMkU0IQotZ2IuZmFpbGVkVG9GaW5kR3JhdmF0YXJQcm9maWxlID0gezB9IFx1Qzc1OCBHcmF2YXRhciBcdUQ1MDRcdUI4NUNcdUQzMENcdUM3N0MgXHVDQzNFXHVBRTMwIFx1QzJFNFx1RDMyOAotZ2IuYnJhbmNoU3RhdHMgPSB7Mn0gXHVDNTQ4XHVDNUQwIHswfSBcdUNFRTRcdUJDMEIgezF9IFx1RDBEQ1x1QURGOAotZ2IucmVwb3NpdG9yeU5vdFNwZWNpZmllZCA9IFx1QzgwMFx1QzdBNVx1QzE4Q1x1QUMwMCBcdUM5QzBcdUM4MTVcdUI0MThcdUM5QzAgXHVDNTRBXHVDNzRDIQotZ2IucmVwb3NpdG9yeU5vdFNwZWNpZmllZEZvciA9IHswfSBcdUI5N0MgXHVDNzA0XHVENTVDIFx1QzgwMFx1QzdBNVx1QzE4Q1x1QUMwMCBcdUM5QzBcdUM4MTVcdUI0MThcdUM5QzAgXHVDNTRBXHVDNzRDIQotZ2IuY2FuTm90TG9hZFJlcG9zaXRvcnkgPSBcdUM4MDBcdUM3QTVcdUMxOENcdUI5N0MgXHVCRDg4XHVCN0VDXHVDNjJDIFx1QzIxOCBcdUM1QzZcdUM3NEMKLWdiLmNvbW1pdElzTnVsbCA9IFx1QjExMCBcdUNFRTRcdUJDMEIKLWdiLnVuYXV0aG9yaXplZEFjY2Vzc0ZvclJlcG9zaXRvcnkgPSBcdUM4MDBcdUM3QTVcdUMxOENcdUM1RDAgXHVDODExXHVBREZDIFx1RDVDOFx1QzZBOVx1QjQxOFx1QzlDMCBcdUM1NEFcdUM3NEMKLWdiLmZhaWxlZFRvRmluZENvbW1pdCA9IFx1Q0VFNFx1QkMwQlx1Qzc0NCBcdUNDM0VcdUM3NDQgXHVDMjE4IFx1QzVDNlx1Qzc0QyBcInswfVwiIGluIHsxfSBmb3IgezJ9IFx1RDM5OFx1Qzc3NFx1QzlDMCEKLWdiLmNvdWxkTm90RmluZEZlZGVyYXRpb25Qcm9wb3NhbCA9IFx1RDM5OFx1QjM1NFx1QjgwOFx1Qzc3NFx1QzE1OCBcdUM4MUNcdUM1NDhcdUM3NDQgXHVDQzNFXHVDNzQ0IFx1QzIxOCBcdUM1QzZcdUMyQjVcdUIyQzhcdUIyRTQhCi1nYi5pbnZhbGlkVXNlcm5hbWVPclBhc3N3b3JkID0gXHVDNzk4XHVCQUJCXHVCNDFDIFx1QzcyMFx1QzgwMFx1QjEyNFx1Qzc4NCBcdUI2MTBcdUIyOTQgXHVEMzI4XHVDMkE0XHVDNkNDXHVCNERDIQotZ2IuT25lUHJvcG9zYWxUb1JldmlldyA9IFx1QUM4MFx1RDFBMFx1Qjk3QyBcdUFFMzBcdUIyRTRcdUI5QUNcdUFDRTAgXHVDNzg4XHVCMjk0IDFcdUFDMUNcdUM3NTggXHVEMzk4XHVCMzU0XHVCODA4XHVDNzc0XHVDMTU4IFx1QzgxQ1x1QzU0OFx1Qzc3NCBcdUM3ODhcdUMyQjVcdUIyQzhcdUIyRTQuCi1nYi5uRmVkZXJhdGlvblByb3Bvc2Fsc1RvUmV2aWV3ID0gXHVBQzgwXHVEMUEwXHVCOTdDIFx1QUUzMFx1QjJFNFx1QjlBQ1x1QUNFMCBcdUM3ODhcdUIyOTQgezB9IFx1QUMxQ1x1Qzc1OCBcdUQzOThcdUIzNTRcdUI4MDhcdUM3NzRcdUMxNTggXHVDODFDXHVDNTQ4XHVDNzc0IFx1Qzc4OFx1QzJCNVx1QjJDOFx1QjJFNC4KLWdiLmNvdWxkTm90RmluZFRhZyA9IFx1RDBEQ1x1QURGOCB7MH0gXHVCOTdDKFx1Qzc0NCkgXHVDQzNFXHVDNzQ0IFx1QzIxOCBcdUM1QzZcdUM3NEMKLWdiLmNvdWxkTm90Q3JlYXRlRmVkZXJhdGlvblByb3Bvc2FsID0gXHVEMzk4XHVCMzU0XHVCODA4XHVDNzc0XHVDMTU4IFx1QzgxQ1x1QzU0OCBcdUMwRERcdUMxMzEgXHVDMkU0XHVEMzI4IQotZ2IucGxlYXNlU2V0R2l0YmxpdFVybCA9IEdpdGJsaXQgdXJsIFx1Qzc0NCBcdUM3ODVcdUI4MjVcdUQ1NThcdUMxMzhcdUM2OTQhCi1nYi5wbGVhc2VTZXREZXN0aW5hdGlvblVybCA9IFx1QjJGOVx1QzJFMFx1Qzc1OCBcdUM4MUNcdUM1NDhcdUM1RDAgXHVCMzAwXHVENTVDIFx1QjMwMFx1QzBDMSB1cmwgXHVDNzQ0IFx1Qzc4NVx1QjgyNVx1RDU1OFx1QzEzOFx1QzY5NCEKLWdiLnByb3Bvc2FsUmVjZWl2ZWQgPSB7MH0gXHVDNzU4IFx1QzgxQ1x1QzU0OCBcdUMxMzFcdUFDRjVcdUM4MDEgXHVDMjE4XHVDMkUwCi1nYi5ub0dpdGJsaXRGb3VuZCA9IFx1QzhDNFx1QzFBMVx1RDU2OVx1QjJDOFx1QjJFNCwgR2l0YmxpdCBcdUM3NzhcdUMyQTRcdUQxMzRcdUMyQTQgezF9IFx1QzVEMFx1QzExQyB7MH0gXHVCOTdDIFx1Q0MzRVx1Qzc0NCBcdUMyMTggXHVDNUM2XHVDMkI1XHVCMkM4XHVCMkU0LgotZ2Iubm9Qcm9wb3NhbHMgPSBcdUM4QzRcdUMxQTFcdUQ1NjlcdUIyQzhcdUIyRTQsIFx1Qzc3NFx1QkM4OFx1QzVEMFx1QjI5NCB7MH0gXHVDNzU4IFx1QzgxQ1x1QzU0OFx1Qzc0NCBcdUMyMThcdUM2QTlcdUQ1NThcdUM5QzAgXHVDNTRBXHVDNTU4XHVDMkI1XHVCMkM4XHVCMkU0LgotZ2Iubm9GZWRlcmF0aW9uID0gXHVDOEM0XHVDMUExXHVENTY5XHVCMkM4XHVCMkU0LCB7MH0gXHVDNUQwXHVCMjk0IFx1RDM5OFx1QjM1NFx1QjgwOFx1Qzc3NFx1QzE1OCBcdUMxMjRcdUM4MTVcdUI0MUMgR2l0YmxpdCBcdUM3NzhcdUMyQTRcdUQxMzRcdUMyQTRcdUFDMDAgXHVDNUM2XHVDMkI1XHVCMkM4XHVCMkU0LgotZ2IucHJvcG9zYWxGYWlsZWQgPSBcdUM4QzRcdUMxQTFcdUQ1NjlcdUIyQzhcdUIyRTQsIHswfSBcdUM1RDBcdUIyOTQgXHVDODFDXHVDNTQ4IFx1QjM3MFx1Qzc3NFx1RDEzMFx1Qjk3QyBcdUJDMUJcdUM5QzAgXHVDNTRBXHVDNTU4XHVDMkI1XHVCMkM4XHVCMkU0LgotZ2IucHJvcG9zYWxFcnJvciA9IFx1QzhDNFx1QzFBMVx1RDU2OVx1QjJDOFx1QjJFNCwgezB9IFx1QzVEMCBcdUIzMDBcdUQ1NUMgXHVDNjI0XHVCOTU4IFx1QkMxQ1x1QzBERCBcdUJDRjRcdUFDRTAKLWdiLmZhaWxlZFRvU2VuZFByb3Bvc2FsID0gXHVDODFDXHVDNTQ4IFx1QkNGNFx1QjBCNFx1QUUzMCBcdUMyRTRcdUQzMjghCi1nYi51c2VyU2VydmljZURvZXNOb3RQZXJtaXRBZGRVc2VyID0gezB9IFx1QzBDOFx1Qjg1Q1x1QzZCNCBcdUM3MjBcdUM4MDBcdUI5N0MgXHVDRDk0XHVBQzAwXHVENTYwIFx1QzIxOCBcdUM1QzZcdUM3NEMhCi1nYi51c2VyU2VydmljZURvZXNOb3RQZXJtaXRQYXNzd29yZENoYW5nZXMgPSB7MH0gXHVEMzI4XHVDMkE0XHVDNkNDXHVCNERDXHVCOTdDIFx1QkNDMFx1QUNCRFx1RDU2MCBcdUMyMTggXHVDNUM2XHVDNzRDIQotZ2IuZGlzcGxheU5hbWUgPSBcdUQ0NUNcdUMyRENcdUI0MThcdUIyOTQgXHVDNzc0XHVCOTg0Ci1nYi5lbWFpbEFkZHJlc3MgPSBcdUM3NzRcdUJBNTRcdUM3N0MgXHVDOEZDXHVDMThDCi1nYi5lcnJvckFkbWluTG9naW5SZXF1aXJlZCA9IFx1QUQwMFx1QjlBQ1x1Qjk3QyBcdUM3MDRcdUQ1NzRcdUMxMUNcdUIyOTQgXHVCODVDXHVBREY4XHVDNzc4XHVDNzc0IFx1RDU0NFx1QzY5NAotZ2IuZXJyb3JPbmx5QWRtaW5NYXlDcmVhdGVSZXBvc2l0b3J5ID0gXHVBRDAwXHVCOUFDXHVDNzkwXHVCOUNDIFx1QzgwMFx1QzdBNVx1QzE4Q1x1Qjk3QyBcdUI5Q0NcdUI0RTRcdUMyMTggXHVDNzg4XHVDNzRDCi1nYi5lcnJvck9ubHlBZG1pbk9yT3duZXJNYXlFZGl0UmVwb3NpdG9yeSA9IFx1QUQwMFx1QjlBQ1x1Qzc5MFx1QzY0MCBcdUMxOENcdUM3MjBcdUM3OTBcdUI5Q0MgXHVDODAwXHVDN0E1XHVDMThDXHVCOTdDIFx1QzIxOFx1QzgxNVx1RDU2MCBcdUMyMTggXHVDNzg4XHVDNzRDCi1nYi5lcnJvckFkbWluaXN0cmF0aW9uRGlzYWJsZWQgPSBcdUFEMDBcdUI5QUNcdUFFMzBcdUIyQTUgXHVCRTQ0XHVENjVDXHVDMTMxXHVENjU0XHVCNDI4Ci1nYi5sYXN0TkRheXMgPSB7MH0gXHVDNzdDXHVDODA0Ci1nYi5jb21wbGV0ZUdyYXZhdGFyUHJvZmlsZSA9IEdyYXZhdGFyLmNvbSBcdUM1RDAgXHVENTA0XHVCODVDXHVEMzBDXHVDNzdDIFx1QzBERFx1QzEzMVx1QjQyOAorZ2IuYWN0aXZpdHkgPSBcdWM1NjFcdWQyZjBcdWJlNDRcdWQyZjAKK2diLnN1YnNjcmliZSA9IFx1YWQ2Y1x1YjNjNQorZ2IuYnJhbmNoID0gXHViZTBjXHViNzljXHVjZTU4CitnYi5tYXhIaXRzID0gXHViOWU1XHVjMmE0XHVkNzg4XHVkMmI4CitnYi5yZWNlbnRBY3Rpdml0eSA9IFx1Y2Q1Y1x1YWRmYyBcdWM1NjFcdWQyZjBcdWJlNDRcdWQyZjAKK2diLnJlY2VudEFjdGl2aXR5U3RhdHMgPSBcdWM5YzBcdWIwOWMgezB9XHVjNzdjIC8gXHVjNzkxXHVjMTMxXHVjNzkwIHsyfVx1YmE4NVx1Yzc3NCB7MX1cdWFjMWMgXHVjZWU0XHViYzBiXHVkNTY4CitnYi5yZWNlbnRBY3Rpdml0eU5vbmUgPSBcdWM5YzBcdWIwOWMgezB9XHVjNzdjIC8gXHVjNWM2XHVjNzRjCitnYi5kYWlseUFjdGl2aXR5ID0gXHVjNzdjXHVjNzdjIFx1YzU2MVx1ZDJmMFx1YmU0NFx1ZDJmMAorZ2IuYWN0aXZlUmVwb3NpdG9yaWVzID0gXHVjMGFjXHVjNmE5XHVjOTExXHVjNzc4IFx1YzgwMFx1YzdhNVx1YzE4YworZ2IuYWN0aXZlQXV0aG9ycyA9IFx1YzBhY1x1YzZhOVx1YzkxMVx1Yzc3OCBcdWM3OTFcdWMxMzFcdWM3OTAKK2diLmNvbW1pdHMgPSBcdWNlZTRcdWJjMGIKK2diLnRlYW1zID0gXHVkMzAwCitnYi50ZWFtTmFtZSA9IFx1ZDMwMCBcdWM3NzRcdWI5ODQKK2diLnRlYW1NZW1iZXJzID0gXHVkMzAwIFx1YmE2NFx1YmM4NAorZ2IudGVhbU1lbWJlcnNoaXBzID0gXHVkMzAwIFx1YjlmNFx1YmM4NFx1YzI3ZAorZ2IubmV3VGVhbSA9IFx1YzBjOFx1Yjg1Y1x1YzZiNCBcdWQzMDAKK2diLnBlcm1pdHRlZFRlYW1zID0gXHVkNWM4XHVjNmE5XHViNDFjIFx1ZDMwMAorZ2IuZW1wdHlSZXBvc2l0b3J5ID0gXHViZTQ4IFx1YzgwMFx1YzdhNVx1YzE4YworZ2IucmVwb3NpdG9yeVVybCA9IFx1YzgwMFx1YzdhNVx1YzE4YyB1cmwKK2diLm1haWxpbmdMaXN0cyA9IFx1YmE1NFx1Yzc3Y1x1YjljMSBcdWI5YWNcdWMyYTRcdWQyYjgKK2diLnByZVJlY2VpdmVTY3JpcHRzID0gcHJlLXJlY2VpdmUgXHVjMmE0XHVkMDZjXHViOWJkXHVkMmI4CitnYi5wb3N0UmVjZWl2ZVNjcmlwdHMgPSBwb3N0LXJlY2VpdmUgXHVjMmE0XHVkMDZjXHViOWJkXHVkMmI4CitnYi5ob29rU2NyaXB0cyA9IFx1ZDZjNFx1ZDA2YyBcdWMyYTRcdWQwNmNcdWI5YmRcdWQyYjgKK2diLmN1c3RvbUZpZWxkcyA9IFx1YzBhY1x1YzZhOVx1Yzc5MCBcdWQ1NDRcdWI0ZGMKK2diLmN1c3RvbUZpZWxkc0Rlc2NyaXB0aW9uID0gXHVhZGY4XHViOGU4XHViZTQ0IFx1ZDZjNVx1YzVkMCBcdWMwYWNcdWM2YTlcdWM3OTAgXHVkNTQ0XHViNGRjIFx1YzBhY1x1YzZhOSBcdWFjMDBcdWIyYTUKK2diLmFjY2Vzc1Blcm1pc3Npb25zID0gXHVjODExXHVjMThkIFx1YWQ4Y1x1ZDU1YworZ2IuZmlsdGVycyA9IFx1ZDU0NFx1ZDEzMAorZ2IuZ2VuZXJhbERlc2NyaXB0aW9uID0gXHVjNzdjXHViYzE4IFx1YzEyNFx1YzgxNQorZ2IuYWNjZXNzUGVybWlzc2lvbnNEZXNjcmlwdGlvbiA9IFx1YzcyMFx1YzgwMFx1YzY0MCBcdWQzMDBcdWM3M2NcdWI4NWMgXHVjODExXHVjMThkXHVhZDhjXHVkNTVjIFx1YmQ4MFx1YzVlYworZ2IuYWNjZXNzUGVybWlzc2lvbnNGb3JVc2VyRGVzY3JpcHRpb24gPSBcdWQzMDBcdWM3NDQgXHVjOWMwXHVjODE1XHVkNTU4XHVhYzcwXHViMDk4IFx1YzgxMVx1YzE4ZCBcdWFkOGNcdWQ1NWNcdWM3NDQgXHVjOWMwXHVjODE1XHVkNTYwIFx1YzgwMFx1YzdhNVx1YzE4YyBcdWMxMjBcdWQwZGQKK2diLmFjY2Vzc1Blcm1pc3Npb25zRm9yVGVhbURlc2NyaXB0aW9uID0gXHVkMzAwIFx1YjlmNFx1YmM4NFx1Yjk3YyBcdWMxMjBcdWQwZGRcdWQ1NThcdWFjZTAsIFx1YzgxMVx1YzE4ZCBcdWFkOGNcdWQ1NWNcdWM3NDQgXHVjOWMwXHVjODE1XHVkNTYwIFx1YzgwMFx1YzdhNVx1YzE4YyBcdWMxMjBcdWQwZGQKK2diLmZlZGVyYXRpb25SZXBvc2l0b3J5RGVzY3JpcHRpb24gPSBcdWM3NzQgXHVjODAwXHVjN2E1XHVjMThjXHViOTdjIFx1YjJlNFx1Yjk3OCBHaXRibGl0IFx1YzExY1x1YmM4NFx1YzY0MCBcdWFjZjVcdWM3MjAKK2diLmhvb2tTY3JpcHRzRGVzY3JpcHRpb24gPSBcdWM3NzQgR2l0YmxpdCBcdWMxMWNcdWJjODRcdWM1ZDAgXHVkNDc4XHVjMmRjXHViNDE4XHViYTc0IFx1YWRmOFx1YjhlOFx1YmU0NChHcm9vdnkpIFx1YzJhNFx1ZDA2Y1x1YjliZFx1ZDJiOFx1Yjk3YyBcdWMyZTRcdWQ1ODkKK2diLnJlc2V0ID0gXHViOWFjXHVjMTRiCitnYi5wYWdlcyA9IFx1ZDM5OFx1Yzc3NFx1YzljMAorZ2Iud29ya2luZ0NvcHkgPSBcdWM2Y2NcdWQwYjkgXHVjZTc0XHVkNTNjCitnYi53b3JraW5nQ29weVdhcm5pbmcgPSBcdWM3NzQgXHVjODAwXHVjN2E1XHVjMThjXHViMjk0IFx1YzZjY1x1ZDBiOVx1Y2U3NFx1ZDUzY1x1Yjk3YyBcdWFjMDBcdWM5YzBcdWFjZTAgXHVjNzg4XHVhY2UwIFx1ZDQ3OFx1YzJkY1x1Yjk3YyBcdWJjMWJcdWM3NDQgXHVjMjE4IFx1YzVjNlx1Yzc0YworZ2IucXVlcnkgPSBcdWNmZmNcdWI5YWMKK2diLnF1ZXJ5SGVscCA9IFx1ZDQ1Y1x1YzkwMCBcdWNmZmNcdWI5YWMgXHViYjM4XHViYzk1XHVjNzQ0IFx1YzljMFx1YzZkMC48cC8+PHAvPlx1Yzc5MFx1YzEzOFx1ZDU1YyBcdWFjODNcdWM3NDQgXHVjNmQwXHVkNTVjXHViMmU0XHViYTc0ICR7cXVlcnlTeW50YXh9IFx1Yzc0NCBcdWJjMjlcdWJiMzhcdWQ1NzQgXHVjOGZjXHVjMTM4XHVjNjk0LgorZ2IucXVlcnlTeW50YXggPSBcdWI4ZThcdWMyZTAgXHVjZmZjXHViOWFjIFx1ZDMwY1x1YzExYyBcdWJiMzhcdWJjOTUKK2diLnF1ZXJ5UmVzdWx0cyA9IFx1YWM4MFx1YzBjOVx1YWNiMFx1YWNmYyB7MH0gLSB7MX0gKHsyfVx1YWMxYyBcdWFjODBcdWMwYzlcdWI0MjgpCitnYi5ub0hpdHMgPSBcdWFjODBcdWMwYzkgXHVhY2IwXHVhY2ZjIFx1YzVjNlx1Yzc0YworZ2IuYXV0aG9yZWQgPSBcdWFjMDAgXHVjNzkxXHVjMTMxXHVkNTY4LgorZ2IuY29tbWl0dGVkID0gXHVjZWU0XHViYzBiXHViNDI4CitnYi5pbmRleGVkQnJhbmNoZXMgPSBcdWM3NzhcdWIzNzFcdWMyZjFcdWQ1NjAgXHViZTBjXHViNzljXHVjZTU4CitnYi5pbmRleGVkQnJhbmNoZXNEZXNjcmlwdGlvbiA9IFx1YjhlOFx1YzJlMCBcdWM3NzhcdWIzNzFcdWMyYTRcdWM1ZDAgXHVkM2VjXHVkNTY4XHVkNTYwIFx1YmUwY1x1Yjc5Y1x1Y2U1OCBcdWMxMjBcdWQwZGQKK2diLm5vSW5kZXhlZFJlcG9zaXRvcmllc1dhcm5pbmcgPSBcdWM4MDBcdWM3YTVcdWMxOGNcdWFjMDAgXHViOGU4XHVjMmUwIFx1Yzc3OFx1YjM3MVx1YzJmMVx1YzVkMCBcdWMxMjRcdWM4MTVcdWI0MThcdWM5YzAgXHVjNTRhXHVjNzRjCitnYi51bmRlZmluZWRRdWVyeVdhcm5pbmcgPSBcdWNmZmNcdWI5YWMgXHVjOWMwXHVjODE1XHViNDE4XHVjOWMwIFx1YzU0YVx1Yzc0YyEKK2diLm5vU2VsZWN0ZWRSZXBvc2l0b3JpZXNXYXJuaW5nID0gXHVkNTU4XHViMDk4IFx1YjYxMFx1YjI5NCBcdWFkZjggXHVjNzc0XHVjMGMxXHVjNzU4IFx1YzgwMFx1YzdhNVx1YzE4Y1x1Yjk3YyBcdWMxMjBcdWQwZGRcdWQ1NThcdWMxMzhcdWM2OTQhCitnYi5sdWNlbmVEaXNhYmxlZCA9IFx1YjhlOFx1YzJlMCBcdWM3NzhcdWIzNzFcdWMyZjEgXHVjOTExXHVjOWMwXHViNDI4CitnYi5mYWlsZWR0b1JlYWQgPSBcdWM3N2NcdWFlMzAgXHVjMmU0XHVkMzI4CitnYi5pc05vdFZhbGlkRmlsZSA9IFx1YzcyMFx1ZDZhOFx1ZDU1YyBcdWQzMGNcdWM3N2NcdWM3NzQgXHVjNTQ0XHViMmQ4CitnYi5mYWlsZWRUb1JlYWRNZXNzYWdlID0gezB9XHVjNWQwXHVjMTFjIFx1YjUxNFx1ZDNmNFx1ZDJiOCBcdWJhNTRcdWMyZGNcdWM5YzAgXHVjNzdjXHVhZTMwIFx1YzJlNFx1ZDMyOCEKK2diLnBhc3N3b3Jkc0RvTm90TWF0Y2ggPSBcdWQzMjhcdWMyYTRcdWM2Y2NcdWI0ZGNcdWFjMDAgXHVjNzdjXHVjZTU4XHVkNTU4XHVjOWMwIFx1YzU0YVx1YzU0NFx1YzY5NCEKK2diLnBhc3N3b3JkVG9vU2hvcnQgPSBcdWQzMjhcdWMyYTRcdWM2Y2NcdWI0ZGNcdWFjMDAgXHViMTA4XHViYjM0IFx1YzllN1x1YzU0NFx1YzY5NC4gXHVjODAxXHVjNWI0XHViM2M0IHswfSBcdWFjMWMgXHViYjM4XHVjNzkwXHVjNWVjXHVjNTdjIFx1ZDU2OVx1YjJjOFx1YjJlNC4KK2diLnBhc3N3b3JkQ2hhbmdlZCA9IFx1ZDMyOFx1YzJhNFx1YzZjY1x1YjRkY1x1YWMwMCBcdWJjYzBcdWFjYmQgXHVjMTMxXHVhY2Y1LgorZ2IucGFzc3dvcmRDaGFuZ2VBYm9ydGVkID0gXHVkMzI4XHVjMmE0XHVjNmNjXHViNGRjIFx1YmNjMFx1YWNiZCBcdWNkZThcdWMxOGNcdWI0MjguCitnYi5wbGVhc2VTZXRSZXBvc2l0b3J5TmFtZSA9IFx1YzgwMFx1YzdhNVx1YzE4YyBcdWM3NzRcdWI5ODRcdWM3NDQgXHVjNzg1XHViODI1XHVkNTU4XHVjMTM4XHVjNjk0IQorZ2IuaWxsZWdhbExlYWRpbmdTbGFzaCA9IFx1YzgwMFx1YzdhNVx1YzE4YyBcdWM3NzRcdWI5ODQgXHViNjEwXHViMjk0IFx1ZDNmNFx1YjM1NFx1YjI5NCAoLykgXHViODVjIFx1YzJkY1x1Yzc5MVx1ZDU2MCBcdWMyMTggXHVjNWM2XHVjMmI1XHViMmM4XHViMmU0LgorZ2IuaWxsZWdhbFJlbGF0aXZlU2xhc2ggPSBcdWMwYzFcdWIzMDAgXHVhY2JkXHViODVjIFx1YzljMFx1YzgxNSAoLi4vKSBcdWM3NDAgXHVjMGFjXHVjNmE5XHVkNTYwIFx1YzIxOCBcdWM1YzZcdWMyYjVcdWIyYzhcdWIyZTQuLgorZ2IuaWxsZWdhbENoYXJhY3RlclJlcG9zaXRvcnlOYW1lID0gXHViYjM4XHVjNzkwICcnezB9JycgXHVjODAwXHVjN2E1XHVjMThjIFx1Yzc3NFx1Yjk4NFx1YzVkMCBcdWMwYWNcdWM2YTlcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1YzViNFx1YzY5NCEKK2diLnNlbGVjdEFjY2Vzc1Jlc3RyaWN0aW9uID0gXHVjODExXHVjMThkIFx1YWQ4Y1x1ZDU1Y1x1Yzc0NCBcdWMxMjBcdWQwZGRcdWQ1NThcdWMxMzhcdWM2OTQhCitnYi5zZWxlY3RGZWRlcmF0aW9uU3RyYXRlZ3kgPSBcdWQzOThcdWIzNTRcdWI4MDhcdWM3NzRcdWMxNTggXHVjODE1XHVjYzQ1XHVjNzQ0IFx1YzEyMFx1ZDBkZFx1ZDU1OFx1YzEzOFx1YzY5NCEKK2diLnBsZWFzZVNldFRlYW1OYW1lID0gXHVkMzAwXHVjNzc0XHViOTg0XHVjNzQ0IFx1Yzc4NVx1YjgyNVx1ZDU1OFx1YzEzOFx1YzY5NCEKK2diLnRlYW1OYW1lVW5hdmFpbGFibGUgPSAnJ3swfScnIFx1ZDMwMFx1Yzc0MCBcdWMwYWNcdWM2YTlcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1YzViNFx1YzY5NC4KK2diLnRlYW1NdXN0U3BlY2lmeVJlcG9zaXRvcnkgPSBcdWQzMDBcdWM3NDAgXHVjODAxXHVjNWI0XHViM2M0IFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWM4MDBcdWM3YTVcdWMxOGNcdWI5N2MgXHVjOWMwXHVjODE1XHVkNTc0XHVjNTdjIFx1ZDU2OVx1YjJjOFx1YjJlNC4KK2diLnRlYW1DcmVhdGVkID0gXHVjMGM4XHViODVjXHVjNmI0IFx1ZDMwMCAnJ3swfScnIFx1YzBkZFx1YzEzMSBcdWM2NDRcdWI4Y2MuCitnYi5wbGVhc2VTZXRVc2VybmFtZSA9IFx1YzcyMFx1YzgwMFx1YjEyNFx1Yzc4NFx1Yzc0NCBcdWM3ODVcdWI4MjVcdWQ1NThcdWMxMzhcdWM2OTQhCitnYi51c2VybmFtZVVuYXZhaWxhYmxlID0gJyd7MH0nJyBcdWM3MjBcdWM4MDBcdWIxMjRcdWM3ODRcdWM3NDAgXHVjMGFjXHVjNmE5XHVkNTYwIFx1YzIxOCBcdWM1YzZcdWM1YjRcdWM2OTQuCitnYi5jb21iaW5lZE1kNVJlbmFtZSA9IEdpdGJsaXQgXHVjNzQwIGNvbWJpbmVkLW1kNSBcdWQ1NzRcdWMyZjEgXHVkMzI4XHVjMmE0XHVjNmNjXHViNGRjXHViODVjIFx1YzEyNFx1YzgxNVx1YjQxOFx1YzVjOFx1YzJiNVx1YjJjOFx1YjJlNC4gXHVhY2M0XHVjODE1IFx1Yzc3NFx1Yjk4NCBcdWJjYzBcdWFjYmQgXHVjMmRjIFx1YzBjOCBcdWQzMjhcdWMyYTRcdWM2Y2NcdWI0ZGNcdWI5N2MgXHVjNzg1XHViODI1XHVkNTc0XHVjNTdjIFx1ZDU2OVx1YjJjOFx1YjJlNC4KK2diLnVzZXJDcmVhdGVkID0gXHVjMGM4XHViODVjXHVjNmI0IFx1YzcyMFx1YzgwMCAnJ3swfScnIFx1YzBkZFx1YzEzMSBcdWM2NDRcdWI4Y2MuCitnYi5jb3VsZE5vdEZpbmRGZWRlcmF0aW9uUmVnaXN0cmF0aW9uID0gXHVkMzk4XHViMzU0XHViODA4XHVjNzc0XHVjMTU4IFx1YjRmMVx1Yjg1ZFx1Yzc0NCBcdWNjM2VcdWM3NDQgXHVjMjE4IFx1YzVjNlx1YzJiNVx1YjJjOFx1YjJlNCEKK2diLmZhaWxlZFRvRmluZEdyYXZhdGFyUHJvZmlsZSA9IHswfSBcdWM3NTggR3JhdmF0YXIgXHVkNTA0XHViODVjXHVkMzBjXHVjNzdjIFx1Y2MzZVx1YWUzMCBcdWMyZTRcdWQzMjgKK2diLmJyYW5jaFN0YXRzID0gezJ9IFx1YzU0OFx1YzVkMCB7MH0gXHVjZWU0XHViYzBiIHsxfSBcdWQwZGNcdWFkZjgKK2diLnJlcG9zaXRvcnlOb3RTcGVjaWZpZWQgPSBcdWM4MDBcdWM3YTVcdWMxOGNcdWFjMDAgXHVjOWMwXHVjODE1XHViNDE4XHVjOWMwIFx1YzU0YVx1Yzc0YyEKK2diLnJlcG9zaXRvcnlOb3RTcGVjaWZpZWRGb3IgPSB7MH0gXHViOTdjIFx1YzcwNFx1ZDU1YyBcdWM4MDBcdWM3YTVcdWMxOGNcdWFjMDAgXHVjOWMwXHVjODE1XHViNDE4XHVjOWMwIFx1YzU0YVx1Yzc0YyEKK2diLmNhbk5vdExvYWRSZXBvc2l0b3J5ID0gXHVjODAwXHVjN2E1XHVjMThjXHViOTdjIFx1YmQ4OFx1YjdlY1x1YzYyYyBcdWMyMTggXHVjNWM2XHVjNzRjCitnYi5jb21taXRJc051bGwgPSBcdWIxMTAgXHVjZWU0XHViYzBiCitnYi51bmF1dGhvcml6ZWRBY2Nlc3NGb3JSZXBvc2l0b3J5ID0gXHVjODAwXHVjN2E1XHVjMThjXHVjNWQwIFx1YzgxMVx1YWRmYyBcdWQ1YzhcdWM2YTlcdWI0MThcdWM5YzAgXHVjNTRhXHVjNzRjCitnYi5mYWlsZWRUb0ZpbmRDb21taXQgPSBcdWNlZTRcdWJjMGJcdWM3NDQgXHVjYzNlXHVjNzQ0IFx1YzIxOCBcdWM1YzZcdWM3NGMgXCJ7MH1cIiBpbiB7MX0gZm9yIHsyfSBcdWQzOThcdWM3NzRcdWM5YzAhCitnYi5jb3VsZE5vdEZpbmRGZWRlcmF0aW9uUHJvcG9zYWwgPSBcdWQzOThcdWIzNTRcdWI4MDhcdWM3NzRcdWMxNTggXHVjODFjXHVjNTQ4XHVjNzQ0IFx1Y2MzZVx1Yzc0NCBcdWMyMTggXHVjNWM2XHVjMmI1XHViMmM4XHViMmU0IQorZ2IuaW52YWxpZFVzZXJuYW1lT3JQYXNzd29yZCA9IFx1Yzc5OFx1YmFiYlx1YjQxYyBcdWM3MjBcdWM4MDBcdWIxMjRcdWM3ODQgXHViNjEwXHViMjk0IFx1ZDMyOFx1YzJhNFx1YzZjY1x1YjRkYyEKK2diLk9uZVByb3Bvc2FsVG9SZXZpZXcgPSBcdWFjODBcdWQxYTBcdWI5N2MgXHVhZTMwXHViMmU0XHViOWFjXHVhY2UwIFx1Yzc4OFx1YjI5NCAxXHVhYzFjXHVjNzU4IFx1ZDM5OFx1YjM1NFx1YjgwOFx1Yzc3NFx1YzE1OCBcdWM4MWNcdWM1NDhcdWM3NzQgXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LgorZ2IubkZlZGVyYXRpb25Qcm9wb3NhbHNUb1JldmlldyA9IFx1YWM4MFx1ZDFhMFx1Yjk3YyBcdWFlMzBcdWIyZTRcdWI5YWNcdWFjZTAgXHVjNzg4XHViMjk0IHswfSBcdWFjMWNcdWM3NTggXHVkMzk4XHViMzU0XHViODA4XHVjNzc0XHVjMTU4IFx1YzgxY1x1YzU0OFx1Yzc3NCBcdWM3ODhcdWMyYjVcdWIyYzhcdWIyZTQuCitnYi5jb3VsZE5vdEZpbmRUYWcgPSBcdWQwZGNcdWFkZjggezB9IFx1Yjk3YyhcdWM3NDQpIFx1Y2MzZVx1Yzc0NCBcdWMyMTggXHVjNWM2XHVjNzRjCitnYi5jb3VsZE5vdENyZWF0ZUZlZGVyYXRpb25Qcm9wb3NhbCA9IFx1ZDM5OFx1YjM1NFx1YjgwOFx1Yzc3NFx1YzE1OCBcdWM4MWNcdWM1NDggXHVjMGRkXHVjMTMxIFx1YzJlNFx1ZDMyOCEKK2diLnBsZWFzZVNldEdpdGJsaXRVcmwgPSBHaXRibGl0IHVybCBcdWM3NDQgXHVjNzg1XHViODI1XHVkNTU4XHVjMTM4XHVjNjk0IQorZ2IucGxlYXNlU2V0RGVzdGluYXRpb25VcmwgPSBcdWIyZjlcdWMyZTBcdWM3NTggXHVjODFjXHVjNTQ4XHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWIzMDBcdWMwYzEgdXJsIFx1Yzc0NCBcdWM3ODVcdWI4MjVcdWQ1NThcdWMxMzhcdWM2OTQhCitnYi5wcm9wb3NhbFJlY2VpdmVkID0gezB9IFx1Yzc1OCBcdWM4MWNcdWM1NDggXHVjMTMxXHVhY2Y1XHVjODAxIFx1YzIxOFx1YzJlMAorZ2Iubm9HaXRibGl0Rm91bmQgPSBcdWM4YzRcdWMxYTFcdWQ1NjlcdWIyYzhcdWIyZTQsIEdpdGJsaXQgXHVjNzc4XHVjMmE0XHVkMTM0XHVjMmE0IHsxfSBcdWM1ZDBcdWMxMWMgezB9IFx1Yjk3YyBcdWNjM2VcdWM3NDQgXHVjMjE4IFx1YzVjNlx1YzJiNVx1YjJjOFx1YjJlNC4KK2diLm5vUHJvcG9zYWxzID0gXHVjOGM0XHVjMWExXHVkNTY5XHViMmM4XHViMmU0LCBcdWM3NzRcdWJjODhcdWM1ZDBcdWIyOTQgezB9IFx1Yzc1OCBcdWM4MWNcdWM1NDhcdWM3NDQgXHVjMjE4XHVjNmE5XHVkNTU4XHVjOWMwIFx1YzU0YVx1YzU1OFx1YzJiNVx1YjJjOFx1YjJlNC4KK2diLm5vRmVkZXJhdGlvbiA9IFx1YzhjNFx1YzFhMVx1ZDU2OVx1YjJjOFx1YjJlNCwgezB9IFx1YzVkMFx1YjI5NCBcdWQzOThcdWIzNTRcdWI4MDhcdWM3NzRcdWMxNTggXHVjMTI0XHVjODE1XHViNDFjIEdpdGJsaXQgXHVjNzc4XHVjMmE0XHVkMTM0XHVjMmE0XHVhYzAwIFx1YzVjNlx1YzJiNVx1YjJjOFx1YjJlNC4KK2diLnByb3Bvc2FsRmFpbGVkID0gXHVjOGM0XHVjMWExXHVkNTY5XHViMmM4XHViMmU0LCB7MH0gXHVjNWQwXHViMjk0IFx1YzgxY1x1YzU0OCBcdWIzNzBcdWM3NzRcdWQxMzBcdWI5N2MgXHViYzFiXHVjOWMwIFx1YzU0YVx1YzU1OFx1YzJiNVx1YjJjOFx1YjJlNC4KK2diLnByb3Bvc2FsRXJyb3IgPSBcdWM4YzRcdWMxYTFcdWQ1NjlcdWIyYzhcdWIyZTQsIHswfSBcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YzYyNFx1Yjk1OCBcdWJjMWNcdWMwZGQgXHViY2Y0XHVhY2UwCitnYi5mYWlsZWRUb1NlbmRQcm9wb3NhbCA9IFx1YzgxY1x1YzU0OCBcdWJjZjRcdWIwYjRcdWFlMzAgXHVjMmU0XHVkMzI4IQorZ2IudXNlclNlcnZpY2VEb2VzTm90UGVybWl0QWRkVXNlciA9IHswfSBcdWMwYzhcdWI4NWNcdWM2YjQgXHVjNzIwXHVjODAwXHViOTdjIFx1Y2Q5NFx1YWMwMFx1ZDU2MCBcdWMyMTggXHVjNWM2XHVjNzRjIQorZ2IudXNlclNlcnZpY2VEb2VzTm90UGVybWl0UGFzc3dvcmRDaGFuZ2VzID0gezB9IFx1ZDMyOFx1YzJhNFx1YzZjY1x1YjRkY1x1Yjk3YyBcdWJjYzBcdWFjYmRcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1Yzc0YyEKK2diLmRpc3BsYXlOYW1lID0gXHVkNDVjXHVjMmRjXHViNDE4XHViMjk0IFx1Yzc3NFx1Yjk4NAorZ2IuZW1haWxBZGRyZXNzID0gXHVjNzc0XHViYTU0XHVjNzdjIFx1YzhmY1x1YzE4YworZ2IuZXJyb3JBZG1pbkxvZ2luUmVxdWlyZWQgPSBcdWFkMDBcdWI5YWNcdWI5N2MgXHVjNzA0XHVkNTc0XHVjMTFjXHViMjk0IFx1Yjg1Y1x1YWRmOFx1Yzc3OFx1Yzc3NCBcdWQ1NDRcdWM2OTQKK2diLmVycm9yT25seUFkbWluTWF5Q3JlYXRlUmVwb3NpdG9yeSA9IFx1YWQwMFx1YjlhY1x1Yzc5MFx1YjljYyBcdWM4MDBcdWM3YTVcdWMxOGNcdWI5N2MgXHViOWNjXHViNGU0XHVjMjE4IFx1Yzc4OFx1Yzc0YworZ2IuZXJyb3JPbmx5QWRtaW5Pck93bmVyTWF5RWRpdFJlcG9zaXRvcnkgPSBcdWFkMDBcdWI5YWNcdWM3OTBcdWM2NDAgXHVjMThjXHVjNzIwXHVjNzkwXHViOWNjIFx1YzgwMFx1YzdhNVx1YzE4Y1x1Yjk3YyBcdWMyMThcdWM4MTVcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1Yzc0YworZ2IuZXJyb3JBZG1pbmlzdHJhdGlvbkRpc2FibGVkID0gXHVhZDAwXHViOWFjXHVhZTMwXHViMmE1IFx1YmU0NFx1ZDY1Y1x1YzEzMVx1ZDY1NFx1YjQyOAorZ2IubGFzdE5EYXlzID0gezB9IFx1Yzc3Y1x1YzgwNAorZ2IuY29tcGxldGVHcmF2YXRhclByb2ZpbGUgPSBHcmF2YXRhci5jb20gXHVjNWQwIFx1ZDUwNFx1Yjg1Y1x1ZDMwY1x1Yzc3YyBcdWMwZGRcdWMxMzFcdWI0MjgKIGdiLm5vbmUgPSBub25lCiBnYi5saW5lID0gXHVCNzdDXHVDNzc4CiBnYi5jb250ZW50ID0gXHVCMEI0XHVDNkE5CkBAIC03ODIsNCArNzgzLDQgQEAKIGdiLmRlbGV0ZVBhdGNoc2V0U3VjY2VzcyA9IHswfSBcdUQzMjhcdUNFNThcdUMxNEJcdUM3NzQgXHVDMEFEXHVDODFDXHVCNDE4XHVDNUM4XHVDNUI0XHVDNjk0LgogZ2IuZGVsZXRlUGF0Y2hzZXRGYWlsdXJlID0gezB9IFx1RDMyOFx1Q0U1OFx1QzE0QiBcdUMwQURcdUM4MUMgXHVDNjI0XHVCOTU4LgogZ2IucmVmZXJlbmNlZEJ5Q29tbWl0ID0gXHVDRUU0XHVCQzBCXHVDNUQwIFx1Q0MzOFx1Qzg3MFx1QjQyOC4KLWdiLnJlZmVyZW5jZWRCeVRpY2tldCA9IFx1RDJGMFx1Q0YxM1x1QzVEMCBcdUNDMzhcdUM4NzBcdUI0MjguClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZ2IucmVmZXJlbmNlZEJ5VGlja2V0ID0gXHVEMkYwXHVDRjEzXHVDNUQwIFx1Q0MzOFx1Qzg3MFx1QjQyOC4KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfbmwucHJvcGVydGllcyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfbmwucHJvcGVydGllcwppbmRleCBmNzFkNjdkLi40MTY1NmU4IDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX25sLnByb3BlcnRpZXMKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9ubC5wcm9wZXJ0aWVzCkBAIC0yMTgsNyArMjE4LDggQEAKIGdiLndvcmtpbmdDb3B5ID0gd2Vya2tvcGllCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBkZXplIHJlcG9zaXRvcmllIGhlZWZ0IGVlbiB3ZXJra29waWUgZW4ga2FuIGdlZW4gcHVzaGVzIG9udHZhbmdlbgogZ2IucXVlcnkgPSBxdWVyeQotZ2IucXVlcnlIZWxwID0gU3RhbmRhYXJkIHF1ZXJ5IHN5bnRheCB3b3JkdCBvbmRlcnN0ZXVuZC48cC8+PHAvPlppZSBhdWIgPGEgdGFyZ2V0PSJfbmV3IiBocmVmPSJodHRwOi8vbHVjZW5lLmFwYWNoZS5vcmcvY29yZS9vbGRfdmVyc2lvbmVkX2RvY3MvdmVyc2lvbnMvM181XzAvcXVlcnlwYXJzZXJzeW50YXguaHRtbCI+THVjZW5lIFF1ZXJ5IFBhcnNlciBTeW50YXg8L2E+IHZvb3IgaW5mb3JtYXRpZS4KK2diLnF1ZXJ5SGVscCA9IFN0YW5kYWFyZCBxdWVyeSBzeW50YXggd29yZHQgb25kZXJzdGV1bmQuPHAvPjxwLz5aaWUgYXViICR7cXVlcnlTeW50YXh9IHZvb3IgaW5mb3JtYXRpZS4KK2diLnF1ZXJ5U3ludGF4ID0gTHVjZW5lIFF1ZXJ5IFBhcnNlciBTeW50YXgKIGdiLnF1ZXJ5UmVzdWx0cyA9IHJlc3VsdGF0ZW4gezB9IC0gezF9ICh7Mn0gaGl0cykKIGdiLm5vSGl0cyA9IGdlZW4gaGl0cwogZ2IuYXV0aG9yZWQgPSBnZXNjaHJldmVuCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX25vLnByb3BlcnRpZXMgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX25vLnByb3BlcnRpZXMKaW5kZXggZWZjMTNhMS4uYTAyYTMwZiAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9uby5wcm9wZXJ0aWVzCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfbm8ucHJvcGVydGllcwpAQCAtMjE4LDcgKzIxOCw4IEBACiBnYi53b3JraW5nQ29weSA9IGFyYmVpZHNrb3BpCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBkZXR0ZSByZXBvc2l0b3JpZXQgaGFyIGVuIGFyYmVpZHNrb3BpLCBvZyBrYW4gaWtrZSBwdXNoZXMgdGlsLgogZ2IucXVlcnkgPSBzcFx1MDBGOHJyaW5nCi1nYi5xdWVyeUhlbHAgPSBTdGFuZGFyZCBsdWNlbmUgc3BcdTAwRjhycmluZ3NzeW50YWtzIHN0XHUwMEY4dHRlcy48cC8+PHAvPlNlIDxhIHRhcmdldD0iX25ldyIgaHJlZj0iaHR0cDovL2x1Y2VuZS5hcGFjaGUub3JnL2NvcmUvb2xkX3ZlcnNpb25lZF9kb2NzL3ZlcnNpb25zLzNfNV8wL3F1ZXJ5cGFyc2Vyc3ludGF4Lmh0bWwiPkx1Y2VuZSBRdWVyeSBQYXJzZXIgU3ludGF4PC9hPiBmb3IgbWVyIGluZm8uCitnYi5xdWVyeUhlbHAgPSBTdGFuZGFyZCBsdWNlbmUgc3BcdTAwRjhycmluZ3NzeW50YWtzIHN0XHUwMEY4dHRlcy48cC8+PHAvPlNlICR7cXVlcnlTeW50YXh9IGZvciBtZXIgaW5mby4KK2diLnF1ZXJ5U3ludGF4ID0gTHVjZW5lIFF1ZXJ5IFBhcnNlciBTeW50YXgKIGdiLnF1ZXJ5UmVzdWx0cyA9IHJlc3VsdGF0ZXIgezB9IC0gezF9ICh7Mn0gdHJlZmYpCiBnYi5ub0hpdHMgPSBpbmdlbiB0cmVmZgogZ2IuYXV0aG9yZWQgPSBmb3JmYXR0ZXQKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfcGwucHJvcGVydGllcyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfcGwucHJvcGVydGllcwppbmRleCBiMDBkMWZmLi5mZWU0Yjk3IDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX3BsLnByb3BlcnRpZXMKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9wbC5wcm9wZXJ0aWVzCkBAIC0yMTcsNyArMjE3LDggQEAKIGdiLndvcmtpbmdDb3B5ID0gS29waWEgcm9ib2N6YQogZ2Iud29ya2luZ0NvcHlXYXJuaW5nID0gVG8gcmVwb3p5dG9yaXVtIG1hIGtvcGlcdTAxMTkgcm9ib2N6XHUwMTA1IGkgbmllIG1vXHUwMTdDZSBvdHJ6eW15d2FcdTAxMDcgem1pYW4KIGdiLnF1ZXJ5ID0gU3p1a2FqCi1nYi5xdWVyeUhlbHAgPSBTdGFuZGFyZG93YSBza1x1MDE0MmFkbmlhIHd5c3p1a2l3YVx1MDE0NCBqZXN0IHdzcGllcmFuYS48cC8+PHAvPk5hIHN0cm9uaWUgPGEgdGFyZ2V0PSJfbmV3IiBocmVmPSJodHRwOi8vbHVjZW5lLmFwYWNoZS5vcmcvY29yZS9vbGRfdmVyc2lvbmVkX2RvY3MvdmVyc2lvbnMvM181XzAvcXVlcnlwYXJzZXJzeW50YXguaHRtbCI+THVjZW5lIFF1ZXJ5IFBhcnNlciBTeW50YXg8L2E+IGRvc3RcdTAxMTlwbmUgc1x1MDEwNSBkYWxzemUgc3pjemVnXHUwMEYzXHUwMTQyeS4KK2diLnF1ZXJ5SGVscCA9IFN0YW5kYXJkb3dhIHNrXHUwMTQyYWRuaWEgd3lzenVraXdhXHUwMTQ0IGplc3Qgd3NwaWVyYW5hLjxwLz48cC8+TmEgc3Ryb25pZSAke3F1ZXJ5U3ludGF4fSBkb3N0XHUwMTE5cG5lIHNcdTAxMDUgZGFsc3plIHN6Y3plZ1x1MDBGM1x1MDE0MnkuCitnYi5xdWVyeVN5bnRheCA9IEx1Y2VuZSBRdWVyeSBQYXJzZXIgU3ludGF4CiBnYi5xdWVyeVJlc3VsdHMgPSBXeW5pa2kgezB9IC0gezF9ICh7Mn0gd3luaWtcdTAwRjN3KQogZ2Iubm9IaXRzID0gQnJhayB3eW5pa1x1MDBGM3cKIGdiLmF1dGhvcmVkID0gdXR3b3J6eVx1MDE0MgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9wdF9CUi5wcm9wZXJ0aWVzIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF9wdF9CUi5wcm9wZXJ0aWVzCmluZGV4IDRkMmVhNTUuLmI1NzM3OTIgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfcHRfQlIucHJvcGVydGllcworKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX3B0X0JSLnByb3BlcnRpZXMKQEAgLTIxNyw3ICsyMTcsOCBAQAogZ2Iud29ya2luZ0NvcHkgPSB3b3JraW5nIGNvcHkNCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBlc3RlIHJlcG9zaXTzcmlvIHRlbSB1bWEgd29ya2luZyBjb3B5IGUgbuNvIHBvZGUgcmVjZWJlciBwdXNoZXMNCiBnYi5xdWVyeSA9IHF1ZXJ5DQotZ2IucXVlcnlIZWxwID0gIFN0YW5kYXJkIHF1ZXJ5IHN5bnRheCDpIHN1cG9ydGFkYS48cC8+PHAvPlBvciBmYXZvciB2ZWphIDxhIHRhcmdldD0iX25ldyIgaHJlZj0iaHR0cDovL2x1Y2VuZS5hcGFjaGUub3JnL2NvcmUvb2xkX3ZlcnNpb25lZF9kb2NzL3ZlcnNpb25zLzNfNV8wL3F1ZXJ5cGFyc2Vyc3ludGF4Lmh0bWwiPkx1Y2VuZSBRdWVyeSBQYXJzZXIgU3ludGF4PC9hPiBwYXJhIG1haXMgZGV0YWxoZXMuDQorZ2IucXVlcnlIZWxwID0gU3RhbmRhcmQgcXVlcnkgc3ludGF4IOkgc3Vwb3J0YWRhLjxwLz48cC8+UG9yIGZhdm9yIHZlamEgJHtxdWVyeVN5bnRheH0gcGFyYSBtYWlzIGRldGFsaGVzLg0KK2diLnF1ZXJ5U3ludGF4ID0gTHVjZW5lIFF1ZXJ5IFBhcnNlciBTeW50YXgNCiBnYi5xdWVyeVJlc3VsdHMgPSByZXN1bHRhZG9zIHswfSAtIHsxfSAoezJ9IGhpdHMpDQogZ2Iubm9IaXRzID0gc2VtIGhpdHMNCiBnYi5hdXRob3JlZCA9IGZvaSBhdXRvciBkZQ0KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfemhfQ04ucHJvcGVydGllcyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfemhfQ04ucHJvcGVydGllcwppbmRleCBiNWU0ZjY1Li5jODJlMTJmIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX3poX0NOLnByb3BlcnRpZXMKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF96aF9DTi5wcm9wZXJ0aWVzCkBAIC0yMTgsNyArMjE4LDggQEAKIGdiLndvcmtpbmdDb3B5ID0gXHU1ZGU1XHU0ZjVjXHU1MjZmXHU2NzJjCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBcdTZiNjRcdTcyNDhcdTY3MmNcdTVlOTNcdTViNThcdTU3MjhcdTRlMDBcdTRlZmRcdTVkZTVcdTRmNWNcdTUyNmZcdTY3MmNcdWZmMGNcdTY1ZTBcdTZjZDVcdThmZGJcdTg4NGNcdTYzYThcdTkwMDEKIGdiLnF1ZXJ5ID0gXHU2N2U1XHU4YmUyCi1nYi5xdWVyeUhlbHAgPSBcdTY1MmZcdTYzMDFcdTY4MDdcdTUxYzZcdTY3ZTVcdThiZTJcdTY4M2NcdTVmMGYuPHAvPjxwLz5cdThiZjdcdTY3ZTVcdTc3MGIgPGEgdGFyZ2V0PSJfbmV3IiBocmVmPSJodHRwOi8vbHVjZW5lLmFwYWNoZS5vcmcvY29yZS9vbGRfdmVyc2lvbmVkX2RvY3MvdmVyc2lvbnMvM181XzAvcXVlcnlwYXJzZXJzeW50YXguaHRtbCI+THVjZW5lIFx1NjdlNVx1OGJlMlx1NTkwNFx1NzQwNlx1NTY2OFx1NjgzY1x1NWYwZjwvYT4gXHU0ZWU1XHU4M2I3XHU1M2Q2XHU4YmU2XHU3ZWM2XHU1MTg1XHU1YmI5XHUzMDAyCitnYi5xdWVyeUhlbHAgPSBcdTY1MmZcdTYzMDFcdTY4MDdcdTUxYzZcdTY3ZTVcdThiZTJcdTY4M2NcdTVmMGYuPHAvPjxwLz5cdThiZjdcdTY3ZTVcdTc3MGIgJHtxdWVyeVN5bnRheH0gXHU0ZWU1XHU4M2I3XHU1M2Q2XHU4YmU2XHU3ZWM2XHU1MTg1XHU1YmI5XHUzMDAyCitnYi5xdWVyeVN5bnRheCA9IEx1Y2VuZSBcdTY3ZTVcdThiZTJcdTU5MDRcdTc0MDZcdTU2NjhcdTY4M2NcdTVmMGYKIGdiLnF1ZXJ5UmVzdWx0cyA9IFx1N2VkM1x1Njc5YyB7MH0gLSB7MX0gKHsyfSBcdTZiMjFcdTU0N2RcdTRlMmQpCiBnYi5ub0hpdHMgPSBcdTY3MmFcdTU0N2RcdTRlMmQKIGdiLmF1dGhvcmVkID0gYXV0aG9yZWQKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfemhfVFcucHJvcGVydGllcyBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L0dpdEJsaXRXZWJBcHBfemhfVFcucHJvcGVydGllcwppbmRleCAxNTdkZDU2Li42MzEwNjQ2IDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9HaXRCbGl0V2ViQXBwX3poX1RXLnByb3BlcnRpZXMKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvR2l0QmxpdFdlYkFwcF96aF9UVy5wcm9wZXJ0aWVzCkBAIC0yMTksNyArMjE5LDggQEAKIGdiLndvcmtpbmdDb3B5ID0gXHU2NmFiXHU1YjU4XHU4OTA3XHU2NzJjCiBnYi53b3JraW5nQ29weVdhcm5pbmcgPSBcdThhNzJcdTcyNDhcdTY3MmNcdTVlYWJcdTRlY2RcdTY3MDlcdTY2YWJcdTViNThcdTg5MDdcdTY3MmMsXHU1NmUwXHU2YjY0XHU3MTIxXHU2Y2Q1XHU2M2E1XHU1M2Q3XHU2M2E4XHU5MDAxKHB1c2gpCiBnYi5xdWVyeSA9IFx1NjdlNVx1OGE2MgotZ2IucXVlcnlIZWxwID0gXHU2NTJmXHU2M2Y0XHU2YTE5XHU2ZTk2XHU2N2U1XHU4YTYyXHU4YTllXHU2Y2Q1LjxwLz48cC8+XHU4YTczXHU2MGM1XHU4YWNiXHU1M2MzXHU4MDAzIDxhIHRhcmdldFwgPSAiX25ldyIgaHJlZlwgPSAiaHR0cFw6Ly9sdWNlbmUuYXBhY2hlLm9yZy9jb3JlL29sZF92ZXJzaW9uZWRfZG9jcy92ZXJzaW9ucy8zXzVfMC9xdWVyeXBhcnNlcnN5bnRheC5odG1sIj5MdWNlbmUgUXVlcnkgUGFyc2VyIFN5bnRheDwvYT4KK2diLnF1ZXJ5SGVscCA9IFx1NjUyZlx1NjNmNFx1NmExOVx1NmU5Nlx1NjdlNVx1OGE2Mlx1OGE5ZVx1NmNkNS48cC8+PHAvPlx1OGE3M1x1NjBjNVx1OGFjYlx1NTNjM1x1ODAwMyAke3F1ZXJ5U3ludGF4fQorZ2IucXVlcnlTeW50YXggPSBMdWNlbmUgUXVlcnkgUGFyc2VyIFN5bnRheAogZ2IucXVlcnlSZXN1bHRzID0gXHU3ZDUwXHU2NzljIHswfSAtIHsxfSAoezJ9IFx1NjdlNVx1OGE2MikKIGdiLm5vSGl0cyA9IFx1NzEyMVx1OWVkZVx1NjRjYQogZ2IuYXV0aG9yZWQgPSBcdTYzODhcdTZiMGEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L3BhZ2VzL0x1Y2VuZVNlYXJjaFBhZ2UuaHRtbCBiL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L3BhZ2VzL0x1Y2VuZVNlYXJjaFBhZ2UuaHRtbAppbmRleCBkNjJiN2IyLi5hMzg2ZjQyIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9wYWdlcy9MdWNlbmVTZWFyY2hQYWdlLmh0bWwKKysrIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvcGFnZXMvTHVjZW5lU2VhcmNoUGFnZS5odG1sCkBAIC01Miw3ICs1Miw5IEBACiAJCQkJCQk8L2Rpdj4NCiAJCQkJCTwvZGl2Pg0KIAkJCQkJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6MTBweDsiIGNsYXNzPSJzcGFuMiI+DQotCQkJCQkJPHdpY2tldDptZXNzYWdlIGtleT0iZ2IucXVlcnlIZWxwIj48L3dpY2tldDptZXNzYWdlPg0KKwkJCQkJCTx3aWNrZXQ6bWVzc2FnZSBrZXk9ImdiLnF1ZXJ5SGVscCI+DQorCQkJCQkJICA8YSB0YXJnZXQ9Il9uZXciIHdpY2tldDppZD0icXVlcnlTeW50YXgiPjx3aWNrZXQ6bWVzc2FnZSBrZXk9ImdiLnF1ZXJ5U3ludGF4Ii8+PC9hPg0KKwkJCQkJCTwvd2lja2V0Om1lc3NhZ2U+DQogCQkJCQk8L2Rpdj4NCiAJCQkJPC9kaXY+DQogCQkJPC9kaXY+DQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvcGFnZXMvTHVjZW5lU2VhcmNoUGFnZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZ2l0YmxpdC93aWNrZXQvcGFnZXMvTHVjZW5lU2VhcmNoUGFnZS5qYXZhCmluZGV4IDFkODEwNjEuLmE5N2QzN2EgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2dpdGJsaXQvd2lja2V0L3BhZ2VzL0x1Y2VuZVNlYXJjaFBhZ2UuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9naXRibGl0L3dpY2tldC9wYWdlcy9MdWNlbmVTZWFyY2hQYWdlLmphdmEKQEAgLTI3LDYgKzI3LDcgQEAKIGltcG9ydCBvcmcuYXBhY2hlLndpY2tldC5tYXJrdXAuaHRtbC5mb3JtLkNoZWNrQm94Ow0KIGltcG9ydCBvcmcuYXBhY2hlLndpY2tldC5tYXJrdXAuaHRtbC5mb3JtLkxpc3RNdWx0aXBsZUNob2ljZTsNCiBpbXBvcnQgb3JnLmFwYWNoZS53aWNrZXQubWFya3VwLmh0bWwuZm9ybS5UZXh0RmllbGQ7DQoraW1wb3J0IG9yZy5hcGFjaGUud2lja2V0Lm1hcmt1cC5odG1sLmxpbmsuRXh0ZXJuYWxMaW5rOw0KIGltcG9ydCBvcmcuYXBhY2hlLndpY2tldC5tYXJrdXAuaHRtbC5wYW5lbC5GcmFnbWVudDsNCiBpbXBvcnQgb3JnLmFwYWNoZS53aWNrZXQubWFya3VwLnJlcGVhdGVyLkl0ZW07DQogaW1wb3J0IG9yZy5hcGFjaGUud2lja2V0Lm1hcmt1cC5yZXBlYXRlci5kYXRhLkRhdGFWaWV3Ow0KQEAgLTUwLDYgKzUxLDggQEAKIA0KIHB1YmxpYyBjbGFzcyBMdWNlbmVTZWFyY2hQYWdlIGV4dGVuZHMgUm9vdFBhZ2Ugew0KIA0KKwlwcml2YXRlIGZpbmFsIHN0YXRpYyBTdHJpbmcgTFVDRU5FX1FVRVJZX1NZTlRBWF9MSU5LID0gImh0dHBzOi8vbHVjZW5lLmFwYWNoZS5vcmcvY29yZS81XzVfMC9xdWVyeXBhcnNlci9vcmcvYXBhY2hlL2x1Y2VuZS9xdWVyeXBhcnNlci9jbGFzc2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sI3BhY2thZ2VfZGVzY3JpcHRpb24iOw0KKw0KIAlwdWJsaWMgTHVjZW5lU2VhcmNoUGFnZSgpIHsNCiAJCXN1cGVyKCk7DQogCQlzZXR1cChudWxsKTsNCkBAIC0xNjcsNiArMTcwLDcgQEAKIAkJZm9ybS5hZGQoc2VsZWN0aW9ucy5zZXRFbmFibGVkKGx1Y2VuZUVuYWJsZWQpKTsNCiAJCWZvcm0uYWRkKG5ldyBUZXh0RmllbGQ8U3RyaW5nPigicXVlcnkiLCBxdWVyeU1vZGVsKS5zZXRFbmFibGVkKGx1Y2VuZUVuYWJsZWQpKTsNCiAJCWZvcm0uYWRkKG5ldyBDaGVja0JveCgiYWxscmVwb3MiLCBhbGxyZXBvc01vZGVsKSk7DQorCQlmb3JtLmFkZChuZXcgRXh0ZXJuYWxMaW5rKCJxdWVyeVN5bnRheCIsIExVQ0VORV9RVUVSWV9TWU5UQVhfTElOSykpOw0KIAkJYWRkKGZvcm0uc2V0RW5hYmxlZChsdWNlbmVFbmFibGVkKSk7DQogDQogCQkvLyBleGVjdXRlIHNlYXJjaA0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvY29tL2dpdGJsaXQvc2VydmljZS9MdWNlbmVSZXBvSW5kZXhTdG9yZVRlc3QuamF2YSBiL3NyYy90ZXN0L2phdmEvY29tL2dpdGJsaXQvc2VydmljZS9MdWNlbmVSZXBvSW5kZXhTdG9yZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWFjMzUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvamF2YS9jb20vZ2l0YmxpdC9zZXJ2aWNlL0x1Y2VuZVJlcG9JbmRleFN0b3JlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjY3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTcgZ2l0YmxpdC5jb20uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uZ2l0YmxpdC5zZXJ2aWNlOworCitpbXBvcnQgc3RhdGljIG9yZy5qdW5pdC5Bc3NlcnQuKjsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmlvLmZpbGUuUGF0aDsKKworaW1wb3J0IG9yZy5qdW5pdC5SdWxlOworaW1wb3J0IG9yZy5qdW5pdC5UZXN0OworaW1wb3J0IG9yZy5qdW5pdC5ydWxlcy5UZW1wb3JhcnlGb2xkZXI7CisKK2ltcG9ydCBjb20uZ2l0YmxpdC51dGlscy5MdWNlbmVJbmRleFN0b3JlOworCisvKioKKyAqIEBhdXRob3IgRmxvcmlhbiBac2Nob2NrZQorICoKKyAqLworcHVibGljIGNsYXNzIEx1Y2VuZVJlcG9JbmRleFN0b3JlVGVzdAoreworCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExVQ0VORV9WRVJTSU9OID0gTHVjZW5lSW5kZXhTdG9yZS5MVUNFTkVfQ09ERUNfVkVSU0lPTjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTFVDRU5FX0RJUiA9ICJsdWNlbmUiOworCisKKwlAUnVsZQorCXB1YmxpYyBUZW1wb3JhcnlGb2xkZXIgYmFzZUZvbGRlciA9IG5ldyBUZW1wb3JhcnlGb2xkZXIoKTsKKworCisJcHJpdmF0ZSBTdHJpbmcgZ2V0SW5kZXhEaXIoaW50IHZlcnNpb24pCisJeworCQlyZXR1cm4gdmVyc2lvbiArICJfIiArIExVQ0VORV9WRVJTSU9OOworCX0KKworCisJcHJpdmF0ZSBTdHJpbmcgZ2V0THVjZW5lSW5kZXhEaXIoaW50IHZlcnNpb24pCisJeworCQlyZXR1cm4gTFVDRU5FX0RJUiArICIvIiArIHZlcnNpb24gKyAiXyIgKyBMVUNFTkVfVkVSU0lPTjsKKwl9CisKKworCUBUZXN0CisJcHVibGljIHZvaWQgdGVzdEdldENvbmZpZ0ZpbGUoKSB0aHJvd3MgSU9FeGNlcHRpb24KKwl7CisJCWludCB2ZXJzaW9uID0gMTsKKwkJRmlsZSByZXBvc2l0b3J5Rm9sZGVyID0gYmFzZUZvbGRlci5nZXRSb290KCk7CisJCUx1Y2VuZVJlcG9JbmRleFN0b3JlIGxpID0gbmV3IEx1Y2VuZVJlcG9JbmRleFN0b3JlKHJlcG9zaXRvcnlGb2xkZXIsIHZlcnNpb24pOworCQlGaWxlIGNvbmZGaWxlPSBsaS5nZXRDb25maWdGaWxlKCk7CisJCUZpbGUgbHVjZW5lRGlyID0gbmV3IEZpbGUocmVwb3NpdG9yeUZvbGRlciwgZ2V0THVjZW5lSW5kZXhEaXIodmVyc2lvbikgKyAiL2diX2x1Y2VuZS5jb25mIik7CisJCWFzc2VydEVxdWFscyhsdWNlbmVEaXIsIGNvbmZGaWxlKTsKKwl9CisKKworCUBUZXN0CisJcHVibGljIHZvaWQgdGVzdENyZWF0ZSgpCisJeworCQlpbnQgdmVyc2lvbiA9IDA7CisJCUZpbGUgcmVwb3NpdG9yeUZvbGRlciA9IGJhc2VGb2xkZXIuZ2V0Um9vdCgpOworCQlGaWxlIGx1Y2VuZURpciA9IG5ldyBGaWxlKHJlcG9zaXRvcnlGb2xkZXIsIGdldEx1Y2VuZUluZGV4RGlyKHZlcnNpb24pKTsKKwkJYXNzZXJ0RmFsc2UoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBkaXJlY3RvcnkgZXhpc3RzIGFscmVhZHkiLCBuZXcgRmlsZShyZXBvc2l0b3J5Rm9sZGVyLCBMVUNFTkVfRElSKS5leGlzdHMoKSk7CisJCWFzc2VydEZhbHNlKCJQcmVjb25kaXRpb24gZmFpbHVyZTogZGlyZWN0b3J5IGV4aXN0cyBhbHJlYWR5IiwgbHVjZW5lRGlyLmV4aXN0cygpKTsKKworCQlMdWNlbmVJbmRleFN0b3JlIGxpID0gbmV3IEx1Y2VuZVJlcG9JbmRleFN0b3JlKHJlcG9zaXRvcnlGb2xkZXIsIHZlcnNpb24pOworCQlsaS5jcmVhdGUoKTsKKworCQlhc3NlcnRUcnVlKGx1Y2VuZURpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUobHVjZW5lRGlyLmlzRGlyZWN0b3J5KCkpOworCX0KKworCUBUZXN0CisJcHVibGljIHZvaWQgdGVzdENyZWF0ZUluZGV4RGlyKCkKKwl7CisJCWludCB2ZXJzaW9uID0gNzc3NzsKKwkJRmlsZSByZXBvc2l0b3J5Rm9sZGVyID0gYmFzZUZvbGRlci5nZXRSb290KCk7CisJCXRyeSB7CisJCQliYXNlRm9sZGVyLm5ld0ZvbGRlcihMVUNFTkVfRElSKTsKKwkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJZmFpbCgiRmFpbGVkIGluIHNldHVwIG9mIGZvbGRlcjogIiArIGUpOworCQl9CisJCUZpbGUgbHVjZW5lRGlyID0gbmV3IEZpbGUocmVwb3NpdG9yeUZvbGRlciwgZ2V0THVjZW5lSW5kZXhEaXIodmVyc2lvbikpOworCisJCWFzc2VydFRydWUoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QiLCBuZXcgRmlsZShyZXBvc2l0b3J5Rm9sZGVyLCBMVUNFTkVfRElSKS5leGlzdHMoKSk7CisJCWFzc2VydEZhbHNlKCJQcmVjb25kaXRpb24gZmFpbHVyZTogZGlyZWN0b3J5IGV4aXN0cyBhbHJlYWR5IiwgbHVjZW5lRGlyLmV4aXN0cygpKTsKKworCQlMdWNlbmVJbmRleFN0b3JlIGxpID0gbmV3IEx1Y2VuZVJlcG9JbmRleFN0b3JlKHJlcG9zaXRvcnlGb2xkZXIsIHZlcnNpb24pOworCQlsaS5jcmVhdGUoKTsKKworCQlhc3NlcnRUcnVlKGx1Y2VuZURpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUobHVjZW5lRGlyLmlzRGlyZWN0b3J5KCkpOworCisJCS8vIE1ha2Ugc3VyZSBub3RoaW5nIGVsc2Ugd2FzIGNyZWF0ZWQuCisJCWFzc2VydEVxdWFscygwLCBsdWNlbmVEaXIubGlzdCgpLmxlbmd0aCk7CisJCWFzc2VydEVxdWFscygxLCBsdWNlbmVEaXIuZ2V0UGFyZW50RmlsZSgpLmxpc3QoKS5sZW5ndGgpOworCX0KKworCUBUZXN0CisJcHVibGljIHZvaWQgdGVzdENyZWF0ZUlmTmVjZXNzYXJ5KCkKKwl7CisJCWludCB2ZXJzaW9uID0gNzc3Nzg4ODsKKwkJRmlsZSByZXBvc2l0b3J5Rm9sZGVyID0gYmFzZUZvbGRlci5nZXRSb290KCk7CisJCUZpbGUgbHVjZW5lRGlyID0gbnVsbDsKKwkJdHJ5IHsKKwkJCWx1Y2VuZURpciA9IGJhc2VGb2xkZXIubmV3Rm9sZGVyKExVQ0VORV9ESVIsIGdldEluZGV4RGlyKHZlcnNpb24pKTsKKwkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJZmFpbCgiRmFpbGVkIGluIHNldHVwIG9mIGZvbGRlcjogIiArIGUpOworCQl9CisJCWFzc2VydFRydWUoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QiLCBuZXcgRmlsZShyZXBvc2l0b3J5Rm9sZGVyLCBMVUNFTkVfRElSKS5leGlzdHMoKSk7CisJCWFzc2VydFRydWUoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QiLCBsdWNlbmVEaXIuZXhpc3RzKCkpOworCisJCUx1Y2VuZUluZGV4U3RvcmUgbGkgPSBuZXcgTHVjZW5lUmVwb0luZGV4U3RvcmUocmVwb3NpdG9yeUZvbGRlciwgdmVyc2lvbik7CisJCWxpLmNyZWF0ZSgpOworCisJCWFzc2VydFRydWUobHVjZW5lRGlyLmV4aXN0cygpKTsKKwkJYXNzZXJ0VHJ1ZShsdWNlbmVEaXIuaXNEaXJlY3RvcnkoKSk7CisKKwkJLy8gTWFrZSBzdXJlIG5vdGhpbmcgZWxzZSB3YXMgY3JlYXRlZC4KKwkJYXNzZXJ0RXF1YWxzKDAsIGx1Y2VuZURpci5saXN0KCkubGVuZ3RoKTsKKwkJYXNzZXJ0RXF1YWxzKDEsIGx1Y2VuZURpci5nZXRQYXJlbnRGaWxlKCkubGlzdCgpLmxlbmd0aCk7CisJfQorCisKKwlAVGVzdAorCXB1YmxpYyB2b2lkIHRlc3REZWxldGUoKQorCXsKKwkJaW50IHZlcnNpb24gPSAxMTEyMjIzMzM7CisKKwkJRmlsZSByZXBvc2l0b3J5Rm9sZGVyID0gYmFzZUZvbGRlci5nZXRSb290KCk7CisJCUZpbGUgbHVjZW5lRGlyID0gbnVsbDsKKwkJdHJ5IHsKKwkJCWx1Y2VuZURpciA9IGJhc2VGb2xkZXIubmV3Rm9sZGVyKExVQ0VORV9ESVIsIGdldEluZGV4RGlyKHZlcnNpb24pKTsKKwkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJZmFpbCgiRmFpbGVkIGluIHNldHVwIG9mIGZvbGRlcjogIiArIGUpOworCQl9CisJCWFzc2VydFRydWUoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QiLCBsdWNlbmVEaXIuZXhpc3RzKCkpOworCisJCUx1Y2VuZUluZGV4U3RvcmUgbGkgPSBuZXcgTHVjZW5lUmVwb0luZGV4U3RvcmUocmVwb3NpdG9yeUZvbGRlciwgdmVyc2lvbik7CisJCWFzc2VydFRydWUobGkuZGVsZXRlKCkpOworCisJCWFzc2VydEZhbHNlKGx1Y2VuZURpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUobmV3IEZpbGUocmVwb3NpdG9yeUZvbGRlciwgTFVDRU5FX0RJUikuZXhpc3RzKCkpOworCX0KKworCisJQFRlc3QKKwlwdWJsaWMgdm9pZCB0ZXN0RGVsZXRlTm90RXhpc3QoKQorCXsKKwkJaW50IHZlcnNpb24gPSAwOworCisJCUZpbGUgcmVwb3NpdG9yeUZvbGRlciA9IGJhc2VGb2xkZXIuZ2V0Um9vdCgpOworCQl0cnkgeworCQkJYmFzZUZvbGRlci5uZXdGb2xkZXIoTFVDRU5FX0RJUik7CisJCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKwkJCWZhaWwoIkZhaWxlZCBpbiBzZXR1cCBvZiBmb2xkZXI6ICIgKyBlKTsKKwkJfQorCQlGaWxlIGx1Y2VuZURpciA9IG5ldyBGaWxlKHJlcG9zaXRvcnlGb2xkZXIsIGdldEx1Y2VuZUluZGV4RGlyKHZlcnNpb24pKTsKKwkJYXNzZXJ0VHJ1ZSgiUHJlY29uZGl0aW9uIGZhaWx1cmU6IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdCIsIG5ldyBGaWxlKHJlcG9zaXRvcnlGb2xkZXIsIExVQ0VORV9ESVIpLmV4aXN0cygpKTsKKwkJYXNzZXJ0RmFsc2UoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBkaXJlY3RvcnkgZG9lcyBleGlzdCIsIGx1Y2VuZURpci5leGlzdHMoKSk7CisKKwkJTHVjZW5lSW5kZXhTdG9yZSBsaSA9IG5ldyBMdWNlbmVSZXBvSW5kZXhTdG9yZShyZXBvc2l0b3J5Rm9sZGVyLCB2ZXJzaW9uKTsKKwkJYXNzZXJ0VHJ1ZShsaS5kZWxldGUoKSk7CisKKwkJYXNzZXJ0RmFsc2UobHVjZW5lRGlyLmV4aXN0cygpKTsKKwkJYXNzZXJ0VHJ1ZShuZXcgRmlsZShyZXBvc2l0b3J5Rm9sZGVyLCBMVUNFTkVfRElSKS5leGlzdHMoKSk7CisJfQorCisKKwlAVGVzdAorCXB1YmxpYyB2b2lkIHRlc3REZWxldGVXaXRoRmlsZXMoKQorCXsKKwkJaW50IHZlcnNpb24gPSA1OworCisJCUZpbGUgcmVwb3NpdG9yeUZvbGRlciA9IGJhc2VGb2xkZXIuZ2V0Um9vdCgpOworCQlGaWxlIGx1Y2VuZUZvbGRlciA9IG5ldyBGaWxlKGJhc2VGb2xkZXIuZ2V0Um9vdCgpLCBMVUNFTkVfRElSKTsKKwkJRmlsZSBsdWNlbmVEaXIgPSBudWxsOworCisJCUZpbGUgb3RoZXJEaXIgPSBuZXcgRmlsZShsdWNlbmVGb2xkZXIsIHZlcnNpb24gKyAiXzEwIik7CisJCUZpbGUgZGJGaWxlID0gbnVsbDsKKwkJdHJ5IHsKKwkJCWx1Y2VuZURpciA9IGJhc2VGb2xkZXIubmV3Rm9sZGVyKExVQ0VORV9ESVIsIGdldEluZGV4RGlyKHZlcnNpb24pKTsKKwkJCUZpbGUgZmlsZSA9IG5ldyBGaWxlKGx1Y2VuZURpciwgIl9maWxlMSIpOworCQkJZmlsZS5jcmVhdGVOZXdGaWxlKCk7CisJCQlmaWxlID0gbmV3IEZpbGUobHVjZW5lRGlyLCAiX2ZpbGUyLmRiIik7CisJCQlmaWxlLmNyZWF0ZU5ld0ZpbGUoKTsKKwkJCWZpbGUgPSBuZXcgRmlsZShsdWNlbmVEaXIsICJjb25mLmNvbmYiKTsKKwkJCWZpbGUuY3JlYXRlTmV3RmlsZSgpOworCisJCQlvdGhlckRpci5ta2RpcnMoKTsKKwkJCWRiRmlsZSA9IG5ldyBGaWxlKG90aGVyRGlyLCAiX2ZpbGUyLmRiIik7CisJCQlkYkZpbGUuY3JlYXRlTmV3RmlsZSgpOworCQkJZmlsZSA9IG5ldyBGaWxlKG90aGVyRGlyLCAiY29uZi5jb25mIik7CisJCQlmaWxlLmNyZWF0ZU5ld0ZpbGUoKTsKKwkJfQorCQljYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJZmFpbCgiRmFpbGVkIGluIHNldHVwIG9mIGZvbGRlcjogIiArIGUpOworCQl9CisJCWFzc2VydFRydWUoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBpbmRleCBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QiLCBsdWNlbmVEaXIuZXhpc3RzKCkpOworCQlhc3NlcnRUcnVlKCJQcmVjb25kaXRpb24gZmFpbHVyZTogb3RoZXIgaW5kZXggZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0Iiwgb3RoZXJEaXIuZXhpc3RzKCkpOworCisJCUx1Y2VuZUluZGV4U3RvcmUgbGkgPSBuZXcgTHVjZW5lUmVwb0luZGV4U3RvcmUocmVwb3NpdG9yeUZvbGRlciwgdmVyc2lvbik7CisJCWxpLmRlbGV0ZSgpOworCisJCWFzc2VydEZhbHNlKGx1Y2VuZURpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUobHVjZW5lRm9sZGVyLmV4aXN0cygpKTsKKwkJYXNzZXJ0VHJ1ZShvdGhlckRpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUoZGJGaWxlLmV4aXN0cygpKTsKKwl9CisKKworCisJQFRlc3QKKwlwdWJsaWMgdm9pZCB0ZXN0R2V0UGF0aCgpIHRocm93cyBJT0V4Y2VwdGlvbgorCXsKKwkJaW50IHZlcnNpb24gPSA3OworCQlGaWxlIHJlcG9zaXRvcnlGb2xkZXIgPSBiYXNlRm9sZGVyLmdldFJvb3QoKTsKKwkJTHVjZW5lSW5kZXhTdG9yZSBsaSA9IG5ldyBMdWNlbmVSZXBvSW5kZXhTdG9yZShyZXBvc2l0b3J5Rm9sZGVyLCB2ZXJzaW9uKTsKKwkJUGF0aCBkaXIgPSBsaS5nZXRQYXRoKCk7CisJCUZpbGUgbHVjZW5lRGlyID0gbmV3IEZpbGUocmVwb3NpdG9yeUZvbGRlciwgZ2V0THVjZW5lSW5kZXhEaXIodmVyc2lvbikpOworCQlhc3NlcnRFcXVhbHMobHVjZW5lRGlyLnRvUGF0aCgpLCBkaXIpOworCX0KKworCisJQFRlc3QKKwlwdWJsaWMgdm9pZCB0ZXN0SGFzSW5kZXgoKSB0aHJvd3MgSU9FeGNlcHRpb24KKwl7CisJCWludCB2ZXJzaW9uID0gMDsKKwkJRmlsZSBsdWNlbmVGb2xkZXIgPSBuZXcgRmlsZShiYXNlRm9sZGVyLmdldFJvb3QoKSwgImx1Y2VuZSIpOworCisJCUx1Y2VuZUluZGV4U3RvcmUgbGkgPSBuZXcgTHVjZW5lUmVwb0luZGV4U3RvcmUobHVjZW5lRm9sZGVyLCB2ZXJzaW9uKTsKKwkJYXNzZXJ0RmFsc2UobGkuaGFzSW5kZXgoKSk7CisKKwkJYmFzZUZvbGRlci5uZXdGb2xkZXIoImx1Y2VuZSIpOworCQlsaSA9IG5ldyBMdWNlbmVJbmRleFN0b3JlKGx1Y2VuZUZvbGRlciwgdmVyc2lvbik7CisJCWFzc2VydEZhbHNlKGxpLmhhc0luZGV4KCkpOworCisJCUZpbGUgbHVjZW5lRGlyID0gYmFzZUZvbGRlci5uZXdGb2xkZXIoImx1Y2VuZSIsIGdldEluZGV4RGlyKHZlcnNpb24pKTsKKwkJbGkgPSBuZXcgTHVjZW5lSW5kZXhTdG9yZShsdWNlbmVGb2xkZXIsIHZlcnNpb24pOworCQlhc3NlcnRGYWxzZShsaS5oYXNJbmRleCgpKTsKKworCQluZXcgRmlsZShsdWNlbmVEaXIsICJ3cml0ZS5sb2NrIikuY3JlYXRlTmV3RmlsZSgpOworCQlsaSA9IG5ldyBMdWNlbmVJbmRleFN0b3JlKGx1Y2VuZUZvbGRlciwgdmVyc2lvbik7CisJCWFzc2VydEZhbHNlKGxpLmhhc0luZGV4KCkpOworCisJCW5ldyBGaWxlKGx1Y2VuZURpciwgInNlZ21lbnRzXzEiKS5jcmVhdGVOZXdGaWxlKCk7CisJCWxpID0gbmV3IEx1Y2VuZUluZGV4U3RvcmUobHVjZW5lRm9sZGVyLCB2ZXJzaW9uKTsKKwkJU3lzdGVtLm91dC5wcmludGxuKCJDaGVjayAiICsgbHVjZW5lRGlyKTsKKwkJYXNzZXJ0VHJ1ZShsaS5oYXNJbmRleCgpKTsKKworCX0KKworCit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL2NvbS9naXRibGl0L3Rlc3RzL0JyYW5jaFRpY2tldFNlcnZpY2VUZXN0LmphdmEgYi9zcmMvdGVzdC9qYXZhL2NvbS9naXRibGl0L3Rlc3RzL0JyYW5jaFRpY2tldFNlcnZpY2VUZXN0LmphdmEKaW5kZXggMGE1ZGUxOS4uMGU5ZDg4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvamF2YS9jb20vZ2l0YmxpdC90ZXN0cy9CcmFuY2hUaWNrZXRTZXJ2aWNlVGVzdC5qYXZhCisrKyBiL3NyYy90ZXN0L2phdmEvY29tL2dpdGJsaXQvdGVzdHMvQnJhbmNoVGlja2V0U2VydmljZVRlc3QuamF2YQpAQCAtNTksNyArNTksNyBAQAogCQlJVXNlck1hbmFnZXIgdXNlck1hbmFnZXIgPSBuZXcgVXNlck1hbmFnZXIocnVudGltZU1hbmFnZXIsIHBsdWdpbk1hbmFnZXIpLnN0YXJ0KCk7CiAJCUlSZXBvc2l0b3J5TWFuYWdlciByZXBvc2l0b3J5TWFuYWdlciA9IG5ldyBSZXBvc2l0b3J5TWFuYWdlcihydW50aW1lTWFuYWdlciwgcGx1Z2luTWFuYWdlciwgdXNlck1hbmFnZXIpLnN0YXJ0KCk7CiAKLQkJQnJhbmNoVGlja2V0U2VydmljZSBzZXJ2aWNlID0gbmV3IEJyYW5jaFRpY2tldFNlcnZpY2UoCisJCUJyYW5jaFRpY2tldFNlcnZpY2Ugc2VydmljZSA9IChCcmFuY2hUaWNrZXRTZXJ2aWNlKSBuZXcgQnJhbmNoVGlja2V0U2VydmljZSgKIAkJCQlydW50aW1lTWFuYWdlciwKIAkJCQlwbHVnaW5NYW5hZ2VyLAogCQkJCW5vdGlmaWNhdGlvbk1hbmFnZXIsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL2NvbS9naXRibGl0L3Rlc3RzL0ZpbGVUaWNrZXRTZXJ2aWNlVGVzdC5qYXZhIGIvc3JjL3Rlc3QvamF2YS9jb20vZ2l0YmxpdC90ZXN0cy9GaWxlVGlja2V0U2VydmljZVRlc3QuamF2YQppbmRleCAxZmIyZWVkLi5jNGE2M2M0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9qYXZhL2NvbS9naXRibGl0L3Rlc3RzL0ZpbGVUaWNrZXRTZXJ2aWNlVGVzdC5qYXZhCisrKyBiL3NyYy90ZXN0L2phdmEvY29tL2dpdGJsaXQvdGVzdHMvRmlsZVRpY2tldFNlcnZpY2VUZXN0LmphdmEKQEAgLTU4LDcgKzU4LDcgQEAKIAkJSVVzZXJNYW5hZ2VyIHVzZXJNYW5hZ2VyID0gbmV3IFVzZXJNYW5hZ2VyKHJ1bnRpbWVNYW5hZ2VyLCBwbHVnaW5NYW5hZ2VyKS5zdGFydCgpOwogCQlJUmVwb3NpdG9yeU1hbmFnZXIgcmVwb3NpdG9yeU1hbmFnZXIgPSBuZXcgUmVwb3NpdG9yeU1hbmFnZXIocnVudGltZU1hbmFnZXIsIHBsdWdpbk1hbmFnZXIsIHVzZXJNYW5hZ2VyKS5zdGFydCgpOwogCi0JCUZpbGVUaWNrZXRTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgRmlsZVRpY2tldFNlcnZpY2UoCisJCUZpbGVUaWNrZXRTZXJ2aWNlIHNlcnZpY2UgPSAoRmlsZVRpY2tldFNlcnZpY2UpIG5ldyBGaWxlVGlja2V0U2VydmljZSgKIAkJCQlydW50aW1lTWFuYWdlciwKIAkJCQlwbHVnaW5NYW5hZ2VyLAogCQkJCW5vdGlmaWNhdGlvbk1hbmFnZXIsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL2NvbS9naXRibGl0L3Rlc3RzL1JlZGlzVGlja2V0U2VydmljZVRlc3QuamF2YSBiL3NyYy90ZXN0L2phdmEvY29tL2dpdGJsaXQvdGVzdHMvUmVkaXNUaWNrZXRTZXJ2aWNlVGVzdC5qYXZhCmluZGV4IDQ4MDExYWQuLjVmM2NiOTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2phdmEvY29tL2dpdGJsaXQvdGVzdHMvUmVkaXNUaWNrZXRTZXJ2aWNlVGVzdC5qYXZhCisrKyBiL3NyYy90ZXN0L2phdmEvY29tL2dpdGJsaXQvdGVzdHMvUmVkaXNUaWNrZXRTZXJ2aWNlVGVzdC5qYXZhCkBAIC02Niw3ICs2Niw3IEBACiAJCUlVc2VyTWFuYWdlciB1c2VyTWFuYWdlciA9IG5ldyBVc2VyTWFuYWdlcihydW50aW1lTWFuYWdlciwgcGx1Z2luTWFuYWdlcikuc3RhcnQoKTsKIAkJSVJlcG9zaXRvcnlNYW5hZ2VyIHJlcG9zaXRvcnlNYW5hZ2VyID0gbmV3IFJlcG9zaXRvcnlNYW5hZ2VyKHJ1bnRpbWVNYW5hZ2VyLCBwbHVnaW5NYW5hZ2VyLCB1c2VyTWFuYWdlcikuc3RhcnQoKTsKIAotCQlSZWRpc1RpY2tldFNlcnZpY2Ugc2VydmljZSA9IG5ldyBSZWRpc1RpY2tldFNlcnZpY2UoCisJCVJlZGlzVGlja2V0U2VydmljZSBzZXJ2aWNlID0gKFJlZGlzVGlja2V0U2VydmljZSkgbmV3IFJlZGlzVGlja2V0U2VydmljZSgKIAkJCQlydW50aW1lTWFuYWdlciwKIAkJCQlwbHVnaW5NYW5hZ2VyLAogCQkJCW5vdGlmaWNhdGlvbk1hbmFnZXIsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL2NvbS9naXRibGl0L3Rlc3RzL1VJVGlja2V0VGVzdC5qYXZhIGIvc3JjL3Rlc3QvamF2YS9jb20vZ2l0YmxpdC90ZXN0cy9VSVRpY2tldFRlc3QuamF2YQppbmRleCA1NGFhMWUxLi5lODljMzJmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9qYXZhL2NvbS9naXRibGl0L3Rlc3RzL1VJVGlja2V0VGVzdC5qYXZhCisrKyBiL3NyYy90ZXN0L2phdmEvY29tL2dpdGJsaXQvdGVzdHMvVUlUaWNrZXRUZXN0LmphdmEKQEAgLTgzLDcgKzgzLDcgQEAKIAkJSVVzZXJNYW5hZ2VyIHVzZXJNYW5hZ2VyID0gbmV3IFVzZXJNYW5hZ2VyKHJ1bnRpbWVNYW5hZ2VyLCBwbHVnaW5NYW5hZ2VyKS5zdGFydCgpOwogCQlJUmVwb3NpdG9yeU1hbmFnZXIgcmVwb3NpdG9yeU1hbmFnZXIgPSBuZXcgUmVwb3NpdG9yeU1hbmFnZXIocnVudGltZU1hbmFnZXIsIHBsdWdpbk1hbmFnZXIsIHVzZXJNYW5hZ2VyKS5zdGFydCgpOwogCi0JCUJyYW5jaFRpY2tldFNlcnZpY2Ugc2VydmljZSA9IG5ldyBCcmFuY2hUaWNrZXRTZXJ2aWNlKAorCQlCcmFuY2hUaWNrZXRTZXJ2aWNlIHNlcnZpY2UgPSAoQnJhbmNoVGlja2V0U2VydmljZSkgbmV3IEJyYW5jaFRpY2tldFNlcnZpY2UoCiAJCQkJcnVudGltZU1hbmFnZXIsCiAJCQkJcGx1Z2luTWFuYWdlciwKIAkJCQlub3RpZmljYXRpb25NYW5hZ2VyLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9jb20vZ2l0YmxpdC91dGlscy9MdWNlbmVJbmRleFN0b3JlVGVzdC5qYXZhIGIvc3JjL3Rlc3QvamF2YS9jb20vZ2l0YmxpdC91dGlscy9MdWNlbmVJbmRleFN0b3JlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkNjZjNWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9qYXZhL2NvbS9naXRibGl0L3V0aWxzL0x1Y2VuZUluZGV4U3RvcmVUZXN0LmphdmEKQEAgLTAsMCArMSwyNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNyBnaXRibGl0LmNvbS4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGNvbS5naXRibGl0LnV0aWxzOworCitpbXBvcnQgc3RhdGljIG9yZy5qdW5pdC5Bc3NlcnQuKjsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmlvLmZpbGUuUGF0aDsKKworaW1wb3J0IG9yZy5qdW5pdC5SdWxlOworaW1wb3J0IG9yZy5qdW5pdC5UZXN0OworaW1wb3J0IG9yZy5qdW5pdC5ydWxlcy5UZW1wb3JhcnlGb2xkZXI7CisKKworLyoqCisgKiBAYXV0aG9yIEZsb3JpYW4gWnNjaG9ja2UKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBMdWNlbmVJbmRleFN0b3JlVGVzdAoreworCisJcHJpdmF0ZSBmaW5hbCBpbnQgTFVDRU5FX1ZFUlNJT04gPSBMdWNlbmVJbmRleFN0b3JlLkxVQ0VORV9DT0RFQ19WRVJTSU9OOworCisJQFJ1bGUKKwlwdWJsaWMgVGVtcG9yYXJ5Rm9sZGVyIGJhc2VGb2xkZXIgPSBuZXcgVGVtcG9yYXJ5Rm9sZGVyKCk7CisKKwlwcml2YXRlIFN0cmluZyBnZXRJbmRleERpcihpbnQgdmVyc2lvbikKKwl7CisJCXJldHVybiB2ZXJzaW9uICsgIl8iICsgTFVDRU5FX1ZFUlNJT047CisJfQorCisKKworCUBUZXN0CisJcHVibGljIHZvaWQgdGVzdENyZWF0ZSgpCisJeworCQlpbnQgdmVyc2lvbiA9IDA7CisJCUZpbGUgbHVjZW5lRm9sZGVyID0gbmV3IEZpbGUoYmFzZUZvbGRlci5nZXRSb290KCksICJ0aWNrZXRzL2x1Y2VuZSIpOworCQlhc3NlcnRGYWxzZSgiUHJlY29uZGl0aW9uIGZhaWx1cmU6IGRpcmVjdG9yeSBleGlzdHMgYWxyZWFkeSIsIGx1Y2VuZUZvbGRlci5leGlzdHMoKSk7CisKKwkJTHVjZW5lSW5kZXhTdG9yZSBsaSA9IG5ldyBMdWNlbmVJbmRleFN0b3JlKGx1Y2VuZUZvbGRlciwgdmVyc2lvbik7CisJCWxpLmNyZWF0ZSgpOworCisJCUZpbGUgbHVjZW5lRGlyID0gbmV3IEZpbGUobHVjZW5lRm9sZGVyLCBnZXRJbmRleERpcih2ZXJzaW9uKSk7CisJCWFzc2VydFRydWUobHVjZW5lRGlyLmV4aXN0cygpKTsKKwl9CisKKwlAVGVzdAorCXB1YmxpYyB2b2lkIHRlc3RDcmVhdGVJbmRleERpcigpCisJeworCQlpbnQgdmVyc2lvbiA9IDExMTIyMjsKKwkJRmlsZSBsdWNlbmVGb2xkZXIgPSBudWxsOworCQl0cnkgeworCQkJbHVjZW5lRm9sZGVyID0gYmFzZUZvbGRlci5uZXdGb2xkZXIoInRpY2tldHMiLCAibHVjZW5lIik7CisJCX0KKwkJY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKwkJCWZhaWwoIkZhaWxlZCBpbiBzZXR1cCBvZiBmb2xkZXI6ICIgKyBlKTsKKwkJfQorCQlhc3NlcnRUcnVlKCJQcmVjb25kaXRpb24gZmFpbHVyZTogZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0IiwgbHVjZW5lRm9sZGVyLmV4aXN0cygpKTsKKworCQlMdWNlbmVJbmRleFN0b3JlIGxpID0gbmV3IEx1Y2VuZUluZGV4U3RvcmUobHVjZW5lRm9sZGVyLCB2ZXJzaW9uKTsKKwkJbGkuY3JlYXRlKCk7CisKKwkJRmlsZSBsdWNlbmVEaXIgPSBuZXcgRmlsZShsdWNlbmVGb2xkZXIsIGdldEluZGV4RGlyKHZlcnNpb24pKTsKKwkJYXNzZXJ0VHJ1ZShsdWNlbmVEaXIuZXhpc3RzKCkpOworCQlhc3NlcnRUcnVlKGx1Y2VuZURpci5pc0RpcmVjdG9yeSgpKTsKKworCQkvLyBNYWtlIHN1cmUgbm90aGluZyBlbHNlIHdhcyBjcmVhdGVkLgorCQlhc3NlcnRFcXVhbHMoMCwgbHVjZW5lRGlyLmxpc3QoKS5sZW5ndGgpOworCQlhc3NlcnRFcXVhbHMoMSwgbHVjZW5lRGlyLmdldFBhcmVudEZpbGUoKS5saXN0KCkubGVuZ3RoKTsKKwkJYXNzZXJ0RXF1YWxzKDEsIGx1Y2VuZURpci5nZXRQYXJlbnRGaWxlKCkuZ2V0UGFyZW50RmlsZSgpLmxpc3QoKS5sZW5ndGgpOworCX0KKworCUBUZXN0CisJcHVibGljIHZvaWQgdGVzdENyZWF0ZUlmTmVjZXNzYXJ5KCkKKwl7CisJCWludCB2ZXJzaW9uID0gMTsKKwkJRmlsZSBsdWNlbmVGb2xkZXIgPSBuZXcgRmlsZShiYXNlRm9sZGVyLmdldFJvb3QoKSwgInRpY2tldHMvbHVjZW5lIik7CisJCUZpbGUgbHVjZW5lRGlyID0gbnVsbDsKKwkJdHJ5IHsKKwkJCWx1Y2VuZURpciA9IGJhc2VGb2xkZXIubmV3Rm9sZGVyKCJ0aWNrZXRzIiwgImx1Y2VuZSIsIGdldEluZGV4RGlyKHZlcnNpb24pKTsKKwkJfQorCQljYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJZmFpbCgiRmFpbGVkIGluIHNldHVwIG9mIGZvbGRlcjogIiArIGUpOworCQl9CisJCWFzc2VydFRydWUoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QiLCBsdWNlbmVEaXIuZXhpc3RzKCkpOworCisJCUx1Y2VuZUluZGV4U3RvcmUgbGkgPSBuZXcgTHVjZW5lSW5kZXhTdG9yZShsdWNlbmVGb2xkZXIsIHZlcnNpb24pOworCQlsaS5jcmVhdGUoKTsKKworCQlhc3NlcnRUcnVlKGx1Y2VuZURpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUobHVjZW5lRGlyLmlzRGlyZWN0b3J5KCkpOworCisJCS8vIE1ha2Ugc3VyZSBub3RoaW5nIGVsc2Ugd2FzIGNyZWF0ZWQuCisJCWFzc2VydEVxdWFscygwLCBsdWNlbmVEaXIubGlzdCgpLmxlbmd0aCk7CisJCWFzc2VydEVxdWFscygxLCBsdWNlbmVEaXIuZ2V0UGFyZW50RmlsZSgpLmxpc3QoKS5sZW5ndGgpOworCQlhc3NlcnRFcXVhbHMoMSwgbHVjZW5lRGlyLmdldFBhcmVudEZpbGUoKS5nZXRQYXJlbnRGaWxlKCkubGlzdCgpLmxlbmd0aCk7CisJfQorCisJQFRlc3QKKwlwdWJsaWMgdm9pZCB0ZXN0RGVsZXRlKCkKKwl7CisJCWludCB2ZXJzaW9uID0gMTExMjIyMzMzOworCQlGaWxlIGx1Y2VuZUZvbGRlciA9IG5ldyBGaWxlKGJhc2VGb2xkZXIuZ2V0Um9vdCgpLCAicmVwbzEvbHVjZW5lIik7CisJCUZpbGUgbHVjZW5lRGlyID0gbnVsbDsKKwkJdHJ5IHsKKwkJCWx1Y2VuZURpciA9IGJhc2VGb2xkZXIubmV3Rm9sZGVyKCJyZXBvMSIsICJsdWNlbmUiLCBnZXRJbmRleERpcih2ZXJzaW9uKSk7CisJCX0KKwkJY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKwkJCWZhaWwoIkZhaWxlZCBpbiBzZXR1cCBvZiBmb2xkZXI6ICIgKyBlKTsKKwkJfQorCQlhc3NlcnRUcnVlKCJQcmVjb25kaXRpb24gZmFpbHVyZTogaW5kZXggZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0IiwgbHVjZW5lRGlyLmV4aXN0cygpKTsKKworCQlMdWNlbmVJbmRleFN0b3JlIGxpID0gbmV3IEx1Y2VuZUluZGV4U3RvcmUobHVjZW5lRm9sZGVyLCB2ZXJzaW9uKTsKKwkJYXNzZXJ0VHJ1ZShsaS5kZWxldGUoKSk7CisKKwkJYXNzZXJ0RmFsc2UobHVjZW5lRGlyLmV4aXN0cygpKTsKKwkJYXNzZXJ0VHJ1ZShsdWNlbmVGb2xkZXIuZXhpc3RzKCkpOworCX0KKworCUBUZXN0CisJcHVibGljIHZvaWQgdGVzdERlbGV0ZU5vdEV4aXN0KCkKKwl7CisJCWludCB2ZXJzaW9uID0gMDsKKworCQlGaWxlIGx1Y2VuZUZvbGRlciA9IG51bGw7CisJCXRyeSB7CisJCQlsdWNlbmVGb2xkZXIgPSBiYXNlRm9sZGVyLm5ld0ZvbGRlcigicmVwbzEiLCAibHVjZW5lIik7CisJCX0KKwkJY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKwkJCWZhaWwoIkZhaWxlZCBpbiBzZXR1cCBvZiBmb2xkZXI6ICIgKyBlKTsKKwkJfQorCQlGaWxlIGx1Y2VuZURpciA9IG5ldyBGaWxlKGx1Y2VuZUZvbGRlciwgZ2V0SW5kZXhEaXIodmVyc2lvbikpOworCQlhc3NlcnRGYWxzZSgiUHJlY29uZGl0aW9uIGZhaWx1cmU6IGluZGV4IGRpcmVjdG9yeSBleGlzdHMgYWxyZWFkeSIsIGx1Y2VuZURpci5leGlzdHMoKSk7CisKKwkJTHVjZW5lSW5kZXhTdG9yZSBsaSA9IG5ldyBMdWNlbmVJbmRleFN0b3JlKGx1Y2VuZUZvbGRlciwgdmVyc2lvbik7CisJCWFzc2VydFRydWUobGkuZGVsZXRlKCkpOworCisJCWFzc2VydEZhbHNlKGx1Y2VuZURpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUobHVjZW5lRm9sZGVyLmV4aXN0cygpKTsKKwl9CisKKwlAVGVzdAorCXB1YmxpYyB2b2lkIHRlc3REZWxldGVXaXRoRmlsZXMoKQorCXsKKwkJaW50IHZlcnNpb24gPSAxMTEyMjIzMzM7CisKKwkJRmlsZSBsdWNlbmVGb2xkZXIgPSBuZXcgRmlsZShiYXNlRm9sZGVyLmdldFJvb3QoKSwgInRpY2tldHMvbHVjZW5lIik7CisJCUZpbGUgbHVjZW5lRGlyID0gbnVsbDsKKworCQlGaWxlIG90aGVyRGlyID0gbmV3IEZpbGUoYmFzZUZvbGRlci5nZXRSb290KCksICJ0aWNrZXRzL2x1Y2VuZS8iICsgdmVyc2lvbiArICJfMTAiKTsKKwkJRmlsZSBkYkZpbGUgPSBudWxsOworCQl0cnkgeworCQkJbHVjZW5lRGlyID0gYmFzZUZvbGRlci5uZXdGb2xkZXIoInRpY2tldHMiLCAibHVjZW5lIiwgZ2V0SW5kZXhEaXIodmVyc2lvbikpOworCQkJRmlsZSBmaWxlID0gbmV3IEZpbGUobHVjZW5lRGlyLCAiX2ZpbGUxIik7CisJCQlmaWxlLmNyZWF0ZU5ld0ZpbGUoKTsKKwkJCWZpbGUgPSBuZXcgRmlsZShsdWNlbmVEaXIsICJfZmlsZTIuZGIiKTsKKwkJCWZpbGUuY3JlYXRlTmV3RmlsZSgpOworCQkJZmlsZSA9IG5ldyBGaWxlKGx1Y2VuZURpciwgImNvbmYuY29uZiIpOworCQkJZmlsZS5jcmVhdGVOZXdGaWxlKCk7CisKKwkJCW90aGVyRGlyLm1rZGlycygpOworCQkJZGJGaWxlID0gbmV3IEZpbGUob3RoZXJEaXIsICJfZmlsZTIuZGIiKTsKKwkJCWRiRmlsZS5jcmVhdGVOZXdGaWxlKCk7CisJCQlmaWxlID0gbmV3IEZpbGUob3RoZXJEaXIsICJjb25mLmNvbmYiKTsKKwkJCWZpbGUuY3JlYXRlTmV3RmlsZSgpOworCQl9CisJCWNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisJCQlmYWlsKCJGYWlsZWQgaW4gc2V0dXAgb2YgZm9sZGVyOiAiICsgZSk7CisJCX0KKwkJYXNzZXJ0VHJ1ZSgiUHJlY29uZGl0aW9uIGZhaWx1cmU6IGluZGV4IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdCIsIGx1Y2VuZURpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUoIlByZWNvbmRpdGlvbiBmYWlsdXJlOiBvdGhlciBpbmRleCBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QiLCBvdGhlckRpci5leGlzdHMoKSk7CisKKwkJTHVjZW5lSW5kZXhTdG9yZSBsaSA9IG5ldyBMdWNlbmVJbmRleFN0b3JlKGx1Y2VuZUZvbGRlciwgdmVyc2lvbik7CisJCWxpLmRlbGV0ZSgpOworCisJCWFzc2VydEZhbHNlKGx1Y2VuZURpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUobHVjZW5lRm9sZGVyLmV4aXN0cygpKTsKKwkJYXNzZXJ0VHJ1ZShvdGhlckRpci5leGlzdHMoKSk7CisJCWFzc2VydFRydWUoZGJGaWxlLmV4aXN0cygpKTsKKwl9CisKKworCisKKwlAVGVzdAorCXB1YmxpYyB2b2lkIHRlc3RHZXRQYXRoKCkgdGhyb3dzIElPRXhjZXB0aW9uCisJeworCQlpbnQgdmVyc2lvbiA9IDI7CisJCUZpbGUgbHVjZW5lRm9sZGVyID0gYmFzZUZvbGRlci5uZXdGb2xkZXIoInRpY2tldHMiLCAibHVjZW5lIik7CisJCUx1Y2VuZUluZGV4U3RvcmUgbGkgPSBuZXcgTHVjZW5lSW5kZXhTdG9yZShsdWNlbmVGb2xkZXIsIHZlcnNpb24pOworCQlQYXRoIGRpciA9IGxpLmdldFBhdGgoKTsKKwkJRmlsZSBsdWNlbmVEaXIgPSBuZXcgRmlsZShsdWNlbmVGb2xkZXIsIGdldEluZGV4RGlyKHZlcnNpb24pKTsKKwkJYXNzZXJ0RXF1YWxzKGx1Y2VuZURpci50b1BhdGgoKSwgZGlyKTsKKwl9CisKKworCisJQFRlc3QKKwlwdWJsaWMgdm9pZCB0ZXN0SGFzSW5kZXgoKSB0aHJvd3MgSU9FeGNlcHRpb24KKwl7CisJCWludCB2ZXJzaW9uID0gMDsKKwkJRmlsZSBsdWNlbmVGb2xkZXIgPSBuZXcgRmlsZShiYXNlRm9sZGVyLmdldFJvb3QoKSwgInRpY2t0b2NrL2x1Y2VuZSIpOworCisJCUx1Y2VuZUluZGV4U3RvcmUgbGkgPSBuZXcgTHVjZW5lSW5kZXhTdG9yZShsdWNlbmVGb2xkZXIsIHZlcnNpb24pOworCQlhc3NlcnRGYWxzZShsaS5oYXNJbmRleCgpKTsKKworCQliYXNlRm9sZGVyLm5ld0ZvbGRlcigidGlja3RvY2siKTsKKwkJbGkgPSBuZXcgTHVjZW5lSW5kZXhTdG9yZShsdWNlbmVGb2xkZXIsIHZlcnNpb24pOworCQlhc3NlcnRGYWxzZShsaS5oYXNJbmRleCgpKTsKKworCQliYXNlRm9sZGVyLm5ld0ZvbGRlcigidGlja3RvY2siLCAibHVjZW5lIik7CisJCWxpID0gbmV3IEx1Y2VuZUluZGV4U3RvcmUobHVjZW5lRm9sZGVyLCB2ZXJzaW9uKTsKKwkJYXNzZXJ0RmFsc2UobGkuaGFzSW5kZXgoKSk7CisKKwkJRmlsZSBsdWNlbmVEaXIgPSBiYXNlRm9sZGVyLm5ld0ZvbGRlcigidGlja3RvY2siLCAibHVjZW5lIiwgZ2V0SW5kZXhEaXIodmVyc2lvbikpOworCQlsaSA9IG5ldyBMdWNlbmVJbmRleFN0b3JlKGx1Y2VuZUZvbGRlciwgdmVyc2lvbik7CisJCWFzc2VydEZhbHNlKGxpLmhhc0luZGV4KCkpOworCisJCW5ldyBGaWxlKGx1Y2VuZURpciwgIndyaXRlLmxvY2siKS5jcmVhdGVOZXdGaWxlKCk7CisJCWxpID0gbmV3IEx1Y2VuZUluZGV4U3RvcmUobHVjZW5lRm9sZGVyLCB2ZXJzaW9uKTsKKwkJYXNzZXJ0RmFsc2UobGkuaGFzSW5kZXgoKSk7CisKKwkJbmV3IEZpbGUobHVjZW5lRGlyLCAic2VnbWVudHNfMSIpLmNyZWF0ZU5ld0ZpbGUoKTsKKwkJbGkgPSBuZXcgTHVjZW5lSW5kZXhTdG9yZShsdWNlbmVGb2xkZXIsIHZlcnNpb24pOworCQlhc3NlcnRUcnVlKGxpLmhhc0luZGV4KCkpOworCisJfQorCit9Cg==