ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggZjY5YmYwNi4uNThhNjFmMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjAuICBMYXN0IGNoYW5nZTogMjAxNyBKYW4gMTQKKypldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMC4gIExhc3QgY2hhbmdlOiAyMDE3IEphbiAyOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yMjIyLDggKzIyMjIsOCBAQAogCQkJCVN0cmluZwl7Y291bnR9J3RoIG1hdGNoIG9mIHtwYXR9IGluIHtleHByfQogbWF0Y2hzdHJwb3Moe2V4cHJ9LCB7cGF0fVssIHtzdGFydH1bLCB7Y291bnR9XV0pCiAJCQkJTGlzdAl7Y291bnR9J3RoIG1hdGNoIG9mIHtwYXR9IGluIHtleHByfQotbWF4KHtsaXN0fSkJCQlOdW1iZXIJbWF4aW11bSB2YWx1ZSBvZiBpdGVtcyBpbiB7bGlzdH0KLW1pbih7bGlzdH0pCQkJTnVtYmVyCW1pbmltdW0gdmFsdWUgb2YgaXRlbXMgaW4ge2xpc3R9CittYXgoe2V4cHJ9KQkJCU51bWJlcgltYXhpbXVtIHZhbHVlIG9mIGl0ZW1zIGluIHtleHByfQorbWluKHtleHByfSkJCQlOdW1iZXIJbWluaW11bSB2YWx1ZSBvZiBpdGVtcyBpbiB7ZXhwcn0KIG1rZGlyKHtuYW1lfSBbLCB7cGF0aH0gWywge3Byb3R9XV0pCiAJCQkJTnVtYmVyCWNyZWF0ZSBkaXJlY3Rvcnkge25hbWV9CiBtb2RlKFtleHByXSkJCQlTdHJpbmcJY3VycmVudCBlZGl0aW5nIG1vZGUKQEAgLTQxNzIsNiArNDE3MiwxMCBAQAogCQkJICBleGUgIm5vcm1hbCAiIC4gdjptb3VzZV9jb2wgLiAifCIKIAkJCWVuZGlmCiA8CisJCVdoZW4gdXNpbmcgYnJhY2tldGVkIHBhc3RlIG9ubHkgdGhlIGZpcnN0IGNoYXJhY3RlciBpcworCQlyZXR1cm5lZCwgdGhlIHJlc3Qgb2YgdGhlIHBhc3RlZCB0ZXh0IGlzIGRyb3BwZWQuCisJCXx4dGVybS1icmFja2V0ZWQtcGFzdGV8LgorCiAJCVRoZXJlIGlzIG5vIHByb21wdCwgeW91IHdpbGwgc29tZWhvdyBoYXZlIHRvIG1ha2UgY2xlYXIgdG8gdGhlCiAJCXVzZXIgdGhhdCBhIGNoYXJhY3RlciBoYXMgdG8gYmUgdHlwZWQuCiAJCVRoZXJlIGlzIG5vIG1hcHBpbmcgZm9yIHRoZSBjaGFyYWN0ZXIuCkBAIC01Nzk3LDE2ICs1ODAxLDIwIEBACiAJCVRoZSB0eXBlIGlzbid0IGNoYW5nZWQsIGl0J3Mgbm90IG5lY2Vzc2FyaWx5IGEgU3RyaW5nLgogCiAJCQkJCQkJKm1heCgpKgotbWF4KHtsaXN0fSkJUmV0dXJuIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGFsbCBpdGVtcyBpbiB7bGlzdH0uCi0JCUlmIHtsaXN0fSBpcyBub3QgYSBsaXN0IG9yIG9uZSBvZiB0aGUgaXRlbXMgaW4ge2xpc3R9IGNhbm5vdAotCQliZSB1c2VkIGFzIGEgTnVtYmVyIHRoaXMgcmVzdWx0cyBpbiBhbiBlcnJvci4KLQkJQW4gZW1wdHkgfExpc3R8IHJlc3VsdHMgaW4gemVyby4KK21heCh7ZXhwcn0pCVJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSBvZiBhbGwgaXRlbXMgaW4ge2V4cHJ9LgorCQl7ZXhwcn0gY2FuIGJlIGEgbGlzdCBvciBhIGRpY3Rpb25hcnkuICBGb3IgYSBkaWN0aW9uYXJ5LAorCQlpdCByZXR1cm5zIHRoZSBtYXhpbXVtIG9mIGFsbCB2YWx1ZXMgaW4gdGhlIGRpY3Rpb25hcnkuCisJCUlmIHtleHByfSBpcyBuZWl0aGVyIGEgbGlzdCBub3IgYSBkaWN0aW9uYXJ5LCBvciBvbmUgb2YgdGhlCisJCWl0ZW1zIGluIHtleHByfSBjYW5ub3QgYmUgdXNlZCBhcyBhIE51bWJlciB0aGlzIHJlc3VsdHMgaW4KKyAgICAgICAgICAgICAgICBhbiBlcnJvci4gIEFuIGVtcHR5IHxMaXN0fCBvciB8RGljdGlvbmFyeXwgcmVzdWx0cyBpbiB6ZXJvLgogCiAJCQkJCQkJKm1pbigpKgotbWluKHtsaXN0fSkJUmV0dXJuIHRoZSBtaW5pbXVtIHZhbHVlIG9mIGFsbCBpdGVtcyBpbiB7bGlzdH0uCi0JCUlmIHtsaXN0fSBpcyBub3QgYSBsaXN0IG9yIG9uZSBvZiB0aGUgaXRlbXMgaW4ge2xpc3R9IGNhbm5vdAotCQliZSB1c2VkIGFzIGEgTnVtYmVyIHRoaXMgcmVzdWx0cyBpbiBhbiBlcnJvci4KLQkJQW4gZW1wdHkgfExpc3R8IHJlc3VsdHMgaW4gemVyby4KK21pbih7ZXhwcn0pCVJldHVybiB0aGUgbWluaW11bSB2YWx1ZSBvZiBhbGwgaXRlbXMgaW4ge2V4cHJ9LgorCQl7ZXhwcn0gY2FuIGJlIGEgbGlzdCBvciBhIGRpY3Rpb25hcnkuICBGb3IgYSBkaWN0aW9uYXJ5LAorCQlpdCByZXR1cm5zIHRoZSBtaW5pbXVtIG9mIGFsbCB2YWx1ZXMgaW4gdGhlIGRpY3Rpb25hcnkuCisJCUlmIHtleHByfSBpcyBuZWl0aGVyIGEgbGlzdCBub3IgYSBkaWN0aW9uYXJ5LCBvciBvbmUgb2YgdGhlCisJCWl0ZW1zIGluIHtleHByfSBjYW5ub3QgYmUgdXNlZCBhcyBhIE51bWJlciB0aGlzIHJlc3VsdHMgaW4KKyAgICAgICAgICAgICAgICBhbiBlcnJvci4gIEFuIGVtcHR5IHxMaXN0fCBvciB8RGljdGlvbmFyeXwgcmVzdWx0cyBpbiB6ZXJvLgogCiAJCQkJCQkJKm1rZGlyKCkqICpFNzM5KgogbWtkaXIoe25hbWV9IFssIHtwYXRofSBbLCB7cHJvdH1dXSkKQEAgLTgxNDYsNyArODE1NCw3IEBACiAJCWlzIHJldHVybmVkLgogCQlUaGUgbnVtYmVyIGNhbiBiZSB1c2VkIHdpdGggfENUUkwtV193fCBhbmQgIjp3aW5jbWQgdyIKIAkJfDp3aW5jbWR8LgotCQlBbHNvIHNlZSB8dGFicGFnZXdpbm5yKCl8LgorCQlBbHNvIHNlZSB8dGFicGFnZXdpbm5yKCl8IGFuZCB8d2luX2dldGlkKCl8LgogCiAJCQkJCQkJKndpbnJlc3RjbWQoKSoKIHdpbnJlc3RjbWQoKQlSZXR1cm5zIGEgc2VxdWVuY2Ugb2YgfDpyZXNpemV8IGNvbW1hbmRzIHRoYXQgc2hvdWxkIHJlc3RvcmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3B5dGgudHh0IGIvcnVudGltZS9kb2MvaWZfcHl0aC50eHQKaW5kZXggOTM3ODgwNy4uMjAxNmUzMyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfcHl0aC50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfcHl0aC50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfcHl0aC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDguMC4gIExhc3QgY2hhbmdlOiAyMDE2IFNlcCAxNworKmlmX3B5dGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA4LjAuICBMYXN0IGNoYW5nZTogMjAxNyBKYW4gMjgKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUGF1bCBNb29yZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCA0ZTk0OTAyLi4zODVmMGJiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMC4gIExhc3QgY2hhbmdlOiAyMDE3IEphbiAxNQorKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gOC4wLiAgTGFzdCBjaGFuZ2U6IDIwMTcgSmFuIDI4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CmluZGV4IDIxMzhmMDIuLmUzMDA5ODMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gOC4wLiAgTGFzdCBjaGFuZ2U6IDIwMTYgT2N0IDMwCisqc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMC4gIExhc3QgY2hhbmdlOiAyMDE3IEphbiAxNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zNDc5LDYgKzM0NzksOCBAQAogCSJpZ25vcmUiLiAgTm90ZSB0aGF0IGFueSBpdGVtcyBiZWZvcmUgdGhpcyBhcmUgbm90IGFmZmVjdGVkLCBhbmQgYWxsCiAJaXRlbXMgdW50aWwgdGhlIG5leHQgIjpzeW50YXggY2FzZSIgY29tbWFuZCBhcmUgYWZmZWN0ZWQuCiAKKzpzeVtudGF4XSBjYXNlCisJU2hvdyBlaXRoZXIgInN5bnRheCBjYXNlIG1hdGNoIiBvciAic3ludGF4IGNhc2UgaWdub3JlIiAodHJhbnNsYXRlZCkuCiAKIFNQRUxMIENIRUNLSU5HCQkJCQkJKjpzeW4tc3BlbGwqCiAKQEAgLTM0OTYsNiArMzQ5OCwxMSBAQAogCiAJVG8gYWN0aXZhdGUgc3BlbGwgY2hlY2tpbmcgdGhlICdzcGVsbCcgb3B0aW9uIG11c3QgYmUgc2V0LgogCis6c3lbbnRheF0gc3BlbGwKKwlTaG93IGVpdGhlciAic3ludGF4IHNwZWxsIHRvcGxldmVsIiwgInN5bnRheCBzcGVsbCBub3RvcGxldmVsIiBvcgorCSJzeW50YXggc3BlbGwgZGVmYXVsdCIgKHRyYW5zbGF0ZWQpLgorCisKIFNZTlRBWCBJU0tFWVdPUkQgU0VUVElORwkJCQkqOnN5bi1pc2tleXdvcmQqCiAKIDpzeVtudGF4XSBpc2tleXdvcmQgW2NsZWFyIHwge29wdGlvbn1dCkBAIC00MDg5LDYgKzQwOTYsOSBAQAogCW9mZiIgcmV0dXJucyB0byB0aGUgbm9ybWFsIHN0YXRlIHdoZXJlIHRoZSAiY29uY2VhbCIgZmxhZyBtdXN0IGJlCiAJZ2l2ZW4gZXhwbGljaXRseS4KIAorOnN5W250YXhdIGNvbmNlYWwKKwlTaG93IGVpdGhlciAic3ludGF4IGNvbmNlYWwgb24iIG9yICJzeW50YXggY29uY2VhbCBvZmYiICh0cmFuc2xhdGVkKS4KKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA3LiBTeW50YXggcGF0dGVybnMJCQkJKjpzeW4tcGF0dGVybiogKkU0MDEqICpFNDAyKgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWdzIGIvcnVudGltZS9kb2MvdGFncwppbmRleCA4YmQ2MWU1Li5mNWE3N2FkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzCisrKyBiL3J1bnRpbWUvZG9jL3RhZ3MKQEAgLTc3NCw2ICs3NzQsOCBAQAogJ3B2dycJb3B0aW9ucy50eHQJLyoncHZ3JyoKICdweXRob25kbGwnCW9wdGlvbnMudHh0CS8qJ3B5dGhvbmRsbCcqCiAncHl0aG9udGhyZWVkbGwnCW9wdGlvbnMudHh0CS8qJ3B5dGhvbnRocmVlZGxsJyoKKydweXgnCW9wdGlvbnMudHh0CS8qJ3B5eCcqCisncHl4dmVyc2lvbicJb3B0aW9ucy50eHQJLyoncHl4dmVyc2lvbicqCiAncWUnCW9wdGlvbnMudHh0CS8qJ3FlJyoKICdxdW90ZQltb3Rpb24udHh0CS8qJ3F1b3RlKgogJ3F1b3RlZXNjYXBlJwlvcHRpb25zLnR4dAkvKidxdW90ZWVzY2FwZScqCkBAIC05MjMsNiArOTI1LDggQEAKICd0X0FCJwl0ZXJtLnR4dAkvKid0X0FCJyoKICd0X0FGJwl0ZXJtLnR4dAkvKid0X0FGJyoKICd0X0FMJwl0ZXJtLnR4dAkvKid0X0FMJyoKKyd0X0JEJwl0ZXJtLnR4dAkvKid0X0JEJyoKKyd0X0JFJwl0ZXJtLnR4dAkvKid0X0JFJyoKICd0X0NTJwl0ZXJtLnR4dAkvKid0X0NTJyoKICd0X0NWJwl0ZXJtLnR4dAkvKid0X0NWJyoKICd0X0NlJwl0ZXJtLnR4dAkvKid0X0NlJyoKQEAgLTI3MjIsNiArMjcyNiwxMCBAQAogOnB5ZmlsZQlpZl9weXRoLnR4dAkvKjpweWZpbGUqCiA6cHl0aG9uCWlmX3B5dGgudHh0CS8qOnB5dGhvbioKIDpweXRob24zCWlmX3B5dGgudHh0CS8qOnB5dGhvbjMqCis6cHl0aG9ueAlpZl9weXRoLnR4dAkvKjpweXRob254KgorOnB5eAlpZl9weXRoLnR4dAkvKjpweXgqCis6cHl4ZG8JaWZfcHl0aC50eHQJLyo6cHl4ZG8qCis6cHl4ZmlsZQlpZl9weXRoLnR4dAkvKjpweXhmaWxlKgogOnEJZWRpdGluZy50eHQJLyo6cSoKIDpxYQllZGl0aW5nLnR4dAkvKjpxYSoKIDpxYWxsCWVkaXRpbmcudHh0CS8qOnFhbGwqCkBAIC00NzcwLDYgKzQ3NzgsOCBAQAogVzE3CWFyYWJpYy50eHQJLypXMTcqCiBXMTgJc3ludGF4LnR4dAkvKlcxOCoKIFcxOQlhdXRvY21kLnR4dAkvKlcxOSoKK1cyMAlpZl9weXRoLnR4dAkvKlcyMCoKK1cyMQlpZl9weXRoLnR4dAkvKlcyMSoKIFdPUkQJbW90aW9uLnR4dAkvKldPUkQqCiBXV1cJaW50cm8udHh0CS8qV1dXKgogV2luMzIJb3Nfd2luMzIudHh0CS8qV2luMzIqCkBAIC02NjAzLDYgKzY2MTMsNyBAQAogaGFzKCkJZXZhbC50eHQJLypoYXMoKSoKIGhhcy1wYXRjaAlldmFsLnR4dAkvKmhhcy1wYXRjaCoKIGhhcy1weXRob24JaWZfcHl0aC50eHQJLypoYXMtcHl0aG9uKgoraGFzLXB5dGhvbngJaWZfcHl0aC50eHQJLypoYXMtcHl0aG9ueCoKIGhhc19rZXkoKQlldmFsLnR4dAkvKmhhc19rZXkoKSoKIGhhc2tlbGwudmltCXN5bnRheC50eHQJLypoYXNrZWxsLnZpbSoKIGhhc2xvY2FsZGlyKCkJZXZhbC50eHQJLypoYXNsb2NhbGRpcigpKgpAQCAtNzkwMSw3ICs3OTEyLDExIEBACiBweXRob24yLWRpcmVjdG9yeQlpZl9weXRoLnR4dAkvKnB5dGhvbjItZGlyZWN0b3J5KgogcHl0aG9uMwlpZl9weXRoLnR4dAkvKnB5dGhvbjMqCiBweXRob24zLWRpcmVjdG9yeQlpZl9weXRoLnR4dAkvKnB5dGhvbjMtZGlyZWN0b3J5KgorcHl0aG9uX3gJaWZfcHl0aC50eHQJLypweXRob25feCoKK3B5dGhvbl94LXNwZWNpYWwtY29tbWVudHMJaWZfcHl0aC50eHQJLypweXRob25feC1zcGVjaWFsLWNvbW1lbnRzKgorcHl0aG9ueAlpZl9weXRoLnR4dAkvKnB5dGhvbngqCiBweXRob254LWRpcmVjdG9yeQlpZl9weXRoLnR4dAkvKnB5dGhvbngtZGlyZWN0b3J5KgorcHl4ZXZhbCgpCWV2YWwudHh0CS8qcHl4ZXZhbCgpKgogcQlyZXBlYXQudHh0CS8qcSoKIHEvCWNtZGxpbmUudHh0CS8qcVwvKgogcToJY21kbGluZS50eHQJLypxOioKQEAgLTg0NDMsNiArODQ1OCw4IEBACiB0X0FCCXRlcm0udHh0CS8qdF9BQioKIHRfQUYJdGVybS50eHQJLyp0X0FGKgogdF9BTAl0ZXJtLnR4dAkvKnRfQUwqCit0X0JECXRlcm0udHh0CS8qdF9CRCoKK3RfQkUJdGVybS50eHQJLyp0X0JFKgogdF9DUwl0ZXJtLnR4dAkvKnRfQ1MqCiB0X0NWCXRlcm0udHh0CS8qdF9DVioKIHRfQ2UJdGVybS50eHQJLyp0X0NlKgpAQCAtODQ4MSw2ICs4NDk4LDggQEAKIHRfS0oJdGVybS50eHQJLyp0X0tKKgogdF9LSwl0ZXJtLnR4dAkvKnRfS0sqCiB0X0tMCXRlcm0udHh0CS8qdF9LTCoKK3RfUEUJdGVybS50eHQJLyp0X1BFKgordF9QUwl0ZXJtLnR4dAkvKnRfUFMqCiB0X1JCCXRlcm0udHh0CS8qdF9SQioKIHRfUkkJdGVybS50eHQJLyp0X1JJKgogdF9SVgl0ZXJtLnR4dAkvKnRfUlYqCkBAIC05MzMyLDYgKzkzNTEsNyBAQAogeHRlcm0tOGJpdAl0ZXJtLnR4dAkvKnh0ZXJtLThiaXQqCiB4dGVybS1ibGluawlzeW50YXgudHh0CS8qeHRlcm0tYmxpbmsqCiB4dGVybS1ibGlua2luZy1jdXJzb3IJc3ludGF4LnR4dAkvKnh0ZXJtLWJsaW5raW5nLWN1cnNvcioKK3h0ZXJtLWJyYWNrZXRlZC1wYXN0ZQl0ZXJtLnR4dAkvKnh0ZXJtLWJyYWNrZXRlZC1wYXN0ZSoKIHh0ZXJtLWNsaXBib2FyZAl0ZXJtLnR4dAkvKnh0ZXJtLWNsaXBib2FyZCoKIHh0ZXJtLWNvZGVzCXRlcm0udHh0CS8qeHRlcm0tY29kZXMqCiB4dGVybS1jb2xvcglzeW50YXgudHh0CS8qeHRlcm0tY29sb3IqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90ZXJtLnR4dCBiL3J1bnRpbWUvZG9jL3Rlcm0udHh0CmluZGV4IDIyODg1M2YuLmI0NmIzOTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Rlcm0udHh0CisrKyBiL3J1bnRpbWUvZG9jL3Rlcm0udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRlcm0udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA4LjAuICBMYXN0IGNoYW5nZTogMjAxNiBTZXAgMDIKKyp0ZXJtLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gOC4wLiAgTGFzdCBjaGFuZ2U6IDIwMTcgSmFuIDI3CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC05OSw3ICs5OSwxMiBAQAogCiBOb3RlIHRoYXQgaW4gc29tZSBzaXR1YXRpb25zIFZpbSB3aWxsIG5vdCByZWNvZ25pemUgdGhlIGJyYWNrZXRlZCBwYXN0ZSBhbmQKIHlvdSB3aWxsIGdldCB0aGUgcmF3IHRleHQuICBJbiBvdGhlciBzaXR1YXRpb25zIFZpbSB3aWxsIG9ubHkgZ2V0IHRoZSBmaXJzdAotcGFzdGVkIGNoYXJhY3RlciBhbmQgZHJvcCB0aGUgcmVzdCwgZS5nLiB3aGVuIHVzaW5nIHRoZSAiciIgY29tbWFuZC4KK3Bhc3RlZCBjaGFyYWN0ZXIgYW5kIGRyb3AgdGhlIHJlc3QsIGUuZy4gd2hlbiB1c2luZyB0aGUgInIiIGNvbW1hbmQuICBJZiB5b3UKK2hhdmUgYSBwcm9ibGVtIHdpdGggdGhpcywgZGlzYWJsZSBicmFja2V0ZWQgcGFzdGUgYnkgcHV0dGluZyB0aGlzIGluIHlvdXIKKy52aW1yYzogPgorCXNldCB0X0JFPQorSWYgdGhpcyBpcyBkb25lIHdoaWxlIFZpbSBpcyBydW5uaW5nIHRoZSAndF9CRCcgd2lsbCBiZSBzZW50IHRvIHRoZSB0ZXJtaW5hbAordG8gZGlzYWJsZSBicmFja2V0ZWQgcGFzdGUuCiAKIAkJCQkJCQkqY3M3LXByb2JsZW0qCiBOb3RlOiBJZiB0aGUgdGVybWluYWwgc2V0dGluZ3MgYXJlIGNoYW5nZWQgYWZ0ZXIgcnVubmluZyBWaW0sIHlvdSBtaWdodCBoYXZlCkBAIC00MTQsNyArNDE5LDcgQEAKIAl0X0tLCTxrOD4JCWtleXBhZCA4CQkgKjxrOD4qCSp0X0tLKiAqJ3RfS0snKgogCXRfS0wJPGs5PgkJa2V5cGFkIDkJCSAqPGs5PioJKnRfS0wqICondF9LTCcqCiAJCTxNb3VzZT4JCWxlYWRlciBvZiBtb3VzZSBjb2RlCQkqPE1vdXNlPioKLQl0X1BTCXN0YXJ0IG9mIGJyYWNrdGVkIHBhc3RlIHx4dGVybS1icmFja2V0ZWQtcGFzdGV8ICAgKnRfUFMqICd0X1BTJworCXRfUFMJc3RhcnQgb2YgYnJhY2tldGVkIHBhc3RlIHx4dGVybS1icmFja2V0ZWQtcGFzdGV8ICAqdF9QUyogJ3RfUFMnCiAJdF9QRQllbmQgb2YgYnJhY2tldGVkIHBhc3RlIHx4dGVybS1icmFja2V0ZWQtcGFzdGV8ICAgICp0X1BFKiAndF9QRScKIAogTm90ZSBhYm91dCB0X3NvIGFuZCB0X21yOiBXaGVuIHRoZSB0ZXJtY2FwIGVudHJ5ICJzbyIgaXMgbm90IHByZXNlbnQgdGhlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IGQzMjQ2MDcuLjU2ZDg1OGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA4LjAuICBMYXN0IGNoYW5nZTogMjAxNyBKYW4gMTYKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gOC4wLiAgTGFzdCBjaGFuZ2U6IDIwMTcgSmFuIDI4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM1LDggKzM1LDYgQEAKIAkJCQkJCQkqa25vd24tYnVncyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1nZXRfc3luX29wdGlvbnMoKSBkb2VzIG5vdCByZXNwZWN0IHNraXAgaW4gZWxzZSBwYXJ0LiAoWnl4KQotCiArY2hhbm5lbDoKIC0gVHJ5IG91dCBiYWNrZ3JvdW5kIG1ha2UgcGx1Z2luOiAKICAgaHR0cHM6Ly9naXRodWIuY29tL0FuZHJld1Zvcy92aW0tbWFrZS1iYWNrZ3JvdW5kCkBAIC02MCw2ICs1OCw3IEBACiAgIGNvbm5lY3RpbmcgaW4gdGhlIG1haW4gbG9vcCB3aXRoIHplcm8gdGltZW91dC4KIC0gam9iX3N0YXJ0KCk6IHJ1biBqb2IgaW4gYSBuZXdseSBvcGVuZWQgdGVybWluYWwuCiAgICAgV2l0aCB4dGVybSBjb3VsZCB1c2UgLVN7cHR5fS4KKyAgICBBbHRob3VnaCB1c2VyIGNvdWxkIHVzZSAieHRlcm0gLWUgJ2NtZCBhcmcnIi4KIAogUmVnZXhwIHByb2JsZW1zOgogLSBTaW5jZSA3LjQuNzA0IHRoZSBvbGQgcmVnZXggZW5naW5lIGZhaWxzIHRvIG1hdGNoIFtbOnByaW50Ol1dIGluIDB4ZjYuCkBAIC0xMDgsNDAgKzEwNywyNyBAQAogCiAnXSBtYXJrIGludmFsaWQgYWZ0ZXIgdW5kb2luZyBpbnNlcnQgImhlbGxvIi4KIAotTWFrZSBodG1sIGluZGVudCBmaWxlIHVzZSBqYXZhc2NyaXB0IGluZGVudCwgbm93IHRoYXQgaXQncyBub3QganVzdCBjaW5kZW50LgotIzEyMjAKLQotQ29uY2F0ZW5hdGlvbiB3aXRoIG51bGwgc3RyaW5nIGNhdXNlcyBhbiBlcnJvcjogJ2EnWzE6MF0gLi4gJ2InCi1NaWdodCBhcyB3ZWxsIGhhbmRsZSBpdCBsaWtlIGFuIGVtcHR5IHN0cmluZy4KLQogV2hlbiB1c2luZyBzeW1ib2xpYyBsaW5rcywgYSBwYWNrYWdlIHBhdGggd2lsbCBub3QgYmUgaW5zZXJ0ZWQgYXQgdGhlIHJpZ2h0CiBwb3NpdGlvbiBpbiAncnVudGltZXBhdGgnLiAoRHVnYW4gQ2hlbiwgMjAxNiBOb3YgMTgpCiAKIGpzb25fZW5jb2RlKCk6IHNob3VsZCBjb252ZXJ0IHRvIHV0Zi04LiAoTmlrb2xhaSBQYXZsb3YsIDIwMTYgSmFuIDIzKQogV2hhdCBpZiB0aGVyZSBpcyBhbiBpbnZhbGlkIGNoYXJhY3Rlcj8KIAotSW5jbHVkZSBydXN0IGZpbGVzLiAoS2xhYm5paywgIzEzNTYpCi0KIEFsbG93IHVzaW5nIGpzb24gd2l0aCBlbXB0eSBrZXk/ICBEaWN0IGFscmVhZHkgaGFzIGl0LgogCiBKc29uIHN0cmluZyB3aXRoIHRyYWlsaW5nIFx1IHNob3VsZCBiZSBhbiBlcnJvci4gKExjZCkKIAotUGF0Y2ggdG8gZGVhbCB3aXRoIGNoYW5nZWQgY29uZmlndXJlIGV2ZW50cyBpbiBHVEsgMy4gKEphbiBBbGV4YW5kZXIgU3RlZmZlbnMsCi0yMDE2IE9jdCAyMyAjMTE5MykKLVJlbWFya3MgZnJvbSBudWtvOCwgMjAxNiBOb3YgMi4KLQogTXVsdGktYnl0ZSBidWc6IGR2fSBzcGxpdHMgY2hhci4gKFVydGljYSBEaW9pY2EsIDIwMTcgSmFuIDkpCiAKLVBhdGNoIHRvIGNoYW5nZSBvcmRlciBvZiBjb21waWxlciBmbGFncy4gKFlvdXNvbmcgWmhvdSwgMjAxNiBTZXAgMTksICMxMTAwKQorUGF0Y2g6IE1ha2UgbW9kZSgpIHJldHVybiAiaXgiIG9yICJSeCIgd2hlbiBpbiBjb21wbGV0aW9uIG1vZGUuCisoWWVnYXBwYW4gTGFrc2htYW5hbiwgMjAxNyBKYW4gMTksICMxMzk3LCB1cGRhdGUgSmFuIDIyKQogCi1QYXRjaCB0byBhZGQgY29tbWFuZCBsaW5lIGNvbXBsZXRpb24gZm9yIDpjZXhwciBjb21tYW5kcy4gKFllZ2FwcGFuCi1MYWtzaG1hbmFuLCAyMDE2IERlYyAxMykKK1dpdGggVmlzdWFsIHNlbGVjdGlvbiBvZiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIHRoZSAnXSBtYXJrIGlzIG9uIHRoZSBsYXN0CitieXRlLCBzaG91bGQgYmUgZmlyc3QgYnl0ZT8KIAotUGF0Y2ggZm9yIDpweXgsIHJ1biBweXRob24gY29tbWFuZHMgZGVwZW5kaW5nIG9uIHRoZSBzdXBwb3J0ZWQgdmVyc2lvbi4KLShNYXJjIFdlYmVyLCB1cGRhdGUgZnJvbSBLZW4gVGFrYXRhLCAyMDE2IFNlcCAxOSwgMjAxNyBKYW4gNikKLQotUGF0Y2ggdG8gYXZvaWQgd2FybmluZ3MgZm9yIG92ZXJmbG93LiAoTWlrZSBXaWxsaWFtcywgMjAxNiBEZWMgMTYpCi1VcGRhdGUgRGVjIDE5LgorV2hlbiBzZXNzaW9uIGZpbGUgaGFzIG5hbWUgaW4gYXJndW1lbnQgbGlzdCBidXQgdGhlIGJ1ZmZlciB3YXMgZGVsZXRlZCwgdGhlCitidWZmZXIgaXMgbm90IGRlbGV0ZWQgd2hlbiB1c2luZyB0aGUgc2Vzc2lvbiBmaWxlLiAoIzEzOTMpCitTaG91bGQgYWRkIHRoZSBidWZmZXIgaW4gaGlkZGVuIHN0YXRlLgogCiBXaGVuIGFuIGl0ZW0gaW4gdGhlIHF1aWNrZml4IGxpc3QgaGFzIGEgZmlsZSBuYW1lIHRoYXQgZG9lcyBub3QgZXhpc3QsIGJlaGF2ZQogbGlrZSB0aGUgaXRlbSB3YXMgbm90IGEgbWF0Y2ggZm9yIDpjbmV4dC4KQEAgLTE1MCwxOCArMTM2LDEzIEBACiBBbHNvIGdldCBFNzQ5IG9uIGV4aXQuCiBBbm90aGVyIGV4YW1wbGUgaW4gIzEzMDkKIAotUGF0Y2ggdG8gZml4IHZpbV9pc3dvcmRwKCkgd29ya3MgZGlmZmVyZW50bHkgb24gY2hhcnMgPDI1NiB0aGF0IGFyZSB0d28gYnl0ZXMuCi1PemFraSBLaWljaGksIDIwMTYgRGVjIDExLgorQ29tcGxldGlvbiBmb3IgdXNlci1kZWZpbmVkIGNvbW1hbmRzIGRvZXMgbm90IHdvcmsgaWYgYSBmZXcgY2hhcmFyYWN0ZXJzIHdlcmUKK2FscmVhZHkgdHlwZWQuIChEb21pbmlxdWUsIDIwMTcgSmFuIDI2KQogCiBXaGVuIGRlbGV0aW5nIGEgbWFyayBvciByZWdpc3RlciwgbGVhdmUgYSB0b21ic3RvbmUsIHNvIHRoYXQgaXQncyBhbHNvIGRlbGV0ZWQKIHdoZW4gd3JpdGluZyB2aW1pbmZvIChhbmQgdGhlIGRlbGV0ZSB3YXMgdGhlIG1vc3QgcmVjZW50IGFjdGlvbikuICMxMzM5CiAKIFJlbGV2YW50IG5lb3ZpbSBwYXRjaDoKLWh0dHBzOi8vZ2l0aHViLmNvbS9uZW92aW0vbmVvdmltL3B1bGwvNTcxNwotdGVzdCBjYXNlOiAKLWh0dHBzOi8vZ2l0aHViLmNvbS9uZW92aW0vbmVvdmltL3B1bGwvNTcxNyNpc3N1ZWNvbW1lbnQtMjY0ODQ1NDgxCi1PdGhlcnM6Ci1odHRwczovL2dpdGh1Yi5jb20vbmVvdmltL25lb3ZpbS9pc3N1ZXMvNTcxMyNpc3N1ZWNvbW1lbnQtMjY1MTM2MTg2CiBodHRwczovL2dpdGh1Yi5jb20vbmVvdmltL25lb3ZpbS9wdWxsLzU3MzcjaXNzdWVjb21tZW50LTI2NjA1NTE2NQogCiBQYXRjaCBmb3IgYmV0dGVyIGV4cGxhbmF0aW9uIG9mICdjb21wYXRpYmxlJyBzaWRlIGVmZmVjdHMuCkBAIC0xOTksNiArMTgwLDEwIEBACiBQYXRjaCB0byBmaXggZXNjYXBpbmcgb2Ygam9iIGFyZ3VtZW50cy4gKFlhc3VoaXJvIE1hdHN1bW90bywgMjAxNiBPY3QgNSkKIFVwZGF0ZSBPY3QgMTQ6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL21hdHRuL2Q0N2U3ZDNiZmU1YWRlNGJlODYwNjJiNTY1YTRiZmNhCiAKK1RoZSBUZXJtUmVzcG9uc2UgZXZlbnQgaXMgbm90IHRyaWdnZXJlZCB3aGVuIGEgcGx1Z2luIGhhcyBzZXQgJ2V2ZW50aWdub3JlJyB0bworImFsbCIuICBOZXRydyBkb2VzIHRoaXMuIChHYXJ5IEpvaG5zb24sIDIwMTcgSmFuIDI0KQorUG9zdHBvbmUgdGhlIGV2ZW50IHVudGlsICdldmVudGlnbm9yZScgaXMgcmVzZXQuCisKIE9uY2UgLmV4ZSB3aXRoIHVwZGF0ZWQgaW5zdGFsbGVyIGlzIGF2YWlsYWJsZTogQWRkIHJlbWFyayB0byBkb3dubG9hZCBwYWdlCiBhYm91dCAvUyBhbmQgL0Qgb3B0aW9ucyAoS2VuIFRha2F0YSwgMjAxNiBBcHIgMTMpCiBPciBwb2ludCB0byBuaWdodGx5IGJ1aWxkczogaHR0cHM6Ly9naXRodWIuY29tL3ZpbS92aW0td2luMzItaW5zdGFsbGVyL3JlbGVhc2VzCkBAIC0yMjAsNiArMjA1LDcgQEAKIAogUGF0Y2ggZm9yIHdyb25nIGN1cnNvciBwb3NpdGlvbiBvbiB3cmFwcGVkIGxpbmUsIGludm9sdmluZyBicmVha2luZGVudC4KIChPemFraSBLaWljaGksIDIwMTYgTm92IDI1KQorRG9lcyB0aGlzIGFsc28gZml4ICMxNDA4ID8KIAogUGF0Y2ggZm9yICdjdXJzb3JsaW5lbnInIG9wdGlvbi4gKE96YWtpIEtpaWNoaSwgMjAxNiBOb3YgMzApCiAKQEAgLTU2OSw2ICs1NTUsOSBAQAogVmFsdWUgcmV0dXJuZWQgYnkgdmlydGNvbCgpIGNoYW5nZXMgZGVwZW5kaW5nIG9uIGhvdyBsaW5lcyB3cmFwLiAgVGhpcyBpcwogaW5jb25zaXN0ZW50IHdpdGggdGhlIGRvY3VtZW50YXRpb24uCiAKK1ZhbHVlIG9mIHZpcnRjb2woKSBmb3IgJ1sgYW5kICddIGRlcGVuZCBvbiBtdWx0aS1ieXRlIGNoYXJhY3Rlci4KKyhMdWNociwgIzI3NykKKwogQ2FuIHdlIGNhY2hlIHRoZSBzeW50YXggYXR0cmlidXRlcywgc28gdGhhdCB1cGRhdGVzIGZvciAncmVsYXRpdmVudW1iZXInIGFuZAogJ2N1cnNvcmxpbmUnLydjdXJzb3Jjb2x1bW4nIGFyZSBhIGxvdCBmYXN0ZXI/CiAKQEAgLTEwNjEsOSArMTA1MCw2IEBACiBXaGVuIHRoZXJlIGFyZSBubyBjb21tYW5kIGxpbmUgYXJndW1lbnRzICI6bmV4dCIgYW5kICI6YXJndSIgZ2l2ZSBFMTYzLCB3aGljaAogaXMgY29uZnVzaW5nLiAgU2hvdWxkIHNheSAidGhlIGFyZ3VtZW50IGxpc3QgaXMgZW1wdHkiLgogCi14dGVybSBzdXBwb3J0cyBlc2NhcGUgc2VxdWVuY2VzIHRvIG1hcmsgYSBwYXN0ZSBvcGVyYXRpb24uICBOZWVkIHRvIGJlCi1lbmFibGVkLiAoQnJ1bm8gU3V0aWMsIDIwMTQgSnVsIDExKSAgSG93IHRvIGtub3cgdGhlIHRlcm1pbmFsIHN1cHBvcnRzIHRoaXM/Ci0KIFVSWFZUOgogLSB3aWxsIGdldCBzdHVjayBpZiBieXRlIHNlcXVlbmNlIGRvZXMgbm90IGNvbnRhaW4gdGhlIGV4cGVjdGVkIHNlbWljb2xvbi4KIC0gVXNlIHVyeHZ0IG1vdXNlIHN1cHBvcnQgYWxzbyBpbiB4dGVybS4gIEV4cGxhbmF0aW9uczoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQgYi9ydW50aW1lL2RvYy91c3JfNDEudHh0CmluZGV4IDkxODMzM2UuLmQ0NWFiMTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQxLnR4dApAQCAtMTAwMCw2ICsxMDAwLDcgQEAKIAlwZXJsZXZhbCgpCQlldmFsdWF0ZSBQZXJsIGV4cHJlc3Npb24gKHwrcGVybHwpCiAJcHkzZXZhbCgpCQlldmFsdWF0ZSBQeXRob24gZXhwcmVzc2lvbiAofCtweXRob24zfCkKIAlweWV2YWwoKQkJZXZhbHVhdGUgUHl0aG9uIGV4cHJlc3Npb24gKHwrcHl0aG9ufCkKKwlweXhldmFsKCkJCWV2YWx1YXRlIHxweXRob25feHwgZXhwcmVzc2lvbgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICo0MS43KglEZWZpbmluZyBhIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL21hbi52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL21hbi52aW0KaW5kZXggNDdiZTg4Yi4uYzdmYzNiYiAxMDA2NDQKLS0tIGEvcnVudGltZS9mdHBsdWdpbi9tYW4udmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vbWFuLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOgltYW4KICIgTWFpbnRhaW5lcjoJU3VuZ0h5dW4gTmFtIDxnb3dlb2xAZ21haWwuY29tPgotIiBMYXN0IENoYW5nZTogCTIwMTcgSmFuIDA0CisiIExhc3QgQ2hhbmdlOiAJMjAxNyBKYW4gMTgKIAogIiBUbyBtYWtlIHRoZSAiOk1hbiIgY29tbWFuZCBhdmFpbGFibGUgYmVmb3JlIGVkaXRpbmcgYSBtYW51YWwgcGFnZSwgc291cmNlCiAiIHRoaXMgc2NyaXB0IGZyb20geW91ciBzdGFydHVwIHZpbXJjIGZpbGUuCkBAIC05Nyw3ICs5Nyw3IEBACiBlbmRmdW5jCiAKIGZ1bmMgPFNJRD5GaW5kUGFnZShzZWN0LCBwYWdlKQotICBsZXQgd2hlcmUgPSBzeXN0ZW0oIi91c3IvYmluL21hbiAiLnM6bWFuX2ZpbmRfYXJnLicgJy5zOkdldENtZEFyZyhhOnNlY3QsIGE6cGFnZSkpCisgIGxldCB3aGVyZSA9IHN5c3RlbSgibWFuICIuczptYW5fZmluZF9hcmcuJyAnLnM6R2V0Q21kQXJnKGE6c2VjdCwgYTpwYWdlKSkKICAgaWYgd2hlcmUgIX4gIl4vIgogICAgIGlmIG1hdGNoc3RyKHdoZXJlLCAiIFteIF0qJCIpICF+ICJeIC8iCiAgICAgICByZXR1cm4gMApAQCAtMTc2LDcgKzE3Niw3IEBACiAgICAgbGV0ICRNQU5XSURUSCA9IHdpbndpZHRoKDApCiAgICAgbGV0IHVuc2V0d2lkdGggPSAxCiAgIGVuZGlmCi0gIHNpbGVudCBleGVjICJyIS91c3IvYmluL21hbiAiLnM6R2V0Q21kQXJnKHNlY3QsIHBhZ2UpLiIgfCBjb2wgLWIiCisgIHNpbGVudCBleGVjICJyICFtYW4gIi5zOkdldENtZEFyZyhzZWN0LCBwYWdlKS4iIHwgY29sIC1iIgogICBpZiB1bnNldHdpZHRoCiAgICAgbGV0ICRNQU5XSURUSCA9ICcnCiAgIGVuZGlmCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9odG1sLnZpbSBiL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCmluZGV4IDEzYWRhYWUuLjU3YmE1M2UgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCkBAIC0yLDcgKzIsNyBAQAogIiBIZWFkZXI6ICJ7e3sKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIKICIgT3JpZ2luYWwgQXV0aG9yOiBBbmR5IFdva3VsYSA8YW53b2t1QHlhaG9vLmRlPgotIiBMYXN0IENoYW5nZToJMjAxNiBNYXIgMzAKKyIgTGFzdCBDaGFuZ2U6CTIwMTcgSmFuIDE3CiAiIFZlcnNpb246CTEuMAogIiBEZXNjcmlwdGlvbjoJSFRNTCBpbmRlbnQgc2NyaXB0IHdpdGggY2FjaGVkIHN0YXRlIGZvciBmYXN0ZXIgaW5kZW50aW5nIG9uIGEKICIJCXJhbmdlIG9mIGxpbmVzLgpAQCAtMjUsMjcgKzI1LDIyIEBACiBpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpICJ7e3sKICAgZmluaXNoCiBlbmRpZgorCisiIExvYWQgdGhlIEphdmFzY3JpcHQgaW5kZW50IHNjcmlwdCBmaXJzdCwgaXQgZGVmaW5lcyBHZXRKYXZhc2NyaXB0SW5kZW50KCkuCisiIFVuZG8gdGhlIHJlc3QuCisiIExvYWQgYmFzZSBweXRob24gaW5kZW50LgoraWYgIWV4aXN0cygnKkdldEphdmFzY3JpcHRJbmRlbnQnKQorICBydW50aW1lISBpbmRlbnQvamF2YXNjcmlwdC52aW0KK2VuZGlmCiBsZXQgYjpkaWRfaW5kZW50ID0gMQogCiBzZXRsb2NhbCBpbmRlbnRleHByPUh0bWxJbmRlbnQoKQogc2V0bG9jYWwgaW5kZW50a2V5cz1vLE8sPFJldHVybj4sPD4+LHssfSwhXkYKIAotIiAiajEiIGlzIGluY2x1ZGVkIHRvIG1ha2UgY2luZGVudCgpIHdvcmsgYmV0dGVyIHdpdGggSmF2YXNjcmlwdC4KLXNldGxvY2FsIGNpbm89ajEKLSIgIkoxIiBzaG91bGQgYmUgaW5jbHVkZWQsIGJ1dCBpdCBkb2VuJ3Qgd29yayBwcm9wZXJseSBiZWZvcmUgNy40LjM1NS4KLWlmIGhhcygicGF0Y2gtNy40LjM1NSIpCi0gIHNldGxvY2FsIGNpbm8rPUoxCi1lbmRpZgotIiBCZWZvcmUgcGF0Y2ggNy40LjM1NSBpbmRlbnRpbmcgYWZ0ZXIgIihmdW5jdGlvbigpIHsiIGRvZXMgbm90IHdvcmsgd2VsbCwgYWRkCi0iICkyIHRvIGxpbWl0IHBhcmVuIHNlYXJjaC4KLWlmICFoYXMoInBhdGNoLTcuNC4zNTUiKQotICBzZXRsb2NhbCBjaW5vKz0pMgotZW5kaWYKLQogIiBOZWVkZWQgZm9yICUgdG8gd29yayB3aGVuIGZpbmRpbmcgc3RhcnQvZW5kIG9mIGEgdGFnLgogc2V0bG9jYWwgbWF0Y2hwYWlycys9PDo+CiAKLWxldCBiOnVuZG9faW5kZW50ID0gInNldGxvY2FsIGluZGU8IGluZGs8IGNpbm88IgorbGV0IGI6dW5kb19pbmRlbnQgPSAic2V0bG9jYWwgaW5kZTwgaW5kazwiCiAKICIgYjpoaV9pbmRlbnQga2VlcHMgc3RhdGUgdG8gc3BlZWQgdXAgaW5kZW50aW5nIGNvbnNlY3V0aXZlIGxpbmVzLgogbGV0IGI6aGlfaW5kZW50ID0geyJsbnVtIjogLTF9CkBAIC01OTYsNyArNTkxLDcgQEAKICAgICByZXR1cm4gZXZhbChiOmhpX2pzMWluZGVudCkKICAgZW5kaWYKICAgaWYgYjpoaV9pbmRlbnQuc2NyaXB0dHlwZSA9PSAiamF2YXNjcmlwdCIKLSAgICByZXR1cm4gY2luZGVudCh2OmxudW0pCisgICAgcmV0dXJuIEdldEphdmFzY3JpcHRJbmRlbnQoKQogICBlbHNlCiAgICAgcmV0dXJuIC0xCiAgIGVuZGlmCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9hdXRvaG90a2V5LnZpbSBiL3J1bnRpbWUvc3ludGF4L2F1dG9ob3RrZXkudmltCmluZGV4IDc2NGY5NGIuLjNiODI2YWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2F1dG9ob3RrZXkudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2F1dG9ob3RrZXkudmltCkBAIC0xLDggKzEsMTAgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOiAgICAgICAgIEF1dG9Ib3RrZXkgc2NyaXB0IGZpbGUKLSIgTWFpbnRhaW5lcjogICAgICAgU3VuZ0h5dW4gTmFtIDxnb3dlb2xAZ21haWwuY29tPgotIiBQcmV2aW91cyBNYWludGFpbmVyOiAgICAgICBOaWtvbGFpIFdlaWJ1bGwgPG5vd0BiaXR3aS5zZT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAxNS0xMC0yOQorIiBNYWludGFpbmVyOiAgICAgICBNaWNoYWVsIFdvbmcKKyIgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL21taWtld3cvYXV0b2hvdGtleS52aW0KKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAxNy0wMS0yMworIiBQcmV2aW91cyBNYWludGFpbmVyczogICAgICAgU3VuZ0h5dW4gTmFtIDxnb3dlb2xAZ21haWwuY29tPgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmlrb2xhaSBXZWlidWxsIDxub3dAYml0d2kuc2U+CiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApAQCAtMTcsNjggKzE5LDExIEBACiAgICAgICBcIGNvbnRhaW5lZAogICAgICAgXCBUT0RPIEZJWE1FIFhYWCBOT1RFCiAKLXN5biBjbHVzdGVyIGF1dG9ob3RrZXlDb21tZW50R3JvdXAKLSAgICAgIFwgY29udGFpbnM9Ci0gICAgICBcICAgYXV0b2hvdGtleVRvZG8sCi0gICAgICBcICAgQFNwZWxsCi0KLXN5biBtYXRjaCAgIGF1dG9ob3RrZXlDb21tZW50Ci0gICAgICBcIGRpc3BsYXkKLSAgICAgIFwgY29udGFpbnM9QGF1dG9ob3RrZXlDb21tZW50R3JvdXAKLSAgICAgIFwgJ2BcQDwhOy4qJCcKLQotc3luIHJlZ2lvbiAgYXV0b2hvdGtleUNvbW1lbnQKLSAgICAgIFwgY29udGFpbnM9QGF1dG9ob3RrZXlDb21tZW50R3JvdXAKLSAgICAgIFwgbWF0Y2hncm91cD1hdXRvaG90a2V5Q29tbWVudFN0YXJ0Ci0gICAgICBcIHN0YXJ0PScvXConCi0gICAgICBcIGVuZD0nXCovJwotCisiIG9ubHkgdGhlc2UgY2hhcnMgYXJlIHZhbGlkIGFzIGVzY2FwZSBzZXF1ZW5jZXM6ICAgLCVgO25yYnR2YWYKKyIgaHR0cHM6Ly9hdXRvaG90a2V5LmNvbS9kb2NzL2NvbW1hbmRzL19Fc2NhcGVDaGFyLmh0bQogc3luIG1hdGNoICAgYXV0b2hvdGtleUVzY2FwZQogICAgICAgXCBkaXNwbGF5Ci0gICAgICBcICdgLicKLQotc3luIG1hdGNoICAgYXV0b2hvdGtleUhvdGtleQotICAgICAgXCBjb250YWlucz1hdXRvaG90a2V5S2V5LAotICAgICAgXCAgIGF1dG9ob3RrZXlIb3RrZXlEZWxpbWl0ZXIKLSAgICAgIFwgZGlzcGxheQotICAgICAgXCAnXi5cey19OjonCi0KLXN5biBtYXRjaCAgIGF1dG9ob3RrZXlLZXkKLSAgICAgIFwgY29udGFpbmVkCi0gICAgICBcIGRpc3BsYXkKLSAgICAgIFwgJ14uXHstfScKLQotc3luIG1hdGNoICAgYXV0b2hvdGtleURlbGltaXRlcgotICAgICAgXCBjb250YWluZWQKLSAgICAgIFwgZGlzcGxheQotICAgICAgXCAnOjonCi0KLXN5biBtYXRjaCAgIGF1dG9ob3RrZXlIb3RzdHJpbmdEZWZpbml0aW9uCi0gICAgICBcIGNvbnRhaW5zPWF1dG9ob3RrZXlIb3RzdHJpbmcsCi0gICAgICBcICAgYXV0b2hvdGtleUhvdHN0cmluZ0RlbGltaXRlcgotICAgICAgXCBkaXNwbGF5Ci0gICAgICBcICdeOlwlKEIwXHxDMVx8S1xkXCtcfFBcZFwrXHxTW0lQRV1cfFpcZFw9XHxbKj9DT1JdXCkqOi5cey19OjonCi0KLXN5biBtYXRjaCAgIGF1dG9ob3RrZXlIb3RzdHJpbmcKLSAgICAgIFwgY29udGFpbmVkCi0gICAgICBcIGRpc3BsYXkKLSAgICAgIFwgJy5cey19JwotCi1zeW4gbWF0Y2ggICBhdXRvaG90a2V5SG90c3RyaW5nRGVsaW1pdGVyCi0gICAgICBcIGNvbnRhaW5lZAotICAgICAgXCBkaXNwbGF5Ci0gICAgICBcICc6OicKLQotc3luIG1hdGNoICAgYXV0b2hvdGtleUhvdHN0cmluZ0RlbGltaXRlcgotICAgICAgXCBjb250YWlucz1hdXRvaG90a2V5SG90c3RyaW5nT3B0aW9ucwotICAgICAgXCBjb250YWluZWQKLSAgICAgIFwgZGlzcGxheQotICAgICAgXCAnOlwlKEIwXHxDMVx8S1xkXCtcfFBcZFwrXHxTW0lQRV1cfFpcZFw9XHxbKj9DT1JdXCk6JwotCi1zeW4gbWF0Y2ggICBhdXRvaG90a2V5SG90c3RyaW5nT3B0aW9ucwotICAgICAgXCBjb250YWluZWQKLSAgICAgIFwgZGlzcGxheQotICAgICAgXCAnXCUoQjBcfEMxXHxLXGRcK1x8UFxkXCtcfFNbSVBFXVx8WlxkXD1cfFsqP0NPUl1cKScKKyAgICAgIFwgJ2BbLCVgO25yYnR2YWZdJwogCiBzeW4gcmVnaW9uIGF1dG9ob3RrZXlTdHJpbmcKICAgICAgIFwgZGlzcGxheQpAQCAtODgsMzkgKzMzLDQ2IEBACiAgICAgICBcIGVuZD0rIisKICAgICAgIFwgY29udGFpbnM9YXV0b2hvdGtleUVzY2FwZQogCi1zeW4gcmVnaW9uIGF1dG9ob3RrZXlWYXJpYWJsZQorc3luIG1hdGNoIGF1dG9ob3RrZXlWYXJpYWJsZQogICAgICAgXCBkaXNwbGF5CiAgICAgICBcIG9uZWxpbmUKICAgICAgIFwgY29udGFpbnM9YXV0b2hvdGtleUJ1aWx0aW5WYXJpYWJsZQotICAgICAgXCBtYXRjaGdyb3VwPWF1dG9ob3RrZXlWYXJpYWJsZURlbGltaXRlcgotICAgICAgXCBzdGFydD0iJSIKLSAgICAgIFwgZW5kPSIlIgogICAgICAgXCBrZWVwZW5kCisgICAgICBcICclXFNcey19JScKIAogc3luIGtleXdvcmQgYXV0b2hvdGtleUJ1aWx0aW5WYXJpYWJsZQogICAgICAgXCBBX1NwYWNlIEFfVGFiCi0gICAgICBcIEFfV29ya2luZ0RpciBBX1NjcmlwdERpciBBX1NjcmlwdE5hbWUgQV9TY3JpcHRGdWxsUGF0aCBBX0xpbmVOdW1iZXIKLSAgICAgIFwgQV9MaW5lRmlsZSBBX0Foa1ZlcnNpb24gQV9BaGtQQXRoIEFfSXNDb21waWxlZCBBX0V4aXRSZWFzb24KLSAgICAgIFwgQV9ZWVlZIEFfTU0gQV9ERCBBX01NTU0gQV9NTU0gQV9EREREIEFfREREIEFfV0RheSBBX1lXZWVrIEFfSG91ciBBX01pbgorICAgICAgXCBBX1dvcmtpbmdEaXIgQV9TY3JpcHREaXIgQV9TY3JpcHROYW1lIEFfU2NyaXB0RnVsbFBhdGggQV9TY3JpcHRId25kIEFfTGluZU51bWJlcgorICAgICAgXCBBX0xpbmVGaWxlIEFfVGhpc0Z1bmMgQV9UaGlzTGFiZWwgQV9BaGtWZXJzaW9uIEFfQWhrUGF0aCBBX0lzVW5pY29kZSBBX0lzQ29tcGlsZWQgQV9FeGl0UmVhc29uCisgICAgICBcIEFfWVlZWSBBX01NIEFfREQgQV9NTU1NIEFfTU1NIEFfRERERCBBX0RERCBBX1dEYXkgQV9ZRGF5IEFfWVdlZWsgQV9Ib3VyIEFfTWluCisgICAgICBcIEFfTW9uIEFfWWVhciBBX01EYXkgQV9OdW1CYXRjaExpbmVzCiAgICAgICBcIEFfU2VjIEFfTVNlYyBBX05vdyBBX05vd1VUQyBBX1RpY2tDb3VudAotICAgICAgXCBBX0lzU3VzcGVuZGVkIEFfQmF0Y2hMaW5lcyBBX1RpdGxlTWF0Y2hNb2RlIEFfVGl0bGVNYXRjaE1vZGVTcGVlZAotICAgICAgXCBBX0RldGVjdEhpZGRlbldpbmRvd3MgQV9EZXRlY3RIaWRkZW5UZXh0IEFfQXV0b1RyaW0gQV9TVHJpbmdDYXNlU2Vuc2UKLSAgICAgIFwgQV9Gb3JtYXRJbnRlZ2VyIEFfRm9ybWF0RmxvYXQgQV9LZXlEZWxheSBBX1dpbkRlbGF5IEFfQ29udHJvbERlbGF5Ci0gICAgICBcIEFfTW91c2VEZWxheSBBX0RlZmF1bHRNb3VzZVNwZWVkIEFfSWNvbkhpZGRlbiBBX0ljb25UaXAgQV9JY29uRmlsZQorICAgICAgXCBBX0lzU3VzcGVuZGVkIEFfSXNQYXVzZWQgQV9Jc0NyaXRpY2FsIEFfQmF0Y2hMaW5lcyBBX1RpdGxlTWF0Y2hNb2RlIEFfVGl0bGVNYXRjaE1vZGVTcGVlZAorICAgICAgXCBBX0RldGVjdEhpZGRlbldpbmRvd3MgQV9EZXRlY3RIaWRkZW5UZXh0IEFfQXV0b1RyaW0gQV9TdHJpbmdDYXNlU2Vuc2UKKyAgICAgIFwgQV9GaWxlRW5jb2RpbmcgQV9Gb3JtYXRJbnRlZ2VyIEFfRm9ybWF0RmxvYXQgQV9LZXlEZWxheSBBX1dpbkRlbGF5IEFfQ29udHJvbERlbGF5CisgICAgICBcIEFfU2VuZE1vZGUgQV9TZW5kTGV2ZWwgQV9TdG9yZUNhcHNMb2NrTW9kZSBBX0tleURlbGF5IEFfS2V5RGVsYXlEdXJhdGlvbgorICAgICAgXCBBX0tleURlbGF5UGxheSBBX0tleURlbGF5UGxheUR1cmF0aW9uIEFfTW91c2VEZWxheVBsYXkKKyAgICAgIFwgQV9Nb3VzZURlbGF5IEFfRGVmYXVsdE1vdXNlU3BlZWQgQV9SZWdWaWV3IEFfSWNvbkhpZGRlbiBBX0ljb25UaXAgQV9JY29uRmlsZQorICAgICAgXCBBX0Nvb3JkTW9kZVRvb2xUaXAgQV9Db29yZE1vZGVQaXhlbCBBX0Nvb3JkTW9kZU1vdXNlIEFfQ29vcmRNb2RlQ2FyZXQgQV9Db29yZE1vZGVNZW51CiAgICAgICBcIEFfSWNvbk51bWJlcgotICAgICAgXCBBX1RpbWVJZGxlIEFfVGltZUlkbGVQaHlzaWNhbAorICAgICAgXCBBX1RpbWVJZGxlIEFfVGltZUlkbGVQaHlzaWNhbCBBX0RlZmF1bHRHdWkgQV9EZWZhdWx0TGlzdFZpZXcgQV9EZWZhdWx0VHJlZVZpZXcKICAgICAgIFwgQV9HdWkgQV9HdWlDb250cm9sIEFfR3VpV2lkdGggQV9HdWlIZWlnaHQgQV9HdWlYIEFfR3VpWSBBX0d1aUV2ZW50CiAgICAgICBcIEFfR3VpQ29udHJvbEV2ZW50IEFfRXZlbnRJbmZvCiAgICAgICBcIEFfVGhpc01lbnVJdGVtIEFfVGhpc01lbnUgQV9UaGlzTWVudUl0ZW1Qb3MgQV9UaGlzSG90a2V5IEFfUHJpb3JIb3RrZXkKLSAgICAgIFwgQV9UaW1lU2luY2VUaGlzSG90a2V5IEFfVGltZVNpbmNlUHJpb3JIb3RrZXkgQV9FbmRDaGFyCisgICAgICBcIEFfUHJpb3JLZXkgQV9UaW1lU2luY2VUaGlzSG90a2V5IEFfVGltZVNpbmNlUHJpb3JIb3RrZXkgQV9FbmRDaGFyCiAgICAgICBcIENvbVNwZWMgQV9UZW1wIEFfT1NUeXBlIEFfT1NWZXJzaW9uIEFfTGFuZ3VhZ2UgQV9Db21wdXRlck5hbWUgQV9Vc2VyTmFtZQorICAgICAgXCBBX0lzNjRCaXRPUyBBX1B0clNpemUKICAgICAgIFwgQV9XaW5EaXIgQV9Qcm9ncmFtRmlsZXMgUHJvZ3JhbUZpbGVzIEFfQXBwRGF0YSBBX0FwcERhdGFDb21tb24gQV9EZXNrdG9wCiAgICAgICBcIEFfRGVza3RvcENvbW1vbiBBX1N0YXJ0TWVudSBBX1N0YXJ0TWVudUNvbW1vbiBBX1Byb2dyYW1zCiAgICAgICBcIEFfUHJvZ3JhbXNDb21tb24gQV9TdGFydHVwIEFfU3RhcnR1cENvbW1vbiBBX015RG9jdW1lbnRzIEFfSXNBZG1pbgotICAgICAgXCBBX1NjcmVlbldpZHRoIEFfU2NyZWVuSGVpZ2h0IEFfSVBBZGRyZXNzMSBBX0lQQWRkcmVzczIgQV9JUEFkZHJlc3MzCisgICAgICBcIEFfU2NyZWVuV2lkdGggQV9TY3JlZW5IZWlnaHQgQV9TY3JlZW5EUEkgQV9JUEFkZHJlc3MxIEFfSVBBZGRyZXNzMiBBX0lQQWRkcmVzczMKICAgICAgIFwgQV9JUEFkZHJlc3M0CiAgICAgICBcIEFfQ3Vyc29yIEFfQ2FyZXRYIEFfQ2FyZXRZIENsaXBib2FyZCBDbGlwYm9hcmRBbGwgRXJyb3JMZXZlbCBBX0xhc3RFcnJvcgogICAgICAgXCBBX0luZGV4IEFfTG9vcEZpbGVOYW1lIEFfTG9vcFJlZ05hbWUgQV9Mb29wUmVhZExpbmUgQV9Mb29wRmllbGQKKyAgICAgIFwgQV9Mb29wRmlsZUV4dCBBX0xvb3BGaWxlRnVsbFBhdGggQV9Mb29wRmlsZUxvbmdQYXRoIEFfTG9vcEZpbGVTaG9ydFBhdGgKKyAgICAgIFwgQV9Mb29wRmlsZVNob3J0TmFtZSBBX0xvb3BGaWxlRGlyIEFfTG9vcEZpbGVUaW1lTW9kaWZpZWQgQV9Mb29wRmlsZVRpbWVDcmVhdGVkCisgICAgICBcIEFfTG9vcEZpbGVUaW1lQWNjZXNzZWQgQV9Mb29wRmlsZUF0dHJpYiBBX0xvb3BGaWxlU2l6ZSBBX0xvb3BGaWxlU2l6ZUtCIEFfTG9vcEZpbGVTaXplTUIKKyAgICAgIFwgQV9Mb29wUmVnVHlwZSBBX0xvb3BSZWdLZXkgQV9Mb29wUmVnU3ViS2V5IEFfTG9vcFJlZ1RpbWVNb2RpZmllZAogCiBzeW4gbWF0Y2ggICBhdXRvaG90a2V5QnVpbHRpblZhcmlhYmxlCiAgICAgICBcIGNvbnRhaW5lZApAQCAtMTMwLDcgKzgyLDcgQEAKIHN5biBrZXl3b3JkIGF1dG9ob3RrZXlDb21tYW5kCiAgICAgICBcIENsaXBXYWl0IEVudkdldCBFbnZTZXQgRW52VXBkYXRlCiAgICAgICBcIERyaXZlIERyaXZlR2V0IERyaXZlU3BhY2VGcmVlIEZpbGVBcHBlbmQgRmlsZUNvcHkgRmlsZUNvcHlEaXIKLSAgICAgIFwgRmlsZUNyZWF0ZURpciBGaWxlQ3JlYXRlU2hvcnRjdXQgRmlsZURlbGV0ZSBGaWxlR2V0QXR0cmliCisgICAgICBcIEZpbGVDcmVhdGVEaXIgRmlsZUNyZWF0ZVNob3J0Y3V0IEZpbGVEZWxldGUgRmlsZUdldEF0dHJpYiBGaWxlRW5jb2RpbmcKICAgICAgIFwgRmlsZUdldFNob3J0Y3V0IEZpbGVHZXRTaXplIEZpbGVHZXRUaW1lIEZpbGVHZXRWZXJzaW9uIEZpbGVJbnN0YWxsCiAgICAgICBcIEZpbGVNb3ZlIEZpbGVNb3ZlRGlyIEZpbGVSZWFkTGluZSBGaWxlUmVhZCBGaWxlUmVjeWNsZSBGaWxlUmVjeWNsZUVtcHR5CiAgICAgICBcIEZpbGVSZW1vdmVEaXIgRmlsZVNlbGVjdEZvbGRlciBGaWxlU2VsZWN0RmlsZSBGaWxlU2V0QXR0cmliIEZpbGVTZXRUaW1lCkBAIC0xNTMsNyArMTA1LDcgQEAKICAgICAgIFwgU291bmRTZXRXYXZlVm9sdW1lCiAgICAgICBcIEZvcm1hdFRpbWUgSWZJblN0cmluZyBJZk5vdEluU3RyaW5nIFNvcnQgU3RyaW5nQ2FzZVNlbnNlIFN0cmluZ0dldFBvcwogICAgICAgXCBTdHJpbmdMZWZ0IFN0cmluZ1JpZ2h0IFN0cmluZ0xvd2VyIFN0cmluZ1VwcGVyIFN0cmluZ01pZCBTdHJpbmdSZXBsYWNlCi0gICAgICBcIFN0cmluZ1NwbGl0IFN0cmluZ1RyaW1MZWZ0IFN0cmluZ1RyaW1SaWdodAorICAgICAgXCBTdHJpbmdTcGxpdCBTdHJpbmdUcmltTGVmdCBTdHJpbmdUcmltUmlnaHQgU3RyaW5nTGVuCiAgICAgICBcIENvbnRyb2wgQ29udHJvbENsaWNrIENvbnRyb2xGb2N1cyBDb250cm9sR2V0IENvbnRyb2xHZXRGb2N1cwogICAgICAgXCBDb250cm9sR2V0UG9zIENvbnRyb2xHZXRUZXh0IENvbnRyb2xNb3ZlIENvbnRyb2xTZW5kIENvbnRyb2xTZW5kUmF3CiAgICAgICBcIENvbnRyb2xTZXRUZXh0IE1lbnUgUG9zdE1lc3NhZ2UgU2VuZE1lc3NhZ2UgU2V0Q29udHJvbERlbGF5CkBAIC0xNjQsMTIgKzExNiwxNiBAQAogICAgICAgXCBXaW5HZXRUZXh0IFdpbkdldFRpdGxlIFdpbkhpZGUgV2luS2lsbCBXaW5NYXhpbWl6ZSBXaW5NaW5pbWl6ZQogICAgICAgXCBXaW5NaW5pbWl6ZUFsbCBXaW5NaW5pbWl6ZUFsbFVuZG8gV2luTW92ZSBXaW5SZXN0b3JlIFdpblNldAogICAgICAgXCBXaW5TZXRUaXRsZSBXaW5TaG93IFdpbldhaXQgV2luV2FpdEFjdGl2ZSBXaW5XYWl0Tm90QWN0aXZlIFdpbldhaXRDbG9zZQorICAgICAgXCBTZXRDYXBzTG9ja1N0YXRlIFNldE51bUxvY2tTdGF0ZSBTZXRTY3JvbGxMb2NrU3RhdGUKIAogc3luIGtleXdvcmQgYXV0b2hvdGtleUZ1bmN0aW9uCiAgICAgICBcIEluU3RyIFJlZ0V4TWF0Y2ggUmVnRXhSZXBsYWNlIFN0ckxlbiBTdWJTdHIgQXNjIENocgogICAgICAgXCBEbGxDYWxsIFZhclNldENhcGFjaXR5IFdpbkFjdGl2ZSBXaW5FeGlzdCBJc0xhYmVsIE9uTWVzc2FnZSAKICAgICAgIFwgQWJzIENlaWwgRXhwIEZsb29yIExvZyBMbiBNb2QgUm91bmQgU3FydCBTaW4gQ29zIFRhbiBBU2luIEFDb3MgQVRhbgotICAgICAgXCBGaWxlRXhpc3QgR2V0S2V5U3RhdGUKKyAgICAgIFwgRmlsZUV4aXN0IEdldEtleVN0YXRlIE51bUdldCBOdW1QdXQgU3RyR2V0IFN0clB1dCBSZWdpc3RlckNhbGxiYWNrCisgICAgICBcIElzRnVuYyBUcmltIExUcmltIFJUcmltIElzT2JqZWN0IE9iamVjdCBBcnJheSBGaWxlT3BlbgorICAgICAgXCBDb21PYmpBY3RpdmUgQ29tT2JqQXJyYXkgQ29tT2JqQ29ubmVjdCBDb21PYmpDcmVhdGUgQ29tT2JqR2V0CisgICAgICBcIENvbU9iakVycm9yIENvbU9iakZsYWdzIENvbU9ialF1ZXJ5IENvbU9ialR5cGUgQ29tT2JqVmFsdWUgQ29tT2JqZWN0CiAKIHN5biBrZXl3b3JkIGF1dG9ob3RrZXlTdGF0ZW1lbnQKICAgICAgIFwgQnJlYWsgQ29udGludWUgRXhpdCBFeGl0QXBwIEdvc3ViIEdvdG8gT25FeGl0IFBhdXNlIFJldHVybgpAQCAtMTgwLDcgKzEzNiw5IEBACiAKIHN5biBrZXl3b3JkIGF1dG9ob3RrZXlDb25kaXRpb25hbAogICAgICAgXCBJZkV4aXN0IElmTm90RXhpc3QgSWYgSWZFcXVhbCBJZkxlc3MgSWZHcmVhdGVyIEVsc2UKLSAgICAgIFwgSWZXaW5FeGlzdCBJZldpbk5vdEV4aXN0CisgICAgICBcIElmV2luRXhpc3QgSWZXaW5Ob3RFeGlzdCBJZldpbkFjdGl2ZSBJZldpbk5vdEFjdGl2ZQorICAgICAgXCBJZk5vdEVxdWFsIElmTGVzc09yRXF1YWwgSWZHcmVhdGVyT3JFcXVhbAorICAgICAgXCB3aGlsZSB1bnRpbCBmb3IgaW4KIAogc3luIG1hdGNoICAgYXV0b2hvdGtleVByZVByb2NTdGFydAogICAgICAgXCBuZXh0Z3JvdXA9CkBAIC0yMDAsNiArMTU4LDcgQEAKICAgICAgIFwgSG90a2V5SW50ZXJ2YWwgSG90S2V5TW9kaWZpZXJUaW1lb3V0CiAgICAgICBcIEhvdHN0cmluZwogICAgICAgXCBJZldpbkFjdGl2ZSBJZldpbk5vdEFjdGl2ZSBJZldpbkV4aXN0IElmV2luTm90RXhpc3QKKyAgICAgIFwgSWYgSWZUaW1lb3V0CiAgICAgICBcIE1heEhvdGtleXNQZXJJbnRlcnZhbCBNYXhUaHJlYWRzIE1heFRocmVhZHNCdWZmZXIgTWF4VGhyZWFkc1BlckhvdGtleQogICAgICAgXCBVc2VIb29rIEluc3RhbGxLZXliZEhvb2sgSW5zdGFsbE1vdXNlSG9vawogICAgICAgXCBLZXlIaXN0b3J5CkBAIC0yMTMsNiArMTcyLDEwIEBACiAgICAgICBcIE1heE1lbQogICAgICAgXCBOb0VudgogICAgICAgXCBQZXJzaXN0ZW50CisgICAgICBcIExUcmltCisgICAgICBcIElucHV0TGV2ZWwKKyAgICAgIFwgTWVudU1hc2tLZXkKKyAgICAgIFwgV2FybgogCiBzeW4ga2V5d29yZCBhdXRvaG90a2V5TWF0Y2hDbGFzcwogICAgICAgXCBhaGtfZ3JvdXAgYWhrX2NsYXNzIGFoa19pZCBhaGtfcGlkCkBAIC0yNDMsMTEgKzIwNiw3NCBAQAogc3luIGtleXdvcmQgYXV0b2hvdGtleVR5cGUKICAgICAgIFwgbG9jYWwKICAgICAgIFwgZ2xvYmFsCisgICAgICBcIHN0YXRpYworICAgICAgXCBieXJlZgogCiBzeW4ga2V5d29yZCBhdXRvaG90a2V5Qm9vbGVhbgogICAgICAgXCB0cnVlCiAgICAgICBcIGZhbHNlCiAKK3N5biBtYXRjaCAgIGF1dG9ob3RrZXlIb3RrZXkKKyAgICAgIFwgY29udGFpbnM9YXV0b2hvdGtleUtleSwKKyAgICAgIFwgICBhdXRvaG90a2V5SG90a2V5RGVsaW1pdGVyCisgICAgICBcIGRpc3BsYXkKKyAgICAgIFwgJ14uXHstfTo6JworCitzeW4gbWF0Y2ggICBhdXRvaG90a2V5S2V5CisgICAgICBcIGNvbnRhaW5lZAorICAgICAgXCBkaXNwbGF5CisgICAgICBcICdeLlx7LX0nCisKK3N5biBtYXRjaCAgIGF1dG9ob3RrZXlEZWxpbWl0ZXIKKyAgICAgIFwgY29udGFpbmVkCisgICAgICBcIGRpc3BsYXkKKyAgICAgIFwgJzo6JworCisiIGFsbG93YWJsZSBob3RzdHJpbmcgb3B0aW9uczoKKyIgaHR0cHM6Ly9hdXRvaG90a2V5LmNvbS9kb2NzL0hvdHN0cmluZ3MuaHRtCitzeW4gbWF0Y2ggICBhdXRvaG90a2V5SG90c3RyaW5nRGVmaW5pdGlvbgorICAgICAgXCBjb250YWlucz1hdXRvaG90a2V5SG90c3RyaW5nLAorICAgICAgXCAgIGF1dG9ob3RrZXlIb3RzdHJpbmdEZWxpbWl0ZXIKKyAgICAgIFwgZGlzcGxheQorICAgICAgXCAnXlxzKjpcJShbKj9dXHxbQk9SWl0wXD9cfENbMDFdXD9cfEtcZFwrXHxQXGRcK1x8U1tJUEVdXCkqOi5cey19OjonCisKK3N5biBtYXRjaCAgIGF1dG9ob3RrZXlIb3RzdHJpbmcKKyAgICAgIFwgY29udGFpbmVkCisgICAgICBcIGRpc3BsYXkKKyAgICAgIFwgJy5cey19JworCitzeW4gbWF0Y2ggICBhdXRvaG90a2V5SG90c3RyaW5nRGVsaW1pdGVyCisgICAgICBcIGNvbnRhaW5lZAorICAgICAgXCBkaXNwbGF5CisgICAgICBcICc6OicKKworc3luIG1hdGNoICAgYXV0b2hvdGtleUhvdHN0cmluZ0RlbGltaXRlcgorICAgICAgXCBjb250YWlucz1hdXRvaG90a2V5SG90c3RyaW5nT3B0aW9ucworICAgICAgXCBjb250YWluZWQKKyAgICAgIFwgZGlzcGxheQorICAgICAgXCAnOlwlKFsqP11cfFtCT1JaXTBcP1x8Q1swMV1cP1x8S1xkXCtcfFBcZFwrXHxTW0lQRV1cKSo6JworCitzeW4gbWF0Y2ggICBhdXRvaG90a2V5SG90c3RyaW5nT3B0aW9ucworICAgICAgXCBjb250YWluZWQKKyAgICAgIFwgZGlzcGxheQorICAgICAgXCAnXCUoWyo/XVx8W0JPUlpdMFw/XHxDWzAxXVw/XHxLXGRcK1x8UFxkXCtcfFNbSVBFXVwpKicKKworc3luIGNsdXN0ZXIgYXV0b2hvdGtleUNvbW1lbnRHcm91cAorICAgICAgXCBjb250YWlucz0KKyAgICAgIFwgICBhdXRvaG90a2V5VG9kbywKKyAgICAgIFwgICBAU3BlbGwKKworc3luIG1hdGNoICAgYXV0b2hvdGtleUNvbW1lbnQKKyAgICAgIFwgZGlzcGxheQorICAgICAgXCBjb250YWlucz1AYXV0b2hvdGtleUNvbW1lbnRHcm91cAorICAgICAgXCAnXCUoXjtcfFxzXCs7XCkuKiQnCisKK3N5biByZWdpb24gIGF1dG9ob3RrZXlDb21tZW50CisgICAgICBcIGNvbnRhaW5zPUBhdXRvaG90a2V5Q29tbWVudEdyb3VwCisgICAgICBcIG1hdGNoZ3JvdXA9YXV0b2hvdGtleUNvbW1lbnRTdGFydAorICAgICAgXCBzdGFydD0nXlxzKi9cKicKKyAgICAgIFwgZW5kPSdeXHMqXCovJworCiAiIFRPRE86IFNob3VsZG4ndCB3ZSBsb29rIGZvciBnOiwgYjosICB2YXJpYWJsZXMgYmVmb3JlIGRlZmF1bHRpbmcgdG8KICIgc29tZXRoaW5nPwogaWYgZXhpc3RzKCJnOmF1dG9ob3RrZXlfc3ludGF4X3N5bmNfbWlubGluZXMiKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvaHRtbC52aW0gYi9ydW50aW1lL3N5bnRheC9odG1sLnZpbQppbmRleCBiMTY4NzUwLi40OWQzYWI0IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9odG1sLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9odG1sLnZpbQpAQCAtMyw3ICszLDcgQEAKICIgTWFpbnRhaW5lcjogICAgICAgICAgIEpvcmdlIE1hbGRvbmFkbyBWZW50dXJhIDxqb3JnZXN1bWxlQGZyZWFrc3BvdC5uZXQ+CiAiIFByZXZpb3VzIE1haW50YWluZXI6ICBDbGF1ZGlvIEZsZWluZXIgPGNsYXVkaW9AZmxlaW5lci5jb20+CiAiIFJlcG9zaXRvcnk6ICAgICAgICAgICBodHRwczovL25vdGFidWcub3JnL2pvcmdlc3VtbGUvdmltLWh0bWwtc3ludGF4Ci0iIExhc3QgQ2hhbmdlOiAgICAgICAgICAyMDE3IEphbiAwNAorIiBMYXN0IENoYW5nZTogICAgICAgICAgMjAxNyBKYW4gMjEKICIgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVkIHBhdGNoIGZyb20gSm9yZ2UgTWFsZG9uYWRvIFZlbnR1cmEKIAogIiBQbGVhc2UgY2hlY2sgOmhlbHAgaHRtbC52aW0gZm9yIHNvbWUgY29tbWVudHMgYW5kIGEgZGVzY3JpcHRpb24gb2YgdGhlIG9wdGlvbnMKQEAgLTU1LDkgKzU1LDkgQEAKIHN5biBrZXl3b3JkIGh0bWxUYWdOYW1lIGNvbnRhaW5lZCBvYmplY3Qgb3B0Z3JvdXAgcSBzIHRib2R5IHRmb290IHRoZWFkCiAKICIgbmV3IGh0bWwgNSB0YWdzCi1zeW4ga2V5d29yZCBodG1sVGFnTmFtZSBjb250YWluZWQgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGFsaXN0Ci1zeW4ga2V5d29yZCBodG1sVGFnTmFtZSBjb250YWluZWQgZGV0YWlscyBlbWJlZCBmaWdjYXB0aW9uIGZpZ3VyZQotc3luIGtleXdvcmQgaHRtbFRhZ05hbWUgY29udGFpbmVkIGZvb3RlciBoZWFkZXIgaGdyb3VwIG1haW4gbWFyaworc3luIGtleXdvcmQgaHRtbFRhZ05hbWUgY29udGFpbmVkIGFydGljbGUgYXNpZGUgYXVkaW8gYmRpIGNhbnZhcyBkYXRhCitzeW4ga2V5d29yZCBodG1sVGFnTmFtZSBjb250YWluZWQgZGF0YWxpc3QgZGV0YWlscyBlbWJlZCBmaWdjYXB0aW9uIGZpZ3VyZQorc3luIGtleXdvcmQgaHRtbFRhZ05hbWUgY29udGFpbmVkIGZvb3RlciBoZWFkZXIgaGdyb3VwIGtleWdlbiBtYWluIG1hcmsKIHN5biBrZXl3b3JkIGh0bWxUYWdOYW1lIGNvbnRhaW5lZCBtZW51aXRlbSBtZXRlciBuYXYgb3V0cHV0IHBpY3R1cmUKIHN5biBrZXl3b3JkIGh0bWxUYWdOYW1lIGNvbnRhaW5lZCBwcm9ncmVzcyByYiBycCBydCBydGMgcnVieSBzZWN0aW9uCiBzeW4ga2V5d29yZCBodG1sVGFnTmFtZSBjb250YWluZWQgc2xvdCBzb3VyY2UgdGVtcGxhdGUgdGltZSB0cmFjayB2aWRlbyB3YnIKQEAgLTk3LDggKzk3LDE3IEBACiBzeW4ga2V5d29yZCBodG1sQXJnIGNvbnRhaW5lZCBzdW1tYXJ5IHRhYmluZGV4IHZhbHVldHlwZSB2ZXJzaW9uCiAKICIgaHRtbCA1IGFyZyBuYW1lcwotc3luIGtleXdvcmQgaHRtbEFyZyBjb250YWluZWQgY29udGVudGVkaXRhYmxlIGNvbnRleHRtZW51IGRyYWdnYWJsZSBkcm9wem9uZQotc3luIGtleXdvcmQgaHRtbEFyZyBjb250YWluZWQgaGlkZGVuIHNwZWxsY2hlY2sgdGl0bGUgdHJhbnNsYXRlCitzeW4ga2V5d29yZCBodG1sQXJnIGNvbnRhaW5lZCBhbGxvd2Z1bGxzY3JlZW4gYXN5bmMgYXV0b2NvbXBsZXRlIGF1dG9mb2N1cworc3luIGtleXdvcmQgaHRtbEFyZyBjb250YWluZWQgYXV0b3BsYXkgY2hhbGxlbmdlIGNvbnRlbnRlZGl0YWJsZSBjb250ZXh0bWVudQorc3luIGtleXdvcmQgaHRtbEFyZyBjb250YWluZWQgY29udHJvbHMgY3Jvc3NvcmlnaW4gZGVmYXVsdCBkaXJuYW1lIGRvd25sb2FkCitzeW4ga2V5d29yZCBodG1sQXJnIGNvbnRhaW5lZCBkcmFnZ2FibGUgZHJvcHpvbmUgZm9ybSBmb3JtYWN0aW9uIGZvcm1lbmN0eXBlCitzeW4ga2V5d29yZCBodG1sQXJnIGNvbnRhaW5lZCBmb3JtbWV0aG9kIGZvcm1ub3ZhbGlkYXRlIGZvcm10YXJnZXQgaGlkZGVuCitzeW4ga2V5d29yZCBodG1sQXJnIGNvbnRhaW5lZCBoaWdoIGljb24gaW5wdXRtb2RlIGtleXR5cGUga2luZCBsaXN0IGxvb3AgbG93CitzeW4ga2V5d29yZCBodG1sQXJnIGNvbnRhaW5lZCBtYXggbWluIG1pbmxlbmd0aCBtdXRlZCBub25jZSBub3ZhbGlkYXRlIG9wZW4KK3N5biBrZXl3b3JkIGh0bWxBcmcgY29udGFpbmVkIG9wdGltdW0gcGF0dGVybiBwbGFjZWhvbGRlciBwb3N0ZXIgcHJlbG9hZAorc3luIGtleXdvcmQgaHRtbEFyZyBjb250YWluZWQgcmFkaW9ncm91cCByZXF1aXJlZCByZXZlcnNlZCBzYW5kYm94IHNwZWxsY2hlY2sKK3N5biBrZXl3b3JkIGh0bWxBcmcgY29udGFpbmVkIHNpemVzIHNyY3NldCBzcmNkb2Mgc3JjbGFuZyBzdGVwIHRpdGxlIHRyYW5zbGF0ZQorc3luIGtleXdvcmQgaHRtbEFyZyBjb250YWluZWQgdHlwZW11c3RtYXRjaAogCiAiIHNwZWNpYWwgY2hhcmFjdGVycwogc3luIG1hdGNoIGh0bWxTcGVjaWFsQ2hhciAiJiNcPVswLTlBLVphLXpdXHsxLDh9OyIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L21hdGxhYi52aW0gYi9ydW50aW1lL3N5bnRheC9tYXRsYWIudmltCmluZGV4IDkyZmZiYmMuLjUyMjhiYjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L21hdGxhYi52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbWF0bGFiLnZpbQpAQCAtMSwxMSArMSwxMyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CU1hdGxhYgotIiBNYWludGFpbmVyOglNYXVyaXppbyBUcmFuY2hlcm8gLSBtYXVyaXppbyguKXRyYW5jaGVybyhAKWdtYWlsKC4pY29tCisiIE1haW50YWluZXI6CUFsZXggQnVya2EgPHZpbUBhbGV4YnVya2EuY29tPgogIiBDcmVkaXRzOglQcmViZW4gJ1BlcHBlJyBHdWxkYmVyZyA8cGVwcGUtdmltQHdpZWxkZXJzLm9yZz4KKyIJCU1hdXJpemlvIFRyYW5jaGVybyAtIG1hdXJpemlvKC4pdHJhbmNoZXJvKEApZ21haWwoLiljb20KICIJCU9yaWdpbmFsIGF1dGhvcjogTWFyaW8gRXVzZWJpbwotIiBMYXN0IENoYW5nZToJV2VkIEphbiAxMyAxMToxMjozNCBDRVQgMjAxMAotIiAJCXNpbmggYWRkZWQgdG8gbWF0bGFiIGltcGxpY2l0IGNvbW1hbmRzCisiIExhc3QgQ2hhbmdlOglNb24gSmFuIDIzIDIwMTcKKyIgCQlhZGRlZCBzdXBwb3J0IGZvciBjZWxsIG1vZGUKICIgQ2hhbmdlIEhpc3Rvcnk6CisiIAkJLSBub3cgaGlnaGxpZ2h0cyBjZWxsLW1vZGUgc2VwYXJhdG9yIGNvbW1lbnRzCiAiIAkJLSAnZ2xvYmFsJyBhbmQgJ3BlcnNpc3RlbnQnIGtleXdvcmQgYXJlIG5vdyByZWNvZ25pemVkCiAKICIgcXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCkBAIC02MCw2ICs2Miw3IEBACiAiIE1UX0FERE9OIC0gY29ycmVjdGx5IGhpZ2hsaWdodHMgd29yZHMgYWZ0ZXIgJy4uLicgYXMgY29tbWVudHMKIHN5biBtYXRjaCBtYXRsYWJDb21tZW50CQkJIlwuXC5cLi4qJCIJY29udGFpbnM9bWF0bGFiVG9kbyxtYXRsYWJUYWIKIHN5biByZWdpb24gbWF0bGFiTXVsdGlsaW5lQ29tbWVudAlzdGFydD0rJXsrIGVuZD0rJX0rIGNvbnRhaW5zPW1hdGxhYlRvZG8sbWF0bGFiVGFiCitzeW4gbWF0Y2ggbWF0bGFiQ2VsbENvbW1lbnQgICAgICJeJSUuKiQiCiAKIHN5biBrZXl3b3JkIG1hdGxhYk9wZXJhdG9yCQlicmVhayB6ZXJvcyBkZWZhdWx0IG1hcmdpbiByb3VuZCBvbmVzIHJhbmQKIHN5biBrZXl3b3JkIG1hdGxhYk9wZXJhdG9yCQljZWlsIGZsb29yIHNpemUgY2xlYXIgemVyb3MgZXllIG1lYW4gc3RkIGNvdgpAQCAtOTYsNiArOTksNyBAQAogaGkgZGVmIGxpbmsgbWF0bGFiU2VtaWNvbG9uCQlTcGVjaWFsQ2hhcgogaGkgZGVmIGxpbmsgbWF0bGFiQ29tbWVudAkJCUNvbW1lbnQKIGhpIGRlZiBsaW5rIG1hdGxhYk11bHRpbGluZUNvbW1lbnQJCUNvbW1lbnQKK2hpIGRlZiBsaW5rIG1hdGxhYkNlbGxDb21tZW50ICAgICAgICAgIFRvZG8KIGhpIGRlZiBsaW5rIG1hdGxhYlNjb3BlCQkJVHlwZQogCiBoaSBkZWYgbGluayBtYXRsYWJBcml0aG1ldGljT3BlcmF0b3IJbWF0bGFiT3BlcmF0b3IKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L25hc20udmltIGIvcnVudGltZS9zeW50YXgvbmFzbS52aW0KaW5kZXggZDY0ODUwOC4uNGY3MGEwZiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbmFzbS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbmFzbS52aW0KQEAgLTEsOSArMSwxMCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CU5BU00gLSBUaGUgTmV0d2lkZSBBc3NlbWJsZXIgKHYwLjk4KQotIiBNYWludGFpbmVyOglBbmRyaXkgU29rb2xvdgk8YW5kcml5MTQ1QGdtYWlsLmNvbT4KKyIgTWFpbnRhaW5lcjoJQW5kcmlpIFNva29sb3YJPGFuZHJpeTE0NUBnbWFpbC5jb20+CiAiIE9yaWdpbmFsIEF1dGhvcjoJTWFudWVsIE0uSC4gU3RvbAk8TWFudWVsLlN0b2xAYWxsaWVkZGF0YS5ubD4KICIgRm9ybWVyIE1haW50YWluZXI6CU1hbnVlbCBNLkguIFN0b2wJPE1hbnVlbC5TdG9sQGFsbGllZGRhdGEubmw+Ci0iIExhc3QgQ2hhbmdlOgkyMDEyIEZlYiA3CisiIENvbnRyaWJ1dG9yczogTGVvbmFyZCBLw7ZuaWcgPGxlb25hcmQuci5rb2VuaWdAZ21haWwuY29tPiAoQyBzdHJpbmcgaGlnaGxpZ2h0aW5nKQorIiBMYXN0IENoYW5nZToJMjAxNyBKYW4gMjMKICIgTkFTTSBIb21lOglodHRwOi8vd3d3Lm5hc20udXMvCiAKIApAQCAtNjcsOCArNjgsMjMgQEAKIAogCiAiIENvbnN0YW50czoKLXN5biBtYXRjaCAgIG5hc21TdHJpbmdFcnJvcgkrWyInXSsKK3N5biBtYXRjaCAgIG5hc21TdHJpbmdFcnJvcgkrWyInYF0rCisiIE5BU00gaXMgY2FzZSBzZW5zaXRpdmUgaGVyZTogZWcuIHUtcHJlZml4IGFsbG93cyBmb3IgNC1kaWdpdCwgVS1wcmVmaXggZm9yCisiIDgtZGlnaXQgVW5pY29kZSBjaGFyYWN0ZXJzCitzeW4gY2FzZSBtYXRjaAorIiBvbmUtY2hhciBlc2NhcGUtc2VxdWVuY2VzCitzeW4gbWF0Y2ggICBuYXNtQ1N0cmluZ0VzY2FwZSAgZGlzcGxheSBjb250YWluZWQgIlxcW+KAmSLigJhcXFw/YWJ0bnZmcmVdIgorIiBoZXggYW5kIG9jdGFsIG51bWJlcnMKK3N5biBtYXRjaCAgIG5hc21DU3RyaW5nRXNjYXBlICBkaXNwbGF5IGNvbnRhaW5lZCAiXFxcKHhceFx7Mn1cfFxvXHsxLDN9XCkiCisiIFVuaWNvZGUgY2hhcmFjdGVycworc3luIG1hdGNoICAgbmFzbUNTdHJpbmdFc2NhcGUJZGlzcGxheSBjb250YWluZWQgIlxcXCh1XHhcezR9XHxVXHhcezh9XCkiCisiIElTTyBDOTkgZm9ybWF0IHN0cmluZ3MgKGNvcGllZCBmcm9tIGNGb3JtYXQgaW4gcnVudGltZS9zeW50YXgvYy52aW0pCitzeW4gbWF0Y2ggICBuYXNtQ1N0cmluZ0Zvcm1hdAlkaXNwbGF5ICIlXChcZFwrXCRcKVw9Wy0rJyAjMCpdKlwoXGQqXHxcKlx8XCpcZFwrXCRcKVwoXC5cKFxkKlx8XCpcfFwqXGRcK1wkXClcKVw9XChbaGxManp0XVx8bGxcfGhoXClcPVwoW2FBYmRpdW94WERPVWZGZUVnR2NDc1Nwbl1cfFxbXF5cPS5bXl1dKlxdXCkiIGNvbnRhaW5lZAorc3luIG1hdGNoICAgbmFzbUNTdHJpbmdGb3JtYXQJZGlzcGxheSAiJSUiIGNvbnRhaW5lZAogc3luIG1hdGNoICAgbmFzbVN0cmluZwkJK1woIlteIl1cey19Ilx8J1teJ11cey19J1wpKworIiBIaWdobGlnaHQgQyBlc2NhcGUtIGFuZCBmb3JtYXQtc2VxdWVuY2VzIHdpdGhpbiBgYC1zdHJpbmdzCitzeW4gbWF0Y2ggICBuYXNtQ1N0cmluZwkrXChgW15gXVx7LX1gXCkrIGNvbnRhaW5zPW5hc21DU3RyaW5nRXNjYXBlLG5hc21DU3RyaW5nRm9ybWF0IGV4dGVuZAorc3luIGNhc2UgaWdub3JlCiBzeW4gbWF0Y2ggICBuYXNtQmluTnVtYmVyCSJcPFswLTFdXCtiXD4iCiBzeW4gbWF0Y2ggICBuYXNtQmluTnVtYmVyCSJcPFx+WzAtMV1cK2JcPiJsYz0xCiBzeW4gbWF0Y2ggICBuYXNtT2N0TnVtYmVyCSJcPFxvXCtxXD4iCkBAIC00NDMsNyArNDU5LDEwIEBACiAKICIgQ29uc3RhbnQgR3JvdXA6CiBoaSBkZWYgbGluayBuYXNtU3RyaW5nCQlTdHJpbmcKK2hpIGRlZiBsaW5rIG5hc21DU3RyaW5nCVN0cmluZwogaGkgZGVmIGxpbmsgbmFzbVN0cmluZ0Vycm9yCUVycm9yCitoaSBkZWYgbGluayBuYXNtQ1N0cmluZ0VzY2FwZQlTcGVjaWFsQ2hhcgoraGkgZGVmIGxpbmsgbmFzbUNTdHJpbmdGb3JtYXQJU3BlY2lhbENoYXIKIGhpIGRlZiBsaW5rIG5hc21CaW5OdW1iZXIJCU51bWJlcgogaGkgZGVmIGxpbmsgbmFzbU9jdE51bWJlcgkJTnVtYmVyCiBoaSBkZWYgbGluayBuYXNtRGVjTnVtYmVyCQlOdW1iZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NoLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NoLnZpbQppbmRleCAyZjg4MGJiLi40Y2RjZWQwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zaC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc2gudmltCkBAIC0yLDggKzIsOCBAQAogIiBMYW5ndWFnZToJCXNoZWxsIChzaCkgS29ybiBzaGVsbCAoa3NoKSBiYXNoIChzaCkKICIgTWFpbnRhaW5lcjoJCUNoYXJsZXMgRS4gQ2FtcGJlbGwgIDxOZHJPY2hpcFNAUGNhbXBiZWxsQWZhbWlseS5NYml6PgogIiBQcmV2aW91cyBNYWludGFpbmVyOglMZW5uYXJ0IFNjaHVsdHogPExlbm5hcnQuU2NodWx0ekBlY213Zi5pbnQ+Ci0iIExhc3QgQ2hhbmdlOgkJU2VwIDIyLCAyMDE2Ci0iIFZlcnNpb246CQkxNjUKKyIgTGFzdCBDaGFuZ2U6CQlKYW4gMDMsIDIwMTcKKyIgVmVyc2lvbjoJCTE2NwogIiBVUkw6CQlodHRwOi8vd3d3LmRyY2hpcC5vcmcvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI1NZTlRBWF9TSAogIiBGb3Igb3B0aW9ucyBhbmQgc2V0dGluZ3MsIHBsZWFzZSB1c2U6ICAgICAgOmhlbHAgZnQtc2gtc3ludGF4CiAiIFRoaXMgZmlsZSBpbmNsdWRlcyBtYW55IGlkZWFzIGZyb20gRXJpYyBCcnVuZXQgKGVyaWMuYnJ1bmV0QGVucy5mcikKQEAgLTMwNSw3ICszMDUsNyBAQAogIHN5biBjbHVzdGVyIHNoQ29tbWFuZFN1Ykxpc3QgYWRkPWJhc2hTcGVjaWFsVmFyaWFibGVzLGJhc2hTdGF0ZW1lbnQKICBzeW4gY2x1c3RlciBzaENhc2VMaXN0IGFkZD1iYXNoQWRtaW5TdGF0ZW1lbnQsYmFzaFN0YXRlbWVudAogIHN5biBrZXl3b3JkIGJhc2hTcGVjaWFsVmFyaWFibGVzIGNvbnRhaW5lZCBhdXRvX3Jlc3VtZSBCQVNIIEJBU0hfQUxJQVNFUyBCQVNIX0FMSUFTRVMgQkFTSF9BUkdDIEJBU0hfQVJHQyBCQVNIX0FSR1YgQkFTSF9BUkdWIEJBU0hfQ01EUyBCQVNIX0NNRFMgQkFTSF9DT01NQU5EIEJBU0hfQ09NTUFORCBCQVNIX0VOViBCQVNIX0VYRUNVVElPTl9TVFJJTkcgQkFTSF9FWEVDVVRJT05fU1RSSU5HIEJBU0hfTElORU5PIEJBU0hfTElORU5PIEJBU0hPUFRTIEJBU0hPUFRTIEJBU0hQSUQgQkFTSFBJRCBCQVNIX1JFTUFUQ0ggQkFTSF9SRU1BVENIIEJBU0hfU09VUkNFIEJBU0hfU09VUkNFIEJBU0hfU1VCU0hFTEwgQkFTSF9TVUJTSEVMTCBCQVNIX1ZFUlNJTkZPIEJBU0hfVkVSU0lPTiBCQVNIX1hUUkFDRUZEIEJBU0hfWFRSQUNFRkQgQ0RQQVRIIENPTFVNTlMgQ09MVU1OUyBDT01QX0NXT1JEIENPTVBfQ1dPUkQgQ09NUF9LRVkgQ09NUF9LRVkgQ09NUF9MSU5FIENPTVBfTElORSBDT01QX1BPSU5UIENPTVBfUE9JTlQgQ09NUFJFUExZIENPTVBSRVBMWSBDT01QX1RZUEUgQ09NUF9UWVBFIENPTVBfV09SREJSRUFLUyBDT01QX1dPUkRCUkVBS1MgQ09NUF9XT1JEUyBDT01QX1dPUkRTIENPUFJPQyBDT1BST0MgRElSU1RBQ0sgRU1BQ1MgRU1BQ1MgRU5WIEVOViBFVUlEIEZDRURJVCBGSUdOT1JFIEZVTkNOQU1FIEZVTkNOQU1FIEZVTkNORVNUIEZVTkNORVNUIEdMT0JJR05PUkUgR1JPVVBTIGhpc3RjaGFycyBISVNUQ01EIEhJU1RDT05UUk9MIEhJU1RGSUxFIEhJU1RGSUxFU0laRSBISVNUSUdOT1JFIEhJU1RTSVpFIEhJU1RUSU1FRk9STUFUIEhJU1RUSU1FRk9STUFUIEhPTUUgSE9TVEZJTEUgSE9TVE5BTUUgSE9TVFRZUEUgSUZTIElHTk9SRUVPRiBJTlBVVFJDIExBTkcgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfQ1RZUEUgTENfTUVTU0FHRVMgTENfTlVNRVJJQyBMQ19OVU1FUklDIExJTkVOTyBMSU5FUyBMSU5FUyBNQUNIVFlQRSBNQUlMIE1BSUxDSEVDSyBNQUlMUEFUSCBNQVBGSUxFIE1BUEZJTEUgT0xEUFdEIE9QVEFSRyBPUFRFUlIgT1BUSU5EIE9TVFlQRSBQQVRIIFBJUEVTVEFUVVMgUE9TSVhMWV9DT1JSRUNUIFBPU0lYTFlfQ09SUkVDVCBQUElEIFBST01QVF9DT01NQU5EIFBTMSBQUzIgUFMzIFBTNCBQV0QgUkFORE9NIFJFQURMSU5FX0xJTkUgUkVBRExJTkVfTElORSBSRUFETElORV9QT0lOVCBSRUFETElORV9QT0lOVCBSRVBMWSBTRUNPTkRTIFNIRUxMIFNIRUxMIFNIRUxMT1BUUyBTSExWTCBUSU1FRk9STUFUIFRJTUVPVVQgVE1QRElSIFRNUERJUiBVSUQKLSBzeW4ga2V5d29yZCBiYXNoU3RhdGVtZW50IGNobW9kIGNsZWFyIGNvbXBsZXRlIGR1IGVncmVwIGV4cHIgZmdyZXAgZmluZCBnbnVmaW5kIGdudWdyZXAgZ3JlcCBsZXNzIGxzIG1rZGlyIG12IHJtIHJtZGlyIHJwbSBzZWQgc2xlZXAgc29ydCBzdHJpcCB0YWlsIAorIHN5biBrZXl3b3JkIGJhc2hTdGF0ZW1lbnQgY2htb2QgY2xlYXIgY29tcGxldGUgZHUgZWdyZXAgZXhwciBmZ3JlcCBmaW5kIGdudWZpbmQgZ251Z3JlcCBncmVwIGxlc3MgbHMgbWtkaXIgbXYgcm0gcm1kaXIgcnBtIHNlZCBzbGVlcCBzb3J0IHN0cmlwIHRhaWwKICBzeW4ga2V5d29yZCBiYXNoQWRtaW5TdGF0ZW1lbnQgZGFlbW9uIGtpbGxhbGwga2lsbHByb2MgbmljZSByZWxvYWQgcmVzdGFydCBzdGFydCBzdGF0dXMgc3RvcAogIHN5biBrZXl3b3JkIGJhc2hTdGF0ZW1lbnQJY29tbWFuZCBjb21wZ2VuCiBlbmRpZgpAQCAtMzc2LDggKzM3Niw4IEBACiBTaEZvbGRIZXJlRG9jIHN5biByZWdpb24gc2hIZXJlRG9jIG1hdGNoZ3JvdXA9c2hIZXJlRG9jMDcgc3RhcnQ9Ijw8XHMqXFxcXyRcX3MqXHooW14gXHR8Pl1cK1wpIgkJbWF0Y2hncm91cD1zaEhlcmVEb2MwNyBlbmQ9Il5cejFccyokIiAgICAgICAgICAgY29udGFpbnM9QHNoRGJsUXVvdGVMaXN0CiBTaEZvbGRIZXJlRG9jIHN5biByZWdpb24gc2hIZXJlRG9jIG1hdGNoZ3JvdXA9c2hIZXJlRG9jMDggc3RhcnQ9Ijw8XHMqXFxcXyRcX3MqJ1x6KFteIFx0fD5dXCtcKSciCW1hdGNoZ3JvdXA9c2hIZXJlRG9jMDggZW5kPSJeXHoxXHMqJCIKIFNoRm9sZEhlcmVEb2Mgc3luIHJlZ2lvbiBzaEhlcmVEb2MgbWF0Y2hncm91cD1zaEhlcmVEb2MwOSBzdGFydD0iPDxccypcXFxfJFxfcypcIlx6KFteIFx0fD5dXCtcKVwiIgltYXRjaGdyb3VwPXNoSGVyZURvYzA5IGVuZD0iXlx6MVxzKiQiCi1TaEZvbGRIZXJlRG9jIHN5biByZWdpb24gc2hIZXJlRG9jIG1hdGNoZ3JvdXA9c2hIZXJlRG9jMTAgc3RhcnQ9Ijw8LVxzKlxcXF8kXF9zKlx6KFteIFx0fD5dXCtcKSIJbWF0Y2hncm91cD1zaEhlcmVEb2MxMCBlbmQ9Il5ccypcejFccyokIgkKLVNoRm9sZEhlcmVEb2Mgc3luIHJlZ2lvbiBzaEhlcmVEb2MgbWF0Y2hncm91cD1zaEhlcmVEb2MxMSBzdGFydD0iPDwtXHMqXFxcXyRcX3MqXFxceihbXiBcdHw+XVwrXCkiCW1hdGNoZ3JvdXA9c2hIZXJlRG9jMTEgZW5kPSJeXHMqXHoxXHMqJCIJCitTaEZvbGRIZXJlRG9jIHN5biByZWdpb24gc2hIZXJlRG9jIG1hdGNoZ3JvdXA9c2hIZXJlRG9jMTAgc3RhcnQ9Ijw8LVxzKlxcXF8kXF9zKlx6KFteIFx0fD5dXCtcKSIJbWF0Y2hncm91cD1zaEhlcmVEb2MxMCBlbmQ9Il5ccypcejFccyokIgorU2hGb2xkSGVyZURvYyBzeW4gcmVnaW9uIHNoSGVyZURvYyBtYXRjaGdyb3VwPXNoSGVyZURvYzExIHN0YXJ0PSI8PC1ccypcXFxfJFxfcypcXFx6KFteIFx0fD5dXCtcKSIJbWF0Y2hncm91cD1zaEhlcmVEb2MxMSBlbmQ9Il5ccypcejFccyokIgogU2hGb2xkSGVyZURvYyBzeW4gcmVnaW9uIHNoSGVyZURvYyBtYXRjaGdyb3VwPXNoSGVyZURvYzEyIHN0YXJ0PSI8PC1ccypcXFxfJFxfcyonXHooW14gXHR8Pl1cK1wpJyIJbWF0Y2hncm91cD1zaEhlcmVEb2MxMiBlbmQ9Il5ccypcejFccyokIgogU2hGb2xkSGVyZURvYyBzeW4gcmVnaW9uIHNoSGVyZURvYyBtYXRjaGdyb3VwPXNoSGVyZURvYzEzIHN0YXJ0PSI8PC1ccypcXFxfJFxfcypcIlx6KFteIFx0fD5dXCtcKVwiIgltYXRjaGdyb3VwPXNoSGVyZURvYzEzIGVuZD0iXlxzKlx6MVxzKiQiCiBTaEZvbGRIZXJlRG9jIHN5biByZWdpb24gc2hIZXJlRG9jIG1hdGNoZ3JvdXA9c2hIZXJlRG9jMTQgc3RhcnQ9Ijw8XFxceihbXiBcdHw+XVwrXCkiCQltYXRjaGdyb3VwPXNoSGVyZURvYzE0IGVuZD0iXlx6MVxzKiQiCkBAIC0zODYsNyArMzg2LDcgQEAKICIgSGVyZSBTdHJpbmdzOiB7e3sxCiAiID09PT09PT09PT09PT0KICIgYXZhaWxhYmxlIGZvcjogYmFzaDsga3NoIChyZWFsbHkgc2hvdWxkIGJlIGtzaDkzIG9ubHkpIGJ1dCBub3QgaWYgaXRzIGEgcG9zaXgKLWlmIGV4aXN0cygiYjppc19iYXNoIikgfHwgKGV4aXN0cygiYjppc19rb3Juc2hlbGwiKSAmJiAhZXhpc3RzKCJnOmlzX3Bvc2l4IikpCitpZiBleGlzdHMoImI6aXNfYmFzaCIpIHx8IChleGlzdHMoImI6aXNfa29ybnNoZWxsIikgJiYgIWV4aXN0cygiYjppc19wb3NpeCIpKQogIHN5biBtYXRjaCBzaEhlcmVTdHJpbmcgIjw8PCIJc2tpcHdoaXRlCW5leHRncm91cD1zaENtZFBhcmVuUmVnaW9uCiBlbmRpZgogCkBAIC00MDcsNyArNDA3LDcgQEAKIGVuZGlmCiAKICIgRnVuY3Rpb25zOiB7e3sxCi1pZiAhZXhpc3RzKCJnOmlzX3Bvc2l4IikKK2lmICFleGlzdHMoImI6aXNfcG9zaXgiKQogIHN5biBrZXl3b3JkIHNoRnVuY3Rpb25LZXkgZnVuY3Rpb24Jc2tpcHdoaXRlIHNraXBubCBuZXh0Z3JvdXA9c2hGdW5jdGlvblR3bwogZW5kaWYKIApAQCAtNTMzLDcgKzUzMyw3IEBACiAiID09PT09PT09PT09PT09PT09PT09CiBpZiBleGlzdHMoImI6aXNfa29ybnNoZWxsIikgfHwgZXhpc3RzKCJiOmlzX2Jhc2giKQogIHN5biBrZXl3b3JkIHNoU3RhdGVtZW50IGF1dG9sb2FkIGJnIGZhbHNlIGZjIGZnIGZ1bmN0aW9ucyBnZXRvcHRzIGhhc2ggaGlzdG9yeSBpbnRlZ2VyIGpvYnMgbGV0IG5vaHVwIHByaW50ZiByIHN0b3Agc3VzcGVuZCB0aW1lcyB0cnVlIHR5cGUgdW5hbGlhcyB3aGVuY2UKLSBpZiBleGlzdHMoImc6aXNfcG9zaXgiKQorIGlmIGV4aXN0cygiYjppc19wb3NpeCIpCiAgIHN5biBrZXl3b3JkIHNoU3RhdGVtZW50IGNvbW1hbmQKICBlbHNlCiAgIHN5biBrZXl3b3JkIHNoU3RhdGVtZW50IHRpbWUKQEAgLTU0Miw3ICs1NDIsNyBAQAogIiBVc2VmdWwgYmFzaCBLZXl3b3Jkczoge3t7MQogIiA9PT09PT09PT09PT09PT09PT09PT0KICBpZiBleGlzdHMoImI6aXNfYmFzaCIpCi0gIHN5biBrZXl3b3JkIHNoU3RhdGVtZW50IGJpbmQgYnVpbHRpbiBkaXJzIGRpc293biBlbmFibGUgaGVscCBsb2NhbCBsb2dvdXQgcG9wZCBwdXNoZCBzaG9wdCBzb3VyY2UKKyAgc3luIGtleXdvcmQgc2hTdGF0ZW1lbnQgYmluZCBidWlsdGluIGRpcnMgZGlzb3duIGVuYWJsZSBoZWxwIGxvZ291dCBwb3BkIHB1c2hkIHNob3B0IHNvdXJjZQogIGVsc2UKICAgc3luIGtleXdvcmQgc2hTdGF0ZW1lbnQgbG9naW4gbmV3Z3JwCiAgZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3RleC52aW0gYi9ydW50aW1lL3N5bnRheC90ZXgudmltCmluZGV4IGRkNjY5MDIuLmMwNTdiNjMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3RleC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvdGV4LnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglUZVgKICIgTWFpbnRhaW5lcjoJQ2hhcmxlcyBFLiBDYW1wYmVsbCA8TmRyY2hpcE9AU2NhbXBiZWxsUGZhbWlseS5BYml6TT4KLSIgTGFzdCBDaGFuZ2U6CVNlcCAyMCwgMjAxNgotIiBWZXJzaW9uOgkxMDEKKyIgTGFzdCBDaGFuZ2U6CURlYyAwNywgMjAxNgorIiBWZXJzaW9uOgkxMDIKICIgVVJMOgkJaHR0cDovL3d3dy5kcmNoaXAub3JnL2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCNTWU5UQVhfVEVYCiAiCiAiIE5vdGVzOiB7e3sxCkBAIC00OTQsMTMgKzQ5NCwxMSBAQAogICAgICBcIFsnXFxiYWNrc2xhc2gnICAsICdcJ10gLAogICAgICBcIFsnXFxkb3duYXJyb3cnICAsICfihpMnXSAsCiAgICAgIFwgWydcXERvd25hcnJvdycgICwgJ+KHkyddICwKLSAgICAgXCBbJ1xcbGFuZ2xlJyAgICAgLCAnPCddICwKICAgICAgXCBbJ1xcbGJyYWNlJyAgICAgLCAnWyddICwKICAgICAgXCBbJ1xcbGNlaWwnICAgICAgLCAn4oyIJ10gLAogICAgICBcIFsnXFxsZmxvb3InICAgICAsICfijIonXSAsCiAgICAgIFwgWydcXGxncm91cCcgICAgICwgJ+KMiiddICwKICAgICAgXCBbJ1xcbG1vdXN0YWNoZScgLCAn4o6bJ10gLAotICAgICBcIFsnXFxyYW5nbGUnICAgICAsICc+J10gLAogICAgICBcIFsnXFxyYnJhY2UnICAgICAsICddJ10gLAogICAgICBcIFsnXFxyY2VpbCcgICAgICAsICfijIknXSAsCiAgICAgIFwgWydcXHJmbG9vcicgICAgICwgJ+KMiyddICwKQEAgLTUxMCw2ICs1MDgsMTUgQEAKICAgICAgXCBbJ1xcVXBhcnJvdycgICAgLCAn4oaRJ10gLAogICAgICBcIFsnXFx1cGRvd25hcnJvdycsICfihpUnXSAsCiAgICAgIFwgWydcXFVwZG93bmFycm93JywgJ+KHlSddXQorICBpZiAmYW1idyA9PSAiZG91YmxlIiB8fCBleGlzdHMoImc6dGV4X3VzZWRibHdpZHRoIikKKyAgICBsZXQgczp0ZXhNYXRoRGVsaW1MaXN0PSBzOnRleE1hdGhEZWxpbUxpc3QgKyBbCisgICAgIFwgWydcXGxhbmdsZScgICAgICwgJ+OAiCddICwKKyAgICAgXCBbJ1xccmFuZ2xlJyAgICAgLCAn44CJJ10gLAorICBlbHNlCisgICAgbGV0IHM6dGV4TWF0aERlbGltTGlzdD0gczp0ZXhNYXRoRGVsaW1MaXN0ICsgWworICAgICBcIFsnXFxsYW5nbGUnICAgICAsICc8J10gLAorICAgICBcIFsnXFxyYW5nbGUnICAgICAsICc+J11dCisgIGVuZGlmCiAgIHN5biBtYXRjaCB0ZXhNYXRoRGVsaW0JJ1xcW2JCXWlnZ1w9W2xyXScgY29udGFpbmVkIG5leHRncm91cD10ZXhNYXRoRGVsaW1CYWQKICAgZm9yIHRleG1hdGggaW4gczp0ZXhNYXRoRGVsaW1MaXN0CiAgICBleGUgInN5biBtYXRjaCB0ZXhNYXRoRGVsaW0JJ1xcXFxbYkJdaWdnXFw9W2xyXVxcPSIudGV4bWF0aFswXS4iJwljb250YWluZWQgY29uY2VhbCBjY2hhcj0iLnRleG1hdGhbMV0KQEAgLTY4MCw2ICs2ODcsNyBAQAogICAgIFwgWydiYWNrc2xhc2gnCSwgJ+KIliddLAogICAgIFwgWydiYXJ3ZWRnZScJLCAn4oq8J10sCiAgICAgXCBbJ2JlY2F1c2UnCSwgJ+KItSddLAorICAgIFwgWydiZXRoJyAgICAgICAgICAgLCAn3JInXSwKICAgICBcIFsnYmV0d2VlbicJLCAn4omsJ10sCiAgICAgXCBbJ2JpZ2NhcCcJCSwgJ+KIqSddLAogICAgIFwgWydiaWdjaXJjJwksICfil4snXSwKQEAgLTY5OSw2ICs3MDcsNyBAQAogICAgIFwgWydib3htaW51cycJLCAn4oqfJ10sCiAgICAgXCBbJ2JveHBsdXMnCSwgJ+KKniddLAogICAgIFwgWydib3h0aW1lcycJLCAn4oqgJ10sCisgICAgXCBbJ0JveCcgICAgICAgICAgICAsICfimJAnXSwKICAgICBcIFsnYnVsbGV0JwkgICAgICAgICwgJ+KAoiddLAogICAgIFwgWydidW1wZXEnCQksICfiiY8nXSwKICAgICBcIFsnQnVtcGVxJwkJLCAn4omOJ10sCkBAIC03NDgsNiArNzU3LDcgQEAKICAgICBcIFsnZXFzbGFudGd0cicJLCAn4qqWJ10sCiAgICAgXCBbJ2Vxc2xhbnRsZXNzJwksICfiqpUnXSwKICAgICBcIFsnZXF1aXYnCQksICfiiaEnXSwKKyAgICBcIFsnZXRoJyAgICAgICAgICAgICwgJ8OwJ10sCiAgICAgXCBbJ2V4aXN0cycJCSwgJ+KIgyddLAogICAgIFwgWydmYWxsaW5nZG90c2VxJwksICfiiZInXSwKICAgICBcIFsnZmxhdCcJCSwgJ+KZrSddLApAQCAtNzU3LDYgKzc2Nyw3IEBACiAgICAgXCBbJ2dlcScJCSwgJ+KJpSddLAogICAgIFwgWydnZXFxJwkJLCAn4omnJ10sCiAgICAgXCBbJ2dldHMnCQksICfihpAnXSwKKyAgICBcIFsnZ2ltZWwnICAgICAgICAgICwgJ+KEtyddLAogICAgIFwgWydnZycJCSwgJ+KfqyddLAogICAgIFwgWydnbmVxcScJCSwgJ+KJqSddLAogICAgIFwgWydndHJkb3QnCQksICfii5cnXSwKQEAgLTc2NywxMyArNzc4LDE3IEBACiAgICAgXCBbJ2hlYXJ0c3VpdCcJLCAn4pmhJ10sCiAgICAgXCBbJ2hvb2tsZWZ0YXJyb3cnCSwgJ+KGqSddLAogICAgIFwgWydob29rcmlnaHRhcnJvdycJLCAn4oaqJ10sCisgICAgXCBbJ2lmZicgICAgICAgICAgICAsICfih5QnXSwKICAgICBcIFsnaWlpbnQnCQksICfiiK0nXSwKICAgICBcIFsnaWludCcJCSwgJ+KIrCddLAogICAgIFwgWydJbScJCSwgJ+KEkSddLAogICAgIFwgWydpbWF0aCcJCSwgJ8mpJ10sCisgICAgXCBbJ2ltcGxpZXMnCSwgJ+KHkiddLAogICAgIFwgWydpbicJCSwgJ+KIiCddLAogICAgIFwgWydpbmZ0eScJCSwgJ+KIniddLAogICAgIFwgWydpbnQnCQksICfiiKsnXSwKKyAgICBcIFsnam1hdGgnCQksICfwnZqlJ10sCisgICAgXCBbJ2xhbmQnCQksICfiiKcnXSwKICAgICBcIFsnbGNlaWwnCQksICfijIgnXSwKICAgICBcIFsnbGRvdHMnCQksICfigKYnXSwKICAgICBcIFsnbGUnCQksICfiiaQnXSwKQEAgLTgwMCw2ICs4MTUsNyBAQAogICAgIFwgWydsbCcJCSwgJ+KJqiddLAogICAgIFwgWydsbW91c3RhY2hlJyAgICAgLCAn4pWtJ10sCiAgICAgXCBbJ2xuZXFxJwkJLCAn4omoJ10sCisgICAgXCBbJ2xvcicJCSwgJ+KIqCddLAogICAgIFwgWydsdGltZXMnCQksICfii4knXSwKICAgICBcIFsnbWFwc3RvJwkJLCAn4oamJ10sCiAgICAgXCBbJ21lYXN1cmVkYW5nbGUnCSwgJ+KIoSddLApAQCAtODI2LDYgKzg0Miw3IEBACiAgICAgXCBbJ25sZXNzJwkJLCAn4omuJ10sCiAgICAgXCBbJ25taWQnCQksICfiiKQnXSwKICAgICBcIFsnbm90aW4nCQksICfiiIknXSwKKyAgICBcIFsnbnBhcmFsbGVsJyAgICAgICwgJ+KIpiddLAogICAgIFwgWyducHJlYycJCSwgJ+KKgCddLAogICAgIFwgWyducmlnaHRhcnJvdycJLCAn4oabJ10sCiAgICAgXCBbJ25SaWdodGFycm93JwksICfih48nXSwKQEAgLTkyNywxMCArOTQ0LDEyIEBACiAgICAgXCBbJ3RyaWFuZ2xlcmlnaHRlcScsICfiirUnXSwKICAgICBcIFsndHdvaGVhZGxlZnRhcnJvdycsICfihp4nXSwKICAgICBcIFsndHdvaGVhZHJpZ2h0YXJyb3cnLCAn4oagJ10sCisgICAgXCBbJ3VsY29ybmVyJyAgICAgICAsICfijJwnXSwKICAgICBcIFsndXBhcnJvdycJLCAn4oaRJ10sCiAgICAgXCBbJ1VwYXJyb3cnCSwgJ+KHkSddLAogICAgIFwgWyd1cGRvd25hcnJvdycJLCAn4oaVJ10sCiAgICAgXCBbJ1VwZG93bmFycm93JwksICfih5UnXSwKKyAgICBcIFsndXJjb3JuZXInICAgICAgICwgJ+KMnSddLAogICAgIFwgWyd2YXJub3RoaW5nJwksICfiiIUnXSwKICAgICBcIFsndmFydHJpYW5nbGUnCSwgJ+KIhiddLAogICAgIFwgWyd2ZGFzaCcJCSwgJ+KKoiddLApAQCAtOTQ2LDYgKzk2NSwxNSBAQAogIiAgICBcIFsnam1hdGgnCQksICdYJ10KICIgICAgXCBbJ3VtaW51cycJLCAnWCddCiAiICAgIFwgWyd1cGx1cycJCSwgJ1gnXQorICBpZiAmYW1idyA9PSAiZG91YmxlIiB8fCBleGlzdHMoImc6dGV4X3VzZWRibHdpZHRoIikKKyAgICBsZXQgczp0ZXhNYXRoTGlzdD0gczp0ZXhNYXRoTGlzdCArIFsKKyAgICBcIFsncmlnaHRcXHJhbmdsZScJLCAn44CJJ10sCisgICAgXCBbJ2xlZnRcXGxhbmdsZScJLCAn44CIJ11dCisgIGVsc2UKKyAgICBsZXQgczp0ZXhNYXRoTGlzdD0gczp0ZXhNYXRoTGlzdCArIFsKKyAgICBcIFsncmlnaHRcXHJhbmdsZScJLCAnPiddLAorICAgIFwgWydsZWZ0XFxsYW5nbGUnCSwgJzwnXV0KKyAgZW5kaWYKICAgZm9yIHRleG1hdGggaW4gczp0ZXhNYXRoTGlzdAogICAgaWYgdGV4bWF0aFswXSA9fiMgJ1x3JCcKICAgICBleGUgInN5biBtYXRjaCB0ZXhNYXRoU3ltYm9sICdcXFxcIi50ZXhtYXRoWzBdLiJcXD4nIGNvbnRhaW5lZCBjb25jZWFsIGNjaGFyPSIudGV4bWF0aFsxXQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdmltLnZpbSBiL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0KaW5kZXggNGU5Y2UxYi4uNTJkZjkxOSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdmltLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC92aW0udmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVZpbSA4LjAgc2NyaXB0CiAiIE1haW50YWluZXI6CUNoYXJsZXMgRS4gQ2FtcGJlbGwgPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+Ci0iIExhc3QgQ2hhbmdlOglTZXB0ZW1iZXIgMjksIDIwMTYKLSIgVmVyc2lvbjoJOC4wLTAxCisiIExhc3QgQ2hhbmdlOglKYW4gMTksIDIwMTcKKyIgVmVyc2lvbjoJOC4wLTAyCiAiIFVSTDoJaHR0cDovL3d3dy5kcmNoaXAub3JnL2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCNTWU5UQVhfVklNCiAiIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGtleXdvcmQgbGlzdHM6IHt7ezEKIApAQCAtMTY0LDYgKzE2NCw3IEBACiBzeW4gbWF0Y2ggdmltTnVtYmVyCSJcPFxkXCtcJShcLlxkXCtcJShbZUVdWystXVw9XGRcK1wpXD1cKVw9IiBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUdsb2JhbCx2aW1TdWJzdCx2aW1Db21tYW5kCiBzeW4gbWF0Y2ggdmltTnVtYmVyCSItXGRcK1wlKFwuXGRcK1wlKFtlRV1bKy1dXD1cZFwrXClcPVwpXD0iICBza2lwd2hpdGUgbmV4dGdyb3VwPXZpbUdsb2JhbCx2aW1TdWJzdCx2aW1Db21tYW5kCiBzeW4gbWF0Y2ggdmltTnVtYmVyCSJcPDBbeFhdXHhcKyIKK3N5biBtYXRjaCB2aW1OdW1iZXIJIlw8MFtiQl1bMDFdXCsiCiBzeW4gbWF0Y2ggdmltTnVtYmVyCSJcJSheXHxbXmEtekEtWl1cKVx6cyNceFx7Nn0iCiAKICIgQWxsIHZpbUNvbW1hbmRzIGFyZSBjb250YWluZWQgYnkgdmltSXNDb21tYW5kcy4ge3t7MgpAQCAtMjI1LDcgKzIyNiw3IEBACiAiIEZ1bmN0aW9ucyA6IFRhZyBpcyBwcm92aWRlZCBmb3IgdGhvc2Ugd2hvIHdpc2ggdG8gaGlnaGxpZ2h0IHRhZ2dlZCBmdW5jdGlvbnMge3t7MgogIiA9PT09PT09PT0KIHN5biBjbHVzdGVyCXZpbUZ1bmNMaXN0CWNvbnRhaW5zPXZpbUNvbW1hbmQsdmltRnVuY3Rpb25FcnJvcix2aW1GdW5jS2V5LFRhZyx2aW1GdW5jU0lECi1zeW4gY2x1c3Rlcgl2aW1GdW5jQm9keUxpc3QJY29udGFpbnM9dmltQWJiLHZpbUFkZHJlc3MsdmltQXVncm91cEtleSx2aW1BdXRvQ21kLHZpbUNtcGx4UmVwZWF0LHZpbUNvbW1lbnQsdmltQ29tbWVudCx2aW1Db250aW51ZSx2aW1DdHJsQ2hhcix2aW1FY2hvLHZpbUVjaG9ITCx2aW1FeGVjdXRlLHZpbUlmLHZpbUlzQ29tbWFuZCx2aW1GQlZhcix2aW1GdW5jLHZpbUZ1bmN0aW9uLHZpbUZ1bmNWYXIsdmltR2xvYmFsLHZpbUhpZ2hsaWdodCx2aW1Jc0NvbW1hbmQsdmltTGV0LHZpbUxpbmVDb21tZW50LHZpbU1hcCx2aW1NYXJrLHZpbU5vcm0sdmltTm90YXRpb24sdmltTm90RnVuYyx2aW1OdW1iZXIsdmltT3Blcix2aW1PcGVyUGFyZW4sdmltUmVnaW9uLHZpbVJlZ2lzdGVyLHZpbVNldCx2aW1TcGVjRmlsZSx2aW1TdHJpbmcsdmltU3Vic3QsdmltU3luTGluZSx2aW1Vbm1hcCx2aW1Vc2VyQ29tbWFuZAorc3luIGNsdXN0ZXIJdmltRnVuY0JvZHlMaXN0CWNvbnRhaW5zPXZpbUFiYix2aW1BZGRyZXNzLHZpbUF1Z3JvdXBLZXksdmltQXV0b0NtZCx2aW1DbXBseFJlcGVhdCx2aW1Db21tZW50LHZpbUNvbnRpbnVlLHZpbUN0cmxDaGFyLHZpbUVjaG8sdmltRWNob0hMLHZpbUV4ZWN1dGUsdmltSWYsdmltSXNDb21tYW5kLHZpbUZCVmFyLHZpbUZ1bmMsdmltRnVuY3Rpb24sdmltRnVuY1Zhcix2aW1HbG9iYWwsdmltSGlnaGxpZ2h0LHZpbUlzQ29tbWFuZCx2aW1MZXQsdmltTGluZUNvbW1lbnQsdmltTWFwLHZpbU1hcmssdmltTm9ybSx2aW1Ob3RhdGlvbix2aW1Ob3RGdW5jLHZpbU51bWJlcix2aW1PcGVyLHZpbU9wZXJQYXJlbix2aW1SZWdpb24sdmltUmVnaXN0ZXIsdmltU2V0LHZpbVNwZWNGaWxlLHZpbVN0cmluZyx2aW1TdWJzdCx2aW1TeW5MaW5lLHZpbVVubWFwLHZpbVVzZXJDb21tYW5kCiBzeW4gbWF0Y2gJdmltRnVuY3Rpb24JIlw8ZnVcJVtuY3Rpb25dIVw9XHNcK1wlKDxbc1NdW2lJXVtkRF0+XHxbc1NnR2JCd1d0VGxMXTpcKVw9XCUoXGlcfFsjLl1cfHsuXHstMSx9fVwpKlx6ZVxzKigiCWNvbnRhaW5zPUB2aW1GdW5jTGlzdCBuZXh0Z3JvdXA9dmltRnVuY0JvZHkKIAogaWYgZXhpc3RzKCJnOnZpbXN5bl9mb2xkaW5nIikgJiYgZzp2aW1zeW5fZm9sZGluZyA9fiMgJ2YnCmRpZmYgLS1naXQgYS9zcmMvcG8vemhfQ04uVVRGLTgucG8gYi9zcmMvcG8vemhfQ04uVVRGLTgucG8KaW5kZXggODIyMjhjYS4uMmFhNWY3NyAxMDA2NDQKLS0tIGEvc3JjL3BvL3poX0NOLlVURi04LnBvCisrKyBiL3NyYy9wby96aF9DTi5VVEYtOC5wbwpAQCAtMjg5NCw3ICsyODk0LDggQEAKIG1zZ2lkICItLXJlbW90ZSA8ZmlsZXM+XHRFZGl0IDxmaWxlcz4gaW4gYSBWaW0gc2VydmVyIGlmIHBvc3NpYmxlIgogbXNnc3RyICItLXJlbW90ZSA8ZmlsZXM+XHTlpoLmnInlj6/og73vvIzlnKggVmltIOacjeWKoeWZqOS4iue8lui+keaWh+S7tiA8ZmlsZXM+IgogCi1tc2dpZCAiLS1yZW1vdGUtc2lsZW50IDxmaWxlcz4gIFNhbWUsIGRvbid0IGNvbXBsYWluIGlmIHRoZXJlIGlzIG5vIHNlcnZlciIKK21zZ2lkICIiCisiLS1yZW1vdGUtc2lsZW50IDxmaWxlcz4gIFNhbWUsIGRvbid0IGNvbXBsYWluIGlmIHRoZXJlIGlzIG5vIHNlcnZlciIKIG1zZ3N0ciAiLS1yZW1vdGUtc2lsZW50IDxmaWxlcz4gIOWQjOS4iu+8jOaJvuS4jeWIsOacjeWKoeWZqOaXtuS4jeaKseaAqCIKIAogbXNnaWQgIiIKZGlmZiAtLWdpdCBhL3NyYy9wby96aF9DTi5jcDkzNi5wbyBiL3NyYy9wby96aF9DTi5jcDkzNi5wbwppbmRleCAzNmM3Yjk3Li4xM2ExODkxIDEwMDY0NAotLS0gYS9zcmMvcG8vemhfQ04uY3A5MzYucG8KKysrIGIvc3JjL3BvL3poX0NOLmNwOTM2LnBvCkBAIC0yNDEsOSArMjQxLDggQEAKIG1zZ2lkICIgVGFnIGNvbXBsZXRpb24gKF5dXk5eUCkiCiBtc2dzdHIgIiBUYWcgsrnIqyAoXl1eTl5QKSIKIAotIywgZnV6enkKLSN+IG1zZ2lkICIgUGF0aCBwYXR0ZXJuIGNvbXBsZXRpb24gKF5OXlApIgotI34gbXNnc3RyICIgwre+tsSjyr2yucirICheTl5QKSIKK21zZ2lkICIgUGF0aCBwYXR0ZXJuIGNvbXBsZXRpb24gKF5OXlApIgorbXNnc3RyICIgzbfOxLz+xKPKvbK5yKsgKF5OXlApIgogCiBtc2dpZCAiIERlZmluaXRpb24gY29tcGxldGlvbiAoXkReTl5QKSIKIG1zZ3N0ciAiILao0uWyucirICheRF5OXlApIgpAQCAtMjg5Niw3ICsyODk1LDcgQEAKIG1zZ3N0ciAiLS1yZW1vdGUgPGZpbGVzPlx0yOfT0L/JxNyjrNTaIFZpbSC3/s7xxvfJz7HgvK3OxLz+IDxmaWxlcz4iCiAKIG1zZ2lkICItLXJlbW90ZS1zaWxlbnQgPGZpbGVzPiAgU2FtZSwgZG9uJ3QgY29tcGxhaW4gaWYgdGhlcmUgaXMgbm8gc2VydmVyIgotbXNnc3RyICItLXJlbW90ZS1zaWxlbnQgPGZpbGVzPiAgzazJz6Os1dKyu7W9t/7O8cb3yrG7safUuSIKK21zZ3N0ciAiLS1yZW1vdGUtc2lsZW50IDxmaWxlcz4gIM2syc+jrNXSsru1vbf+zvHG98qxsruxp9S5IgogCiBtc2dpZCAiIgogIi0tcmVtb3RlLXdhaXQgPGZpbGVzPiAgQXMgLS1yZW1vdGUgYnV0IHdhaXQgZm9yIGZpbGVzIHRvIGhhdmUgYmVlbiBlZGl0ZWQiCkBAIC01Mjg0LDcgKzUyODMsNyBAQAogCiAjLiBtdXN0IGRpc3BsYXkgdGhlIHByb21wdAogbXNnaWQgIk5vIHVuZG8gcG9zc2libGU7IGNvbnRpbnVlIGFueXdheSIKLW1zZ3N0ciAizt63qLO3z/qju8frvMzQ+CIKK21zZ3N0ciAizt63qLO3z/qju8jUyLu8zND4IgogCiBtc2dpZCAiQWxyZWFkeSBhdCBvbGRlc3QgY2hhbmdlIgogbXNnc3RyICLS0c6709rX7r7JtcS4xLHkIgpAQCAtNTYwMSwxMyArNTYwMCwxMyBAQAogbXNnc3RyICLK5MjrICA6aGVscCBjcC1kZWZhdWx0PEVudGVyPiCy6b+0z+C52Mu1w/cgICAgIgogCiBtc2dpZCAibWVudSAgSGVscC0+T3JwaGFucyAgICAgICAgICAgZm9yIGluZm9ybWF0aW9uICAgICIKLW1zZ3N0ciAissu1pSAgSGVscC0+T3JwaGFucyAgICAgICAgICAgsum/tMu1w/cgICAgICAgICAgICIKK21zZ3N0ciAissu1pSAgsO/W+i0+ucK2+SAgICAgICAgICAgsum/tMu1w/cgICAgICAgICAgICIKIAogbXNnaWQgIlJ1bm5pbmcgbW9kZWxlc3MsIHR5cGVkIHRleHQgaXMgaW5zZXJ0ZWQiCiBtc2dzdHIgIs7exKPKvdTL0NCjrMrkyOvOxNfWvLSy5cjrIgogCiBtc2dpZCAibWVudSAgRWRpdC0+R2xvYmFsIFNldHRpbmdzLT5Ub2dnbGUgSW5zZXJ0IE1vZGUgICIKLW1zZ3N0ciAissu1pSAgRWRpdC0+R2xvYmFsIFNldHRpbmdzLT5Ub2dnbGUgSW5zZXJ0IE1vZGUgICIKK21zZ3N0ciAissu1pSAgseC8rS0+yKu+1snotqgtPr+qL7nYsuXI68Sjyr0gICIKIAogIywgZnV6enkKICN+IG1zZ2lkICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdHdvIG1vZGVzICAgICAgIgo=