ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vb2NhbWwudmltIGIvcnVudGltZS9mdHBsdWdpbi9vY2FtbC52aW0KaW5kZXggYTU5MTQxMS4uZGUzZTQxYiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9vY2FtbC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9vY2FtbC52aW0KQEAgLTcsNyArNyw3IEBACiAiIFVSTDogICAgICAgICBodHRwOi8vd3d3Lm9jYW1sLmluZm8vdmltL2Z0cGx1Z2luL29jYW1sLnZpbQogIiBMYXN0IENoYW5nZTogMjAxMCBKdWwgMTAgLSBCdWdmaXgsIHRoYW5rcyB0byBQYXQgUm9uZG9uCiAiICAgICAgICAgICAgICAyMDA4IEp1bCAxNyAtIEJ1Z2ZpeCByZWxhdGVkIHRvIGZuYW1lZXNjYXBlIChWQSkKLSIgICAgICAgICAgICAgIDIwMDcgU2VwIDA5IC0gQWRkZWQgLmFubm90IHN1cHBvcnQgZm9yIG9jYW1sYnVpbGQsIHB5dGhvbiBub3QgCisiICAgICAgICAgICAgICAyMDA3IFNlcCAwOSAtIEFkZGVkIC5hbm5vdCBzdXBwb3J0IGZvciBvY2FtbGJ1aWxkLCBweXRob24gbm90CiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRlZCBhbnltb3JlIChWQSkKICIgICAgICAgICAgICAgIDIwMDYgTWF5IDAxIC0gQWRkZWQgLmFubm90IHN1cHBvcnQgZm9yIGZpbGUud2hhdGV2ZXJleHQgKFNaKQogIgkgICAgICAgICAgICAgMjAwNiBBcHIgMTEgLSBGaXhlZCBhbiBpbml0aWFsaXphdGlvbiBidWc7IGZpeGVkIEFTUyBhYmJyZXYgKE1NKQpAQCAtMzEsNyArMzEsNyBAQAogCiAiIEVycm9yIGhhbmRsaW5nIC0tIGhlbHBzIG1vdmluZyB3aGVyZSB0aGUgY29tcGlsZXIgd2FudHMgeW91IHRvIGdvCiBsZXQgczpjcG9zZXQ9JmNwb3B0aW9ucwotc2V0IGNwby09Qworc2V0IGNwbyZ2aW0KIHNldGxvY2FsIGVmbT0KICAgICAgIFwlRUZpbGVcIFwiJWZcIlxcLFwgbGluZVwgJWxcXCxcIGNoYXJhY3RlcnNcICVjLSUqXFxkOiwKICAgICAgIFwlRUZpbGVcIFwiJWZcIlxcLFwgbGluZVwgJWxcXCxcIGNoYXJhY3RlclwgJWM6JW0sCkBAIC0yMTEsNyArMjExLDcgQEAKICIgY3Vyc29yIHBvc2l0aW9uLgogIgogIiBUeXBpbmcgJzxMb2NhbExlYWRlcj50JyAoTG9jYWxMZWFkZXIgZGVmYXVsdHMgdG8gJ1wnLCBzZWUgOmggTG9jYWxMZWFkZXIpCi0iIHdpbGwgY2F1c2UgIiBPY2FtbF9wcmludF90eXBlIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2l0aCB0aGUgcmlnaHQgCisiIHdpbGwgY2F1c2UgIiBPY2FtbF9wcmludF90eXBlIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2l0aCB0aGUgcmlnaHQKICIgYXJndW1lbnQgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50IG1vZGUgKHZpc3VhbCBvciBub3QpLgogIiA+PgogIgpAQCAtMjIxLDkgKzIyMSw5IEBACiAiICAgLSBubyBuZWVkIGZvciBweXRob24gc3VwcG9ydAogIiAgICAgKyBwbHVzIDogbW9yZSBwb3J0YWJsZQogIiAgICAgKyBtaW51czogbm8gbW9yZSBsYXp5IHBhcnNpbmcsIGl0IGxvb2tzIHZlcnkgZmFzdCBob3dldmVyCi0iICAgICAKKyIKICIgICAtIG9jYW1sYnVpbGQgc3VwcG9ydCwgaWUuCi0iICAgICArIHRoZSBwbHVnaW4gZmluZHMgdGhlIF9idWlsZCBkaXJlY3RvcnkgYW5kIGxvb2tzIGZvciB0aGUgCisiICAgICArIHRoZSBwbHVnaW4gZmluZHMgdGhlIF9idWlsZCBkaXJlY3RvcnkgYW5kIGxvb2tzIGZvciB0aGUKICIgICAgICAgY29ycmVzcG9uZGluZyBmaWxlIGluc2lkZTsKICIgICAgICsgaWYgdGhlIHVzZXIgZGVjaWRlcyB0byBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIF9idWlsZCBkaXJlY3RvcnkgdGhhbmtzCiAiICAgICAgIHRvIHRoZSAnLWJ1aWxkLWRpcicgb3B0aW9uIG9mIG9jYW1sYnVpbGQsIHRoZSBwbHVnaW4gd2lsbCBtYW5hZ2UgaW4KQEAgLTIzMiw3ICsyMzIsNyBAQAogIiAgICAgKyBpZiBvY2FtbGJ1aWxkIGlzIG5vdCB1c2VkLCB0aGUgdXN1YWwgYmVoYXZpb3VyIGhvbGRzOyBpZS4gdGhlIC5hbm5vdAogIiAgICAgICBmaWxlIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIHNvdXJjZSBmaWxlOwogIiAgICAgKyBmb3IgdmltIHBsdWdpbiBwcm9ncmFtbWVyczoKLSIgICAgICAgdGhlIHZhcmlhYmxlICdiOl9idWlsZF9kaXInIGNvbnRhaW5zIHRoZSBpbmZlcnJlZCBwYXRoIHRvIHRoZSBidWlsZCAKKyIgICAgICAgdGhlIHZhcmlhYmxlICdiOl9idWlsZF9kaXInIGNvbnRhaW5zIHRoZSBpbmZlcnJlZCBwYXRoIHRvIHRoZSBidWlsZAogIiAgICAgICBkaXJlY3RvcnksIGV2ZW4gaWYgdGhpcyBvbmUgaXMgbm90IG5hbWVkICdfYnVpbGQnLgogIgogIiBCb251cyA6CkBAIC0yODcsMTAgKzI4NywxMCBAQAogICBlbmRmdW4KIAogICAgICIgQWZ0ZXIgY2FsbDoKLSAgICAiIC0gYjphbm5vdF9maWxlX3BhdGggOiAKKyAgICAiIC0gYjphbm5vdF9maWxlX3BhdGggOgogICAgICIgICAgICAgICAgICAgICAgICAgICAgIHBhdGggdG8gdGhlIC5hbm5vdCBmaWxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlCiAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgc291cmNlIGZpbGUgKGRlYWxpbmcgd2l0aCBvY2FtbGJ1aWxkIHN0dWZmKQotICAgICIgLSBiOl9idWlsZF9wYXRoOiAKKyAgICAiIC0gYjpfYnVpbGRfcGF0aDoKICAgICAiICAgICAgICAgICAgICAgICAgICAgICBwYXRoIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkgZXZlbiBpZiB0aGlzIG9uZSBpcwogICAgICIgICAgICAgICAgICAgICAgICAgICAgIG5vdCBuYW1lZCAnX2J1aWxkJwogICBmdW5jdGlvbiEgczpMb2NhdGVfYW5ub3RhdGlvbigpCkBAIC0zMjAsNyArMzIwLDcgQEAKICAgICAgICAgICAgIGxldCBiOmFubm90X2ZpbGVfcGF0aCA9IGdldGN3ZCgpLicvJy5iOmFubm90X2ZpbGVfcGF0aAogICAgICAgICAgIGVuZGlmCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAiIDNyZCBjYXNlIDogdGhlIF9idWlsZCBkaXJlY3RvcnkgaXMgaW4gYSBkaXJlY3RvcnkgaGlnaGVyIGluIHRoZSBmaWxlIGhpZXJhcmNoeSAKKyAgICAgICAgICAiIDNyZCBjYXNlIDogdGhlIF9idWlsZCBkaXJlY3RvcnkgaXMgaW4gYSBkaXJlY3RvcnkgaGlnaGVyIGluIHRoZSBmaWxlIGhpZXJhcmNoeQogICAgICAgICAgICIgICAgICAgICAgICAoaXQgY2FuJ3QgYmUgZGVlcGVyIGJ5IG9jYW1sYnVpbGQgcmVxdWlyZW1lbnRzKQogICAgICAgICAgICIgICAgICAuLgogICAgICAgICAgICIgICAgIC8gIFwKQEAgLTM3Miw3ICszNzIsNyBAQAogICBsZXQgYjphbm5vdGF0aW9uX2ZpbGVfbG9jYXRlZCA9IDAKIAogIiAyLiBGaW5kaW5nIHRoZSB0eXBlIGluZm9ybWF0aW9uIGluIHRoZSBhbm5vdGF0aW9uIGZpbGUKLSAgCisKICAgIiBhLiBUaGUgYW5ub3RhdGlvbiBmaWxlIGlzIG9wZW5lZCBpbiB2aW0gYXMgYSBidWZmZXIgdGhhdAogICAiIHNob3VsZCBiZSAoYWxtb3N0KSBpbnZpc2libGUgdG8gdGhlIHVzZXIuCiAKQEAgLTQwMSw3ICs0MDEsNyBAQAogCiAgICAgICAiIEFmdGVyIGNhbGw6CiAgICAgICAiICAgVGhlIGFubm90IGZpbGUgaXMgbG9hZGVkIGFuZCBhc3NpZ25lZCB0byBhIGJ1ZmZlci4KLSAgICAgICIgICBUaGlzIGFsc28gaGFuZGxlcyB0aGUgbW9kaWZpY2F0aW9uIGRhdGUgb2YgdGhlIC5hbm5vdCBmaWxlLCBlZy4gYWZ0ZXIgYSAKKyAgICAgICIgICBUaGlzIGFsc28gaGFuZGxlcyB0aGUgbW9kaWZpY2F0aW9uIGRhdGUgb2YgdGhlIC5hbm5vdCBmaWxlLCBlZy4gYWZ0ZXIgYQogICAgICAgIiAgIGNvbXBpbGF0aW9uLgogICAgIGZ1bmN0aW9uISBzOkxvYWRfYW5ub3RhdGlvbigpCiAgICAgICBpZiBidWZsb2FkZWQoYjphbm5vdF9maWxlX3BhdGgpICYmIGI6YW5ub3RfZmlsZV9sYXN0X21vZCA8IGdldGZ0aW1lKGI6YW5ub3RfZmlsZV9wYXRoKQpAQCAtNDE5LDkgKzQxOSw5IEBACiAgICAgICAgIGxldCBiOmFubm90X2ZpbGVfbGFzdF9tb2QgPSBnZXRmdGltZShiOmFubm90X2ZpbGVfcGF0aCkKICAgICAgIGVuZGlmCiAgICAgZW5kZnVuCi0gIAorCiAgICJiLiAnc2VhcmNoJyBhbmQgJ21hdGNoJyB3b3JrIHRvIGZpbmQgdGhlIHR5cGUgaW5mb3JtYXRpb24KLSAgIAorCiAgICAgICAiSW46ICAtIGxpbjEsY29sMTogcG9zdGlvbiBvZiBleHByZXNzaW9uIGZpcnN0IGNoYXIKICAgICAgICIgICAgIC0gbGluMixjb2wyOiBwb3N0aW9uIG9mIGV4cHJlc3Npb24gbGFzdCBjaGFyCiAgICAgICAiT3V0OiAtIHRoZSBwYXR0ZXJuIHRvIGJlIGxvb2tlZCBmb3IgdG8gZmluZCB0aGUgYmxvY2sKQEAgLTQ2Miw3ICs0NjIsNyBAQAogICAgICAgbGV0IGVuZCA9IGxpbmUoIi4iKSAtIDEKICAgICAgIHJldHVybiBqb2luKGdldGxpbmUoYmVnaW4sZW5kKSwiXG4iKQogICAgIGVuZGZ1bgotICAgICAgICAKKwogICAgICAgIkluOiAgdGhlIHBhdHRlcm4gdG8gbG9vayBmb3IgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGJsb2NrCiAgICAgICAiT3V0OiB0aGUgdHlwZSBpbmZvcm1hdGlvbiAoY2FsbHMgczpNYXRjaF9kYXRhKQogICAgICAgIiBTaG91bGQgYmUgY2FsbGVkIGluIHRoZSBhbm5vdGF0aW9uIGJ1ZmZlcgpAQCAtNDc5LDEwICs0NzksMTAgQEAKICAgICAgIGVuZHRyeQogICAgICAgcmV0dXJuIGFubm90YXRpb24KICAgICBlbmRmdW4KLSAgCisKICAgImMuIGxpbmsgdGhpcyBzdHVmZiB3aXRoIHdoYXQgdGhlIHVzZXIgd2FudHMKICAgIiBpZS4gZ2V0IHRoZSBleHByZXNzaW9uIHNlbGVjdGVkL3VuZGVyIHRoZSBjdXJzb3IKLSAgICAKKwogICAgIGxldCBzOm9jYW1sX3dvcmRfY2hhciA9ICdcd3xbwC3/XXwnJycKIAogICAgICAgIkluOiAgdGhlIGN1cnJlbnQgbW9kZSAoZWcuICJ2aXN1YWwiLCAibm9ybWFsIiwgZXRjLikKQEAgLTUzMSw3ICs1MzEsNyBAQAogICAgICAgbGV0IFtsaW4xLGxpbjIsY29sMSxjb2wyXSA9IHM6TWF0Y2hfYm9yZGVycyhhOm1vZGUpCiAgICAgICByZXR1cm4gczpFeHRyYWN0X3R5cGVfZGF0YShzOkJsb2NrX3BhdHRlcm4obGluMSxsaW4yLGNvbDEsY29sMikpCiAgICAgZW5kZnVuCi0gIAorCiAgICJkLiBtYWluCiAgICAgICAiSW46ICAgICAgICAgdGhlIGN1cnJlbnQgbW9kZSAoZWcuICJ2aXN1YWwiLCAibm9ybWFsIiwgZXRjLikKICAgICAgICJBZnRlciBjYWxsOiB0aGUgdHlwZSBpbmZvcm1hdGlvbiBpcyBkaXNwbGF5ZWQK