ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CmluZGV4IGRjM2EyM2MuLmZmMGM0NGEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKKysrIGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTggTWF5IDEyCisqY2hhbmdlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtOTQ0LDkgKzk0NCw5IEBACiBicmVha3MuICBUaHVzIGVhY2ggaXRlbSBiZWNvbWVzIGEgbGluZSwgZXhjZXB0IHRoYXQgdGhleSBjYW4gY29udGFpbiBsaW5lCiBicmVha3MgdGhlbXNlbHZlcy4KIAotVGhlIHdob2xlIG1hdGNoZWQgdGV4dCBjYW4gYmUgYWNjZXNzZWQgd2l0aCAic3VibWF0Y2goMCkiLiAgVGhlIHRleHQgbWF0Y2hlZAotd2l0aCB0aGUgZmlyc3QgcGFpciBvZiAoKSB3aXRoICJzdWJtYXRjaCgxKSIuICBMaWtld2lzZSBmb3IgZnVydGhlcgotc3ViLW1hdGNoZXMgaW4gKCkuCitUaGUgfHN1Ym1hdGNoKCl8IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIG9idGFpbiBtYXRjaGVkIHRleHQuICBUaGUgd2hvbGUKK21hdGNoZWQgdGV4dCBjYW4gYmUgYWNjZXNzZWQgd2l0aCAic3VibWF0Y2goMCkiLiAgVGhlIHRleHQgbWF0Y2hlZCB3aXRoIHRoZQorZmlyc3QgcGFpciBvZiAoKSB3aXRoICJzdWJtYXRjaCgxKSIuICBMaWtld2lzZSBmb3IgZnVydGhlciBzdWItbWF0Y2hlcyBpbiAoKS4KIAogQmUgY2FyZWZ1bDogVGhlIHNlcGFyYXRpb24gY2hhcmFjdGVyIG11c3Qgbm90IGFwcGVhciBpbiB0aGUgZXhwcmVzc2lvbiEKIENvbnNpZGVyIHVzaW5nIGEgY2hhcmFjdGVyIGxpa2UgIkAiIG9yICI6Ii4gIFRoZXJlIGlzIG5vIHByb2JsZW0gaWYgdGhlIHJlc3VsdApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZGlncmFwaC50eHQgYi9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dAppbmRleCAzYjY0MjRhLi42MDA2OTJlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dAorKysgYi9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpkaWdyYXBoLnR4dCogICBGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTYgTm92IDA0CisqZGlncmFwaC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZWRpdGluZy50eHQgYi9ydW50aW1lL2RvYy9lZGl0aW5nLnR4dAppbmRleCAwNGJmNGIxLi4xZmMxYzJmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9lZGl0aW5nLnR4dAorKysgYi9ydW50aW1lL2RvYy9lZGl0aW5nLnR4dApAQCAtMSw0ICsxLDQgQEAKLSplZGl0aW5nLnR4dCogICBGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTggTWFyIDI5CisqZWRpdGluZy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTQxNSw3ICsxNDE1LDcgQEAKIFRoZSB0ZXh0IGluIHRoZSBzd2FwIGZpbGUgYW5kIHRoZSB1bmRvIGZpbGUgaXMgYWxzbyBlbmNyeXB0ZWQuICAqRTg0MyoKIEhvd2V2ZXIsIHRoaXMgaXMgZG9uZSBibG9jay1ieS1ibG9jayBhbmQgbWF5IHJlZHVjZSB0aGUgdGltZSBuZWVkZWQgdG8gY3JhY2sgYQogcGFzc3dvcmQuICBZb3UgY2FuIGRpc2FibGUgdGhlIHN3YXAgZmlsZSwgYnV0IHRoZW4gYSBjcmFzaCB3aWxsIGNhdXNlIHlvdSB0bwotbG9zZSB5b3VyIHdvcmsuICBUaGUgdW5kbyBmaWxlIGNhbiBiZSBkaXNhYmxlZCB3aXRob3V0IG11Y2ggZGlzYWR2YW50YWdlLiA+Citsb3NlIHlvdXIgd29yay4gIFRoZSB1bmRvIGZpbGUgY2FuIGJlIGRpc2FibGVkIHdpdGhvdXQgdG9vIG11Y2ggZGlzYWR2YW50YWdlLiA+CiAJOnNldCBub3VuZG9maWxlCiAJOm5vc3dhcGZpbGUgZWRpdCBzZWNyZXRzCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggNGU4MGY0YS4uYWZjNGZlMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOCBEZWMgMTMKKypldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yMzE4LDcgKzIzMTgsNyBAQAogcHJvbXB0X3NldGludGVycnVwdCh7YnVmfSwge3RleHR9KSBub25lCXNldCBwcm9tcHQgaW50ZXJydXB0IGZ1bmN0aW9uCiBwcm9tcHRfc2V0cHJvbXB0KHtidWZ9LCB7dGV4dH0pIG5vbmUJc2V0IHByb21wdCB0ZXh0CiBwcm9wX2FkZCh7bG51bX0sIHtjb2x9LCB7cHJvcHN9KSAgbm9uZQlhZGQgYSB0ZXh0IHByb3BlcnR5Ci1wcm9wX2NsZWFyKHtsbnVtfSBbLCB7bG51bV9lbmR9IFssIHtidWZucn1dXSkKK3Byb3BfY2xlYXIoe2xudW19IFssIHtsbnVtLWVuZH0gWywge2J1Zm5yfV1dKQogCQkJCW5vbmUJcmVtb3ZlIGFsbCB0ZXh0IHByb3BlcnRpZXMKIHByb3BfZmluZCh7cHJvcHN9IFssIHtkaXJlY3Rpb259XSkKIAkJCQlEaWN0CXNlYXJjaCBmb3IgYSB0ZXh0IHByb3BlcnR5CkBAIC0yNzE0LDcgKzI3MTQsNyBAQAogCiBhc3NlcnRfZmFsc2Uoe2FjdHVhbH0gWywge21zZ31dKQkJCQkqYXNzZXJ0X2ZhbHNlKCkqCiAJCVdoZW4ge2FjdHVhbH0gaXMgbm90IGZhbHNlIGFuIGVycm9yIG1lc3NhZ2UgaXMgYWRkZWQgdG8KLQkJfHY6ZXJyb3JzfCwgbGlrZSB3aXRoIHxhc3NlcnRfZXF1YWwoKXwuIAorCQl8djplcnJvcnN8LCBsaWtlIHdpdGggfGFzc2VydF9lcXVhbCgpfC4KIAkJQWxzbyBzZWUgfGFzc2VydC1yZXR1cm58LgogCQlBIHZhbHVlIGlzIGZhbHNlIHdoZW4gaXQgaXMgemVyby4gV2hlbiB7YWN0dWFsfSBpcyBub3QgYQogCQludW1iZXIgdGhlIGFzc2VydCBmYWlscy4KQEAgLTUwNTgsNyArNTA1OCw3IEBACiAKIGdldHdpbnBvcyhbe3RpbWVvdXR9XSkJCQkJCSpnZXR3aW5wb3MoKSoKIAkJVGhlIHJlc3VsdCBpcyBhIGxpc3Qgd2l0aCB0d28gbnVtYmVycywgdGhlIHJlc3VsdCBvZgotCQlnZXR3aW5wb3N4KCkgYW5kIGdldHdpbnBvc3koKSBjb21iaW5lZDogCisJCWdldHdpbnBvc3goKSBhbmQgZ2V0d2lucG9zeSgpIGNvbWJpbmVkOgogCQkJW3gtcG9zLCB5LXBvc10KIAkJe3RpbWVvdXR9IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgaG93IGxvbmcgdG8gd2FpdCBpbiBtc2VjIGZvcgogCQlhIHJlc3BvbnNlIGZyb20gdGhlIHRlcm1pbmFsLiAgV2hlbiBvbWl0dGVkIDEwMCBtc2VjIGlzIHVzZWQuCkBAIC02Njg4LDcgKzY2ODgsNyBAQAogCQkJImVuZF9sbnVtIiAtIGxpbmUgbnVtYmVyIGZvciBlbmQgb2YgdGV4dAogCQkJImVuZF9jb2wiICAtIGNvbHVtbiBmb3IgZW5kIG9mIHRleHQ7IG5vdCB1c2VkIHdoZW4KIAkJCQkgICAgICJsZW5ndGgiIGlzIHByZXNlbnQKLQkJCSJidWZucgkgICAtIGJ1ZmZlciB0byBhZGQgdGhlIHByb3BlcnR5IHRvOyB3aGVuCisJCQkiYnVmbnIiCSAgIC0gYnVmZmVyIHRvIGFkZCB0aGUgcHJvcGVydHkgdG87IHdoZW4KIAkJCQkgICAgIG9taXR0ZWQgdGhlIGN1cnJlbnQgYnVmZmVyIGlzIHVzZWQKIAkJCSJpZCIJICAgLSB1c2VyIGRlZmluZWQgSUQgZm9yIHRoZSBwcm9wZXJ0eTsgd2hlbgogCQkJCSAgICAgb21pdHRlZCB6ZXJvIGlzIHVzZWQKQEAgLTY2OTksNyArNjY5OSw3IEBACiAJCWFyZSBwYXNzZWQuICBFaXRoZXIgdXNlICJsZW5ndGgiIG9yICJlbmRfY29sIiBmb3IgYSBwcm9wZXJ0eQogCQl3aXRoaW4gb25lIGxpbmUsIG9yIHVzZSAiZW5kX2xudW0iIGFuZCAiZW5kX2NvbCIgZm9yIGEKIAkJcHJvcGVydHkgdGhhdCBzcGFucyBtb3JlIHRoYW4gb25lIGxpbmUuCi0JCVdoZW4gbmVpdGhlciAibGVuZ3RoIiBvciAiZW5kX2NvbCIgYXJlIHBhc3NlZCB0aGUgcHJvcGVydHkKKwkJV2hlbiBuZWl0aGVyICJsZW5ndGgiIG5vciAiZW5kX2NvbCIgYXJlIHBhc3NlZCB0aGUgcHJvcGVydHkKIAkJd2lsbCBhcHBseSB0byBvbmUgY2hhcmFjdGVyLgogCiAJCSJ0eXBlIiB3aWxsIGZpcnN0IGJlIGxvb2tlZCB1cCBpbiB0aGUgYnVmZmVyIHRoZSBwcm9wZXJ0eSBpcwpAQCAtNjcwOSwxMCArNjcwOSwxMCBAQAogCQlTZWUgfHRleHQtcHJvcGVydGllc3wgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRleHQgcHJvcGVydGllcy4KIAogCi1wcm9wX2NsZWFyKHtsbnVtfSBbLCB7bG51bV9lbmR9IFssIHtwcm9wc31dXSkJCSpwcm9wX2NsZWFyKCkqCitwcm9wX2NsZWFyKHtsbnVtfSBbLCB7bG51bS1lbmR9IFssIHtwcm9wc31dXSkJCSpwcm9wX2NsZWFyKCkqCiAJCVJlbW92ZSBhbGwgdGV4dCBwcm9wZXJ0aWVzIGZyb20gbGluZSB7bG51bX0uCi0JCVdoZW4ge2xudW1fZW5kfSBpcyBnaXZlbiwgcmVtb3ZlIGFsbCB0ZXh0IHByb3BlcnRpZXMgZnJvbSBsaW5lCi0JCXtsbnVtfSB0byB7bG51bV9lbmR9IChpbmNsdXNpdmUpLgorCQlXaGVuIHtsbnVtLWVuZH0gaXMgZ2l2ZW4sIHJlbW92ZSBhbGwgdGV4dCBwcm9wZXJ0aWVzIGZyb20gbGluZQorCQl7bG51bX0gdG8ge2xudW0tZW5kfSAoaW5jbHVzaXZlKS4KIAogCQlXaGVuIHtwcm9wc30gY29udGFpbnMgYSAiYnVmbnIiIGl0ZW0gdXNlIHRoaXMgYnVmZmVyLAogCQlvdGhlcndpc2UgdXNlIHRoZSBjdXJyZW50IGJ1ZmZlci4KQEAgLTY3NzIsNyArNjc3Miw3IEBACiAKIAogCQkJCQkJKnByb3BfcmVtb3ZlKCkqICpFOTY4KgotcHJvcF9yZW1vdmUoe3Byb3BzfSBbLCB7bG51bX0gWywge2xudW1fZW5kfV1dKQkKK3Byb3BfcmVtb3ZlKHtwcm9wc30gWywge2xudW19IFssIHtsbnVtX2VuZH1dXSkKIAkJUmVtb3ZlIGEgbWF0Y2hpbmcgdGV4dCBwcm9wZXJ0eSBmcm9tIGxpbmUge2xudW19LiAgV2hlbgogCQl7bG51bV9lbmR9IGlzIGdpdmVuLCByZW1vdmUgbWF0Y2hpbmcgdGV4dCBwcm9wZXJ0aWVzIGZyb20gbGluZQogCQl7bG51bX0gdG8ge2xudW1fZW5kfSAoaW5jbHVzaXZlKS4KQEAgLTkwNDYsNyArOTA0Niw3IEBACiAJCU9ubHkgdG8gYmUgdXNlZCBmb3IgdGVzdGluZyEKIAogdGVzdF9vdmVycmlkZSh7bmFtZX0sIHt2YWx9KQkJCQkqdGVzdF9vdmVycmlkZSgpKgotCQlPdmVycmlkZXMgY2VydGFpbiBwYXJ0cyBvZiBWaW1zIGludGVybmFsIHByb2Nlc3NpbmcgdG8gYmUgYWJsZQorCQlPdmVycmlkZXMgY2VydGFpbiBwYXJ0cyBvZiBWaW0ncyBpbnRlcm5hbCBwcm9jZXNzaW5nIHRvIGJlIGFibGUKIAkJdG8gcnVuIHRlc3RzLiBPbmx5IHRvIGJlIHVzZWQgZm9yIHRlc3RpbmcgVmltIQogCQlUaGUgb3ZlcnJpZGUgaXMgZW5hYmxlZCB3aGVuIHt2YWx9IGlzIG5vbi16ZXJvIGFuZCByZW1vdmVkCiAJCXdoZW4ge3ZhbH0gaXMgemVyby4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hlbHAudHh0IGIvcnVudGltZS9kb2MvaGVscC50eHQKaW5kZXggMjBlNmMxNi4uYjRjMjllNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaGVscC50eHQKKysrIGIvcnVudGltZS9kb2MvaGVscC50eHQKQEAgLTEsNCArMSw0IEBACi0qaGVscC50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxNyBPY3QgMjgKKypoZWxwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxNAogCiAJCQlWSU0gLSBtYWluIGhlbHAgZmlsZQogCQkJCQkJCQkJIGsKQEAgLTExMyw3ICsxMTMsNiBAQAogfHNjcm9sbC50eHR8CXNjcm9sbGluZyB0aGUgdGV4dCBpbiB0aGUgd2luZG93CiB8aW5zZXJ0LnR4dHwJSW5zZXJ0IGFuZCBSZXBsYWNlIG1vZGUKIHxjaGFuZ2UudHh0fAlkZWxldGluZyBhbmQgcmVwbGFjaW5nIHRleHQKLXxpbmRlbnQudHh0fAlhdXRvbWF0aWMgaW5kZW50aW5nIGZvciBDIGFuZCBvdGhlciBsYW5ndWFnZXMKIHx1bmRvLnR4dHwJVW5kbyBhbmQgUmVkbwogfHJlcGVhdC50eHR8CXJlcGVhdGluZyBjb21tYW5kcywgVmltIHNjcmlwdHMgYW5kIGRlYnVnZ2luZwogfHZpc3VhbC50eHR8CXVzaW5nIHRoZSBWaXN1YWwgbW9kZSAoc2VsZWN0aW5nIGEgdGV4dCBhcmVhKQpAQCAtMTI2LDE0ICsxMjUsMTEgQEAKIHxwYXR0ZXJuLnR4dHwJcmVnZXhwIHBhdHRlcm5zIGFuZCBzZWFyY2ggY29tbWFuZHMKIHxtYXAudHh0fAlrZXkgbWFwcGluZyBhbmQgYWJicmV2aWF0aW9ucwogfHRhZ3NyY2gudHh0fAl0YWdzIGFuZCBzcGVjaWFsIHNlYXJjaGVzCi18cXVpY2tmaXgudHh0fAljb21tYW5kcyBmb3IgYSBxdWljayBlZGl0LWNvbXBpbGUtZml4IGN5Y2xlCiB8d2luZG93cy50eHR8CWNvbW1hbmRzIGZvciB1c2luZyBtdWx0aXBsZSB3aW5kb3dzIGFuZCBidWZmZXJzCiB8dGFicGFnZS50eHR8CWNvbW1hbmRzIGZvciB1c2luZyBtdWx0aXBsZSB0YWIgcGFnZXMKLXxzeW50YXgudHh0fAlzeW50YXggaGlnaGxpZ2h0aW5nCiB8c3BlbGwudHh0fAlzcGVsbCBjaGVja2luZwogfGRpZmYudHh0fAl3b3JraW5nIHdpdGggdHdvIHRvIGZvdXIgdmVyc2lvbnMgb2YgdGhlIHNhbWUgZmlsZQogfGF1dG9jbWQudHh0fAlhdXRvbWF0aWNhbGx5IGV4ZWN1dGluZyBjb21tYW5kcyBvbiBhbiBldmVudAotfGZpbGV0eXBlLnR4dHwJc2V0dGluZ3MgZG9uZSBzcGVjaWZpY2FsbHkgZm9yIGEgdHlwZSBvZiBmaWxlCiB8ZXZhbC50eHR8CWV4cHJlc3Npb24gZXZhbHVhdGlvbiwgY29uZGl0aW9uYWwgY29tbWFuZHMKIHxjaGFubmVsLnR4dHwJSm9icywgQ2hhbm5lbHMsIGludGVyLXByb2Nlc3MgY29tbXVuaWNhdGlvbgogfGZvbGQudHh0fAloaWRlIChmb2xkKSByYW5nZXMgb2YgbGluZXMKQEAgLTE0MywxOCArMTM5LDI3IEBACiB8cmVtb3RlLnR4dHwJdXNpbmcgVmltIGFzIGEgc2VydmVyIG9yIGNsaWVudAogfHRlcm0udHh0fAl1c2luZyBkaWZmZXJlbnQgdGVybWluYWxzIGFuZCBtaWNlCiB8dGVybWluYWwudHh0fAlUZXJtaW5hbCB3aW5kb3cgc3VwcG9ydAorCitQcm9ncmFtbWluZyBsYW5ndWFnZSBzdXBwb3J0IH4KK3xpbmRlbnQudHh0fAlhdXRvbWF0aWMgaW5kZW50aW5nIGZvciBDIGFuZCBvdGhlciBsYW5ndWFnZXMKK3xzeW50YXgudHh0fAlzeW50YXggaGlnaGxpZ2h0aW5nCit8dGV4dHByb3AudHh0fAlBdHRhY2hpbmcgcHJvcGVydGllcyB0byB0ZXh0IGZvciBoaWdobGlnaHRpbmcgb3Igb3RoZXIKK3xmaWxldHlwZS50eHR8CXNldHRpbmdzIGRvbmUgc3BlY2lmaWNhbGx5IGZvciBhIHR5cGUgb2YgZmlsZQorfHF1aWNrZml4LnR4dHwJY29tbWFuZHMgZm9yIGEgcXVpY2sgZWRpdC1jb21waWxlLWZpeCBjeWNsZQorfGZ0X2FkYS50eHR8CUFkYSAodGhlIHByb2dyYW1taW5nIGxhbmd1YWdlKSBzdXBwb3J0Cit8ZnRfcnVzdC50eHR8CUZpbGV0eXBlIHBsdWdpbiBmb3IgUnVzdAorfGZ0X3NxbC50eHR8CWFib3V0IHRoZSBTUUwgZmlsZXR5cGUgcGx1Z2luCisKK0xhbmd1YWdlIHN1cHBvcnQgfgogfGRpZ3JhcGgudHh0fAlsaXN0IG9mIGF2YWlsYWJsZSBkaWdyYXBocwogfG1ieXRlLnR4dHwJbXVsdGktYnl0ZSB0ZXh0IHN1cHBvcnQKIHxtbGFuZy50eHR8CW5vbi1FbmdsaXNoIGxhbmd1YWdlIHN1cHBvcnQKK3xyaWxlZnQudHh0fAlyaWdodC10by1sZWZ0IGVkaXRpbmcgbW9kZQogfGFyYWJpYy50eHR8CUFyYWJpYyBsYW5ndWFnZSBzdXBwb3J0IGFuZCBlZGl0aW5nCiB8ZmFyc2kudHh0fAlGYXJzaSAoUGVyc2lhbikgZWRpdGluZwogfGhlYnJldy50eHR8CUhlYnJldyBsYW5ndWFnZSBzdXBwb3J0IGFuZCBlZGl0aW5nCiB8cnVzc2lhbi50eHR8CVJ1c3NpYW4gbGFuZ3VhZ2Ugc3VwcG9ydCBhbmQgZWRpdGluZwotfGZ0X2FkYS50eHR8CUFkYSAodGhlIHByb2dyYW1taW5nIGxhbmd1YWdlKSBzdXBwb3J0Ci18ZnRfcnVzdC50eHR8CUZpbGV0eXBlIHBsdWdpbiBmb3IgUnVzdAotfGZ0X3NxbC50eHR8CWFib3V0IHRoZSBTUUwgZmlsZXR5cGUgcGx1Z2luCiB8aGFuZ3VsaW4udHh0fAlIYW5ndWwgKEtvcmVhbikgaW5wdXQgbW9kZQotfHJpbGVmdC50eHR8CXJpZ2h0LXRvLWxlZnQgZWRpdGluZyBtb2RlCiAKIEdVSSB+CiB8Z3VpLnR4dHwJR3JhcGhpY2FsIFVzZXIgSW50ZXJmYWNlIChHVUkpCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tYXAudHh0IGIvcnVudGltZS9kb2MvbWFwLnR4dAppbmRleCBkNDNhZmU5Li4yODMyYmVkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tYXAudHh0CisrKyBiL3J1bnRpbWUvZG9jL21hcC50eHQKQEAgLTEsNCArMSw0IEBACi0qbWFwLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAwOAorKm1hcC50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOCBEZWMgMTgKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTEyNTQsNyArMTI1NCw3IEBACiBjb21tYW5kIGNhbiB0YWtlIGFyZ3VtZW50cywgdXNpbmcgdGhlIC1uYXJncyBhdHRyaWJ1dGUuICBWYWxpZCBjYXNlcyBhcmU6CiAKIAktbmFyZ3M9MCAgICBObyBhcmd1bWVudHMgYXJlIGFsbG93ZWQgKHRoZSBkZWZhdWx0KQotCS1uYXJncz0xICAgIEV4YWN0bHkgb25lIGFyZ3VtZW50IGlzIHJlcXVpcmVkLCBpdCBpbmNsdWRlcyBzcGFjZXMgCisJLW5hcmdzPTEgICAgRXhhY3RseSBvbmUgYXJndW1lbnQgaXMgcmVxdWlyZWQsIGl0IGluY2x1ZGVzIHNwYWNlcwogCS1uYXJncz0qICAgIEFueSBudW1iZXIgb2YgYXJndW1lbnRzIGFyZSBhbGxvd2VkICgwLCAxLCBvciBtYW55KSwKIAkJICAgIHNlcGFyYXRlZCBieSB3aGl0ZSBzcGFjZQogCS1uYXJncz0/ICAgIDAgb3IgMSBhcmd1bWVudHMgYXJlIGFsbG93ZWQKQEAgLTEyNzksNyArMTI3OSw3IEBACiAKIAogQ29tcGxldGlvbiBiZWhhdmlvciB+Ci0JCQkJKjpjb21tYW5kLWNvbXBsZXRpb24qICpFMTc5KiAqRTE4MCogKkUxODEqIAorCQkJCSo6Y29tbWFuZC1jb21wbGV0aW9uKiAqRTE3OSogKkUxODAqICpFMTgxKgogCQkJCSo6Y29tbWFuZC1jb21wbGV0ZSoKIEJ5IGRlZmF1bHQsIHRoZSBhcmd1bWVudHMgb2YgdXNlciBkZWZpbmVkIGNvbW1hbmRzIGRvIG5vdCB1bmRlcmdvIGNvbXBsZXRpb24uCiBIb3dldmVyLCBieSBzcGVjaWZ5aW5nIG9uZSBvciB0aGUgb3RoZXIgb2YgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzLCBhcmd1bWVudApAQCAtMTQwNyw3ICsxNDA3LDcgQEAKIAktYWRkcj1sb2FkZWRfYnVmZmVycwlSYW5nZSBmb3IgbG9hZGVkIGJ1ZmZlcnMKIAktYWRkcj13aW5kb3dzCQlSYW5nZSBmb3Igd2luZG93cwogCS1hZGRyPXRhYnMJCVJhbmdlIGZvciB0YWIgcGFnZXMKLQktYWRkcj1vdGhlcgkJb3RoZXIga2luZCBvZiByYW5nZSAKKwktYWRkcj1vdGhlcgkJb3RoZXIga2luZCBvZiByYW5nZQogCiAKIFNwZWNpYWwgY2FzZXMgfgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCAxNzdhNTY5Li4zYWY3MTUwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IE1heSAxNQorKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTggRGVjIDE4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQxMzMsMTEgKzQxMzMsMTIgQEAKIAkJCQkgICAgIGw6U2VhcmNoLG06TW9yZU1zZyxNOk1vZGVNc2csbjpMaW5lTnIsCiAJCQkJICAgICBOOkN1cnNvckxpbmVOcixyOlF1ZXN0aW9uLHM6U3RhdHVzTGluZSwKIAkJCQkgICAgIFM6U3RhdHVzTGluZU5DLGM6VmVydFNwbGl0LHQ6VGl0bGUsCi0JCQkJICAgICB2OlZpc3VhbCx3Oldhcm5pbmdNc2csVzpXaWxkTWVudSxmOkZvbGRlZCwKLQkJCQkgICAgIEY6Rm9sZENvbHVtbixBOkRpZmZBZGQsQzpEaWZmQ2hhbmdlLAotCQkJCSAgICAgRDpEaWZmRGVsZXRlLFQ6RGlmZlRleHQsPjpTaWduQ29sdW1uLAotCQkJCSAgICAgQjpTcGVsbEJhZCxQOlNwZWxsQ2FwLFI6U3BlbGxSYXJlLAotCQkJCSAgICAgTDpTcGVsbExvY2FsLC06Q29uY2VhbCwrOlBtZW51LD06UG1lbnVTZWwsCisJCQkJICAgICB2OlZpc3VhbCxWOlZpc3VhbE5PUyx3Oldhcm5pbmdNc2csCisJCQkJICAgICBXOldpbGRNZW51LGY6Rm9sZGVkLEY6Rm9sZENvbHVtbiwKKwkJCQkgICAgIEE6RGlmZkFkZCxDOkRpZmZDaGFuZ2UsRDpEaWZmRGVsZXRlLAorCQkJCSAgICAgVDpEaWZmVGV4dCw+OlNpZ25Db2x1bW4sLTpDb25jZWFsLAorIAkJCQkgICAgIEI6U3BlbGxCYWQsUDpTcGVsbENhcCxSOlNwZWxsUmFyZSwKKwkJCQkgICAgIEw6U3BlbGxMb2NhbCwrOlBtZW51LD06UG1lbnVTZWwsCiAJCQkJICAgICB4OlBtZW51U2JhcixYOlBtZW51VGh1bWIsKjpUYWJMaW5lLAogCQkJCSAgICAgIzpUYWJMaW5lU2VsLF86VGFiTGluZUZpbGwsITpDdXJzb3JDb2x1bW4sCiAJCQkJICAgICAuOkN1cnNvckxpbmUsbzpDb2xvckNvbHVtbixxOlF1aWNrRml4TGluZSwKQEAgLTQxODIsMTYgKzQxODMsMTYgQEAKIAl8aGwtRGlmZkRlbGV0ZXwJIEQgIGRlbGV0ZWQgbGluZSBpbiBkaWZmIG1vZGUKIAl8aGwtRGlmZlRleHR8CSBUICBpbnNlcnRlZCB0ZXh0IGluIGRpZmYgbW9kZQogCXxobC1TaWduQ29sdW1ufAkgPiAgY29sdW1uIHVzZWQgZm9yIHxzaWduc3wKKwl8aGwtQ29uY2VhbHwJIC0gIHRoZSBwbGFjZWhvbGRlcnMgdXNlZCBmb3IgY29uY2VhbGVkIGNoYXJhY3RlcnMKKwkJCSAgICAoc2VlICdjb25jZWFsbGV2ZWwnKQogCXxobC1TcGVsbEJhZHwJIEIgIG1pc3NwZWxsZWQgd29yZCB8c3BlbGx8CiAJfGhsLVNwZWxsQ2FwfAkgUCAgd29yZCB0aGF0IHNob3VsZCBzdGFydCB3aXRoIGNhcGl0YWwgfHNwZWxsfAogCXxobC1TcGVsbFJhcmV8CSBSICByYXJlIHdvcmQgfHNwZWxsfAogCXxobC1TcGVsbExvY2FsfAkgTCAgd29yZCBmcm9tIG90aGVyIHJlZ2lvbiB8c3BlbGx8Ci0JfGhsLUNvbmNlYWx8CSAtICB0aGUgcGxhY2Vob2xkZXJzIHVzZWQgZm9yIGNvbmNlYWxlZCBjaGFyYWN0ZXJzCi0JCQkgICAgKHNlZSAnY29uY2VhbGxldmVsJykKLQl8aGwtUG1lbnV8ICAgICAgICsgIHBvcHVwIG1lbnUgbm9ybWFsIGxpbmUKLQl8aGwtUG1lbnVTZWx8ICAgID0gIHBvcHVwIG1lbnUgbm9ybWFsIGxpbmUKLQl8aGwtUG1lbnVTYmFyfCAgIHggIHBvcHVwIG1lbnUgc2Nyb2xsYmFyCi0JfGhsLVBtZW51VGh1bWJ8ICBYICBwb3B1cCBtZW51IHNjcm9sbGJhciB0aHVtYgorCXxobC1QbWVudXwJICsgIHBvcHVwIG1lbnUgbm9ybWFsIGxpbmUKKwl8aGwtUG1lbnVTZWx8CSA9ICBwb3B1cCBtZW51IHNlbGVjdGVkIGxpbmUKKwl8aGwtUG1lbnVTYmFyfAkgeCAgcG9wdXAgbWVudSBzY3JvbGxiYXIKKwl8aGwtUG1lbnVUaHVtYnwJIFggIHBvcHVwIG1lbnUgc2Nyb2xsYmFyIHRodW1iCiAKIAlUaGUgZGlzcGxheSBtb2RlcyBhcmU6CiAJCXIJcmV2ZXJzZQkJKHRlcm1jYXAgZW50cnkgIm1yIiBhbmQgIm1lIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3JlcGVhdC50eHQgYi9ydW50aW1lL2RvYy9yZXBlYXQudHh0CmluZGV4IDZlNjUyMjAuLjAzYTI3OTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3JlcGVhdC50eHQKKysrIGIvcnVudGltZS9kb2MvcmVwZWF0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpyZXBlYXQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTggTWFyIDA0CisqcmVwZWF0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzM1LDcgKzMzNSwxMCBAQAogCQkJfCtldmFsfCBmZWF0dXJlfQogCiA6c2NyW2lwdG5hbWVzXVshXSB7c2NyaXB0SWR9CQkJKjpzY3JpcHQqCi0JCQlFZGl0IHNjcmlwdCB7c2NyaXB0SWR9LiAgU3VnZ2VzdGVkIG5hbWUgaXMgIjpzY3JpcHQiLgorCQkJRWRpdCBzY3JpcHQge3NjcmlwdElkfS4gIEFsdGhvdWdoICI6c2NyaXB0bmFtZXMgbmFtZSIKKwkJCXdvcmtzLCB1c2luZyAiOnNjcmlwdCBuYW1lIiBpcyByZWNvbW1lbmRlZC4KKwkJCVdoZW4gdGhlIGN1cnJlbnQgYnVmZmVyIGNhbid0IGJlIHxhYmFuZG9ufGVkIGFuZCB0aGUgIQorCQkJaXMgbm90IHByZXNlbnQsIHRoZSBjb21tYW5kIGZhaWxzLgogCiAJCQkJCQkqOmZpbmkqICo6ZmluaXNoKiAqRTE2OCoKIDpmaW5pW3NoXQkJU3RvcCBzb3VyY2luZyBhIHNjcmlwdC4gIENhbiBvbmx5IGJlIHVzZWQgaW4gYSBWaW0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CmluZGV4IGQxODc1ZmMuLjI5ZmFlMmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTggQXByIDMwCisqc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yMywyMSArMjMsMjIgQEAKIDEuICBRdWljayBzdGFydAkJCXw6c3luLXFzdGFydHwKIDIuICBTeW50YXggZmlsZXMJCXw6c3luLWZpbGVzfAogMy4gIFN5bnRheCBsb2FkaW5nIHByb2NlZHVyZQl8c3ludGF4LWxvYWRpbmd8Ci00LiAgU3ludGF4IGZpbGUgcmVtYXJrcwkJfDpzeW4tZmlsZS1yZW1hcmtzfAotNS4gIERlZmluaW5nIGEgc3ludGF4CQl8OnN5bi1kZWZpbmV8Ci02LiAgOnN5bnRheCBhcmd1bWVudHMJCXw6c3luLWFyZ3VtZW50c3wKLTcuICBTeW50YXggcGF0dGVybnMJCXw6c3luLXBhdHRlcm58Ci04LiAgU3ludGF4IGNsdXN0ZXJzCQl8OnN5bi1jbHVzdGVyfAotOS4gIEluY2x1ZGluZyBzeW50YXggZmlsZXMJfDpzeW4taW5jbHVkZXwKLTEwLiBTeW5jaHJvbml6aW5nCQl8OnN5bi1zeW5jfAotMTEuIExpc3Rpbmcgc3ludGF4IGl0ZW1zCXw6c3ludGF4fAotMTIuIEhpZ2hsaWdodCBjb21tYW5kCQl8OmhpZ2hsaWdodHwKLTEzLiBMaW5raW5nIGdyb3VwcwkJfDpoaWdobGlnaHQtbGlua3wKLTE0LiBDbGVhbmluZyB1cAkJCXw6c3luLWNsZWFyfAotMTUuIEhpZ2hsaWdodGluZyB0YWdzCQl8dGFnLWhpZ2hsaWdodHwKLTE2LiBXaW5kb3ctbG9jYWwgc3ludGF4CQl8Om93bnN5bnRheHwKLTE3LiBDb2xvciB4dGVybXMJCXx4dGVybS1jb2xvcnwKLTE4LiBXaGVuIHN5bnRheCBpcyBzbG93CQl8OnN5bnRpbWV8Cis0LiAgQ29udmVydGluZyB0byBIVE1MCQl8Mmh0bWwudmltfAorNS4gIFN5bnRheCBmaWxlIHJlbWFya3MJCXw6c3luLWZpbGUtcmVtYXJrc3wKKzYuICBEZWZpbmluZyBhIHN5bnRheAkJfDpzeW4tZGVmaW5lfAorNy4gIDpzeW50YXggYXJndW1lbnRzCQl8OnN5bi1hcmd1bWVudHN8Cis4LiAgU3ludGF4IHBhdHRlcm5zCQl8OnN5bi1wYXR0ZXJufAorOS4gIFN5bnRheCBjbHVzdGVycwkJfDpzeW4tY2x1c3RlcnwKKzEwLiAgSW5jbHVkaW5nIHN5bnRheCBmaWxlcwl8OnN5bi1pbmNsdWRlfAorMTEuIFN5bmNocm9uaXppbmcJCXw6c3luLXN5bmN8CisxMi4gTGlzdGluZyBzeW50YXggaXRlbXMJfDpzeW50YXh8CisxMy4gSGlnaGxpZ2h0IGNvbW1hbmQJCXw6aGlnaGxpZ2h0fAorMTQuIExpbmtpbmcgZ3JvdXBzCQl8OmhpZ2hsaWdodC1saW5rfAorMTUuIENsZWFuaW5nIHVwCQkJfDpzeW4tY2xlYXJ8CisxNi4gSGlnaGxpZ2h0aW5nIHRhZ3MJCXx0YWctaGlnaGxpZ2h0fAorMTcuIFdpbmRvdy1sb2NhbCBzeW50YXgJCXw6b3duc3ludGF4fAorMTguIENvbG9yIHh0ZXJtcwkJfHh0ZXJtLWNvbG9yfAorMTkuIFdoZW4gc3ludGF4IGlzIHNsb3cJCXw6c3ludGltZXwKIAoge1ZpIGRvZXMgbm90IGhhdmUgYW55IG9mIHRoZXNlIGNvbW1hbmRzfQogCkBAIC0zNjgsMjAgKzM2OSw5IEBACiAJc3ludGF4LgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTQuIFN5bnRheCBmaWxlIHJlbWFya3MJCQkJCSo6c3luLWZpbGUtcmVtYXJrcyoKKzQuIENvbnZlcnNpb24gdG8gSFRNTAkJCQkqMmh0bWwudmltKiAqY29udmVydC10by1IVE1MKgogCi0JCQkJCQkqYjpjdXJyZW50X3N5bnRheC12YXJpYWJsZSoKLVZpbSBzdG9yZXMgdGhlIG5hbWUgb2YgdGhlIHN5bnRheCB0aGF0IGhhcyBiZWVuIGxvYWRlZCBpbiB0aGUKLSJiOmN1cnJlbnRfc3ludGF4IiB2YXJpYWJsZS4gIFlvdSBjYW4gdXNlIHRoaXMgaWYgeW91IHdhbnQgdG8gbG9hZCBvdGhlcgotc2V0dGluZ3MsIGRlcGVuZGluZyBvbiB3aGljaCBzeW50YXggaXMgYWN0aXZlLglFeGFtcGxlOiA+Ci0gICA6YXUgQnVmUmVhZFBvc3QgKiBpZiBiOmN1cnJlbnRfc3ludGF4ID09ICJjc2giCi0gICA6YXUgQnVmUmVhZFBvc3QgKiAgIGRvLXNvbWUtdGhpbmdzCi0gICA6YXUgQnVmUmVhZFBvc3QgKiBlbmRpZgotCi0KLTJIVE1MCQkJCQkJKjJodG1sLnZpbSogKmNvbnZlcnQtdG8tSFRNTCoKLQotVGhpcyBpcyBub3QgYSBzeW50YXggZmlsZSBpdHNlbGYsIGJ1dCBhIHNjcmlwdCB0aGF0IGNvbnZlcnRzIHRoZSBjdXJyZW50CisyaHRtbCBpcyBub3QgYSBzeW50YXggZmlsZSBpdHNlbGYsIGJ1dCBhIHNjcmlwdCB0aGF0IGNvbnZlcnRzIHRoZSBjdXJyZW50CiB3aW5kb3cgaW50byBIVE1MLiBWaW0gb3BlbnMgYSBuZXcgd2luZG93IGluIHdoaWNoIGl0IGJ1aWxkcyB0aGUgSFRNTCBmaWxlLgogCiBBZnRlciB5b3Ugc2F2ZSB0aGUgcmVzdWx0aW5nIGZpbGUsIHlvdSBjYW4gdmlldyBpdCB3aXRoIGFueSBicm93c2VyLiBUaGUKQEAgLTc3Myw2ICs3NjMsMTggQEAKID4KICAgICA6bGV0IGc6aHRtbF91c2VfeGh0bWwgPSAxCiA8Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzUuIFN5bnRheCBmaWxlIHJlbWFya3MJCQkJCSo6c3luLWZpbGUtcmVtYXJrcyoKKworCQkJCQkJKmI6Y3VycmVudF9zeW50YXgtdmFyaWFibGUqCitWaW0gc3RvcmVzIHRoZSBuYW1lIG9mIHRoZSBzeW50YXggdGhhdCBoYXMgYmVlbiBsb2FkZWQgaW4gdGhlCisiYjpjdXJyZW50X3N5bnRheCIgdmFyaWFibGUuICBZb3UgY2FuIHVzZSB0aGlzIGlmIHlvdSB3YW50IHRvIGxvYWQgb3RoZXIKK3NldHRpbmdzLCBkZXBlbmRpbmcgb24gd2hpY2ggc3ludGF4IGlzIGFjdGl2ZS4JRXhhbXBsZTogPgorICAgOmF1IEJ1ZlJlYWRQb3N0ICogaWYgYjpjdXJyZW50X3N5bnRheCA9PSAiY3NoIgorICAgOmF1IEJ1ZlJlYWRQb3N0ICogICBkby1zb21lLXRoaW5ncworICAgOmF1IEJ1ZlJlYWRQb3N0ICogZW5kaWYKKworCiAKIEFCRUwJCQkJCQkqYWJlbC52aW0qICpmdC1hYmVsLXN5bnRheCoKIApAQCAtMzQ4NCw3ICszNDg2LDcgQEAKIAk6bGV0IGc6enNoX2ZvbGRfZW5hYmxlID0gMQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTUuIERlZmluaW5nIGEgc3ludGF4CQkJCQkqOnN5bi1kZWZpbmUqICpFNDEwKgorNi4gRGVmaW5pbmcgYSBzeW50YXgJCQkJCSo6c3luLWRlZmluZSogKkU0MTAqCiAKIFZpbSB1bmRlcnN0YW5kcyB0aHJlZSB0eXBlcyBvZiBzeW50YXggaXRlbXM6CiAKQEAgLTM4NDMsNyArMzg0NSw3IEBACiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3ludGF4IGdyb3VwcyBpcyAxOTk5OS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci02LiA6c3ludGF4IGFyZ3VtZW50cwkJCQkJKjpzeW4tYXJndW1lbnRzKgorNy4gOnN5bnRheCBhcmd1bWVudHMJCQkJCSo6c3luLWFyZ3VtZW50cyoKIAogVGhlIDpzeW50YXggY29tbWFuZHMgdGhhdCBkZWZpbmUgc3ludGF4IGl0ZW1zIHRha2UgYSBudW1iZXIgb2YgYXJndW1lbnRzLgogVGhlIGNvbW1vbiBvbmVzIGFyZSBleHBsYWluZWQgaGVyZS4gIFRoZSBhcmd1bWVudHMgbWF5IGJlIGdpdmVuIGluIGFueSBvcmRlcgpAQCAtNDE2NCw3ICs0MTY2LDcgQEAKIAlTaG93IGVpdGhlciAic3ludGF4IGNvbmNlYWwgb24iIG9yICJzeW50YXggY29uY2VhbCBvZmYiICh0cmFuc2xhdGVkKS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci03LiBTeW50YXggcGF0dGVybnMJCQkJKjpzeW4tcGF0dGVybiogKkU0MDEqICpFNDAyKgorOC4gU3ludGF4IHBhdHRlcm5zCQkJCSo6c3luLXBhdHRlcm4qICpFNDAxKiAqRTQwMioKIAogSW4gdGhlIHN5bnRheCBjb21tYW5kcywgYSBwYXR0ZXJuIG11c3QgYmUgc3Vycm91bmRlZCBieSB0d28gaWRlbnRpY2FsCiBjaGFyYWN0ZXJzLiAgVGhpcyBpcyBsaWtlIGl0IHdvcmtzIGZvciB0aGUgIjpzIiBjb21tYW5kLiAgVGhlIG1vc3QgY29tbW9uIHRvCkBAIC00MzQyLDcgKzQzNDQsNyBAQAogY2Fubm90IGJlIHJlZmVycmVkIHRvLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTguIFN5bnRheCBjbHVzdGVycwkJCQkJKjpzeW4tY2x1c3RlciogKkU0MDAqCis5LiBTeW50YXggY2x1c3RlcnMJCQkJCSo6c3luLWNsdXN0ZXIqICpFNDAwKgogCiA6c3lbbnRheF0gY2x1c3RlciB7Y2x1c3Rlci1uYW1lfSBbY29udGFpbnM9e2dyb3VwLW5hbWV9Li5dCiAJCQkJIFthZGQ9e2dyb3VwLW5hbWV9Li5dCkBAIC00Mzg4LDcgKzQzOTAsNyBAQAogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNsdXN0ZXJzIGlzIDk3NjcuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotOS4gSW5jbHVkaW5nIHN5bnRheCBmaWxlcwkJCQkqOnN5bi1pbmNsdWRlKiAqRTM5NyoKKzEwLiBJbmNsdWRpbmcgc3ludGF4IGZpbGVzCQkJCSo6c3luLWluY2x1ZGUqICpFMzk3KgogCiBJdCBpcyBvZnRlbiB1c2VmdWwgZm9yIG9uZSBsYW5ndWFnZSdzIHN5bnRheCBmaWxlIHRvIGluY2x1ZGUgYSBzeW50YXggZmlsZSBmb3IKIGEgcmVsYXRlZCBsYW5ndWFnZS4gIERlcGVuZGluZyBvbiB0aGUgZXhhY3QgcmVsYXRpb25zaGlwLCB0aGlzIGNhbiBiZSBkb25lIGluCkBAIC00NDI5LDcgKzQ0MzEsNyBAQAogVGhlIG1heGltdW0gbnVtYmVyIG9mIGluY2x1ZGVzIGlzIDk5OS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0xMC4gU3luY2hyb25pemluZwkJCQkqOnN5bi1zeW5jKiAqRTQwMyogKkU0MDQqCisxMS4gU3luY2hyb25pemluZwkJCQkqOnN5bi1zeW5jKiAqRTQwMyogKkU0MDQqCiAKIFZpbSB3YW50cyB0byBiZSBhYmxlIHRvIHN0YXJ0IHJlZHJhd2luZyBpbiBhbnkgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50LiAgVG8KIG1ha2UgdGhpcyBwb3NzaWJsZSBpdCBuZWVkcyB0byBrbm93IHRoZSBzeW50YXggc3RhdGUgYXQgdGhlIHBvc2l0aW9uIHdoZXJlCkBAIC00NjIxLDcgKzQ2MjMsNyBAQAogICAgOnN5bnRheCBzeW5jIGNsZWFyIHtzeW5jLWdyb3VwLW5hbWV9IC4uCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotMTEuIExpc3Rpbmcgc3ludGF4IGl0ZW1zCQkqOnN5bnRheCogKjpzeSogKjpzeW4qICo6c3luLWxpc3QqCisxMi4gTGlzdGluZyBzeW50YXggaXRlbXMJCSo6c3ludGF4KiAqOnN5KiAqOnN5biogKjpzeW4tbGlzdCoKIAogVGhpcyBjb21tYW5kIGxpc3RzIGFsbCB0aGUgc3ludGF4IGl0ZW1zOiA+CiAKQEAgLTQ2NDEsNyArNDY0Myw3IEBACiBpcyBtb3N0bHkgdXNlZCwgYmVjYXVzZSBpdCBsb29rcyBiZXR0ZXIuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotMTIuIEhpZ2hsaWdodCBjb21tYW5kCQkJKjpoaWdobGlnaHQqICo6aGkqICpFMjgqICpFNDExKiAqRTQxNSoKKzEzLiBIaWdobGlnaHQgY29tbWFuZAkJCSo6aGlnaGxpZ2h0KiAqOmhpKiAqRTI4KiAqRTQxMSogKkU0MTUqCiAKIFRoZXJlIGFyZSB0aHJlZSB0eXBlcyBvZiBoaWdobGlnaHQgZ3JvdXBzOgogLSBUaGUgb25lcyB1c2VkIGZvciBzcGVjaWZpYyBsYW5ndWFnZXMuICBGb3IgdGhlc2UgdGhlIG5hbWUgc3RhcnRzIHdpdGggdGhlCkBAIC01MTM0LDcgKzUxMzYsNyBAQAogCQlzZXQuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotMTMuIExpbmtpbmcgZ3JvdXBzCQkqOmhpLWxpbmsqICo6aGlnaGxpZ2h0LWxpbmsqICpFNDEyKiAqRTQxMyoKKzE0LiBMaW5raW5nIGdyb3VwcwkJKjpoaS1saW5rKiAqOmhpZ2hsaWdodC1saW5rKiAqRTQxMiogKkU0MTMqCiAKIFdoZW4geW91IHdhbnQgdG8gdXNlIHRoZSBzYW1lIGhpZ2hsaWdodGluZyBmb3Igc2V2ZXJhbCBzeW50YXggZ3JvdXBzLCB5b3UKIGNhbiBkbyB0aGlzIG1vcmUgZWFzaWx5IGJ5IGxpbmtpbmcgdGhlIGdyb3VwcyBpbnRvIG9uZSBjb21tb24gaGlnaGxpZ2h0CkBAIC01MTcyLDcgKzUxNzQsNyBAQAogb3ZlcnJ1bGVkIHdoZW4gdGhlIHN5bnRheCBmaWxlIGlzIGxvYWRlZC4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0xNC4gQ2xlYW5pbmcgdXAJCQkJCQkqOnN5bi1jbGVhciogKkUzOTEqCisxNS4gQ2xlYW5pbmcgdXAJCQkJCQkqOnN5bi1jbGVhciogKkUzOTEqCiAKIElmIHlvdSB3YW50IHRvIGNsZWFyIHRoZSBzeW50YXggc3R1ZmYgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlciwgeW91IGNhbiB1c2UgdGhpcwogY29tbWFuZDogPgpAQCAtNTI2Myw3ICs1MjY1LDcgQEAKIAkJdGhlbS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0xNS4gSGlnaGxpZ2h0aW5nIHRhZ3MJCQkJCSp0YWctaGlnaGxpZ2h0KgorMTYuIEhpZ2hsaWdodGluZyB0YWdzCQkJCQkqdGFnLWhpZ2hsaWdodCoKIAogSWYgeW91IHdhbnQgdG8gaGlnaGxpZ2h0IGFsbCB0aGUgdGFncyBpbiB5b3VyIGZpbGUsIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcKIG1hcHBpbmdzLgpAQCAtNTI5OCw3ICs1MzAwLDcgQEAKICAgIGF1dG9jbWQgQnVmUmVhZCxCdWZOZXdGaWxlICouW2NoXSBlbmRpZgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTE2LiBXaW5kb3ctbG9jYWwgc3ludGF4CQkJCSo6b3duc3ludGF4KgorMTcuIFdpbmRvdy1sb2NhbCBzeW50YXgJCQkJKjpvd25zeW50YXgqCiAKIE5vcm1hbGx5IGFsbCB3aW5kb3dzIG9uIGEgYnVmZmVyIHNoYXJlIHRoZSBzYW1lIHN5bnRheCBzZXR0aW5ncy4gSXQgaXMKIHBvc3NpYmxlLCBob3dldmVyLCB0byBzZXQgYSBwYXJ0aWN1bGFyIHdpbmRvdyBvbiBhIGZpbGUgdG8gaGF2ZSBpdHMgb3duCkBAIC01MzI4LDcgKzUzMzAsNyBAQAogV2hlbiBzcGxpdHRpbmcgdGhlIHdpbmRvdywgdGhlIG5ldyB3aW5kb3cgd2lsbCB1c2UgdGhlIG9yaWdpbmFsIHN5bnRheC4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0xNy4gQ29sb3IgeHRlcm1zCQkJCSp4dGVybS1jb2xvciogKmNvbG9yLXh0ZXJtKgorMTguIENvbG9yIHh0ZXJtcwkJCQkqeHRlcm0tY29sb3IqICpjb2xvci14dGVybSoKIAogTW9zdCBjb2xvciB4dGVybXMgaGF2ZSBvbmx5IGVpZ2h0IGNvbG9ycy4gIElmIHlvdSBkb24ndCBnZXQgY29sb3JzIHdpdGggdGhlCiBkZWZhdWx0IHNldHVwLCBpdCBzaG91bGQgd29yayB3aXRoIHRoZXNlIGxpbmVzIGluIHlvdXIgLnZpbXJjOiA+CkBAIC01NDcyLDcgKzU0NzQsNyBAQAogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotMTguIFdoZW4gc3ludGF4IGlzIHNsb3cJCQkJCQkqOnN5bnRpbWUqCisxOS4gV2hlbiBzeW50YXggaXMgc2xvdwkJCQkJCSo6c3ludGltZSoKIAogVGhpcyBpcyBhaW1lZCBhdCBhdXRob3JzIG9mIGEgc3ludGF4IGZpbGUuCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IGQ3NzFmY2MuLjA1MjU5NzYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtMTM1Niw2ICsxMzU2LDcgQEAKICt0ZXJtaW5mbwl2YXJpb3VzLnR4dAkvKit0ZXJtaW5mbyoKICt0ZXJtcmVzcG9uc2UJdmFyaW91cy50eHQJLyordGVybXJlc3BvbnNlKgogK3RleHRvYmplY3RzCXZhcmlvdXMudHh0CS8qK3RleHRvYmplY3RzKgorK3RleHRwcm9wCXZhcmlvdXMudHh0CS8qK3RleHRwcm9wKgogK3RnZXRlbnQJdmFyaW91cy50eHQJLyordGdldGVudCoKICt0aW1lcnMJdmFyaW91cy50eHQJLyordGltZXJzKgogK3RpdGxlCXZhcmlvdXMudHh0CS8qK3RpdGxlKgpAQCAtMjkxOSw2ICsyOTIwLDcgQEAKIDpzY2wJY2hhbmdlLnR4dAkvKjpzY2wqCiA6c2NwCWNoYW5nZS50eHQJLyo6c2NwKgogOnNjcglyZXBlYXQudHh0CS8qOnNjcioKKzpzY3JpcHQJcmVwZWF0LnR4dAkvKjpzY3JpcHQqCiA6c2NyaXB0ZQlyZXBlYXQudHh0CS8qOnNjcmlwdGUqCiA6c2NyaXB0ZW5jb2RpbmcJcmVwZWF0LnR4dAkvKjpzY3JpcHRlbmNvZGluZyoKIDpzY3JpcHRuYW1lcwlyZXBlYXQudHh0CS8qOnNjcmlwdG5hbWVzKgpAQCAtNDY1Myw3ICs0NjU1LDE2IEBACiBFOTYwCW9wdGlvbnMudHh0CS8qRTk2MCoKIEU5NjEJY21kbGluZS50eHQJLypFOTYxKgogRTk2MglldmFsLnR4dAkvKkU5NjIqCitFOTYzCWV2YWwudHh0CS8qRTk2MyoKK0U5NjQJZXZhbC50eHQJLypFOTY0KgorRTk2NQlldmFsLnR4dAkvKkU5NjUqCitFOTY2CWV2YWwudHh0CS8qRTk2NioKK0U5NjcJdGV4dHByb3AudHh0CS8qRTk2NyoKK0U5NjgJZXZhbC50eHQJLypFOTY4KgorRTk2OQlldmFsLnR4dAkvKkU5NjkqCiBFOTcJZGlmZi50eHQJLypFOTcqCitFOTcwCWV2YWwudHh0CS8qRTk3MCoKK0U5NzEJdGV4dHByb3AudHh0CS8qRTk3MSoKIEU5OAlkaWZmLnR4dAkvKkU5OCoKIEU5OQlkaWZmLnR4dAkvKkU5OSoKIEVYCWludHJvLnR4dAkvKkVYKgpAQCAtODExNCw3ICs4MTI1LDE4IEBACiBwcm9tcHRfc2V0Y2FsbGJhY2soKQlldmFsLnR4dAkvKnByb21wdF9zZXRjYWxsYmFjaygpKgogcHJvbXB0X3NldGludGVycnVwdCgpCWV2YWwudHh0CS8qcHJvbXB0X3NldGludGVycnVwdCgpKgogcHJvbXB0X3NldHByb21wdCgpCWV2YWwudHh0CS8qcHJvbXB0X3NldHByb21wdCgpKgorcHJvbXB0YnVmZmVyLWZ1bmN0aW9ucwl1c3JfNDEudHh0CS8qcHJvbXB0YnVmZmVyLWZ1bmN0aW9ucyoKIHByb25vdW5jZQlpbnRyby50eHQJLypwcm9ub3VuY2UqCitwcm9wX2FkZCgpCWV2YWwudHh0CS8qcHJvcF9hZGQoKSoKK3Byb3BfY2xlYXIoKQlldmFsLnR4dAkvKnByb3BfY2xlYXIoKSoKK3Byb3BfZmluZCgpCWV2YWwudHh0CS8qcHJvcF9maW5kKCkqCitwcm9wX2xpc3QoKQlldmFsLnR4dAkvKnByb3BfbGlzdCgpKgorcHJvcF9yZW1vdmUoKQlldmFsLnR4dAkvKnByb3BfcmVtb3ZlKCkqCitwcm9wX3R5cGVfYWRkKCkJZXZhbC50eHQJLypwcm9wX3R5cGVfYWRkKCkqCitwcm9wX3R5cGVfY2hhbmdlKCkJZXZhbC50eHQJLypwcm9wX3R5cGVfY2hhbmdlKCkqCitwcm9wX3R5cGVfZGVsZXRlKCkJZXZhbC50eHQJLypwcm9wX3R5cGVfZGVsZXRlKCkqCitwcm9wX3R5cGVfZ2V0KCkJZXZhbC50eHQJLypwcm9wX3R5cGVfZ2V0KCkqCitwcm9wX3R5cGVfbGlzdCgpCWV2YWwudHh0CS8qcHJvcF90eXBlX2xpc3QoKSoKIHBzcWwJZnRfc3FsLnR4dAkvKnBzcWwqCiBwdGNhcC52aW0Jc3ludGF4LnR4dAkvKnB0Y2FwLnZpbSoKIHB0ZXJtLW1vdXNlCW9wdGlvbnMudHh0CS8qcHRlcm0tbW91c2UqCkBAIC04OTM2LDYgKzg5NTgsNyBAQAogdGFnLWJsb2Nrcwltb3Rpb24udHh0CS8qdGFnLWJsb2NrcyoKIHRhZy1jb21tYW5kcwl0YWdzcmNoLnR4dAkvKnRhZy1jb21tYW5kcyoKIHRhZy1kZXRhaWxzCXRhZ3NyY2gudHh0CS8qdGFnLWRldGFpbHMqCit0YWctZnVuY3Rpb25zCXVzcl80MS50eHQJLyp0YWctZnVuY3Rpb25zKgogdGFnLWhpZ2hsaWdodAlzeW50YXgudHh0CS8qdGFnLWhpZ2hsaWdodCoKIHRhZy1tYXRjaGxpc3QJdGFnc3JjaC50eHQJLyp0YWctbWF0Y2hsaXN0KgogdGFnLW9sZC1zdGF0aWMJdGFnc3JjaC50eHQJLyp0YWctb2xkLXN0YXRpYyoKQEAgLTkxMzIsNyArOTE1NSwxMSBAQAogdGV4dC1mdW5jdGlvbnMJdXNyXzQxLnR4dAkvKnRleHQtZnVuY3Rpb25zKgogdGV4dC1vYmplY3RzCW1vdGlvbi50eHQJLyp0ZXh0LW9iamVjdHMqCiB0ZXh0LW9iamVjdHMtY2hhbmdlZAl2ZXJzaW9uNS50eHQJLyp0ZXh0LW9iamVjdHMtY2hhbmdlZCoKK3RleHQtcHJvcC1mdW5jdGlvbnMJdGV4dHByb3AudHh0CS8qdGV4dC1wcm9wLWZ1bmN0aW9ucyoKK3RleHQtcHJvcC1pbnRybwl0ZXh0cHJvcC50eHQJLyp0ZXh0LXByb3AtaW50cm8qCit0ZXh0LXByb3BlcnRpZXMJdGV4dHByb3AudHh0CS8qdGV4dC1wcm9wZXJ0aWVzKgogdGV4dGxvY2sJZXZhbC50eHQJLyp0ZXh0bG9jayoKK3RleHRwcm9wLnR4dAl0ZXh0cHJvcC50eHQJLyp0ZXh0cHJvcC50eHQqCiB0Zi52aW0Jc3ludGF4LnR4dAkvKnRmLnZpbSoKIHRoaXNfc2Vzc2lvbi12YXJpYWJsZQlldmFsLnR4dAkvKnRoaXNfc2Vzc2lvbi12YXJpYWJsZSoKIHRocm93LWNhdGNoCWV2YWwudHh0CS8qdGhyb3ctY2F0Y2gqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90ZXh0cHJvcC50eHQgYi9ydW50aW1lL2RvYy90ZXh0cHJvcC50eHQKaW5kZXggYzg4Y2EzNy4uNzJlNzBjNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGV4dHByb3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL3RleHRwcm9wLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0ZXh0cHJvcC50eHQqICBGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTggRGVjIDEzCisqdGV4dHByb3AudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNzIsOCArNzIsOCBAQAogCiBUbyBoaWdobGlnaHQgdGhlIG51bWJlcnM6ID4KIAljYWxsIHByb3BfdHlwZV9hZGQoJ251bWJlcicsIHsnaGlnaGxpZ2h0JzogJ0NvbnN0YW50J30pCi0JY2FsbCBwcm9wX2FkZCgxMSwgMTIsIHsnbGVuZ3RoJzogMywgJ3R5cGUnOiAnbnVtYmVyfSkKLQljYWxsIHByb3BfYWRkKDExLCAzMiwgeydsZW5ndGgnOiA0LCAndHlwZSc6ICdudW1iZXJ9KQorCWNhbGwgcHJvcF9hZGQoMTEsIDEyLCB7J2xlbmd0aCc6IDMsICd0eXBlJzogJ251bWJlcid9KQorCWNhbGwgcHJvcF9hZGQoMTEsIDMyLCB7J2xlbmd0aCc6IDQsICd0eXBlJzogJ251bWJlcid9KQogCiBTZXR0aW5nICJzdGFydF9pbmNsIiBhbmQgImVuZF9pbmNsIiBpcyB1c2VmdWwgd2hlbiB3aGl0ZSBzcGFjZSBzdXJyb3VuZHMgdGhlCiB0ZXh0LCBlLmcuIGZvciBhIGZ1bmN0aW9uIG5hbWUuICBVc2luZyBmYWxzZSBpcyB1c2VmdWwgd2hlbiB0aGUgdGV4dCBzdGFydHMKQEAgLTg2LDcgKzg2LDcgQEAKIAkgICAgICBeXl5eXl4JICAgICBwcm9wZXJ0eSB3aXRoIHN0YXJ0X2luY2wgYW5kIGVuZF9pbmNsIG5vdCBzZXQKIAogTmV2ZXJ0aGVsZXNzLCB3aGVuIHRleHQgaXMgaW5zZXJ0ZWQgb3IgZGVsZXRlZCB0aGUgdGV4dCBtYXkgbmVlZCB0byBiZSBwYXJzZWQKLWFuZCB0aGUgdGV4dCBwcm9wZXJ0aWVzIHVwZGF0ZWQuICBCdXQgdGhpcyBjYW4gYmUgZG9uZSBhc3luY2hybm91c2x5LgorYW5kIHRoZSB0ZXh0IHByb3BlcnRpZXMgdXBkYXRlZC4gIEJ1dCB0aGlzIGNhbiBiZSBkb25lIGFzeW5jaHJvbm91c2x5LgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDIuIEZ1bmN0aW9ucwkJCQkJCSp0ZXh0LXByb3AtZnVuY3Rpb25zKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCA0YjQ0MzlmLi5kMDllY2VlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTggRGVjIDA5CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01Niw4ICs1Niw2IEBACiAKIFRlcm1pbmFsIGRlYnVnZ2VyOgogLSBNYWtlIHByb21wdC1idWZmZXIgdmFyaWFudCB3b3JrIGJldHRlci4KLS0gSWYgYnJlYWtwb2ludHMgYXJlIGRlbGV0ZWQgd2l0aCAiZGVsZXRlIiBpbiBnZGIgdGhlIHJlc3BvbnNlIGlzIG5vdCBwYXJzZWQKLSAgcHJvcGVybHkgYW5kIHRoZSBicmVha3BvaW50cyBpbiBWaW0gYXJlIG5vdCByZW1vdmVkLgogLSBBZGQgb3B0aW9uIHRvIG5vdCBvcGVuIHRoZSBwcm9ncmFtIHdpbmRvdy4gIEl0J3Mgbm90IHVzZWQgd2hlbiBhdHRhY2hpbmcgdG8KICAgYW4gYWxyZWFkeSBydW5uaW5nIHByb2dyYW0uIChNLiBLZWxseSkKIC0gV2hlbiBvbmx5IGdkYiB3aW5kb3cgZXhpc3RzLCBvbiAicXVpdCIgZWRpdCBhbm90aGVyIGJ1ZmZlci4KQEAgLTY3LDcgKzY1LDcgQEAKIC0gQWRkIHN1cHBvcnQgZm9yIGxsZGI/ICAjMzU2NQogLSBDb3VsZCB3ZSBkbyBzb21ldGhpbmcgc2ltaWxhciBmb3IgZGVidWdnaW5nIFZpbSBzY3JpcHRzPyAgQXQgbGVhc3Qgc2VlIHRoZQogICBzY3JpcHQgd2hpbGUgc3RlcHBpbmcgdGhyb3VnaCBpdC4gIFNpbXBsZSB2ZXJzaW9uIHdvdWxkIHVzZSBhbiBleHRyYSB3aW5kb3cuCi0gIE1vcmUgY29tcGxldGUgc29sdXRpb24gd291bGQgYWN0dWFsbHkgcnVuIFZpbSBpbiBhIFRlcm1pbmFsIGFuIGNvbnRyb2wgaXQKKyAgTW9yZSBjb21wbGV0ZSBzb2x1dGlvbiB3b3VsZCBhY3R1YWxseSBydW4gVmltIGluIGEgVGVybWluYWwgYW5kIGNvbnRyb2wgaXQKICAgd2l0aCBhbm90aGVyIFZpbSBpbnN0YW5jZS4KIAogVGVybWluYWwgZW11bGF0b3Igd2luZG93OgpAQCAtMTExLDkgKzEwOSw2IEBACiBQYXRjaCB3aXRoIHRlc3RzLCBidXQgaXQncyBub3QgY2xlYXIgaG93IGl0IGlzIHN1cHBvc2VkIHRvIHdvcmsuICh0b21tbSwgMjAxOAogTm92IDE3KQogCi1QYXRjaCB0byBhZGQgY29uZmlndXJlIGZsYWdzIHRvIHNraXAgcnRsLCBmYXJzaSBhbmQgYXJhYmljIHN1cHBvcnQuCi0oRGllZ28gQ2FycmnDs24sICMxODY3KQotCiBLZXkgbWFwcGluZyB0aW1lcyBvdXQgd2hlbiB1c2luZyBhIHRpbWVyIGluIEd2aW0uIChNaWNoYWVsIEhlbnJ5LCAyMDE4IFNlcCA5LAogIzM0MTcpCiAKQEAgLTEyMSw2ICsxMTYsMTcgQEAKIC0gX3N0YXQ2NCBpcyBub3QgZGVmaW5lZCwgbmVlZCB0byB1c2UgInN0cnVjdCBzdGF0IiBpbiB2aW0uaAogLSBXSU5WRVIgY29uZmxpY3QsIHNob3VsZCB1c2UgMHgwNjAwIGJ5IGRlZmF1bHQ/CiAKK1NpZ25zOgorLSAgIFBhdGNoIHRvIGRlZmluZSBhbmQgbWFuaXB1bGF0ZSBzaWducyB3aXRoIGZ1bmN0aW9ucy4gIEFkZHMgc2lnbiBncm91cHMgYW5kCisgICAgcHJpb3JpdHkuICAgKFllZ2FwcGFuIExha3NobWFuYW4sICMzNjUyKQorLSAgIEF2b2lkIHRoYXQgInNpZ24gdW5wbGFjZSBpZCIgZG9lcyBhIHJlZHJhdyByaWdodCBhd2F5LCBlc3AuIHdoZW4gdGhlcmUgaXMKKyAgICBhIHNlcXVlbmNlIG9mIHRoZXNlIGNvbW1hbmRzLiAoQW5keSBTdGV3YXJ0LCAyMDE4IE1hciAxNikKKy0gICBQYXRjaCB0byByaWdodC1hbGlnbiBzaWducy4gKEphbWVzIEtvbGIgKGVtYWlsIGphbWVzKSwgMjAxMyBTZXAgMjMpCistICAgUGF0Y2ggZnJvbSBDaHJpc3RpYW4gQnJhYmFuZHQgdG8gbWFrZSB0aGUgImJ1ZmZlciIgYXJndW1lbnQgZm9yICI6c2lnbgorICAgIHBsYWNlIiBvcHRpb25hbC4gKDIwMTMgSnVsIDEyKQorCitSZW5hbWUgZ2V0X3R2XyBmdW5jdGlvbnMgdG8gdHZfZ2V0Xy4KKwogQ3Jhc2ggaW4gdGVybWluYWwgd2l0aCBsb25nIG11bHRpLWJ5dGUgc2VxdWVuY2UuICgyMDE4IE5vdiAxNywgIzM2MTkpCiBEb21pbmlxdWUgY2Fubm90IHJlcHJvZHVjZS4gVXBkYXRlIE5vdiAxOC4KIFN1Z2dlc3RlZCBzb2x1dGlvbiBieSBZYXN1aGlybyBNYXRzdW1vdG8sIDIwMTggTm92IDE4LgpAQCAtMTQzLDEwICsxNDksNyBAQAogbWFwcGluZ3Mgbm8gbG9uZ2VyIHdvcmsuICBDcmVhdGUgYSBuZXcgdGVybWluYWwgZm9yIHRoZSBiZXR0ZXIgc29sdXRpb24/CiAKIFBhdGNoIHRvIGZpeCB0aGF0IGFwcGVuZGluZyBtYWtlcyBpdGVtcyB0byBiZSAicmVjb2duaXplZCIuCi0oWWVnYXBwYW4sIDIwMTggTm92IDIzKS4gUmVwb3J0ZWQgYnkgRGFuaWVsIEhhaGxlciwgIzM2MzMuCi0KLVBhdGNoIHRvIGRlZmluZSBhbmQgbWFuaXB1bGF0ZSBzaWducyB3aXRoIGZ1bmN0aW9ucy4gIEFkZHMgc2lnbiBncm91cHMgYW5kCi1wcmlvcml0eS4gICAoWWVnYXBwYW4gTGFrc2htYW5hbiwgIzM2NTIpCisoWWVnYXBwYW4sIDIwMTggTm92IDIzLCAjMzY4MykuIFJlcG9ydGVkIGJ5IERhbmllbCBIYWhsZXIsICMzNjMzLgogCiBJbXByb3ZlIGZhbGxiYWNrIGZvciBtZW51IHRyYW5zbGF0aW9ucywgdG8gYXZvaWQgaGF2aW5nIHRvIGNyZWF0ZSBsb3RzIG9mCiBmaWxlcyB0aGF0IHNvdXJjZSB0aGUgYWN0dWFsIGZpbGUuICBFLmcuIG1lbnVfZGFfZGUgLT4gbWVudV9kYQpAQCAtMTczLDYgKzE3NiwyMSBAQAogQyBzeW50YXg6IHt9IGluc2lkZSAoKSBjYXVzZXMgZm9sbG93aW5nIHt9IHRvIGJlIGhpZ2hsaWdodGVkIGFzIGVycm9yLgogKE1pY2hhbGlzIEdpYW5uYWtpZGlzLCAyMDA2IEp1biAxKQogCitQYXRjaCB0byBmaXggZnVuY3Rpb24gb2JqZWN0IGluIFB5dGhvbjMuIChPemFraSBLaWljaGksICMzNjgxKQorCitQYXRjaCBvbiAjMzY5MCB0byBmaXggdGhhdCAid2luY21kIHAiIGRvZXMgbm90IGFsd2F5cyBiZWhhdmUgcHJvcGVybHkuCisoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE4IERlYyAxNykKKworImduIiBzZWxlY3RzIHR3byBtYXRjaGVzIGluc3RlYWQgb2Ygb25lIHdoZW4gdGhlIHBhdHRlcm4gY29udGFpbnMgIlx6cyIgYW5kCitzcGFucyBtb3JlIHRoYW4gb25lIGxpbmUuICAoIzM2OTUpCisKK1BhdGNoOiBXaGVuIHVzaW5nICV2IGluICdlcnJvcmZvcm1hdCcsIGFzc3VtZSB0aGUgbnVtYmVyIGlzIHRoZSBzY3JlZW4gY29sdW1uCitub3QgYnl0ZXMsIGFsc28gaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVzLiAoWWVnYXBwYW4gTGFrc2htYW5hbiwgIzM3MDApCisKK1BhdGNoIHRvIGFkZCBGT1JfQUxMX0ZSQU1FUy4gKFllZ2FwcGFuLCAyMDE4IERlYyAxMSwgIzM2ODYpCisKK1BhdGNoIGZvciBNaW5HVyBidWlsZCB3aXRoIHN0YXRpYyBsaWJyYXJpZXMuIChLZW4gVGFrYXRhLCAyMDE4IERlYyAxNikKKwogTW9yZSB3YXJuaW5ncyBmcm9tIHN0YXRpYyBhbmFseXNpczoKIGh0dHBzOi8vbGd0bS5jb20vcHJvamVjdHMvZy92aW0vdmltL2FsZXJ0cy8/bW9kZT1saXN0CiAKQEAgLTE4NCw2ICsyMDIsOCBAQAogCiBQYXRjaCBmb3IgQ29uUFRZIHN1cHBvcnQsICMzNDc0OiBXaGF0IGlzIHRoZSBzdGF0dXM/CiAKK252by1tb2RlIG1hcHBpbmcgd29ya3Mgb24gV2luZG93cywgbm90IG9uIExpbnV4LiAoIzM2NzgpCisKIFBhc3RpbmcgZm9vfSBjYXVzZXMgVmltIHRvIGJlaGF2ZSB3ZWlyZC4gKEpvaG4gTGl0dGxlLCAyMDE4IEp1biAxNykKIFJlbGF0ZWQgdG8gYnJhY2tldGVkIHBhc3RlLiAgSSBjYW5ub3QgcmVwcm9kdWNlIGl0LgogCkBAIC0xOTQsMTUgKzIxNCwxMiBAQAogVXNpbmcgQ1RSTC1MIHRvIGFkZCBhIGNoYXJhY3RlciB0byB0aGUgc2VhcmNoIHN0cmluZyB0aGF0IGNvbnRhaW5zIFx2LAogcHVuY3RpdWF0aW9uIGlzIHJlcGVhdGVkLiAoU215bGVycywgMjAxOCBOb3YgMTcsICMzNjIxKQogCitVc2luZyBDVFJMLUwgZHVyaW5nIHNlYXJjaCBvbmx5IHBpY2tzIHVwIHRoZSBiYXNlIGNoYXJhY3Rlciwgbm90IGEgY29tYmluaW5nCitjaGFyYWN0ZXIuIChSaWNrLCAyMDE4IERlYyAxMSwgIzM2ODIpCisKICI6bWtzZXNzaW9uIiBjYW5ub3QgaGFuZGxlIGEgdmVyeSBsb25nICdydW50aW1lcGF0aCcuIChUaW1vdGh5IE1hZGRlbiwgMjEgU2VwCiAyMDE4LCAjMzQ2NikgIFBhdGNoIGZyb20gQ2hyaXN0aWFuLCAyMDE4IE9jdCAzMCAod2l0aCBjb21tZW50cykuCiAKLVBhdGNoIHRvIGFkZCBmdW5jdGlvbnMgZm9yIHNpZ25zLiAoWWVnYXBwYW4gTGFrc2htYW5hbiwgMjAxOCBOb3YgMjQpCi1vYnNvbGV0ZTogUGF0Y2ggdG8gYWRkIGZ1bmN0aW9ucyBmb3Igc2lnbnMuIChDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTMgSmFuIDI3KQotCi1QYXRjaCBpbiBwdWxsIHJlcXVlc3QgIzI5Njc6IEFsbG93IHdoaXRlIHNwYWNlIGluIHNpZ24gdGV4dC4gKEJlbiBKYWNrc29uKQotVGVzdCBmYWlscyBpbiBBcHBWZXlvci4KLQogbWxfZ2V0IGVycm9yOiAoSXNyYWVsIENoYXVjYSBGdWVudGVzLCAyMDE4IE9jdCAxNywgIzM1NTApLgogCiBQYXRjaCB0byBjb252ZXJ0IHRlbXAgZmlsZSBuYW1lLiAoWWFzdWhpcm8gTWF0c3Vtb3RvLCAjMzUyMCkKQEAgLTIyMyw4ICsyNDAsOCBAQAogCiBQYXRjaCB0byBmaXggdGhhdCBicmFja2V0ZWQgcGFzdGUgcmVtYWlucyBhZnRlciBWaW0gZXhpdHMuICgyMDE4IE9jdCAzMCwgIzM1NzkpCiAKLVBhdGNoIGZvciBsbmV4dC9scHJldiB3b3JrIGluIHNwZWNpZmljIGNhc2VzLiAoWWVnYXBwYW4gTGFrc2htYW5hbiwgMjAxOCBEZWMKLTQsICMzNjMzKQorTWFrZSAiOmludGVyYWN0aXZlICFjbWQiIHN0b3AgdGVybWNhcCBtb2RlLCBhbHNvIHdoZW4gdXNlZCBpbiBhbiBhdXRvY29tbWFuZC4KKygjMzY5MikKIAogY3Vyc29ybGluZSBoaWdobGlnaHRpbmcgbm90IHJlbW92ZWQgYWZ0ZXIgeWFua2luZyBpbiBWaXN1YWwgbW9kZS4KIChNYXTDqW8gWmFuaWJlbGxpLCAyMDE4IE9jdCAzMCwgIzM1NzgpCkBAIC0zNDIsMTEgKzM1OSw2IEBACiAtIFRlc3Rfc2V0YnVmdmFyX29wdGlvbnMoKQogLSBUZXN0X2V4aXRfY2FsbGJhY2tfaW50ZXJ2YWwoKQogCi1HZXQgYSAiTm8gTmFtZSIgYnVmZmVyIHdoZW4gJ2hpZGRlbicgaXMgc2V0IGFuZCBvcGVuaW5nIGEgbmV3IHdpbmRvdyBmcm9tIHRoZQotcXVpY2tmaXggbGlzdC4gKGJmcmcsIDIwMTggSmFuIDIyLCAjMjU3NCkKLVRyYWNrZWQgZG93biBieSBKYXNvbiBGcmFua2xpbiwgMjAxOCBPY3QgMzAuCi1TdWdnZXN0ZWQgcGF0Y2ggYnkgWWVnYXBwYW4sIE5vdiAxLgotCiBXaGVuIHVzaW5nIENUUkwtVyBDUiBpbiB0aGUgcXVpY2tmaXggd2luZG93LCB0aGUganVtcGxpc3QgaW4gdGhlIG9wZW5lZCB3aW5kb3cKIGlzIGNsZWFyZWQsIHRvIGF2b2lkIGdvaW5nIGJhY2sgdG8gdGhlIGxpc3Qgb2YgZXJyb3JzIGJ1ZmZlciAod291bGQgaGF2ZSB0d28KIHdpbmRvd3Mgd2l0aCBpdCkuICBDYW4gd2UganVzdCByZW1vdmUgdGhlIGp1bXAgbGlzdCBlbnRyaWVzIGZvciB0aGUgcXVpY2tmaXgKQEAgLTQ3Nyw5ICs0ODksNiBAQAogCiBBZGQgdGhlIGRlYnVnIGNvbW1hbmQgbGluZSBoaXN0b3J5IHRvIHZpbWluZm8uCiAKLUF2b2lkIHRoYXQgInNpZ24gdW5wbGFjZSBpZCIgZG9lcyBhIHJlZHJhdyByaWdodCBhd2F5LCBlc3AuIHdoZW4gdGhlcmUgaXMgYQotc2VxdWVuY2Ugb2YgdGhlc2UgY29tbWFuZHMuIChBbmR5IFN0ZXdhcnQsIDIwMTggTWFyIDE2KQotCiBBZGQgTWFrZWZpbGVzIHRvIHRoZSBydW50aW1lL3NwZWxsIGRpcmVjdG9yeSB0cmVlLCBzaW5jZSBub2JvZHkgdXNlcyBBYXAuCiBXaWxsIGhhdmUgdG8gZXhwbGFpbiB0aGUgbWFudWFsIHN0ZXBzIChkb3dubG9hZGluZyB0aGUgLmFmZiBhbmQgLmRpYyBmaWxlcywKIGFwcGx5aW5nIHRoZSBkaWZmLCBldGMuCkBAIC0xNTYwLDggKzE1NjksNiBAQAogCiBVcGRhdGVkIHNwZWMgZnRwbHVnaW4uIChNYXTEm2ogQ2VwbCwgMjAxMyBPY3QgMTYpCiAKLVBhdGNoIHRvIHJpZ2h0LWFsaWduIHNpZ25zLiAoSmFtZXMgS29sYiAoZW1haWwgamFtZXMpLCAyMDEzIFNlcCAyMykKLQogUGF0Y2ggdG8gaGFuZGxlIGludGVnZXIgb3ZlcmZsb3cuIChBYXJvbiBCdXJyb3csIDIwMTMgRGVjIDEyKQogCiBQYXRjaCB0byBhZGQgIm50YWIiIGl0ZW0gaW4gJ2xpc3RjaGFycycgdG8gcmVwZWF0IGZpcnN0IGNoYXJhY3Rlci4gKE5hdGhhbmllbApAQCAtMTYyOSw5ICsxNjM2LDYgQEAKIFBhdGNoIHRvIHN1cHBvcnQgJ3UnIGluIGludGVyYWN0aXZlIHN1YnN0aXR1dGUuIChDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTIgU2VwCiAyOCkgIFdpdGggdGVzdHM6IE9jdCA5LgogCi1QYXRjaCBmcm9tIENocmlzdGlhbiBCcmFiYW5kdCB0byBtYWtlIHRoZSAiYnVmZmVyIiBhcmd1bWVudCBmb3IgIjpzaWduIHBsYWNlIgotb3B0aW9uYWwuICgyMDEzIEp1bCAxMikKLQogRGlhbG9nIGlzIHRvbyBiaWcgb24gTGludXggdG9vLiAoRGF2aWQgRmlzaGJ1cm4sIDIwMTMgU2VwIDIpCiAKIFBhdGNoIHRvIG1ha2UgZm9sZCB1cGRhdGVzIG11Y2ggZmFzdGVyLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDEyIERlYykKQEAgLTU4MTcsNyArNTgyMSw2IEBACiA3ICAgU3RvcmUgdGhlIGhpc3RvcnkgZnJvbSBkZWJ1ZyBtb2RlIGluIHZpbWluZm8uCiA3ICAgTWFrZSB0aGUgZGVidWcgbW9kZSBoaXN0b3J5IGF2YWlsYWJsZSB3aXRoIGhpc3RnZXQoKSBldCBhbC4KIAotCiBWYXJpb3VzIGltcHJvdmVtZW50czoKIDcgICBBZGQgcGx1Z2lucyBmb3IgZm9ybWF0dGluZz8gIFNob3VsZCBiZSBhYmxlIHRvIG1ha2UgYSBjaG9pY2UgZGVwZW5kaW5nIG9uCiAgICAgdGhlIGxhbmd1YWdlIG9mIGEgZmlsZSAoRW5nbGlzaC9Lb3JlYW4vSmFwYW5lc2UvZXRjLikuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDEudHh0IGIvcnVudGltZS9kb2MvdXNyXzQxLnR4dAppbmRleCBjN2U1OTU1Li4xYWQwNDRiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDEudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IEFwciAxMQorKnVzcl80MS50eHQqCUZvciBWaW0gdmVyc2lvbiA4LjEuICBMYXN0IGNoYW5nZTogMjAxOCBEZWMgMTgKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTEwNTksNyArMTA1OSw3IEBACiAJcHkzZXZhbCgpCQlldmFsdWF0ZSBQeXRob24gZXhwcmVzc2lvbiAofCtweXRob24zfCkKIAlweWV2YWwoKQkJZXZhbHVhdGUgUHl0aG9uIGV4cHJlc3Npb24gKHwrcHl0aG9ufCkKIAlweXhldmFsKCkJCWV2YWx1YXRlIHxweXRob25feHwgZXhwcmVzc2lvbgotCWRlYnVnYnJlYWsoKQkJaW50ZXJydXB0IGEgcHJvZ3JhbSAgYmVpbmcgZGVidWdnZWQKKwlkZWJ1Z2JyZWFrKCkJCWludGVycnVwdCBhIHByb2dyYW0gYmVpbmcgZGVidWdnZWQKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqNDEuNyoJRGVmaW5pbmcgYSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmFyaW91cy50eHQgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAppbmRleCBhZjQ5YzNlLi42N2FjYzY0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAorKysgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2YXJpb3VzLnR4dCogICBGb3IgVmltIHZlcnNpb24gOC4xLiAgTGFzdCBjaGFuZ2U6IDIwMTggTWFyIDI5CisqdmFyaW91cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDguMS4gIExhc3QgY2hhbmdlOiAyMDE4IERlYyAxMwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDQ4LDYgKzQ0OCw3IEBACiBOICAqK3Rlcm1yZXNwb25zZSoJc3VwcG9ydCBmb3IgfHRfUlZ8IGFuZCB8djp0ZXJtcmVzcG9uc2V8CiBCICAqK3Rlcm1ndWljb2xvcnMqCTI0LWJpdCBjb2xvciBpbiB4dGVybS1jb21wYXRpYmxlIHRlcm1pbmFscyBzdXBwb3J0CiBOICAqK3RleHRvYmplY3RzKgl8dGV4dC1vYmplY3RzfCBzZWxlY3Rpb24KK04gICordGV4dHByb3AqCQl8dGV4dC1wcm9wZXJ0aWVzfAogICAgKit0Z2V0ZW50KgkJbm9uLVVuaXggb25seTogYWJsZSB0byB1c2UgZXh0ZXJuYWwgdGVybWNhcAogTiAgKit0aW1lcnMqCQl0aGUgfHRpbWVyX3N0YXJ0KCl8IGZ1bmN0aW9uCiBOICAqK3RpdGxlKgkJU2V0dGluZyB0aGUgd2luZG93ICd0aXRsZScgYW5kICdpY29uJwpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvZmFsY29uLnZpbSBiL3J1bnRpbWUvaW5kZW50L2ZhbGNvbi52aW0KaW5kZXggYjM0ZTdjZi4uNjY0YWQ2MSAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvZmFsY29uLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9mYWxjb24udmltCkBAIC0zNjgsNyArMzY4LDcgQEAKIAkJcmV0dXJuIGluZGVudCgnLicpCiAJICAgIGVuZGlmCiAJZWxzZQotCSAgICBjYWxsIGN1cnNvcihjbG51bSwgdmNvbCkKKwkgICAgY2FsbCBjdXJzb3IoY2xudW0sIDApICAiIEZJWE1FOiBjb2x1bW4gd2FzIHZjb2wKIAllbmQKICAgICBlbmRpZgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9tYXRsYWIudmltIGIvcnVudGltZS9pbmRlbnQvbWF0bGFiLnZpbQppbmRleCA2YTMxNjI0Li5kMjgxOGExIDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9tYXRsYWIudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L21hdGxhYi52aW0KQEAgLTEsNzQgKzEsMTIxIEBACi0iIE1hdGxhYiBpbmRlbnQgZmlsZQotIiBMYW5ndWFnZToJTWF0bGFiCi0iIE1haW50YWluZXI6CUNocmlzdG9waGUgUG91Y2V0IDxjaHJpc3RvcGhlLnBvdWNldEBwYW5kb3JhLmJlPgotIiBMYXN0IENoYW5nZToJNiBKYW51YXJ5LCAyMDAxCisiIFZpbSBpbmRlbnQgZmlsZQorIiBMYW5ndWFnZTogTUFUTEFCCisiIE1haW50YWluZXI6IEF4ZWwgRm9yc21hbiA8YXhlbHNmb3JAZ21haWwuY29tPgorIiBQcmV2aW91cyBtYWludGFpbmVyOiBDaHJpc3RvcGhlIFBvdWNldCA8Y2hyaXN0b3BoZS5wb3VjZXRAcGFuZG9yYS5iZT4KIAotIiBPbmx5IGxvYWQgdGhpcyBpbmRlbnQgZmlsZSB3aGVuIG5vIG90aGVyIHdhcyBsb2FkZWQuCi1pZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCi0gIGZpbmlzaAotZW5kaWYKKyIgT25seSBsb2FkIGlmIG5vIG90aGVyIGluZGVudCBmaWxlIGlzIGxvYWRlZAoraWYgZXhpc3RzKCdiOmRpZF9pbmRlbnQnKSB8IGZpbmlzaCB8IGVuZGlmCiBsZXQgYjpkaWRfaW5kZW50ID0gMQogCi0iIFNvbWUgcHJlbGltaW5hcnkgc2V0dGluZwotc2V0bG9jYWwgaW5kZW50a2V5cz0hBixvLE89ZW5kLD1jYXNlLD1lbHNlLD1lbHNlaWYsPW90aGVyd2lzZSw9Y2F0Y2gKK3NldGxvY2FsIGluZGVudGV4cHI9R2V0TWF0bGFiSW5kZW50KCkKK3NldGxvY2FsIGluZGVudGtleXM9IQYsbyxPLGUsMD1lbmQsMD1lbHNlaWYsMD1jYXNlLDA9b3RoZXJ3aXNlLDA9Y2F0Y2gsMD1mdW5jdGlvbiwwPWVsc2VpCiAKKyIgVGhlIHZhbHVlIG9mIHRoZSBGdW5jdGlvbiBpbmRlbnRpbmcgZm9ybWF0IGluCisiIE1BVExBQiBFZGl0b3IvRGVidWdnZXIgTGFuZ3VhZ2UgUHJlZmVyZW5jZXMuCisiIFRoZSBwb3NzaWJsZSB2YWx1ZXMgYXJlIDAgZm9yIENsYXNzaWMsIDEgZm9yIEluZGVudCBuZXN0ZWQgZnVuY3Rpb25zCisiIGFuZCAyIGZvciBJbmRlbnQgYWxsIGZ1bmN0aW9ucyAoZGVmYXVsdCkuCitsZXQgYjpNQVRMQUJfZnVuY3Rpb25faW5kZW50ID0gZ2V0KGc6LCAnTUFUTEFCX2Z1bmN0aW9uX2luZGVudCcsIDIpCisiIFRoZSBwcmV2aW91cyB2YWx1ZSBvZiBiOmNoYW5nZWR0aWNrCitsZXQgYjpNQVRMQUJfbGFzdHRpY2sgPSAtMQorIiBUaGUgcHJldmlvdXNseSBpbmRlbnRlZCBsaW5lCitsZXQgYjpNQVRMQUJfbGFzdGxpbmUgPSAtMQorIiBXaGV0aGVyIHRoZSBsaW5lIGFib3ZlIHdhcyBhIGxpbmUgY29udGludWF0aW9uCitsZXQgYjpNQVRMQUJfd2FzbGMgPSAwCitsZXQgYjpNQVRMQUJfYnJhY2tldGxldmVsID0gMAogCi1zZXRsb2NhbCBpbmRlbnRleHByPUdldE1hdGxhYkluZGVudCh2OmxudW0pCisiIE9ubHkgZGVmaW5lIHRoZSBmdW5jdGlvbiBvbmNlCitpZiBleGlzdHMoIipHZXRNYXRsYWJJbmRlbnQiKSB8IGZpbmlzaCB8IGVuZGlmCiAKLSIgT25seSBkZWZpbmUgdGhlIGZ1bmN0aW9uIG9uY2UuCi1pZiBleGlzdHMoIipHZXRNYXRsYWJJbmRlbnQiKQotICBmaW5pc2gKLWVuZGlmCitsZXQgczprZWVwY3BvID0gJmNwbworc2V0IGNwbyZ2aW0KIAotZnVuY3Rpb24gR2V0TWF0bGFiSW5kZW50KGxudW0pCi0gICIgR2l2ZSB1cCBpZiB0aGlzIGxpbmUgaXMgZXhwbGljaXRseSBqb2luZWQuCi0gIGlmIGdldGxpbmUoYTpsbnVtIC0gMSkgPX4gJ1xcJCcKLSAgICByZXR1cm4gLTEKLSAgZW5kaWYKK2xldCBzOmVuZCA9ICdcPGVuZFw+XCUoW14oXSopXClcQCEnICIgQXJyYXkgaW5kZXhpbmcgaGV1cmlzdGljCitsZXQgczpvcGVuX3BhdCA9ICdmb3JcfGlmXHxwYXJmb3JcfHNwbWRcfHN3aXRjaFx8dHJ5XHx3aGlsZVx8Y2xhc3NkZWZcfHByb3BlcnRpZXNcfG1ldGhvZHNcfGV2ZW50c1x8ZW51bWVyYXRpb24nCitsZXQgczpkZWRlbnRfcGF0ID0gJ1xDXlxzKlx6c1w8XCUoZW5kXHxlbHNlXHxlbHNlaWZcfGNhdGNoXHxcKGNhc2VcfG90aGVyd2lzZVx8ZnVuY3Rpb25cKVwpXD4nCitsZXQgczpzdGFydF9wYXQgPSAnXENcPFwlKGZ1bmN0aW9uXHwnIC4gczpvcGVuX3BhdCAuICdcKVw+JworbGV0IHM6YnJhY2tldF9wYWlyX3BhdCA9ICdcKFxbXHx7XClcfFwoXF1cfH1cKScKK2xldCBzOnpmbGFnID0gaGFzKCdwYXRjaC03LjQuOTg0JykgPyAneicgOiAnJwogCi0gICIgU2VhcmNoIGJhY2t3YXJkcyBmb3IgdGhlIGZpcnN0IG5vbi1lbXB0eSBsaW5lLgotICBsZXQgcGxudW0gPSBhOmxudW0gLSAxCi0gIHdoaWxlIHBsbnVtID4gMCAmJiBnZXRsaW5lKHBsbnVtKSA9fiAnXlxzKiQnCi0gICAgbGV0IHBsbnVtID0gcGxudW0gLSAxCi0gIGVuZHdoaWxlCi0KLSAgaWYgcGxudW0gPT0gMAotICAgICIgVGhpcyBpcyB0aGUgZmlyc3Qgbm9uLWVtcHR5IGxpbmUsIHVzZSB6ZXJvIGluZGVudC4KLSAgICByZXR1cm4gMAotICBlbmRpZgotCi0gIGxldCBjdXJpbmQgPSBpbmRlbnQocGxudW0pCi0KLSAgIiBJZiB0aGUgY3VycmVudCBsaW5lIGlzIGEgc3RvcC1ibG9jayBzdGF0ZW1lbnQuLi4KLSAgaWYgZ2V0bGluZSh2OmxudW0pID1+ICdeXHMqXChlbmRcfGVsc2VcfGVsc2VpZlx8Y2FzZVx8b3RoZXJ3aXNlXHxjYXRjaFwpXD4nCi0gICAgIiBTZWUgaWYgdGhpcyBsaW5lIGRvZXMgbm90IGZvbGxvdyB0aGUgbGluZSByaWdodCBhZnRlciBhbiBvcGVuYmxvY2sKLSAgICBpZiBnZXRsaW5lKHBsbnVtKSA9fiAnXlxzKlwoZm9yXHxpZlx8ZWxzZVx8ZWxzZWlmXHxjYXNlXHx3aGlsZVx8c3dpdGNoXHx0cnlcfG90aGVyd2lzZVx8Y2F0Y2hcKVw+JwotICAgICIgU2VlIGlmIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGRlZGVudGVkCi0gICAgZWxzZWlmIGluZGVudCh2OmxudW0pID4gY3VyaW5kIC0gc2hpZnR3aWR0aCgpCi0gICAgICAiIElmIG5vdCwgcmVjb21tZW5kIG9uZSBkZWRlbnQKLQlsZXQgY3VyaW5kID0gY3VyaW5kIC0gc2hpZnR3aWR0aCgpCi0gICAgZWxzZQotICAgICAgIiBPdGhlcndpc2UsIHRydXN0IHRoZSB1c2VyCi0gICAgICByZXR1cm4gLTEKLSAgICBlbmRpZgotIiAgZW5kaWYKLQotICAiIElmIHRoZSBwcmV2aW91cyBsaW5lIG9wZW5lZCBhIGJsb2NrCi0gIGVsc2VpZiBnZXRsaW5lKHBsbnVtKSA9fiAnXlxzKlwoZm9yXHxpZlx8ZWxzZVx8ZWxzZWlmXHxjYXNlXHx3aGlsZVx8c3dpdGNoXHx0cnlcfG90aGVyd2lzZVx8Y2F0Y2hcKVw+JwotICAgICIgU2VlIGlmIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGluZGVudGVkCi0gICAgaWYgaW5kZW50KHY6bG51bSkgPCBjdXJpbmQgKyBzaGlmdHdpZHRoKCkKLSAgICAgICJJZiBub3QsIHJlY29tbWVuZCBpbmRlbnQKLSAgICAgIGxldCBjdXJpbmQgPSBjdXJpbmQgKyBzaGlmdHdpZHRoKCkKLSAgICBlbHNlCi0gICAgICAiIE90aGVyd2lzZSwgdHJ1c3QgdGhlIHVzZXIKLSAgICAgIHJldHVybiAtMQotICAgIGVuZGlmCi0gIGVuZGlmCi0KLQotCi0gICIgSWYgd2UgZ290IHRvIGhlcmUsIGl0IG1lYW5zIHRoYXQgdGhlIHVzZXIgdGFrZXMgdGhlIHN0YW5kYXJkdmVyc2lvbiwgc28gd2UgcmV0dXJuIGl0Ci0gIHJldHVybiBjdXJpbmQKKyIgUmV0dXJucyB3aGV0aGVyIGEgY29tbWVudCBvciBzdHJpbmcgZW52ZWxvcHMgdGhlIHNwZWNpZmllZCBjb2x1bW4uCitmdW5jdGlvbiEgczpJc0NvbW1lbnRPclN0cmluZyhsbnVtLCBjb2wpCisJcmV0dXJuIHN5bklEYXR0cihzeW5JRChhOmxudW0sIGE6Y29sLCAxKSwgIm5hbWUiKSA9fiMgJ21hdGxhYkNvbW1lbnRcfG1hdGxhYk11bHRpbGluZUNvbW1lbnRcfG1hdGxhYlN0cmluZycKIGVuZGZ1bmN0aW9uCiAKLSIgdmltOnN3PTIKKyIgUmV0dXJucyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgbGluZSBjb250aW51ZXMgb24gdGhlIG5leHQgbGluZS4KK2Z1bmN0aW9uISBzOklzTGluZUNvbnRpbnVhdGlvbihsbnVtKQorCWxldCBsID0gZ2V0bGluZShhOmxudW0pIHwgbGV0IGMgPSAtMworCXdoaWxlIDEKKwkJbGV0IGMgPSBtYXRjaChsLCAnXC5cezN9JywgYyArIDMpCisJCWlmIGMgPT0gLTEgfCByZXR1cm4gMAorCQllbHNlaWYgIXM6SXNDb21tZW50T3JTdHJpbmcoYTpsbnVtLCBjKSB8IHJldHVybiAxIHwgZW5kaWYKKwllbmR3aGlsZQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6U3VibWF0Y2hDb3VudChsbnVtLCBwYXR0ZXJuLCAuLi4pCisJbGV0IGVuZGNvbCA9IGE6MCA+PSAxID8gYToxIDogMSAvIDAgfCBsZXQgeCA9IFswLCAwLCAwLCAwXQorCWNhbGwgY3Vyc29yKGE6bG51bSwgMSkKKwl3aGlsZSAxCisJCWxldCBbbG51bSwgYywgc3VibWF0Y2hdID0gc2VhcmNocG9zKGE6cGF0dGVybiwgJ2NwZScgLiBzOnpmbGFnLCBhOmxudW0pCisJCWlmICFzdWJtYXRjaCB8fCBjID49IGVuZGNvbCB8IGJyZWFrIHwgZW5kaWYKKwkJaWYgIXM6SXNDb21tZW50T3JTdHJpbmcobG51bSwgYykgfCBsZXQgeFtzdWJtYXRjaCAtIDJdICs9IDEgfCBlbmRpZgorCQlpZiBjdXJzb3IoMCwgYyArIDEpID09IC0xIHx8IGNvbCgnLicpID09IGMgfCBicmVhayB8IGVuZGlmCisJZW5kd2hpbGUKKwlyZXR1cm4geAorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6R2V0T3BlbkNsb3NlQ291bnQobG51bSwgcGF0dGVybiwgLi4uKQorCWxldCBjb3VudHMgPSBjYWxsKCdzOlN1Ym1hdGNoQ291bnQnLCBbYTpsbnVtLCBhOnBhdHRlcm5dICsgYTowMDApCisJcmV0dXJuIGNvdW50c1swXSAtIGNvdW50c1sxXQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIEdldE1hdGxhYkluZGVudCgpCisJbGV0IHByZXZsbnVtID0gcHJldm5vbmJsYW5rKHY6bG51bSAtIDEpCisKKwlpZiBiOk1BVExBQl9sYXN0dGljayAhPSBiOmNoYW5nZWR0aWNrIHx8IGI6TUFUTEFCX2xhc3RsaW5lICE9IHByZXZsbnVtCisJCSIgUmVjYWxjdWxhdGUgYnJhY2tldCBjb3VudCAob25seSBoYXZlIHRvIGNoZWNrIHNhbWUgYmxvY2sgYW5kIGxpbmUgYWJvdmUpCisJCWxldCBiOk1BVExBQl9icmFja2V0bGV2ZWwgPSAwCisJCWxldCBwcmV2aW5kZW50ID0gaW5kZW50KHByZXZsbnVtKSB8IGxldCBsID0gcHJldmxudW0KKwkJd2hpbGUgMQorCQkJbGV0IGwgPSBwcmV2bm9uYmxhbmsobCAtIDEpIHwgbGV0IGluZGVudCA9IGluZGVudChsKQorCQkJaWYgbCA8PSAwIHx8IHByZXZpbmRlbnQgPCBpbmRlbnQgfCBicmVhayB8IGVuZGlmCisJCQlsZXQgYjpNQVRMQUJfYnJhY2tldGxldmVsICs9IHM6R2V0T3BlbkNsb3NlQ291bnQobCwgczpicmFja2V0X3BhaXJfcGF0KQorCQkJaWYgcHJldmluZGVudCAhPSBpbmRlbnQgfCBicmVhayB8IGVuZGlmCisJCWVuZHdoaWxlCisKKwkJbGV0IGI6TUFUTEFCX3dhc2xjID0gczpJc0xpbmVDb250aW51YXRpb24ocHJldmxudW0gLSAxKQorCWVuZGlmCisJIiBJZiBsaW5lIGFib3ZlIHdhcyBibGFuayBpdCBjYW4gaW1wb3NzaWJseSBoYXZlIGJlZW4gYSBMQworCWxldCBhYm92ZV9sYyA9IGI6TUFUTEFCX2xhc3R0aWNrID09IGI6Y2hhbmdlZHRpY2sgJiYgcHJldmxudW0gIT0gdjpsbnVtIC0gMSAmJiBiOk1BVExBQl9sYXN0bGluZSA9PSBwcmV2bG51bSA/IDAgOiBzOklzTGluZUNvbnRpbnVhdGlvbih2OmxudW0gLSAxKQorCisJbGV0IHBhaXJfcGF0ID0gJ1xDXDxcKCcgLiBzOm9wZW5fcGF0IC4gJ1x8JworCQkJCVwgLiAoYjpNQVRMQUJfZnVuY3Rpb25faW5kZW50ID09IDEgPyAnXlxAPCEnIDogJycpCisJCQkJXCAuIChiOk1BVExBQl9mdW5jdGlvbl9pbmRlbnQgPj0gMSA/ICdmdW5jdGlvblx8JyA6ICcnKQorCQkJCVwgLiAnXHxcJSheXHMqXClcQDw9XCUoZWxzZVx8ZWxzZWlmXHxjYXNlXHxvdGhlcndpc2VcfGNhdGNoXClcKVw+JworCQkJCVwgLiAnXHxcU1xzKlx6c1woJyAuIHM6ZW5kIC4gJ1wpJworCWxldCBbb3BlbiwgY2xvc2UsIGJfb3BlbiwgYl9jbG9zZV0gPSBwcmV2bG51bSA/IHM6U3VibWF0Y2hDb3VudChwcmV2bG51bSwKKwkJCQlcIHBhaXJfcGF0IC4gJ1x8JyAuIHM6YnJhY2tldF9wYWlyX3BhdCkgOiBbMCwgMCwgMCwgMF0KKwlsZXQgY3VyYnJhY2tldGxldmVsID0gYjpNQVRMQUJfYnJhY2tldGxldmVsICsgYl9vcGVuIC0gYl9jbG9zZQorCisJY2FsbCBjdXJzb3IodjpsbnVtLCAxKQorCWxldCBzdWJtYXRjaCA9IHNlYXJjaChzOmRlZGVudF9wYXQsICdjcCcgLiBzOnpmbGFnLCB2OmxudW0pCisJaWYgc3VibWF0Y2ggJiYgIXM6SXNDb21tZW50T3JTdHJpbmcodjpsbnVtLCBjb2woJy4nKSkKKwkJIiBBbGlnbiBlbmQsIGV0IGNldGVyYSB3aXRoIHN0YXJ0IG9mIGJsb2NrCisJCWxldCBbbG51bSwgY29sXSA9IHNlYXJjaHBhaXJwb3MoczpzdGFydF9wYXQsICcnLCAgJ1xDJyAuIHM6ZW5kLCAnYlcnLCAnczpJc0NvbW1lbnRPclN0cmluZyhsaW5lKCIuIiksIGNvbCgiLiIpKScpCisJCWxldCByZXN1bHQgPSBsbnVtID8gaW5kZW50KGxudW0pICsgc2hpZnR3aWR0aCgpICogKHM6R2V0T3BlbkNsb3NlQ291bnQobG51bSwgcGFpcl9wYXQsIGNvbCkgKyBzdWJtYXRjaCA9PSAyKSA6IDAKKwllbHNlCisJCSIgQ291bnQgaG93IG1hbnkgYmxvY2tzIHRoZSBwcmV2aW91cyBsaW5lIG9wZW5zL2Nsb3NlcworCQkiIExpbmUgY29udGludWF0aW9ucy9icmFja2V0cyBpbmRlbnQgb25jZSBwZXIgc3RhdGVtZW50CisJCWxldCByZXN1bHQgPSBpbmRlbnQocHJldmxudW0pICsgc2hpZnR3aWR0aCgpICogKG9wZW4gLSBjbG9zZQorCQkJCQlcICsgKGI6TUFUTEFCX2JyYWNrZXRsZXZlbCA/IC0hY3VyYnJhY2tldGxldmVsIDogISFjdXJicmFja2V0bGV2ZWwpCisJCQkJCVwgKyAoY3VyYnJhY2tldGxldmVsIDw9IDApICogKGFib3ZlX2xjIC0gYjpNQVRMQUJfd2FzbGMpKQorCWVuZGlmCisKKwlsZXQgYjpNQVRMQUJfd2FzbGMgPSBhYm92ZV9sYworCWxldCBiOk1BVExBQl9icmFja2V0bGV2ZWwgPSBjdXJicmFja2V0bGV2ZWwKKwlsZXQgYjpNQVRMQUJfbGFzdHRpY2sgPSBiOmNoYW5nZWR0aWNrCisJbGV0IGI6TUFUTEFCX2xhc3RsaW5lID0gdjpsbnVtCisJcmV0dXJuIHJlc3VsdAorZW5kZnVuY3Rpb24KKworbGV0ICZjcG8gPSBzOmtlZXBjcG8KK3VubGV0IHM6a2VlcGNwbwpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvdGVzdGRpci9tYXRsYWIuaW4gYi9ydW50aW1lL2luZGVudC90ZXN0ZGlyL21hdGxhYi5pbgppbmRleCAxYTJiYzgzLi41YmJhMWE1IDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC90ZXN0ZGlyL21hdGxhYi5pbgorKysgYi9ydW50aW1lL2luZGVudC90ZXN0ZGlyL21hdGxhYi5pbgpAQCAtMTUsMyArMTUsNjYgQEAKIHN0YXRlbWVudHMKIGVuZAogJSBFTkRfSU5ERU5UCisKKyUgU1RBUlRfSU5ERU5UCitpZiB0cnVlLCAuLi4KK2lmIHRydWUKK2Rpc3AgaGVsbG8KK2VuZAorZW5kCislIEVORF9JTkRFTlQKKworJSBTVEFSVF9JTkRFTlQKK3N3aXRjaCBhCitjYXNlIGV4cHIKK2lmIHRydWUsIGZvbzsgZW5kCitkaXNwIGhlbGxvCitvdGhlcndpc2UKK2Rpc3AgYmFyCitlbmQKKyUgRU5EX0lOREVOVAorCislIFNUQVJUX0lOREVOVAoraWYgdHJ1ZQorQSgxOmVuZCAtIDEpCitkaXNwIGZvbworZW5kCislIEVORF9JTkRFTlQKKworJSBTVEFSVF9JTkRFTlQKK0EgPSBbeworfQorXSAuLi4KK2Rpc3AgZm9vCitkaXNwIGJhcgorJSBFTkRfSU5ERU5UCisKKyUgU1RBUlRfSU5ERU5UCislIElOREVOVF9FWEUgbGV0IGI6TUFUTEFCX2Z1bmN0aW9uX2luZGVudCA9IDAKK2Z1bmN0aW9uIGZvbworZGlzcCBmb28KK2Z1bmN0aW9uIG5lc3RlZAorZGlzcCBiYXIKK2VuZAorZW5kCislIEVORF9JTkRFTlQKKworJSBTVEFSVF9JTkRFTlQKKyUgSU5ERU5UX0VYRSBsZXQgYjpNQVRMQUJfZnVuY3Rpb25faW5kZW50ID0gMQorZnVuY3Rpb24gZm9vCitkaXNwIGZvbworZnVuY3Rpb24gbmVzdGVkCitkaXNwIGJhcgorZW5kCitlbmQKKyUgRU5EX0lOREVOVAorCislIFNUQVJUX0lOREVOVAorJSBJTkRFTlRfRVhFIGxldCBiOk1BVExBQl9mdW5jdGlvbl9pbmRlbnQgPSAyCitmdW5jdGlvbiBmb28KK2Rpc3AgZm9vCitmdW5jdGlvbiBuZXN0ZWQKK2Rpc3AgYmFyCitlbmQKK2VuZAorJSBFTkRfSU5ERU5UCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC90ZXN0ZGlyL21hdGxhYi5vayBiL3J1bnRpbWUvaW5kZW50L3Rlc3RkaXIvbWF0bGFiLm9rCmluZGV4IDg4ZTFkODYuLmIxMTEyMjYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L3Rlc3RkaXIvbWF0bGFiLm9rCisrKyBiL3J1bnRpbWUvaW5kZW50L3Rlc3RkaXIvbWF0bGFiLm9rCkBAIC0xNSwzICsxNSw2NiBAQAogICAgIHN0YXRlbWVudHMKIGVuZAogJSBFTkRfSU5ERU5UCisKKyUgU1RBUlRfSU5ERU5UCitpZiB0cnVlLCAuLi4KKwlpZiB0cnVlCisJZGlzcCBoZWxsbworCWVuZAorZW5kCislIEVORF9JTkRFTlQKKworJSBTVEFSVF9JTkRFTlQKK3N3aXRjaCBhCisgICAgY2FzZSBleHByCisJaWYgdHJ1ZSwgZm9vOyBlbmQKKwlkaXNwIGhlbGxvCisgICAgb3RoZXJ3aXNlCisJZGlzcCBiYXIKK2VuZAorJSBFTkRfSU5ERU5UCisKKyUgU1RBUlRfSU5ERU5UCitpZiB0cnVlCisgICAgQSgxOmVuZCAtIDEpCisgICAgZGlzcCBmb28KK2VuZAorJSBFTkRfSU5ERU5UCisKKyUgU1RBUlRfSU5ERU5UCitBID0gW3sKKyAgICB9CisgICAgXSAuLi4KKyAgICBkaXNwIGZvbworZGlzcCBiYXIKKyUgRU5EX0lOREVOVAorCislIFNUQVJUX0lOREVOVAorJSBJTkRFTlRfRVhFIGxldCBiOk1BVExBQl9mdW5jdGlvbl9pbmRlbnQgPSAwCitmdW5jdGlvbiBmb28KK2Rpc3AgZm9vCisgICAgZnVuY3Rpb24gbmVzdGVkCisgICAgZGlzcCBiYXIKKyAgICBlbmQKK2VuZAorJSBFTkRfSU5ERU5UCisKKyUgU1RBUlRfSU5ERU5UCislIElOREVOVF9FWEUgbGV0IGI6TUFUTEFCX2Z1bmN0aW9uX2luZGVudCA9IDEKK2Z1bmN0aW9uIGZvbworZGlzcCBmb28KKyAgICBmdW5jdGlvbiBuZXN0ZWQKKwlkaXNwIGJhcgorICAgIGVuZAorZW5kCislIEVORF9JTkRFTlQKKworJSBTVEFSVF9JTkRFTlQKKyUgSU5ERU5UX0VYRSBsZXQgYjpNQVRMQUJfZnVuY3Rpb25faW5kZW50ID0gMgorZnVuY3Rpb24gZm9vCisgICAgZGlzcCBmb28KKyAgICBmdW5jdGlvbiBuZXN0ZWQKKwlkaXNwIGJhcgorICAgIGVuZAorZW5kCislIEVORF9JTkRFTlQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3Rlc3RkaXIvcnVudGVzdC52aW0gYi9ydW50aW1lL2luZGVudC90ZXN0ZGlyL3J1bnRlc3QudmltCmluZGV4IDk2YzMxNDUuLjI5NDMxNTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L3Rlc3RkaXIvcnVudGVzdC52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvdGVzdGRpci9ydW50ZXN0LnZpbQpAQCAtOCw2ICs4LDcgQEAKIHNldCBub2NwCiBmaWxldHlwZSBpbmRlbnQgb24KIHNldCBub3dyYXBzY2FuCitzZXQgcmVwb3J0PTk5OTkKIAogYXUhIFN3YXBFeGlzdHMgKiBjYWxsIEhhbmRsZVN3YXBFeGlzdHMoKQogZnVuYyBIYW5kbGVTd2FwRXhpc3RzKCkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3Rlc3RkaXIvdGNsLmluIGIvcnVudGltZS9pbmRlbnQvdGVzdGRpci90Y2wuaW4KaW5kZXggM2VmNGViYy4uYzc2OWQ1YiAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvdGVzdGRpci90Y2wuaW4KKysrIGIvcnVudGltZS9pbmRlbnQvdGVzdGRpci90Y2wuaW4KQEAgLTEsNCArMSw0IEBACi0jIHZpbTogc2V0IGZpbGV0eXBlPXRjbCBzaGlmdHdpZHRoPTQgdGFic3RvcD00OgorIyB2aW06IHNldCBmaWxldHlwZT10Y2wgc2hpZnR3aWR0aD00IHRhYnN0b3A9OCBleHBhbmR0YWIgOgogCiAjIFNUQVJUX0lOREVOVAogcHJvYyBhYmMge30gewpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvdGVzdGRpci90Y2wub2sgYi9ydW50aW1lL2luZGVudC90ZXN0ZGlyL3RjbC5vawppbmRleCAwZmI1MmU3Li43N2YyNGU5IDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC90ZXN0ZGlyL3RjbC5vaworKysgYi9ydW50aW1lL2luZGVudC90ZXN0ZGlyL3RjbC5vawpAQCAtMSwxOSArMSwxOSBAQAotIyB2aW06IHNldCBmaWxldHlwZT10Y2wgc2hpZnR3aWR0aD00IHRhYnN0b3A9NDoKKyMgdmltOiBzZXQgZmlsZXR5cGU9dGNsIHNoaWZ0d2lkdGg9NCB0YWJzdG9wPTggZXhwYW5kdGFiIDoKIAogIyBTVEFSVF9JTkRFTlQKIHByb2MgYWJjIHt9IHsKLQlzZXQgYSA1Ci0JaWYge1tzb21lX2NtZF09PTF9IHsKLQkJZm9yZWFjaCBpIFtsaXN0IHsxIDIgM31dIHsKLQkJCSMgRG9lcyB0aGlzIGNvbW1lbnQgYWZmZWN0IGFueXRoaW5nPwotCQkJcHV0cyAkaQotCQl9Ci0JfQorICAgIHNldCBhIDUKKyAgICBpZiB7W3NvbWVfY21kXT09MX0geworICAgICAgICBmb3JlYWNoIGkgW2xpc3QgezEgMiAzfV0geworICAgICAgICAgICAgIyBEb2VzIHRoaXMgY29tbWVudCBhZmZlY3QgYW55dGhpbmc/CisgICAgICAgICAgICBwdXRzICRpCisgICAgICAgIH0KKyAgICB9CiB9CiAKIGNvbW1hbmRfd2l0aF9hX2xvbmdfdGltZSAtYXJnMSAiRmlyc3QiIFwKLQktYXJnMiAiU2Vjb25kIiBcCi0JLWFyZzMgIlRoaXJkIgorICAgIC1hcmcyICJTZWNvbmQiIFwKKyAgICAtYXJnMyAiVGhpcmQiCiAKIHB1dHMgIk1vdmUgaW5kZW50IGJhY2sgYWZ0ZXIgbGluZSBjb250aW51YXRpb24gaXMgY29tcGxldGUiCiAjIEVORF9JTkRFTlQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3Rlc3RkaXIveG1sLmluIGIvcnVudGltZS9pbmRlbnQvdGVzdGRpci94bWwuaW4KaW5kZXggZDE4NDY4MS4uYjYzMzMzNCAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvdGVzdGRpci94bWwuaW4KKysrIGIvcnVudGltZS9pbmRlbnQvdGVzdGRpci94bWwuaW4KQEAgLTEsNCArMSw0IEBACi08IS0tIHZpbTogc2V0IGZ0PXhtbCB0cz0yIHN3PTAgc3RzPS0xIGV0IDogLS0+Cis8IS0tIHZpbTogc2V0IGZ0PXhtbCB0cz04IHN3PTAgc3RzPS0xIGV0IDogLS0+CiA8IS0tIFNUQVJUX0lOREVOVCAtLT4KIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+CiA8dGFnMD4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3Rlc3RkaXIveG1sLm9rIGIvcnVudGltZS9pbmRlbnQvdGVzdGRpci94bWwub2sKaW5kZXggYThlMmM5Mi4uNTI5MTk4NSAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvdGVzdGRpci94bWwub2sKKysrIGIvcnVudGltZS9pbmRlbnQvdGVzdGRpci94bWwub2sKQEAgLTEsMzIgKzEsMzIgQEAKLTwhLS0gdmltOiBzZXQgZnQ9eG1sIHRzPTIgc3c9MCBzdHM9LTEgZXQgOiAtLT4KKzwhLS0gdmltOiBzZXQgZnQ9eG1sIHRzPTggc3c9MCBzdHM9LTEgZXQgOiAtLT4KIDwhLS0gU1RBUlRfSU5ERU5UIC0tPgogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDx0YWcwPgotICA8dGFnMT4KLSAgICA8IS0tIGNvbW1lbnQgLS0+Ci0gICAgPHRhZzI+Ci0gICAgICA8dGFnMy8+Ci0gICAgPC90YWcyPgotICAgIDwhLS0gdGV4dCBjb21tZW50IC0tPgorICAgICAgICA8dGFnMT4KKyAgICAgICAgICAgICAgICA8IS0tIGNvbW1lbnQgLS0+CisgICAgICAgICAgICAgICAgPHRhZzI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGFnMy8+CisgICAgICAgICAgICAgICAgPC90YWcyPgorICAgICAgICAgICAgICAgIDwhLS0gdGV4dCBjb21tZW50IC0tPgogCi0gICAgPCEtLQotICAgIHRleHQgY29tbWVudAotICAgIC0tPgotICA8L3RhZzE+Ci0gIDwhLS0KLSAgdGV4dCBjb21tZW50Ci0gIGVuZCBjb21lbnQgLS0+CisgICAgICAgICAgICAgICAgPCEtLQorICAgICAgICAgICAgICAgIHRleHQgY29tbWVudAorICAgICAgICAgICAgICAgIC0tPgorICAgICAgICA8L3RhZzE+CisgICAgICAgIDwhLS0KKyAgICAgICAgdGV4dCBjb21tZW50CisgICAgICAgIGVuZCBjb21lbnQgLS0+CiA8L3RhZzA+CiA8IS0tIEVORF9JTkRFTlQgLS0+CiAKIDwhLS0gU1RBUlRfSU5ERU5UIC0tPgogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDx0YWcwPgotICA8dGFnMT4KLSAgICA8IS0tIGNvbW1lbnQgLS0+Ci0gICAgPHRhZzI+Ci0gICAgICA8dGFnMy8+Ci0gICAgPC90YWcyPgotICA8L3RhZzE+CisgICAgICAgIDx0YWcxPgorICAgICAgICAgICAgICAgIDwhLS0gY29tbWVudCAtLT4KKyAgICAgICAgICAgICAgICA8dGFnMj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0YWczLz4KKyAgICAgICAgICAgICAgICA8L3RhZzI+CisgICAgICAgIDwvdGFnMT4KIDwvdGFnMD4KIDwhLS0gRU5EX0lOREVOVCAtLT4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3htbC52aW0gYi9ydW50aW1lL2luZGVudC94bWwudmltCmluZGV4IDdhZmNjODkuLmJjNjRhYWMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L3htbC52aW0KKysrIGIvcnVudGltZS9pbmRlbnQveG1sLnZpbQpAQCAtMSwxNSArMSwyMSBAQAotIiBMYW5ndWFnZToJeG1sCi0iIFJlcG9zaXRvcnk6ICAgaHR0cHM6Ly9naXRodWIuY29tL2NocmlzYnJhL3ZpbS14bWwtZnRwbHVnaW4KLSIgTWFpbnRhaW5lcjoJQ2hyaXN0aWFuIEJyYWJhbmR0IDxjYkAyNTZiaXQub3JnPgotIiBQcmV2aW91cyBNYWludGFpbmVyOglKb2hhbm5lcyBaZWxsbmVyIDxqb2hhbm5lc0B6ZWxsbmVyLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMTgxMDIyIC0gRG8gbm90IG92ZXJ3cml0ZSBpbmRlbnRrZXlzIHNldHRpbmcKLSIgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc2JyYS92aW0teG1sLWZ0cGx1Z2luL2lzc3Vlcy8xCi0iICAgICAgICAgICAgIAkyMDE4MDcyNCAtIENvcnJlY3RseSBpbmRlbnQgeG1sIGNvbW1lbnRzIGh0dHBzOi8vZ2l0aHViLmNvbS92aW0vdmltL2lzc3Vlcy8zMjAwCi0iIE5vdGVzOgkxKSBkb2VzIG5vdCBpbmRlbnQgcHVyZSBub24teG1sIGNvZGUgKGUuZy4gZW1iZWRkZWQgc2NyaXB0cykKLSIJCTIpIHdpbGwgYmUgY29uZnVzZWQgYnkgdW5iYWxhbmNlZCB0YWdzIGluIGNvbW1lbnRzCi0iCQlvciBDREFUQSBzZWN0aW9ucy4KLSIJCTIwMDktMDUtMjYgcGF0Y2ggYnkgTmlrb2xhaSBXZWlidWxsCi0iIFRPRE86IAlpbXBsZW1lbnQgcHJlLWxpa2UgdGFncywgc2VlIHhtbF9pbmRlbnRfb3BlbiAvIHhtbF9pbmRlbnRfY2xvc2UKKyIgICAgIExhbmd1YWdlOiB4bWwKKyIgICBSZXBvc2l0b3J5OiBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNicmEvdmltLXhtbC1mdHBsdWdpbgorIiBMYXN0IENoYW5nZWQ6IERlYyAwN3RoLCAyMDE4CisiICAgTWFpbnRhaW5lcjogQ2hyaXN0aWFuIEJyYWJhbmR0IDxjYkAyNTZiaXQub3JnPgorIiBQcmV2aW91cyBNYWludGFpbmVyOiAgSm9oYW5uZXMgWmVsbG5lciA8am9oYW5uZXNAemVsbG5lci5vcmc+CisiIExhc3QgQ2hhbmdlOgorIiAyMDE4MTExNiAtIEZpeCBpbmRlbnRhdGlvbiB3aGVuIHRhZ3Mgc3RhcnQgd2l0aCBhIGNvbG9uIG9yIGFuIHVuZGVyc2NvcmUKKyIgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vdmltL3ZpbS9wdWxsLzkyNgorIiAyMDE4MTAyMiAtIERvIG5vdCBvdmVyd3JpdGUgaW5kZW50a2V5cyBzZXR0aW5nCisiICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2NocmlzYnJhL3ZpbS14bWwtZnRwbHVnaW4vaXNzdWVzLzEKKyIgMjAxODA3MjQgLSBDb3JyZWN0bHkgaW5kZW50IHhtbCBjb21tZW50cyBodHRwczovL2dpdGh1Yi5jb20vdmltL3ZpbS9pc3N1ZXMvMzIwMAorIgorIiBOb3RlczoKKyIgICAxKSBkb2VzIG5vdCBpbmRlbnQgcHVyZSBub24teG1sIGNvZGUgKGUuZy4gZW1iZWRkZWQgc2NyaXB0cykKKyIgICAgICAgMikgd2lsbCBiZSBjb25mdXNlZCBieSB1bmJhbGFuY2VkIHRhZ3MgaW4gY29tbWVudHMKKyIgICAgICAgb3IgQ0RBVEEgc2VjdGlvbnMuCisiICAgICAgIDIwMDktMDUtMjYgcGF0Y2ggYnkgTmlrb2xhaSBXZWlidWxsCisiIFRPRE86ICAgICBpbXBsZW1lbnQgcHJlLWxpa2UgdGFncywgc2VlIHhtbF9pbmRlbnRfb3BlbiAvIHhtbF9pbmRlbnRfY2xvc2UKIAogIiBPbmx5IGxvYWQgdGhpcyBpbmRlbnQgZmlsZSB3aGVuIG5vIG90aGVyIHdhcyBsb2FkZWQuCiBpZiBleGlzdHMoImI6ZGlkX2luZGVudCIpCkBAIC0yMCwxMSArMjYsMTIgQEAKIHNldCBjcG8mdmltCiAKICIgWy0tIGxvY2FsIHNldHRpbmdzIChtdXN0IGNvbWUgYmVmb3JlIGFib3J0aW5nIHRoZSBzY3JpcHQpIC0tXQorIiBBdHRlbnRpb246IFBhcmFtZXRlciB1c2Vfc3ludGF4X2NoZWNrIGlzIHVzZWQgYnkgdGhlIGRvY2JrLnZpbSBpbmRlbnQgc2NyaXB0CiBzZXRsb2NhbCBpbmRlbnRleHByPVhtbEluZGVudEdldCh2OmxudW0sMSkKIHNldGxvY2FsIGluZGVudGtleXM9byxPLCo8UmV0dXJuPiw8Pj4sPDw+LC8seyx9LCFeRgogCiBpZiAhZXhpc3RzKCdiOnhtbF9pbmRlbnRfb3BlbicpCi0gICAgbGV0IGI6eG1sX2luZGVudF9vcGVuID0gJy5cey19PFxhJworICAgIGxldCBiOnhtbF9pbmRlbnRfb3BlbiA9ICcuXHstfTxbOkEtWl9hLXpdJwogICAgICIgcHJlIHRhZywgZS5nLiA8YWRkcmVzcz4KICAgICAiIGxldCBiOnhtbF9pbmRlbnRfb3BlbiA9ICcuXHstfTxbL11cQCFcKGFkZHJlc3NcKVxAIScKIGVuZGlmCkBAIC00MCw3ICs0Nyw3IEBACiAKICIgWy0tIGZpbmlzaCwgaWYgdGhlIGZ1bmN0aW9uIGFscmVhZHkgZXhpc3RzIC0tXQogaWYgZXhpc3RzKCcqWG1sSW5kZW50R2V0JykKLSAgZmluaXNoCisgICAgZmluaXNoCiBlbmRpZgogCiBsZXQgczprZWVwY3BvPSAmY3BvCkBAIC01MywxMyArNjAsMTMgQEAKIAogIiBbLS0gY2hlY2sgaWYgaXQncyB4bWwgLS1dCiBmdW4hIDxTSUQ+WG1sSW5kZW50U3luQ2hlY2sobG51bSkKLSAgICBpZiAnJyAhPSAmc3ludGF4Ci0JbGV0IHN5bjEgPSBzeW5JRGF0dHIoc3luSUQoYTpsbnVtLCAxLCAxKSwgJ25hbWUnKQotCWxldCBzeW4yID0gc3luSURhdHRyKHN5bklEKGE6bG51bSwgc3RybGVuKGdldGxpbmUoYTpsbnVtKSkgLSAxLCAxKSwgJ25hbWUnKQotCWlmICcnICE9IHN5bjEgJiYgc3luMSAhfiAneG1sJyAmJiAnJyAhPSBzeW4yICYmIHN5bjIgIX4gJ3htbCcKLQkgICAgIiBkb24ndCBpbmRlbnQgcHVyZSBub24teG1sIGNvZGUKLQkgICAgcmV0dXJuIDAKLQllbmRpZgorICAgIGlmICZzeW50YXggIT0gJycKKyAgICAgICAgbGV0IHN5bjEgPSBzeW5JRGF0dHIoc3luSUQoYTpsbnVtLCAxLCAxKSwgJ25hbWUnKQorICAgICAgICBsZXQgc3luMiA9IHN5bklEYXR0cihzeW5JRChhOmxudW0sIHN0cmxlbihnZXRsaW5lKGE6bG51bSkpIC0gMSwgMSksICduYW1lJykKKyAgICAgICAgaWYgc3luMSAhPSAnJyAmJiBzeW4xICF+ICd4bWwnICYmIHN5bjIgIT0gJycgJiYgc3luMiAhfiAneG1sJworICAgICAgICAgICAgIiBkb24ndCBpbmRlbnQgcHVyZSBub24teG1sIGNvZGUKKyAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgIGVuZGlmCiAgICAgZW5kaWYKICAgICByZXR1cm4gMQogZW5kZnVuCkBAIC02OCw0MSArNzUsNzIgQEAKIGZ1biEgPFNJRD5YbWxJbmRlbnRTdW0obG51bSwgc3R5bGUsIGFkZCkKICAgICBsZXQgbGluZSA9IGdldGxpbmUoYTpsbnVtKQogICAgIGlmIGE6c3R5bGUgPT0gbWF0Y2gobGluZSwgJ15ccyo8LycpCi0JcmV0dXJuIChzaGlmdHdpZHRoKCkgKgotCVwgICg8U0lEPlhtbEluZGVudFdpdGhQYXR0ZXJuKGxpbmUsIGI6eG1sX2luZGVudF9vcGVuKQotCVwgLSA8U0lEPlhtbEluZGVudFdpdGhQYXR0ZXJuKGxpbmUsIGI6eG1sX2luZGVudF9jbG9zZSkKLQlcIC0gPFNJRD5YbWxJbmRlbnRXaXRoUGF0dGVybihsaW5lLCAnLlx7LX0vPicpKSkgKyBhOmFkZAorICAgICAgICByZXR1cm4gKHNoaWZ0d2lkdGgoKSAqCisgICAgICAgIFwgICg8U0lEPlhtbEluZGVudFdpdGhQYXR0ZXJuKGxpbmUsIGI6eG1sX2luZGVudF9vcGVuKQorICAgICAgICBcIC0gPFNJRD5YbWxJbmRlbnRXaXRoUGF0dGVybihsaW5lLCBiOnhtbF9pbmRlbnRfY2xvc2UpCisgICAgICAgIFwgLSA8U0lEPlhtbEluZGVudFdpdGhQYXR0ZXJuKGxpbmUsICcuXHstfS8+JykpKSArIGE6YWRkCiAgICAgZWxzZQotCXJldHVybiBhOmFkZAorICAgICAgICByZXR1cm4gYTphZGQKICAgICBlbmRpZgogZW5kZnVuCiAKKyIgTWFpbiBpbmRlbnQgZnVuY3Rpb24KIGZ1biEgWG1sSW5kZW50R2V0KGxudW0sIHVzZV9zeW50YXhfY2hlY2spCiAgICAgIiBGaW5kIGEgbm9uLWVtcHR5IGxpbmUgYWJvdmUgdGhlIGN1cnJlbnQgbGluZS4KLSAgICBsZXQgbG51bSA9IHByZXZub25ibGFuayhhOmxudW0gLSAxKQorICAgIGxldCBwbG51bSA9IHByZXZub25ibGFuayhhOmxudW0gLSAxKQorICAgICIgRmluZCBwcmV2aW91cyBsaW5lIHdpdGggYSB0YWcgKHJlZ2FyZGxlc3Mgd2hldGhlciBvcGVuIG9yIGNsb3NlZCkKKyAgICBsZXQgcHRhZyA9IHNlYXJjaCgnLlx7LX08Wy86QS1aX2Etel0nLCAnYm53JykKIAogICAgICIgSGl0IHRoZSBzdGFydCBvZiB0aGUgZmlsZSwgdXNlIHplcm8gaW5kZW50LgotICAgIGlmIGxudW0gPT0gMAotCXJldHVybiAwCisgICAgaWYgcGxudW0gPT0gMAorICAgICAgICByZXR1cm4gMAogICAgIGVuZGlmCisgICAgbGV0IHN5bl9uYW1lID0gJycKIAogICAgIGlmIGE6dXNlX3N5bnRheF9jaGVjawotCWxldCBjaGVja19sbnVtID0gPFNJRD5YbWxJbmRlbnRTeW5DaGVjayhsbnVtKQotCWxldCBjaGVja19hbG51bSA9IDxTSUQ+WG1sSW5kZW50U3luQ2hlY2soYTpsbnVtKQotCWlmIDAgPT0gY2hlY2tfbG51bSB8fCAwID09IGNoZWNrX2FsbnVtCi0JICAgIHJldHVybiBpbmRlbnQoYTpsbnVtKQotCWVsc2VpZiAtMSA9PSBjaGVja19sbnVtIHx8IC0xID09IGNoZWNrX2FsbnVtCi0JICAgIHJldHVybiAtMQotCWVuZGlmCisgICAgICAgIGxldCBjaGVja19sbnVtID0gPFNJRD5YbWxJbmRlbnRTeW5DaGVjayhwbG51bSkKKyAgICAgICAgbGV0IGNoZWNrX2FsbnVtID0gPFNJRD5YbWxJbmRlbnRTeW5DaGVjayhhOmxudW0pCisgICAgICAgIGlmIGNoZWNrX2xudW0gPT0gMCB8fCBjaGVja19hbG51bSA9PSAwCisgICAgICAgICAgICByZXR1cm4gaW5kZW50KGE6bG51bSkKKyAgICAgICAgZW5kaWYKKyAgICAgICAgbGV0IHN5bl9uYW1lID0gc3luSURhdHRyKHN5bklEKGE6bG51bSwgc3RybGVuKGdldGxpbmUoYTpsbnVtKSkgLSAxLCAxKSwgJ25hbWUnKQogICAgIGVuZGlmCiAKLSAgICBsZXQgaW5kID0gPFNJRD5YbWxJbmRlbnRTdW0obG51bSwgLTEsIGluZGVudChsbnVtKSkKLSAgICBsZXQgaW5kID0gPFNJRD5YbWxJbmRlbnRTdW0oYTpsbnVtLCAwLCBpbmQpCisgICAgaWYgc3luX25hbWUgPX4gJ0NvbW1lbnQnCisgICAgICAgIHJldHVybiA8U0lEPlhtbEluZGVudENvbW1lbnQoYTpsbnVtKQorICAgIGVuZGlmCiAKKyAgICAiIEdldCBpbmRlbnQgZnJvbSBwcmV2aW91cyB0YWcgbGluZQorICAgIGxldCBpbmQgPSA8U0lEPlhtbEluZGVudFN1bShwdGFnLCAtMSwgaW5kZW50KHB0YWcpKQorICAgICIgRGV0ZXJtaW5lIGluZGVudCBmcm9tIGN1cnJlbnQgbGluZQorICAgIGxldCBpbmQgPSA8U0lEPlhtbEluZGVudFN1bShhOmxudW0sIDAsIGluZCkKICAgICByZXR1cm4gaW5kCiBlbmRmdW4KIAorIiByZXR1cm4gaW5kZW50IGZvciBhIGNvbW1lbnRlZCBsaW5lLAorIiB0aGUgbWlkZGxlIHBhcnQgbWlnaHQgYmUgaW5kZW50ZWQgb24gYWRkaXRpb25hbCBsZXZlbAorZnVuYyEgPFNJRD5YbWxJbmRlbnRDb21tZW50KGxudW0pCisgICAgbGV0IHB0YWdvcGVuID0gc2VhcmNoKGI6eG1sX2luZGVudF9vcGVuLCAnYm53JykKKyAgICBsZXQgcHRhZ2Nsb3NlID0gc2VhcmNoKGI6eG1sX2luZGVudF9jbG9zZSwgJ2JudycpCisgICAgaWYgZ2V0bGluZShhOmxudW0pID1+ICc8IS0tJworICAgICAgICAiIGlmIHByZXZpb3VzIHRhZyB3YXMgYSBjbG9zaW5nIHRhZywgZG8gbm90IGFkZAorICAgICAgICAiIG9uZSBhZGRpdGlvbmFsIGxldmVsIG9mIGluZGVudAorICAgICAgICBpZiBwdGFnY2xvc2UgPiBwdGFnb3BlbiAmJiBhOmxudW0gPiBwdGFnY2xvc2UKKyAgICAgICAgICAgIHJldHVybiBpbmRlbnQocHRhZ2Nsb3NlKQorICAgICAgICBlbHNlCisgICAgICAgICAgICAiIHN0YXJ0IG9mIGNvbW1lbnQsIGFkZCBvbmUgaW5kZW50YXRpb24gbGV2ZWwKKyAgICAgICAgICAgIHJldHVybiBpbmRlbnQocHRhZ29wZW4pICsgc2hpZnR3aWR0aCgpCisgICAgICAgIGVuZGlmCisgICAgZWxzZWlmIGdldGxpbmUoYTpsbnVtKSA9fiAnLS0+JworICAgICAgICAiIGVuZCBvZiBjb21tZW50LCBzYW1lIGFzIHN0YXJ0IG9mIGNvbW1lbnQKKyAgICAgICAgcmV0dXJuIGluZGVudChzZWFyY2goJzwhLS0nLCAnYm53JykpCisgICAgZWxzZQorICAgICAgICAiIG1pZGRsZSBwYXJ0IG9mIGNvbW1lbnQsIGFkZCBvbmUgYWRkaXRpb25hbCBsZXZlbAorICAgICAgICByZXR1cm4gaW5kZW50KHNlYXJjaCgnPCEtLScsICdibncnKSkgKyBzaGlmdHdpZHRoKCkKKyAgICBlbmRpZgorZW5kZnVuYworCiBsZXQgJmNwbyA9IHM6a2VlcGNwbwogdW5sZXQgczprZWVwY3BvCiAKLSIgdmltOnRzPTgKKyIgdmltOnRzPTQgZXQgc3RzPS0xIHN3PTAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2FiYXAudmltIGIvcnVudGltZS9zeW50YXgvYWJhcC52aW0KaW5kZXggYzI4NTdhNS4uNDY1MDEwOSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvYWJhcC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvYWJhcC52aW0KQEAgLTEsMTEgKzEsMTAgQEAKICIgVmltIEFCQVAgc3ludGF4IGZpbGUKICIgICAgTGFuZ3VhZ2U6IFNBUCAtIEFCQVAvUjQKLSIgICAgUmV2aXNpb246IDIuMQogIiAgTWFpbnRhaW5lcjogTWFyaXVzIFBpZWRhbGx1IHZhbiBXeWsgPGxhaWxva2VuQGdtYWlsLmNvbT4KLSIgTGFzdCBDaGFuZ2U6IDIwMTMgSnVuIDEzCisiIExhc3QgQ2hhbmdlOiAyMDE4IERlYyAxMgogIiAgICAgQ29tbWVudDogVGhhbmtzIHRvIEVQSS1VU0UgTGFicyBmb3IgYWxsIHlvdXIgYXNzaXN0YW5jZS4gOikKIAotIiBxdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKKyIgUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQogICBmaW5pc2gKIGVuZGlmCkBAIC01NSw2ICs1NCw3IEBACiBzeW4gbWF0Y2ggICBhYmFwQ29tcGxleFN0YXRlbWVudCAiXDxTRVBBUkFURURcV1wrQllcPiIKIHN5biBtYXRjaCAgIGFiYXBDb21wbGV4U3RhdGVtZW50ICJcPFVTSU5HXChcV1wrRURJVFxXXCtNQVNLXClcP1w+Igogc3luIG1hdGNoICAgYWJhcENvbXBsZXhTdGF0ZW1lbnQgIlw8V0hFUkVcKFxXXCtMSU5FXClcP1w+Igorc3luIG1hdGNoICAgYWJhcENvbXBsZXhTdGF0ZW1lbnQgIlw8R0VUXFdcK1woVElNRVwoXFdcK1NUQU1QXClcP1woXFdcK0ZJRUxEXClcP1x8UEYtU1RBVFVTXHxCQURJXHxCSVRcfENPTk5FQ1RJT05cfENVUlNPUlx8UkVGRVJFTkNFXFdcK09GXClcPiIKIHN5biBtYXRjaCAgIGFiYXBDb21wbGV4U3RhdGVtZW50ICJcPFJBRElPQlVUVE9OXFdcK0dST1VQXD4iCiBzeW4gbWF0Y2ggICBhYmFwQ29tcGxleFN0YXRlbWVudCAiXDxSRUZcV1wrVE9cPiIKIHN5biBtYXRjaCAgIGFiYXBDb21wbGV4U3RhdGVtZW50ICJcPFwoUFVCTElDXHxQUklWQVRFXHxQUk9URUNURURcKVwoXFdcK1NFQ1RJT05cKVw/XD4iCkBAIC0xMDksNyArMTA5LDcgQEAKIHN5biBrZXl3b3JkIGFiYXBTdGF0ZW1lbnQgREFUQSBERUZJTkUgREVGSU5JVElPTiBERUZFUlJFRCBERUxFVEUgREVTQ1JJQkUgREVUQUlMIERJVklERSBETwogc3luIGtleXdvcmQgYWJhcFN0YXRlbWVudCBFTFNFIEVMU0VJRiBFTkRBVCBFTkRDQVNFIEVORENMQVNTIEVORERPIEVOREVYRUMgRU5ERk9STSBFTkRGVU5DVElPTiBFTkRJRiBFTkRJRkVORCBFTkRJTlRFUkZBQ0UgRU5ETE9PUCBFTkRNRVRIT0QgRU5ETU9EVUxFIEVORE9OIEVORFBST1ZJREUgRU5EU0VMRUNUIEVORFRSWSBFTkRXSElMRSBFVkVOVCBFVkVOVFMgRVhFQyBFWElUIEVYUE9SVCBFWFBPUlRJTkcgRVhUUkFDVAogc3luIGtleXdvcmQgYWJhcFN0YXRlbWVudCBGRVRDSCBGSUVMRFMgRk9STSBGT1JNQVQgRlJFRSBGUk9NIEZVTkNUSU9OCi1zeW4ga2V5d29yZCBhYmFwU3RhdGVtZW50IEdFTkVSQVRFIEdFVAorc3luIGtleXdvcmQgYWJhcFN0YXRlbWVudCBHRU5FUkFURQogc3luIGtleXdvcmQgYWJhcFN0YXRlbWVudCBISURFCiBzeW4ga2V5d29yZCBhYmFwU3RhdGVtZW50IElGIElNUE9SVCBJTVBPUlRJTkcgSU5ERVggSU5GT1RZUEVTIElOSVRJQUxJWkFUSU9OIElOVEVSRkFDRSBJTlRFUkZBQ0VTIElOUFVUIElOU0VSVCBJTVBMRU1FTlRBVElPTiAKIHN5biBrZXl3b3JkIGFiYXBTdGF0ZW1lbnQgTEVBVkUgTElLRSBMSU5FIExPQUQgTE9DQUwgTE9PUApAQCAtMTQ3LDcgKzE0Nyw3IEBACiBzeW4gcmVnaW9uIGFiYXBJbmNsdWRlICAgc3RhcnQ9ImluY2x1ZGUiIGVuZD0iLiIgY29udGFpbnM9YWJhcENvbW1lbnQKIAogIiBUeXBlcwotc3luIGtleXdvcmQgYWJhcFR5cGVzICAgIGMgbiBpIHAgZiBkIHQgeCBzdHJpbmcgeHN0cmluZyBkZWNmbG9hdDE2IGRlY2Zsb2F0MzQKK3N5biBrZXl3b3JkIGFiYXBUeXBlcyAgICBjIG4gaSBpbnQ4IHAgZiBkIHQgeCBzdHJpbmcgeHN0cmluZyBkZWNmbG9hdDE2IGRlY2Zsb2F0MzQKIAogIiBBdHJpdG1pdGljIG9wZXJhdG9ycwogc3luIGtleXdvcmQgYWJhcE9wZXJhdG9yIGFicyBzaWduIGNlaWwgZmxvb3IgdHJ1bmMgZnJhYyBhY29zIGFzaW4gYXRhbiBjb3Mgc2luIHRhbgpAQCAtMTkzLDUgKzE5Myw0IEBACiAKIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gImFiYXAiCiAKLSIgdmltOiB0cz04IHN3PTIKLQorIiB2aW06IHRzPTggc3c9MgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9wby9kZS5wbyBiL3NyYy9wby9kZS5wbwppbmRleCAwMWM4YzQ5Li5hYmIyZWI0IDEwMDY0NAotLS0gYS9zcmMvcG8vZGUucG8KKysrIGIvc3JjL3BvL2RlLnBvCkBAIC0xMSw3ICsxMSw3IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IFZpbVxuIgogIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxOC0xMS0wNCAxODowMiswMTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTgtMTItMTIgMTU6MzQrMDEwMFxuIgogIlBPLVJldmlzaW9uLURhdGU6IDIwMDgtMDUtMjQgMTc6MjYrMDIwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogQ2hyaXN0aWFuIEJyYWJhbmR0IDxjYkAyNTZiaXQub3JnPlxuIgogIkxhbmd1YWdlLVRlYW06IEdlcm1hblxuIgpAQCAtMjIsNyArMjIsNyBAQAogIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgogCiBtc2dpZCAiRTgzMTogYmZfa2V5X2luaXQoKSBjYWxsZWQgd2l0aCBlbXB0eSBwYXNzd29yZCIKLW1zZ3N0ciAiRTgzMTogYmZfa2V5X2luaXQoKSBtaXQgbGVlcmVtIHBhc3N3b3J0IGF1ZmdlcnVmZW4uIgorbXNnc3RyICJFODMxOiBiZl9rZXlfaW5pdCgpIG1pdCBsZWVyZW0gUGFzc3dvcnQgYXVmZ2VydWZlbi4iCiAKIG1zZ2lkICJFODIwOiBzaXplb2YodWludDMyX3QpICE9IDQiCiBtc2dzdHIgIkU4MjA6IHNpemVvZih1aW50MzJfdCkgdW5nbGVpY2ggNC4iCkBAIC02MzQsNiArNjM0LDEwIEBACiBtc2dzdHIgIkU5MDg6IFVuZ/xsdGlnZXIgV2VydCBhbHMgU3RyaW5nIHZlcndlbmRldC4iCiAKICMsIGMtZm9ybWF0Cittc2dpZCAiRTk2Mzogc2V0dGluZyAlcyB0byB2YWx1ZSB3aXRoIHdyb25nIHR5cGUiCittc2dzdHIgIkU5NjM6ICVzIGF1ZiBXZXJ0IG1pdCBmYWxzY2hlbSBUeXAgZ2VzZXR6dCIKKworIywgYy1mb3JtYXQKIG1zZ2lkICJFNzk1OiBDYW5ub3QgZGVsZXRlIHZhcmlhYmxlICVzIgogbXNnc3RyICJFNzk1OiBLYW5uIFZhcmlhYmxlIG5pY2h0IGz2c2NoZW46ICVzIgogCkBAIC04MDUsNiArODA5LDEwIEBACiBtc2dpZCAiRTkyNzogSW52YWxpZCBhY3Rpb246ICclcyciCiBtc2dzdHIgIkU5Mjc6IFVuZ/xsdGlnZSBBa3Rpb24gJyVzJyIKIAorIywgYy1mb3JtYXQKK21zZ2lkICJFOTYyOiBJbnZhbGlkIGFjdGlvbjogJyVzJyIKK21zZ3N0ciAiRTk2MjogVW5n/Gx0aWdlIEFrdGlvbiAnJXMnIgorCiBtc2dpZCAic29ydCgpIGFyZ3VtZW50IgogbXNnc3RyICJzb3J0KCkgQXJndW1lbnQiCiAKQEAgLTg1NCw4ICs4NjIsOCBAQAogbXNnaWQgIj4gJWQsIEhleCAlMDh4LCBPY3RhbCAlbyIKIG1zZ3N0ciAiPiAlZCwgSGV4ICUwOHgsIE9rdGFsICVvIgogCi1tc2dpZCAiRTEzNDogTW92ZSBsaW5lcyBpbnRvIHRoZW1zZWx2ZXMiCi1tc2dzdHIgIkUxMzQ6IFZlcnNjaGllYmUgWmVpbGVuIGluIHNpY2ggc2VsYnN0IgorbXNnaWQgIkUxMzQ6IENhbm5vdCBtb3ZlIGEgcmFuZ2Ugb2YgbGluZXMgaW50byBpdHNlbGYiCittc2dzdHIgIkUxMzQ6IEthbm4gQmVyZWljaCB2b24gWmVpbGVuIG5pY2h0IGluIHNpY2ggc2VsYnN0IHZlcnNjaGllYmVuIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVsZCBsaW5lIG1vdmVkIgpAQCAtMTM2OCw4ICsxMzc2LDkgQEAKIG1zZ3N0clswXSAiRTE3MzogJWxkIHdlaXRlcmUgRGF0ZWkgenVtIEVkaXRpZXJlbiIKIG1zZ3N0clsxXSAiRTE3MzogJWxkIHdlaXRlcmUgRGF0ZWllbiB6dW0gRWRpdGllcmVuIgogCi1tc2dpZCAiRTE3NDogQ29tbWFuZCBhbHJlYWR5IGV4aXN0czogYWRkICEgdG8gcmVwbGFjZSBpdCIKLW1zZ3N0ciAiRTE3NDogQmVmZWhsIGV4aXN0aWVydCBiZXJlaXRzOiAhIHp1bSBFcnNldHplbiBoaW56dWb8Z2VuIgorIywgYy1mb3JtYXQKK21zZ2lkICJFMTc0OiBDb21tYW5kIGFscmVhZHkgZXhpc3RzOiBhZGQgISB0byByZXBsYWNlIGl0OiAlcyIKK21zZ3N0ciAiRTE3NDogQmVmZWhsICclcycgZXhpc3RpZXJ0IGJlcmVpdHM6ICEgenVtIEVyc2V0emVuIGhpbnp1ZvxnZW4iCiAKIG1zZ2lkICIiCiAiXG4iCkBAIC0xODYxLDggKzE4NzAsNyBAQAogCiBtc2dpZCAiRTUxMzogd3JpdGUgZXJyb3IsIGNvbnZlcnNpb24gZmFpbGVkIChtYWtlICdmZW5jJyBlbXB0eSB0byBvdmVycmlkZSkiCiBtc2dzdHIgIiIKLSJFNTEzOiBTY2hyZWliZmVobGVyLCBVbXdhbmRsdW5nIHNjaGx1ZyBmZWhsIChsZWVyZSAnZmVuYycgdW0gZXMgenUgIgotImVyendpbmdlbikiCisiRTUxMzogU2NocmVpYmZlaGxlciwgVW13YW5kbHVuZyBzY2hsdWcgZmVobCAobGVlcmUgJ2ZlbmMnIHVtIGVzIHp1IGVyendpbmdlbikiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgpAQCAtMjIwOCw4ICsyMjE2LDggQEAKIAogbXNnaWQgIkUyMzI6IENhbm5vdCBjcmVhdGUgQmFsbG9vbkV2YWwgd2l0aCBib3RoIG1lc3NhZ2UgYW5kIGNhbGxiYWNrIgogbXNnc3RyICIiCi0iRTIzMjogQmFsbG9vbkV2YWwga2FubiBuaWNodCBzb3dvaGwgbWl0IFwibWVzc2FnZVwiIGFscyBhdWNoIFwiY2FsbGJhY2tcIiBlcnpldWd0ICIKLSJ3ZXJkZW4iCisiRTIzMjogQmFsbG9vbkV2YWwga2FubiBuaWNodCBzb3dvaGwgbWl0IFwibWVzc2FnZVwiIGFscyBhdWNoIFwiY2FsbGJhY2tcIiAiCisiZXJ6ZXVndCB3ZXJkZW4iCiAKIG1zZ2lkICJfQ2FuY2VsIgogbXNnc3RyICJfQWJicmVjaGVuIgpAQCAtMzQ2Niw3ICszNDc0LDggQEAKIG1zZ3N0ciAiRTI5ODogQmxvY2sgTnIuIDIgbmljaHQgZXJoYWx0ZW4/IgogCiBtc2dpZCAiRTg0MzogRXJyb3Igd2hpbGUgdXBkYXRpbmcgc3dhcCBmaWxlIGNyeXB0IgotbXNnc3RyICJFODQzOiBGZWhsZXIgYmVpbSBBa3R1YWxpc2llcmVuIGRlciBWZXJzY2hs/HNzZWx1bmcgZGVyIEF1c2xhZ2VydW5nc2RhdGVpLiIKK21zZ3N0ciAiIgorIkU4NDM6IEZlaGxlciBiZWltIEFrdHVhbGlzaWVyZW4gZGVyIFZlcnNjaGz8c3NlbHVuZyBkZXIgQXVzbGFnZXJ1bmdzZGF0ZWkuIgogCiBtc2dpZCAiRTMwMTogT29wcywgbG9zdCB0aGUgc3dhcCBmaWxlISEhIgogbXNnc3RyICJFMzAxOiBVcHBzLCBWZXJsdXN0IGRlciBBdXNsYWdlcnVuZ3NkYXRlaSEhISIKQEAgLTU4ODcsOCArNTg5Niw3IEBACiAKIG1zZ2lkICJDYW5ub3Qgd3JpdGUgdW5kbyBmaWxlIGluIGFueSBkaXJlY3RvcnkgaW4gJ3VuZG9kaXInIgogbXNnc3RyICIiCi0iVW5kby1EYXRlaSBrYW5uIGluIGtlaW5lcyBkZXIgVmVyemVpY2huaXNzZSBhdXMgJ3VuZG9kaXInIGdlc2NocmllYmVuICIKLSJ3ZXJkZW4uIgorIlVuZG8tRGF0ZWkga2FubiBpbiBrZWluZXMgZGVyIFZlcnplaWNobmlzc2UgYXVzICd1bmRvZGlyJyBnZXNjaHJpZWJlbiB3ZXJkZW4uIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIldpbGwgbm90IG92ZXJ3cml0ZSB3aXRoIHVuZG8gZmlsZSwgY2Fubm90IHJlYWQ6ICVzIgo=