ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vb2NhbWwudmltIGIvcnVudGltZS9mdHBsdWdpbi9vY2FtbC52aW0KaW5kZXggN2FjZjQ5My4uYTU5MTQxMSAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9vY2FtbC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9vY2FtbC52aW0KQEAgLTUsNyArNSw4IEBACiAiICAgICAgICAgICAgICBTdGVmYW5vIFphY2NoaXJvbGkgIDx6YWNrQGJvbm9uaWEuaXQ+CiAiICAgICAgICAgICAgICBWaW5jZW50IEFyYXZhbnRpbm9zIDxmaXJzdG5hbWUubmFtZUBpbWFnLmZyPgogIiBVUkw6ICAgICAgICAgaHR0cDovL3d3dy5vY2FtbC5pbmZvL3ZpbS9mdHBsdWdpbi9vY2FtbC52aW0KLSIgTGFzdCBDaGFuZ2U6IDIwMDggSnVsIDE3IC0gQnVnZml4IHJlbGF0ZWQgdG8gZm5hbWVlc2NhcGUgKFZBKQorIiBMYXN0IENoYW5nZTogMjAxMCBKdWwgMTAgLSBCdWdmaXgsIHRoYW5rcyB0byBQYXQgUm9uZG9uCisiICAgICAgICAgICAgICAyMDA4IEp1bCAxNyAtIEJ1Z2ZpeCByZWxhdGVkIHRvIGZuYW1lZXNjYXBlIChWQSkKICIgICAgICAgICAgICAgIDIwMDcgU2VwIDA5IC0gQWRkZWQgLmFubm90IHN1cHBvcnQgZm9yIG9jYW1sYnVpbGQsIHB5dGhvbiBub3QgCiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRlZCBhbnltb3JlIChWQSkKICIgICAgICAgICAgICAgIDIwMDYgTWF5IDAxIC0gQWRkZWQgLmFubm90IHN1cHBvcnQgZm9yIGZpbGUud2hhdGV2ZXJleHQgKFNaKQpAQCAtMjkyLDEwICsyOTMsNiBAQAogICAgICIgLSBiOl9idWlsZF9wYXRoOiAKICAgICAiICAgICAgICAgICAgICAgICAgICAgICBwYXRoIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkgZXZlbiBpZiB0aGlzIG9uZSBpcwogICAgICIgICAgICAgICAgICAgICAgICAgICAgIG5vdCBuYW1lZCAnX2J1aWxkJwotICAgICIgLSBiOnNvdXJjZV9maWxlX3JlbGF0aXZlX3BhdGggOgotICAgICIgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlIHBhdGggb2YgdGhlIHNvdXJjZSBmaWxlICppbiogdGhlIGJ1aWxkCi0gICAgIiAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5IDsgdGhpcyBpcyBob3cgaXQgaXMgcmVmZmVyZWQgdG8gaW4gdGhlCi0gICAgIiAgICAgICAgICAgICAgICAgICAgICAgLmFubm90IGZpbGUKICAgZnVuY3Rpb24hIHM6TG9jYXRlX2Fubm90YXRpb24oKQogICAgIGlmICFiOmFubm90YXRpb25fZmlsZV9sb2NhdGVkCiAKQEAgLTMwOCw3ICszMDUsNiBAQAogICAgICAgaWYgYjphbm5vdF9maWxlX3BhdGggIT0gJycKICAgICAgICAgbGV0IGI6YW5ub3RfZmlsZV9wYXRoID0gZ2V0Y3dkKCkuJy8nLmI6YW5ub3RfZmlsZV9wYXRoCiAgICAgICAgIGxldCBiOl9idWlsZF9wYXRoID0gJycKLSAgICAgICAgbGV0IGI6c291cmNlX2ZpbGVfcmVsYXRpdmVfcGF0aCA9IHM6Rm5hbWVlc2NhcGUoZXhwYW5kKCclJykpCiAgICAgICBlbHNlCiAgICAgICAgICIgMm5kIGNhc2UgOiB0aGUgYnVmZmVyIGFuZCB0aGUgX2J1aWxkIGRpcmVjdG9yeSBhcmUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CiAgICAgICAgICIgICAgICAuLgpAQCAtMzIzLDcgKzMxOSw2IEBACiAgICAgICAgICAgaWYgYjphbm5vdF9maWxlX3BhdGggIT0gJycKICAgICAgICAgICAgIGxldCBiOmFubm90X2ZpbGVfcGF0aCA9IGdldGN3ZCgpLicvJy5iOmFubm90X2ZpbGVfcGF0aAogICAgICAgICAgIGVuZGlmCi0gICAgICAgICAgbGV0IGI6c291cmNlX2ZpbGVfcmVsYXRpdmVfcGF0aCA9IHM6Rm5hbWVlc2NhcGUoZXhwYW5kKCclJykpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAiIDNyZCBjYXNlIDogdGhlIF9idWlsZCBkaXJlY3RvcnkgaXMgaW4gYSBkaXJlY3RvcnkgaGlnaGVyIGluIHRoZSBmaWxlIGhpZXJhcmNoeSAKICAgICAgICAgICAiICAgICAgICAgICAgKGl0IGNhbid0IGJlIGRlZXBlciBieSBvY2FtbGJ1aWxkIHJlcXVpcmVtZW50cykKQEAgLTM0MCw3ICszMzUsNiBAQAogICAgICAgICAgICAgbGV0IHByb2plY3RfcGF0aCAgICAgICAgICAgICAgICA9IHN1YnN0aXR1dGUoYjpfYnVpbGRfcGF0aCwnL19idWlsZCQnLCcnLCcnKQogICAgICAgICAgICAgbGV0IHBhdGhfcmVsYXRpdmVfdG9fcHJvamVjdCAgICA9IHM6Rm5hbWVlc2NhcGUoc3Vic3RpdHV0ZShleHBhbmQoJyU6cDpoJykscHJvamVjdF9wYXRoLicvJywnJywnJykpCiAgICAgICAgICAgICBsZXQgYjphbm5vdF9maWxlX3BhdGggICAgICAgICAgID0gZmluZGZpbGUoYW5ub3RfZmlsZV9uYW1lLHByb2plY3RfcGF0aC4nL19idWlsZC8nLnBhdGhfcmVsYXRpdmVfdG9fcHJvamVjdCkKLSAgICAgICAgICAgIGxldCBiOnNvdXJjZV9maWxlX3JlbGF0aXZlX3BhdGggPSBzOkZuYW1lZXNjYXBlKHN1YnN0aXR1dGUoZXhwYW5kKCclOnAnKSxwcm9qZWN0X3BhdGguJy8nLCcnLCcnKSkKICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICBsZXQgYjphbm5vdF9maWxlX3BhdGggPSBmaW5kZmlsZShhbm5vdF9maWxlX25hbWUsJyoqJykKICAgICAgICAgICAgICI0dGggY2FzZSA6IHdoYXQgaWYgdGhlIHVzZXIgZGVjaWRlZCB0byBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIF9idWlsZCBkaXJlY3RvcnkgPwpAQCAtMzUyLDcgKzM0Niw2IEBACiAgICAgICAgICAgICAgICAgbGV0IGI6YW5ub3RfZmlsZV9wYXRoID0gZ2V0Y3dkKCkuJy8nLmI6YW5ub3RfZmlsZV9wYXRoCiAgICAgICAgICAgICAgICAgbGV0IGI6X2J1aWxkX3BhdGggICAgID0gZ2V0Y3dkKCkuJy8nLmI6X2J1aWxkX3BhdGgKICAgICAgICAgICAgICAgZW5kaWYKLSAgICAgICAgICAgICAgbGV0IGI6c291cmNlX2ZpbGVfcmVsYXRpdmVfcGF0aCA9IHM6Rm5hbWVlc2NhcGUoZXhwYW5kKCclJykpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICIgNGIuIGFuYXJjaHkgOiB0aGUgcmVuYW1lZCBfYnVpbGQgZGlyZWN0b3J5IG1heSBiZSBoaWdoZXIgaW4gdGhlIGhpZXJhcmNoeQogICAgICAgICAgICAgICAiIHRoaXMgd2lsbCB3b3JrIGlmIHRoZSBmaWxlIGZvciB3aGljaCB3ZSBhcmUgbG9va2luZyBhbm5vdGF0aW9ucyBoYXMgYSB1bmlxdWUgbmFtZSBpbiB0aGUgd2hvbGUgcHJvamVjdApAQCAtMzYwLDcgKzM1Myw2IEBACiAgICAgICAgICAgICAgIGxldCBiOmFubm90X2ZpbGVfcGF0aCA9IGZpbmRmaWxlKGFubm90X2ZpbGVfbmFtZSwnKio7JykKICAgICAgICAgICAgICAgbGV0IHByb2plY3RfcGF0aCAgICAgID0gczpGaW5kX2NvbW1vbl9wYXRoKGI6YW5ub3RfZmlsZV9wYXRoLGV4cGFuZCgnJTpwOmgnKSkKICAgICAgICAgICAgICAgbGV0IGI6X2J1aWxkX3BhdGggICAgICAgPSBtYXRjaHN0cihiOmFubm90X2ZpbGVfcGF0aCxwcm9qZWN0X3BhdGguJy9bXi9dKicpCi0gICAgICAgICAgICAgIGxldCBiOnNvdXJjZV9maWxlX3JlbGF0aXZlX3BhdGggPSBzdWJzdGl0dXRlKGV4cGFuZCgnJTpwJykscHJvamVjdF9wYXRoLicvJywnJywnJykKICAgICAgICAgICAgIGVuZGlmCiAgICAgICAgICAgZW5kaWYKICAgICAgICAgZW5kaWYKQEAgLTQzOCwxMSArNDMwLDEyIEBACiAgICAgICBsZXQgc3RhcnRfbnVtMSA9IGE6bGluMQogICAgICAgbGV0IHN0YXJ0X251bTIgPSBsaW5lMmJ5dGUoYTpsaW4xKSAtIDEKICAgICAgIGxldCBzdGFydF9udW0zID0gc3RhcnRfbnVtMiArIGE6Y29sMQotICAgICAgbGV0IHN0YXJ0X3BvcyAgPSAnIicuYjpzb3VyY2VfZmlsZV9yZWxhdGl2ZV9wYXRoLiciICcuc3RhcnRfbnVtMS4nICcuc3RhcnRfbnVtMi4nICcuc3RhcnRfbnVtMworICAgICAgbGV0IHBhdGggICAgICAgPSAnIlwoXFwiXHxbXiJdXClcKyInCisgICAgICBsZXQgc3RhcnRfcG9zICA9IHBhdGguJyAnLnN0YXJ0X251bTEuJyAnLnN0YXJ0X251bTIuJyAnLnN0YXJ0X251bTMKICAgICAgIGxldCBlbmRfbnVtMSAgID0gYTpsaW4yCiAgICAgICBsZXQgZW5kX251bTIgICA9IGxpbmUyYnl0ZShhOmxpbjIpIC0gMQogICAgICAgbGV0IGVuZF9udW0zICAgPSBlbmRfbnVtMiArIGE6Y29sMgotICAgICAgbGV0IGVuZF9wb3MgICAgPSAnIicuYjpzb3VyY2VfZmlsZV9yZWxhdGl2ZV9wYXRoLiciICcuZW5kX251bTEuJyAnLmVuZF9udW0yLicgJy5lbmRfbnVtMworICAgICAgbGV0IGVuZF9wb3MgICAgPSBwYXRoLicgJy5lbmRfbnVtMS4nICcuZW5kX251bTIuJyAnLmVuZF9udW0zCiAgICAgICByZXR1cm4gJ14nLnN0YXJ0X3Bvcy4nICcuZW5kX3Bvcy4iJCIKICAgICAgICIgcnE6IHRoZSAnXicgaGVyZSBpcyBub3QgdG90YWxseSBjb3JyZWN0IHJlZ2FyZGluZyB0aGUgYW5ub3QgZmlsZSAiZ3JhbW1hciIKICAgICAgICIgYnV0IGN1cnJlbnRseSB0aGUgYW5ub3RhdGlvbiBmaWxlIHJlc3BlY3RzIHRoaXMsIGFuZCBpdCdzIGEgbGl0dGxlIGJpdCBmYXN0ZXIgd2l0aCB0aGUgJ14nOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9jaGVja19sb2NhbGVzLnZpbSBiL3J1bnRpbWUvc3BlbGwvY2hlY2tfbG9jYWxlcy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU3YmU5MwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvY2hlY2tfbG9jYWxlcy52aW0KQEAgLTAsMCArMSwyMSBAQAorIiBTY3JpcHQgdG8gY2hlY2sgaWYgYWxsIHRoZSBsb2NhbGVzIHVzZWQgaW4gc3BlbGwgZmlsZXMgYXJlIGF2YWlsYWJsZS4KKworZ3JlcCAvc3lzIGVudiBMQU5HLyAqL21haW4uYWFwCitsZXQgbm90X3N1cHBvcnRlZCA9IFtdCitmb3IgaXRlbSBpbiBnZXRxZmxpc3QoKQorICBsZXQgbGFuZyA9IHN1YnN0aXR1dGUoaXRlbS50ZXh0LCAnLipMQU5HPVwoXFNcK1wpLionLCAnXDEnLCAnJykKKyAgdHJ5CisgICAgZXhlICdsYW5nICcgLiBsYW5nCisgIGNhdGNoIC9FMTk3LworICAgIGNhbGwgYWRkKG5vdF9zdXBwb3J0ZWQsIGxhbmcpCisgIGVuZHRyeQorZW5kZm9yCisKK2lmIGxlbihub3Rfc3VwcG9ydGVkKSA+IDAKKyAgZWNobyAiVW5zdXBwb3J0ZWQgbGFuZ3VhZ2VzOiIKKyAgZm9yIGwgaW4gbm90X3N1cHBvcnRlZAorICAgIGVjaG8gbAorICBlbmRmb3IKK2Vsc2UKKyAgZWNobyAiRXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIE9LIgorZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZGUvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2RlL21haW4uYWFwCmluZGV4IDAxNWI5NTcuLjc4ZGZhYWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZGUvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9kZS9tYWluLmFhcApAQCAtMzMsNyArMzMsNyBAQAogYWxsOiAkU1BFTExESVIvZGUubGF0aW4xLnNwbCAkU1BFTExESVIvZGUudXRmLTguc3BsIC4uL1JFQURNRV9kZS50eHQKIAogJFNQRUxMRElSL2RlLmxhdGluMS5zcGwgOiAkRklMRVMKLSAgICAgICAgOnN5cyBlbnYgTEFORz1kZV9ERS5JU084ODU5LTEKKyAgICAgICAgOnN5cyBlbnYgTEFORz1kZV9ERS5JU08tODg1OS0xCiAJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2RlICRERV9SRUdJT05TIiAtYyBxCiAKICRTUEVMTERJUi9kZS51dGYtOC5zcGwgOiAkRklMRVMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwCmluZGV4IGIyMDdiNmUuLmEwY2YzNzQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9mci9tYWluLmFhcApAQCAtMjUsNyArMjUsNyBAQAogJFNQRUxMRElSL2ZyLmxhdGluMS5zcGwgOiAkRklMRVMKICAgICAgICAgOmNvcHkge2ZvcmNlfSBmcl9GUl9sYXRpbjEuYWZmIGZyX0ZSLmFmZgogICAgICAgICA6Y29weSB7Zm9yY2V9IGZyX0ZSX2xhdGluMS5kaWMgZnJfRlIuZGljCi0gICAgICAgIDpzeXMgZW52IExBTkc9ZnJfRlIuSVNPODg1OS0xNQorICAgICAgICA6c3lzIGVudiBMQU5HPWZyX0ZSLklTTy04ODU5LTE1QGV1cm8KIAkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZnIgZnJfRlIiIC1jIHEKIAogJFNQRUxMRElSL2ZyLnV0Zi04LnNwbCA6ICRGSUxFUwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nZC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZ2QvbWFpbi5hYXAKaW5kZXggNjU4Y2JmYy4uNTU0NDNhZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9nZC9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2dkL21haW4uYWFwCkBAIC0xMiw3ICsxMiw3IEBACiBhbGw6ICRTUEVMTERJUi9nZC5sYXRpbjEuc3BsICRTUEVMTERJUi9nZC51dGYtOC5zcGwgLi4vUkVBRE1FX2dkLnR4dAogCiAkU1BFTExESVIvZ2QubGF0aW4xLnNwbCA6ICRGSUxFUwotICAgICAgICA6c3lzIGVudiBMQU5HPWdkX0dCLklTTzg4NTktMQorICAgICAgICA6c3lzIGVudiBMQU5HPWdkX0dCLklTTzg4NTktMTUKIAkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZ2QgZ2RfR0IiIC1jIHEKIAogJFNQRUxMRElSL2dkLnV0Zi04LnNwbCA6ICRGSUxFUwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9sYS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbGEvbWFpbi5hYXAKaW5kZXggMGNmMWQ4YS4uZDk4MTU4NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9sYS9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2xhL21haW4uYWFwCkBAIC0xMSw4ICsxMSwxMSBAQAogCiBhbGw6ICRTUEVMTERJUi9sYS5sYXRpbjEuc3BsICRTUEVMTERJUi9sYS51dGYtOC5zcGwgLi4vUkVBRE1FX2xhLnR4dAogCisjIE5PVEU6IHRoZSBsYV9MTi5JU08tODg1OS0xIGxvY2FsZSBpcyBub3QgYXZhaWxhYmxlIG9uIFVidW50dS4KKyMgVXNlIHRoZSBFbmdsaXNoIG9uZSBpbnN0ZWFkLgorCiAkU1BFTExESVIvbGEubGF0aW4xLnNwbCA6ICRGSUxFUwotICAgICAgICA6c3lzIGVudiBMQU5HPWxhX0xOLklTTzg4NTktMQorICAgICAgICA6c3lzIGVudiBMQU5HPWVuX1VTLklTTy04ODU5LTEKIAkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbGEgbGEiIC1jIHEKIAogJFNQRUxMRElSL2xhLnV0Zi04LnNwbCA6ICRGSUxFUwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9uYi9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbmIvbWFpbi5hYXAKaW5kZXggZjc4MDVlYS4uNGQ0NDVjMCAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9uYi9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL25iL21haW4uYWFwCkBAIC0xMiwxMSArMTIsMTEgQEAKIGFsbDogJFNQRUxMRElSL25iLmxhdGluMS5zcGwgJFNQRUxMRElSL25iLnV0Zi04LnNwbCAuLi9SRUFETUVfbmIudHh0CiAKICRTUEVMTERJUi9uYi5sYXRpbjEuc3BsIDogJEZJTEVTCi0gICAgICAgIDpzeXMgZW52IExBTkc9bm9fTk8uSVNPODg1OS0xCisgICAgICAgIDpzeXMgZW52IExBTkc9bmJfTk8uSVNPLTg4NTktMQogCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9uYiBuYl9OTyIgLWMgcQogCiAkU1BFTExESVIvbmIudXRmLTguc3BsIDogJEZJTEVTCi0gICAgICAgIDpzeXMgZW52IExBTkc9bm9fTk8uVVRGLTgKKyAgICAgICAgOnN5cyBlbnYgTEFORz1uYl9OTy5VVEYtOAogCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9uYiBuYl9OTyIgLWMgcQogCiAuLi9SRUFETUVfbmIudHh0IDogUkVBRE1FX25iX05PLnR4dApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9ubi9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbm4vbWFpbi5hYXAKaW5kZXggZGE3MWIyMC4uZWZiMDgxMiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9ubi9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL25uL21haW4uYWFwCkBAIC0xMiwxMSArMTIsMTEgQEAKIGFsbDogJFNQRUxMRElSL25uLmxhdGluMS5zcGwgJFNQRUxMRElSL25uLnV0Zi04LnNwbCAuLi9SRUFETUVfbm4udHh0CiAKICRTUEVMTERJUi9ubi5sYXRpbjEuc3BsIDogJEZJTEVTCi0gICAgICAgIDpzeXMgZW52IExBTkc9bm9fTk8uSVNPODg1OS0xCisgICAgICAgIDpzeXMgZW52IExBTkc9bmJfTk8uSVNPLTg4NTktMQogCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ubiBubl9OTyIgLWMgcQogCiAkU1BFTExESVIvbm4udXRmLTguc3BsIDogJEZJTEVTCi0gICAgICAgIDpzeXMgZW52IExBTkc9bm9fTk8uVVRGLTgKKyAgICAgICAgOnN5cyBlbnYgTEFORz1uYl9OTy5VVEYtOAogCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ubiBubl9OTyIgLWMgcQogCiAuLi9SRUFETUVfbm4udHh0IDogUkVBRE1FX25uX05PLnR4dApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9wdC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvcHQvbWFpbi5hYXAKaW5kZXggM2QwOGZhZi4uNzUxZmI5NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9wdC9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL3B0L21haW4uYWFwCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICAgIC4uL1JFQURNRV9wdC50eHQKIAogJFNQRUxMRElSL3B0LmxhdGluMS5zcGwgOiAkRklMRVMKLSAgICAgICAgOnN5cyBlbnYgTEFORz1wdF9QVC5JU084ODU5LTEgTENfQUxMPXB0X1BULklTTzg4NTktMQorICAgICAgICA6c3lzIGVudiBMQU5HPXB0X1BULklTTy04ODU5LTEgTENfQUxMPXB0X1BULklTTy04ODU5LTEKIAkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcHQgcHRfUFQgcHRfQlIiIC1jIHEKIAogJFNQRUxMRElSL3B0LnV0Zi04LnNwbCA6ICRGSUxFUwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdi9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvc3YvbWFpbi5hYXAKaW5kZXggNTYzNDcxMS4uZGU4Njk2ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9zdi9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL3N2L21haW4uYWFwCkBAIC0xLDYgKzEsNiBAQAogIyBBYXAgcmVjaXBlIGZvciBTd2VkaXNoIFZpbSBzcGVsbCBmaWxlcy4KICMKLSMgTWFpbnRhaW5lcjogU3RlZmFuIEthcmxzc29uIDxzdGVmYW4uNzRAY29taGVtLnNlPgorIyBNYWludGFpbmVyOiBNYXR0aWFzIFdpbnRoZXIgPHZpbUBtYXR0aWFzLndpbnRoZXJuZXQuc2U+CiAKICMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgogQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CkBAIC0xNCwzMCArMTQsMzMgQEAKIGFsbDogJFNQRUxMRElSL3N2LmxhdGluMS5zcGwgJFNQRUxMRElSL3N2LnV0Zi04LnNwbCAuLi9SRUFETUVfc3YudHh0CiAKICRTUEVMTERJUi9zdi5sYXRpbjEuc3BsIDogJEZJTEVTCi0gICAgICAgIDpzeXMgZW52IExBTkc9c3ZfU0UuSVNPODg1OS0xCisgICAgICAgIDpzeXMgZW52IExBTkc9c3ZfU0UuSVNPLTg4NTktMQogCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9zdiBzdl9TRSIgLWMgcQogCiAkU1BFTExESVIvc3YudXRmLTguc3BsIDogJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9c3ZfU0UuVVRGLTgKIAkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc3Ygc3ZfU0UiIC1jIHEKIAotLi4vUkVBRE1FX3N2LnR4dCA6IFJFQURNRV9zdl9TRS50eHQKKy4uL1JFQURNRV9zdi50eHQgOiBMSUNFTlNFX3N2X1NFLnR4dAogICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKIAogIwogIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KICMKLU9PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKLTphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHN2X1NFLnppcAorT09ESVIgPSBodHRwOi8vZXh0ZW5zaW9ucy5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9lLWZpbGVzLzEwODAvNgorOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gb29vX3N3ZWRpc2hfZGljdF8xLjQyLm94dAogCiAjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCiAjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0Lgogc3ZfU0UuYWZmIHN2X1NFLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCi0gICAgICAgIDpmZXRjaCBzdl9TRS56aXAKLSAgICAgICAgOnN5cyAkVU5aSVAgc3ZfU0UuemlwCi0gICAgICAgIDpkZWxldGUgc3ZfU0UuemlwCi0gICAgICAgIDpkZWxldGUgaHlwaF9zdl9TRS5kaWMKKyAgICAgICAgOmZldGNoIG9vb19zd2VkaXNoX2RpY3RfMS40Mi5veHQKKyAgICAgICAgOnN5cyAkVU5aSVAgb29vX3N3ZWRpc2hfZGljdF8xLjQyLm94dAorICAgICAgICA6ZGVsZXRlIG9vb19zd2VkaXNoX2RpY3RfMS40Mi5veHQKKyAgICAgICAgOmRlbGV0ZSB7cn0gTUVUQS1JTkYKKyAgICAgICAgOmNvcHkgZGljdGlvbmFyaWVzL3N2X1NFLmFmZiBzdl9TRS5hZmYKKyAgICAgICAgOmNvcHkgZGljdGlvbmFyaWVzL3N2X1NFLmRpYyBzdl9TRS5kaWMKKyAgICAgICAgOmRlbGV0ZSB7cn0gZGljdGlvbmFyaWVzIGRpY3Rpb25hcmllcy54Y3UgZGVzY3JpcHRpb24ueG1sCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3N2X1NFLm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBzdl9TRS5hZmYgc3ZfU0Uub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc3ZfU0Uub3JpZy5kaWMnKToKQEAgLTYwLDEyICs2MywxMiBAQAogCiBjaGVjazoKICAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCi0gICAgICAgIDpmZXRjaCBzdl9TRS56aXAKKyAgICAgICAgOmZldGNoIG9vb19zd2VkaXNoX2RpY3RfMS40Mi5veHQKICAgICAgICAgOm1rZGlyIHRtcAogICAgICAgICA6Y2QgdG1wCiAgICAgICAgIEB0cnk6CiAgICAgICAgICAgICBAaW1wb3J0IHN0YXQKLSAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3N2X1NFLnppcAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vb29vX3N3ZWRpc2hfZGljdF8xLjQyLm94dAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc3ZfU0Uub3JpZy5hZmYgc3ZfU0UuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IHN2X1NFLmFmZiAuLi9zdl9TRS5uZXcuYWZmCkBAIC03NSw3ICs3OCw3IEBACiAgICAgICAgIEBmaW5hbGx5OgogICAgICAgICAgICAgOmNkIC4uCiAgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKLSAgICAgICAgICAgIDpkZWxldGUgc3ZfU0UuemlwCisgICAgICAgICAgICA6ZGVsZXRlIG9vb19zd2VkaXNoX2RpY3RfMS40Mi5veHQKIAogCiAjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmIGIvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmCmluZGV4IDczZWQxNGIuLjZjODNkNDkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvc3Yvc3ZfU0UuZGlmZgorKysgYi9ydW50aW1lL3NwZWxsL3N2L3N2X1NFLmRpZmYKQEAgLTEsOSArMSw5IEBACi0qKiogc3ZfU0Uub3JpZy5hZmYJVGh1IEZlYiAyMyAyMDowMjozMiAyMDA2Ci0tLS0gc3ZfU0UuYWZmCVRodSBGZWIgMjMgMjA6MDI6MzIgMjAwNgorKioqIHN2X1NFLm9yaWcuYWZmCTIwMTAtMDUtMjAgMjE6MzE6NTQuMDAwMDAwMDAwICswMjAwCistLS0gc3ZfU0UuYWZmCTIwMTAtMDUtMjAgMjE6Mzg6MzYuMDAwMDAwMDAwICswMjAwCiAqKioqKioqKioqKioqKioKICoqKiA2LDcgKioqKgotLS0tIDYsMjIgLS0tLQotICAKKy0tLSA2LDIxIC0tLS0KKyAgTk9TVUdHRVNUICEKICsgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/wogKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CiArIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KQEAgLTE4LDE0MiArMTgsMjcgQEAKICsgTUFQIGPnCiArIE1BUCB5//0KICsgTUFQIHPfCi0rIAotICBTRlggIEEgIFkgIDEKLSoqKioqKioqKioqKioqKgotKioqIDE1LDE3ICoqKioKICAgCi0hIFNGWCAgQyAgWSAgMTYKLSAgU0ZYICBDICAwICB0ICBbYWVpb3V55eT26V0KLS0tLSAzMCwzMiAtLS0tCi0gIAotISBTRlggIEMgIFkgIDE1Ci0gIFNGWCAgQyAgMCAgdCAgW2FlaW91eeXk9uldCiAqKioqKioqKioqKioqKioKLSoqKiAzMCwzMiAqKioqCi0gIFNGWCAgQyAgZW4gbmV0cyBlbgotLSBTRlggIEMgIDAgIG5ldCAgbmV0cyBbXmVdbgotICBTRlggIEMgIDAgIG5ldHMgIFteZV1uCi0tLS0gNDUsNDYgLS0tLQotKioqKioqKioqKioqKioqCi0qKiogNDI3ICoqKioKLS0tLSA0NDEsNTQxIC0tLS0KLSAgU0ZYICBUICBlbCAgbGEgIGVsCisqKiogNjQ5ICoqKioKKy0tLSA2NjMsNjY0IC0tLS0KKyAgU0ZYICB0ICBlbCAgbGEvV1haICBlbAogKyAKLSsgIyBzb3VuZHNsaWtlIG1hcHBpbmcgZnJvbSBBc3BlbGwKLSsgIyBzd2VkaXNoX3Bob25ldC5kYXQgLSBTd2VkaXNoIHBob25ldGljIHRyYW5zZm9ybWF0aW9uIHJ1bGVzIGZvciBhc3BlbGwKLSsgIyBDb3B5cmlnaHQgKEMpIDIwMDAgIE1hcnRpbiBOb3Ji5GNrICA8ZDk1bWJhY2tAZHRlay5jaGFsbWVycy5zZT4KLSsgIyBkaXN0cmlidXRlZCB1bmRlciBHTlUgR1BMCi0rICMgdmVyc2lvbiAwLjIKLSsgCi0rIFNBTCAmCSYKLSsgU0FMIEAJQAotKyBTQUwgQU5HKEVJWcTWKS1eCUFOSQkjIGb2cmxlZGV0IGFuLSBza2EgaW50ZSBibGkgQC1sanVkCi0rIFNBTCBBR05PNglBS05PCSMgYWdub3N0aWtlciBvc3YuCi0rIFNBTCBBRyhJRSktNglBSwkjIHZva2FsK2coaWUpIGdlciBlaiBqLWxqdWQKLSsgU0FMIEEJQQotKyBTQUwgQkItPAlfCi0rIFNBTCBCCVAKLSsgU0FMIENDTy0JSwkjIGJyb2Njb2xpLCBwaWNjb2xvCi0rIFNBTCBDQwlLUwkjIHN1Y2Nlc3NpdiwgYWNjZXNzLCBzdWNj6QotKyBTQUwgQ0gJJgkjIGNob2tsYWQgb3N2LgotKyBTQUwgQ0sJSwkjIGNrIC0+IGsgc29tIHZhbmxpZ3QKLSsgU0FMIEMoRUlZxNYpLTwJUwkjIGMgKyBtanVrIHZva2FsIC0+IHMKLSsgU0FMIEMJSwkjIGMgKyBhbm5hdCAtPiBrCi0rIFNBTCBESihVxNYpLQlJCSMgZGp1bmdlbCwgZGrkdmVsLCBhZGr2Ci0rIFNBTCBERC0JXwotKyBTQUwgRAlUCi0rIFNBTCBFRyhJRSktNglFSwkjIHZva2FsK2coaWUpIGdlciBlaiBqLWxqdWQKLSsgU0FMIEUJRQotKyBTQUwgyQlFCi0rIFNBTCBGRglGCi0rIFNBTCBGCUYKLSsgU0FMIEcoRUlZxNYpLTMJSQkjIGcrbWp1ayB2b2thbCBnZXIgai1sanVkCi0rIFNBTCBHRzYJSwotKyBTQUwgR04JQE4JIyB1Z24sIGx1Z24uLi4KLSsgU0FMIEcJSwotKyBTQUwgSChBT1XFRUlZxNYpLV4JSAkjIGggaSBi9nJqYW4gYXYgb3JkIGj2cnMKLSsgU0FMIEgoQVVPxUVJWcTWKS0JXwkjIGFubmFycyBzdHVtdCBmcmFtZvZyIHZva2FsCi0rIFNBTCBISglJCSMgaGotPmogKGhq5HJ0YSBvc3YuKQotKyBTQUwgSAlICi0rIFNBTCBJRyhJRSktNglJSwkjIHZva2FsK2coaWUpIGdlciBlaiBqLWxqdWQKLSsgU0FMIEkJSQotKyBTQUwgSglJCi0rIFNBTCBLKEVJWcTWKS1eCSYJIyBrK21qdWsgdm9rYWwgZ2VyIHNqZS1sanVkCi0rIFNBTCBLSgkmCSMga2pvbAotKyBTQUwgSwlLCi0rIFNBTCBMSlUtCUkJIyBsanVnYSwgbGp1cwotKyBTQUwgTEwtCV8KLSsgU0FMIEwJTAotKyBTQUwgTU0tCV8KLSsgU0FMIE0JTQotKyBTQUwgTkc2CUAKLSsgU0FMIE5OLQlfCi0rIFNBTCBOCU4KLSsgU0FMIE9SSUdJOAlPUktJCSMgc3BlY2lhbGZhbGwKLSsgU0FMIE9HKElFKS02CU9LCSMgdm9rYWwrZyhpZSkgZ2VyIGVqIGotbGp1ZAotKyBTQUwgTwlPCi0rIFNBTCBQUk9KRUtUCVBSTyZFS1QJIyBzcGVjaWFsZmFsbAotKyBTQUwgUFNBTFQ8CVNBTFQJIyBzcGVjaWFsZmFsbAotKyBTQUwgUFNBTE08CVNBTE0JIyBzcGVjaWFsZmFsbAotKyBTQUwgUFAtCV8KLSsgU0FMIFAJUAotKyBTQUwgUQlLCi0rIFNBTCBSR0kkNglSR0kJIyBpbmdldCBqIGkgc2x1dGV0Ci0rIFNBTCBSR0EkNglSSUEJIyBo5HIg5HIgZGV0IGTkcmVtb3QgaiAoYXJnYSxm5HJnYSkKLSsgU0FMIFJHRSQ2CVJJRQkjIGjkciBvY2tz5SAoTm9yZ2UsIPZ2ZXJnZSkKLSsgU0FMIFJHUyQJUklTCSMgcmdzIGkgc2x1dGV0Ci0rIFNBTCBSRyQJUkkJIyByZyBpIHNsdXRldAotKyBTQUwgUkQJVAkjICJibPZ0dCIgZAotKyBTQUwgUk4JTgkjICJibPZ0dCIgbgotKyBTQUwgUlQJVAkjICJibPZ0dCIgdAotKyBTQUwgUkxECVQJIyB25HJsZAotKyBTQUwgUkwJTAkjICJibPZ0dCIgbAotKyBTQUwgUlMJJgkjIHNqZS1sanVkIChmYXJzLCBn5HJzZ+VyZCkKLSsgU0FMIFJSLQlfCi0rIFNBTCBSCVIKLSsgU0FMIFNTLQlfCi0rIFNBTCBTQ0hJWjYJU0tJVFMJIyBzcGVjaWFsZmFsbAotKyBTQUwgU0NINgkmCi0rIFNBTCBTS0oJJgkjIHNram9ydGEsIHNranV0YQotKyBTQUwgU0oJJgkjIHNqZS1sanVkCi0rIFNBTCBTCVMKLSsgU0FMIFRJT045XglUSU9OCSMgdGlvbmRlCi0rIFNBTCBUSU9ONgkmT04JIyBzdGF0aW9uIG9zdi4KLSsgU0FMIFRULQlfCi0rIFNBTCBUCVQKLSsgU0FMIFVHKElFKS02CVVLCSMgdm9rYWwrZyhpZSkgZ2VyIGVqIGotbGp1ZAotKyBTQUwgVQlVCi0rIFNBTCBWCUYKLSsgU0FMIFcJRgotKyBTQUwgWDkJS1MKLSsgU0FMIFlHKElFKS02CVlLCSMgdm9rYWwrZyhpZSkgZ2VyIGVqIGotbGp1ZAotKyBTQUwgWQlJCi0rIFNBTCBaWglUUwotKyBTQUwgWglTCi0rIFNBTCDFVFRJTzkJT1RJTwkjIHNwZWNpYWxmYWxsIChlaiBzamUtbGp1ZCkKLSsgU0FMIMVSVElPTjkJT1JUSU9OCSMgc3BlY2lhbGZhbGwgKHIgaPZycykKLSsgU0FMIMVHKElFKS02CU9LCSMgdm9rYWwrZyhpZSkgZ2VyIGVqIGotbGp1ZAotKyBTQUwgxQlPCi0rIFNBTCDERyhJRSktNglFSwkjIHZva2FsK2coaWUpIGdlciBlaiBqLWxqdWQKLSsgU0FMIMQJRQotKyBTQUwg1kcoSUUpLTYJ1ksJIyB2b2thbCtnKGllKSBnZXIgZWogai1sanVkCi0rIFNBTCDWCdYKLSoqKiBzdl9TRS5vcmlnLmRpYwlUaHUgRmViIDIzIDIwOjAyOjMyIDIwMDYKLS0tLSBzdl9TRS5kaWMJVGh1IEZlYiAyMyAyMDowMjozMiAyMDA2CisqKiogc3ZfU0Uub3JpZy5kaWMJMjAxMC0wNS0yMCAyMTozMTo1NC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBzdl9TRS5kaWMJMjAxMC0wNS0yMCAyMTozMTo1NC4wMDAwMDAwMDAgKzAyMDAKICoqKioqKioqKioqKioqKgotKioqIDQzMTcsNDMxOSAqKioqCi0gIGR2YWxkZXMvUworKioqIDExNzg2LDExNzg4ICoqKioKKyAgRFZECiAhIGR2cwotICBkduRsamFzL1MKLS0tLSA0MzE3LDQzMTkgLS0tLQotICBkdmFsZGVzL1MKKyAgZHbkbGphcworLS0tIDExNzg2LDExNzg4IC0tLS0KKyAgRFZECiAhICNkdnMgUmVtb3ZlZCBieSBTdGVmYW4uCi0gIGR25GxqYXMvUworICBkduRsamFzCiAqKioqKioqKioqKioqKioKLSoqKiAyNDQ5MCAqKioqCi0tLS0gMjQ0OTAsMjQ1NTQgLS0tLQotICDldmlsYS9NUworKioqIDMxOTU5LDMxOTYwICoqKioKKy0tLSAzMTk1OSwzMjAyNCAtLS0tCisgIGtvcnNuaW5nL0FER3ZZCiArIAogKyAjIEFkZGl0aW9ucyBieSBTdGVmYW46CiArIFNFSwpAQCAtMjE4LDMgKzEwMyw0IEBACiArIHZhcmQuCiArIHZkCiArIHZvbC4KKyAga29yc25pbmdzZnJpL09ZCg==