ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggMDM0Mjc2Yi4uYzAwMzFlOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRmViIDAyCisqZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRmViIDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNDc2LDYgKzE0NzYsOCBAQAogCQkJCU51bWJlcglwb3NpdGlvbiB3aGVyZSB7cGF0fSBtYXRjaGVzIGluIHtleHByfQogbWF0Y2hlbmQoIHtleHByfSwge3BhdH1bLCB7c3RhcnR9Wywge2NvdW50fV1dKQogCQkJCU51bWJlcglwb3NpdGlvbiB3aGVyZSB7cGF0fSBlbmRzIGluIHtleHByfQorbWF0Y2hsaXN0KCB7ZXhwcn0sIHtwYXR9Wywge3N0YXJ0fVssIHtjb3VudH1dXSkKKwkJCQlMaXN0CW1hdGNoIGFuZCBzdWJtYXRjaGVzIG9mIHtwYXR9IGluIHtleHByfQogbWF0Y2hzdHIoIHtleHByfSwge3BhdH1bLCB7c3RhcnR9Wywge2NvdW50fV1dKQogCQkJCVN0cmluZwl7Y291bnR9J3RoIG1hdGNoIG9mIHtwYXR9IGluIHtleHByfQogbWF4KHtsaXN0fSkJCQlOdW1iZXIJbWF4aW11bSB2YWx1ZSBvZiBpdGVtcyBpbiB7bGlzdH0KQEAgLTE0ODYsNiArMTQ4OCw3IEBACiBwcmV2bm9uYmxhbmsoIHtsbnVtfSkJCU51bWJlcglsaW5lIG5yIG9mIG5vbi1ibGFuayBsaW5lIDw9IHtsbnVtfQogcmFuZ2UoIHtleHByfSBbLCB7bWF4fSBbLCB7c3RyaWRlfV1dKQogCQkJCUxpc3QJaXRlbXMgZnJvbSB7ZXhwcn0gdG8ge21heH0KK3JlYWRmaWxlKHtmbmFtZX0gWywge2JpbmFyeX1dKQlMaXN0CWdldCBsaXN0IG9mIGxpbmVzIGZyb20gZmlsZSB7Zm5hbWV9CiByZW1vdGVfZXhwcigge3NlcnZlcn0sIHtzdHJpbmd9IFssIHtpZHZhcn1dKQogCQkJCVN0cmluZwlzZW5kIGV4cHJlc3Npb24KIHJlbW90ZV9mb3JlZ3JvdW5kKCB7c2VydmVyfSkJTnVtYmVyCWJyaW5nIFZpbSBzZXJ2ZXIgdG8gdGhlIGZvcmVncm91bmQKQEAgLTE1NDgsNiArMTU1MSw4IEBACiB3aW5ucigpCQkJCU51bWJlcgludW1iZXIgb2YgY3VycmVudCB3aW5kb3cKIHdpbnJlc3RjbWQoKQkJCVN0cmluZwlyZXR1cm5zIGNvbW1hbmQgdG8gcmVzdG9yZSB3aW5kb3cgc2l6ZXMKIHdpbndpZHRoKCB7bnJ9KQkJCU51bWJlcgl3aWR0aCBvZiB3aW5kb3cge25yfQord3JpdGVmaWxlKHtsaXN0fSwge2ZuYW1lfSBbLCB7YmluYXJ5fV0pCisJCQkJTnVtYmVyCXdyaXRlIGxpc3Qgb2YgbGluZXMgdG8gZmlsZSB7Zm5hbWV9CiAKIGFkZCh7bGlzdH0sIHtleHByfSkJCQkJCSphZGQoKSoKIAkJQXBwZW5kIHRoZSBpdGVtIHtleHByfSB0byBMaXN0IHtsaXN0fS4gIFJldHVybnMgdGhlIHJlc3VsdGluZwpAQCAtMjAwNCw4ICsyMDA5LDEyIEBACiAJCQkJCW9yIHVzZXIgZGVmaW5lZCBmdW5jdGlvbiAoc2VlCiAJCQkJCXx1c2VyLWZ1bmN0aW9uc3wpLgogCQkJdmFybmFtZQkJaW50ZXJuYWwgdmFyaWFibGUgKHNlZQotCQkJCQl8aW50ZXJuYWwtdmFyaWFibGVzfCkuICBEb2VzIG5vdCB3b3JrCi0JCQkJCWZvciB8Y3VybHktYnJhY2VzLW5hbWVzfC4KKwkJCQkJfGludGVybmFsLXZhcmlhYmxlc3wpLiAgQWxzbyB3b3JrcworCQkJCQlmb3IgfGN1cmx5LWJyYWNlcy1uYW1lc3wsIERpY3Rpb25hcnkKKwkJCQkJZW50cmllcywgTGlzdCBpdGVtcywgZXRjLiAgQmV3YXJlIHRoYXQKKwkJCQkJdGhpcyBtYXkgY2F1c2UgZnVuY3Rpb25zIHRvIGJlCisJCQkJCWludm9rZWQgY2F1c2UgYW4gZXJyb3IgbWVzc2FnZSBmb3IgYW4KKwkJCQkJaW52YWxpZCBleHByZXNzaW9uLgogCQkJOmNtZG5hbWUJRXggY29tbWFuZDogYnVpbHQtaW4gY29tbWFuZCwgdXNlcgogCQkJCQljb21tYW5kIG9yIGNvbW1hbmQgbW9kaWZpZXIgfDpjb21tYW5kfC4KIAkJCQkJUmV0dXJuczoKQEAgLTI5MzksOSArMjk0OCwxMCBAQAogCQkJOmNhbGwgbWFwKG15bGlzdCwgJyI+ICIgLiB2OnZhbCAuICIgPCInKQogPAkJVGhpcyBwdXRzICI+ICIgYmVmb3JlIGFuZCAiIDwiIGFmdGVyIGVhY2ggaXRlbSBpbiAibXlsaXN0Ii4KIAotCQlOb3RlIHRoYXQge3N0cmluZ30gaXMgdGhlIHJlc3VsdCBvZiBleHByZXNzaW9uIGFuZCBpcyB0aGVuCisJCU5vdGUgdGhhdCB7c3RyaW5nfSBpcyB0aGUgcmVzdWx0IG9mIGFuIGV4cHJlc3Npb24gYW5kIGlzIHRoZW4KIAkJdXNlZCBhcyBhbiBleHByZXNzaW9uIGFnYWluLiAgT2Z0ZW4gaXQgaXMgZ29vZCB0byB1c2UgYQotCQl8bGl0ZXJhbC1zdHJpbmd8IHRvIGF2b2lkIGhhdmluZyB0byBkb3VibGUgYmFja3NsYXNoZXMuCisJCXxsaXRlcmFsLXN0cmluZ3wgdG8gYXZvaWQgaGF2aW5nIHRvIGRvdWJsZSBiYWNrc2xhc2hlcy4gIFlvdQorCQlzdGlsbCBoYXZlIHRvIGRvdWJsZSAnIHF1b3RlcwogCiAJCVRoZSBvcGVyYXRpb24gaXMgZG9uZSBpbi1wbGFjZS4gIElmIHlvdSB3YW50IGEgTGlzdCBvcgogCQlEaWN0aW9uYXJ5IHRvIHJlbWFpbiB1bm1vZGlmaWVkIG1ha2UgYSBjb3B5IGZpcnN0OiA+CkBAIC0zMDUwLDYgKzMwNjAsMTMgQEAKIDwJCXJlc3VsdCBpcyAiLTEiLgogCQlXaGVuIHtleHByfSBpcyBhIExpc3QgdGhlIHJlc3VsdCBpcyBlcXVhbCB0byBtYXRjaCgpLgogCittYXRjaGxpc3Qoe2V4cHJ9LCB7cGF0fVssIHtzdGFydH1bLCB7Y291bnR9XV0pCQkJKm1hdGNobGlzdCgpKgorCQlTYW1lIGFzIG1hdGNoKCksIGJ1dCByZXR1cm4gYSBMaXN0LiAgVGhlIGZpcnN0IGl0ZW0gaW4gdGhlCisJCWxpc3QgaXMgdGhlIG1hdGNoZWQgc3RyaW5nLCBzYW1lIGFzIHdoYXQgbWF0Y2hzdHIoKSB3b3VsZAorCQlyZXR1cm4uICBGb2xsb3dpbmcgaXRlbXMgYXJlIHN1Ym1hdGNoZXMsIGxpa2UgIlwxIiwgIlwyIiwgZXRjLgorCQlpbiB8OnN1YnN0aXR1dGV8LgorCQlXaGVuIHRoZXJlIGlzIG5vIG1hdGNoIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQuCisKIG1hdGNoc3RyKHtleHByfSwge3BhdH1bLCB7c3RhcnR9Wywge2NvdW50fV1dKQkJCSptYXRjaHN0cigpKgogCQlTYW1lIGFzIG1hdGNoKCksIGJ1dCByZXR1cm4gdGhlIG1hdGNoZWQgc3RyaW5nLiAgRXhhbXBsZTogPgogCQkJOmVjaG8gbWF0Y2hzdHIoInRlc3RpbmciLCAiaW5nIikKQEAgLTMxMzMsNiArMzE1MCwyNyBAQAogCQkJcmFuZ2UoMiwgOSwgMykJCSIgWzIsIDUsIDhdCiAJCQlyYW5nZSgyLCAtMiwgLTEpIAkiIFsyLCAxLCAwLCAtMSwgLTJdCiA8CisJCQkJCQkJKnJlYWRmaWxlKCkqCityZWFkZmlsZSh7Zm5hbWV9IFssIHtiaW5hcnl9XSkKKwkJUmVhZCBmaWxlIHtmbmFtZX0gYW5kIHJldHVybiBhIExpc3QsIGVhY2ggbGluZSBvZiB0aGUgZmlsZSBhcworCQlhbiBpdGVtLiAgTGluZXMgYnJva2VuIGF0IE5MIGNoYXJhY3RlcnMuICBNYWNpbnRvc2ggZmlsZXMKKwkJc2VwYXJhdGVkIHdpdGggQ1Igd2lsbCByZXN1bHQgaW4gYSBzaW5nbGUgbG9uZyBsaW5lICh1bmxlc3MgYQorCQlOTCBhcHBlYXJzIHNvbWV3aGVyZSkuCisJCVdoZW4ge2JpbmFyeX0gaXMgZXF1YWwgdG8gImIiIGJpbmFyeSBtb2RlIGlzIHVzZWQ6CisJCS0gV2hlbiB0aGUgbGFzdCBsaW5lIGVuZHMgaW4gYSBOTCBhbiBleHRyYSBlbXB0eSBsaXN0IGl0ZW0gaXMKKwkJICBhZGRlZC4KKwkJLSBObyBDUiBjaGFyYWN0ZXJzIGFyZSByZW1vdmVkLgorCQlPdGhlcndpc2U6CisJCS0gQ1IgY2hhcmFjdGVycyB0aGF0IGFwcGVhciBiZWZvcmUgYSBOTCBhcmUgcmVtb3ZlZC4KKwkJLSBXaGV0aGVyIHRoZSBsYXN0IGxpbmUgZW5kcyBpbiBhIE5MIG9yIG5vdCBkb2VzIG5vdCBtYXR0ZXIuCisJCUFsbCBOVUwgY2hhcmFjdGVycyBhcmUgcmVwbGFjZWQgd2l0aCBhIE5MIGNoYXJhY3Rlci4KKwkJTm90ZSB0aGF0IHRoZSB3aG9sZSBmaWxlIGlzIHJlYWQgaW50byBtZW1vcnkgYW5kIHRoZXJlIGlzIG5vCisJCXJlY29nbml0aW9uIG9mIGVuY29kaW5nLiAgUmVhZCBhIGZpbGUgaW50byBhIGJ1ZmZlciBpZiB5b3UKKwkJbmVlZCB0by4KKwkJV2hlbiB0aGUgZmlsZSBjYW4ndCBiZSBvcGVuZWQgYW4gZXJyb3IgbWVzc2FnZSBpcyBnaXZlbiBhbmQKKwkJdGhlIHJlc3VsdCBpcyBhbiBlbXB0eSBsaXN0LgorCQlBbHNvIHNlZSB8d3JpdGVmaWxlKCl8LgorCiAJCQkJCQkJKnJlbW90ZV9leHByKCkqICpFNDQ5KgogcmVtb3RlX2V4cHIoe3NlcnZlcn0sIHtzdHJpbmd9IFssIHtpZHZhcn1dKQogCQlTZW5kIHRoZSB7c3RyaW5nfSB0byB7c2VydmVyfS4gIFRoZSBzdHJpbmcgaXMgc2VudCBhcyBhbgpAQCAtMzg3OSw2ICszOTE3LDI2IEBACiAgIDogIGV4ZSAibm9ybWFsIDUwXDxDLVc+fCIKICAgOmVuZGlmCiA8CisJCQkJCQkJKndyaXRlZmlsZSgpKgord3JpdGVmaWxlKHtsaXN0fSwge2ZuYW1lfSBbLCB7YmluYXJ5fV0pCisJCVdyaXRlIExpc3Qge2xpc3R9IHRvIGZpbGUge2ZuYW1lfS4gIEVhY2ggbGlzdCBpdGVtIGlzCisJCXNlcGFyYXRlZCB3aXRoIGEgTkwuICBFYWNoIGxpc3QgaXRlbSBtdXN0IGJlIGEgU3RyaW5nIG9yCisJCU51bWJlci4KKwkJV2hlbiB7YmluYXJ5fSBpcyBlcXVhbCB0byAiYiIgYmluYXJ5IG1vZGUgaXMgdXNlZDogVGhlcmUgd2lsbAorCQlub3QgYmUgYSBOTCBhZnRlciB0aGUgbGFzdCBsaXN0IGl0ZW0uICBBbiBlbXB0eSBpdGVtIGF0IHRoZQorCQllbmQgZG9lcyBjYXVzZSB0aGUgbGFzdCBsaW5lIGluIHRoZSBmaWxlIHRvIGVuZCBpbiBhIE5MLgorCQlBbGwgTkwgY2hhcmFjdGVycyBhcmUgcmVwbGFjZWQgd2l0aCBhIE5VTCBjaGFyYWN0ZXIuCisJCUluc2VydGluZyBDUiBjaGFyYWN0ZXJzIG5lZWRzIHRvIGJlIGRvbmUgYmVmb3JlIHBhc3Npbmcge2xpc3R9CisJCXRvIHdyaXRlZmlsZSgpLgorCQlBbiBleGlzdGluZyBmaWxlIGlzIG92ZXJ3cml0dGVuLCBpZiBwb3NzaWJsZS4KKwkJV2hlbiB0aGUgd3JpdGUgZmFpbHMgLTEgaXMgcmV0dXJuZWQsIG90aGVyd2lzZSAwLiAgVGhlcmUgaXMgYW4KKwkJZXJyb3IgbWVzc2FnZSBpZiB0aGUgZmlsZSBjYW4ndCBiZSBjcmVhdGVkIG9yIHdoZW4gd3JpdGluZworCQlmYWlscy4KKwkJQWxzbyBzZWUgfHJlYWRmaWxlKCl8LgorCQlUbyBjb3B5IGEgZmlsZSBieXRlIGZvciBieXRlOiA+CisJCQk6bGV0IGZsID0gcmVhZGZpbGUoImZvbyIsICJiIikKKwkJCTpjYWxsIHdyaXRlZmlsZShmbCwgImZvb2NvcHkiLCAiYiIpCis8CiAKIAkJCQkJCQkqZmVhdHVyZS1saXN0KgogVGhlcmUgYXJlIHRocmVlIHR5cGVzIG9mIGZlYXR1cmVzOgpAQCAtNDU5Nyw3ICs0NjU1LDcgQEAKIDpmb3Ige3Zhcn0gaW4ge2xpc3R9CQkJCQkqOmZvciogKkU2OTAqICpFNzMyKgogOmVuZGZvW3JdCQkJCQkJKjplbmRmbyogKjplbmRmb3IqCiAJCQlSZXBlYXQgdGhlIGNvbW1hbmRzIGJldHdlZW4gIjpmb3IiIGFuZCAiOmVuZGZvciIgZm9yCi0JCQllYWNoIGl0ZW0gaW4ge2xpc3R9LiAgdmFyaWFibGUge3Zhcn0gaXMgc2V0IHRvIHRoZQorCQkJZWFjaCBpdGVtIGluIHtsaXN0fS4gIFZhcmlhYmxlIHt2YXJ9IGlzIHNldCB0byB0aGUKIAkJCXZhbHVlIG9mIGVhY2ggaXRlbS4KIAkJCVdoZW4gYW4gZXJyb3IgaXMgZGV0ZWN0ZWQgZm9yIGEgY29tbWFuZCBpbnNpZGUgdGhlCiAJCQlsb29wLCBleGVjdXRpb24gY29udGludWVzIGFmdGVyIHRoZSAiZW5kZm9yIi4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IGM4ZTc2NWYuLjhhZDY0NTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtNTkzNyw2ICs1OTM3LDcgQEAKIHJlYWQtbWVzc2FnZXMJaW5zZXJ0LnR4dAkvKnJlYWQtbWVzc2FnZXMqCiByZWFkLW9ubHktc2hhcmUJZWRpdGluZy50eHQJLypyZWFkLW9ubHktc2hhcmUqCiByZWFkLXN0ZGluCXZlcnNpb241LnR4dAkvKnJlYWQtc3RkaW4qCityZWFkZmlsZSgpCWV2YWwudHh0CS8qcmVhZGZpbGUoKSoKIHJlYWRsaW5lLXN5bnRheAlzeW50YXgudHh0CS8qcmVhZGxpbmUtc3ludGF4KgogcmVhZGxpbmUudmltCXN5bnRheC50eHQJLypyZWFkbGluZS52aW0qCiByZWNvcmRpbmcJcmVwZWF0LnR4dAkvKnJlY29yZGluZyoKQEAgLTY4NjMsNiArNjg2NCw3IEBACiB3cml0ZS1wbHVnaW4JdXNyXzQxLnR4dAkvKndyaXRlLXBsdWdpbioKIHdyaXRlLXF1aXQJZWRpdGluZy50eHQJLyp3cml0ZS1xdWl0Kgogd3JpdGUtcmVhZG9ubHkJZWRpdGluZy50eHQJLyp3cml0ZS1yZWFkb25seSoKK3dyaXRlZmlsZSgpCWV2YWwudHh0CS8qd3JpdGVmaWxlKCkqCiB3cml0aW5nCWVkaXRpbmcudHh0CS8qd3JpdGluZyoKIHd3dwlpbnRyby50eHQJLyp3d3cqCiB4CWNoYW5nZS50eHQJLyp4KgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzQxLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQKaW5kZXggNGE3ZjNkMS4uZDkwYzI0YSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzQxLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfNDEudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl80MS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEphbiAyNQorKnVzcl80MS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEZlYiAwNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtNjUzLDYgKzY1Myw4IEBACiAJcmVuYW1lKCkJCXJlbmFtZSBhIGZpbGUKIAlzeXN0ZW0oKQkJZ2V0IHRoZSByZXN1bHQgb2YgYSBzaGVsbCBjb21tYW5kCiAJaG9zdG5hbWUoKQkJbmFtZSBvZiB0aGUgc3lzdGVtCisJcmVhZGZpbGUoKQkJcmVhZCBhIGZpbGUgaW50byBhIExpc3Qgb2YgbGluZXMKKwl3cml0ZWZpbGUoKQkJd3JpdGUgYSBMaXN0IG9mIGxpbmVzIGludG8gYSBmaWxlCiAKIEJ1ZmZlcnMsIHdpbmRvd3MgYW5kIHRoZSBhcmd1bWVudCBsaXN0OgogCWFyZ2MoKQkJCW51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBhcmd1bWVudCBsaXN0CmRpZmYgLS1naXQgYS9ydW50aW1lL21lbnUudmltIGIvcnVudGltZS9tZW51LnZpbQppbmRleCBlODkyOTFiLi42ZjMwMDE4IDEwMDY0NAotLS0gYS9ydW50aW1lL21lbnUudmltCisrKyBiL3J1bnRpbWUvbWVudS52aW0KQEAgLTIsNyArMiw3IEBACiAiIFlvdSBjYW4gYWxzbyB1c2UgdGhpcyBhcyBhIHN0YXJ0IGZvciB5b3VyIG93biBzZXQgb2YgbWVudXMuCiAiCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDA1IEphbiAzMAorIiBMYXN0IENoYW5nZToJMjAwNSBGZWIgMDMKIAogIiBOb3RlIHRoYXQgIjphbiIgKHNob3J0IGZvciAiOmFub3JlbWVudSIpIGlzIG9mdGVuIHVzZWQgdG8gbWFrZSBhIG1lbnUgd29yawogIiBpbiBhbGwgbW9kZXMgYW5kIGF2b2lkIHNpZGUgZWZmZWN0cyBmcm9tIG1hcHBpbmdzIGRlZmluZWQgYnkgdGhlIHVzZXIuCkBAIC0xMzYsNyArMTM2LDcgQEAKICIgdGhlIHJpZ2h0IHBvc2l0aW9uLCBhbHNvIGZvciAiZ2kiLgogIiBOb3RlOiB0aGUgc2FtZSBzdHVmZiBhcHBlYXJzIGluIG1zd2luLnZpbS4KIGlmIGhhcygidmlydHVhbGVkaXQiKQotICBubm9yZW1hcCA8c2lsZW50PiA8c2NyaXB0PiA8U0lEPlBhc3RlIDpjYWxsIDxTSUQ+UGFzdGUoKTxDUj4KKyAgbGV0IHM6cGFzdGVfY21kID0gIjpjYWxsIDxTSUQ+UGFzdGUoKTxDUj4iCiAgIGZ1bmMhIDxTSUQ+UGFzdGUoKQogICAgIGxldCBvdmUgPSAmdmUKICAgICBzZXQgdmU9YWxsCkBAIC0xNTIsMTYgKzE1MiwxNyBAQAogICAgIGxldCAmdmUgPSBvdmUKICAgZW5kZnVuYwogZWxzZQotICBubm9yZW1hcCA8c2lsZW50PiA8c2NyaXB0PiA8U0lEPlBhc3RlICI9QCsuJ3h5JzxDUj5nUEZ4Il8yeAorICBsZXQgczpwYXN0ZV9jbWQgPSAiXCI9QCsuJ3h5JzxDUj5nUEZ4XCJfMngiCiBlbmRpZgogCi0iIFVzZSBtYXBzIGZvciBpdGVtcyB0aGF0IGFyZSBwcmVzZW50IGJvdGggaW4gRWRpdCwgUG9wdXAgYW5kIFRvb2xiYXIgbWVudS4KKyIgRGVmaW5lIHRoZSBzdHJpbmcgdG8gdXNlIGZvciBpdGVtcyB0aGF0IGFyZSBwcmVzZW50IGJvdGggaW4gRWRpdCwgUG9wdXAgYW5kCisiIFRvb2xiYXIgbWVudS4KIGlmIGhhcygidmlydHVhbGVkaXQiKQotICB2bm9yZW1hcCA8c2NyaXB0PiA8U0lEPnZQYXN0ZQkiLWM8RXNjPjxTSUQ+UGFzdGUKLSAgaW5vcmVtYXAgPHNjcmlwdD4gPFNJRD5pUGFzdGUJPEVzYz48U0lEPlBhc3RlZ2kKKyAgbGV0IHM6cGFzdGVfdl9jbWQgPSAnIi1jPEVzYz4nIC4gczpwYXN0ZV9jbWQKKyAgbGV0IHM6cGFzdGVfaV9jbWQgPSAnPEVzYz4nIC4gczpwYXN0ZV9jbWQgLiAnZ2knCiBlbHNlCi0gIHZub3JlbWFwIDxzY3JpcHQ+IDxTSUQ+dlBhc3RlCSItYzxFc2M+Z2l4PEVzYz48U0lEPlBhc3RlIl94Ci0gIGlub3JlbWFwIDxzY3JpcHQ+IDxTSUQ+aVBhc3RlCXg8RXNjPjxTSUQ+UGFzdGUiX3MKKyAgbGV0IHM6cGFzdGVfdl9jbWQgPSAnIi1jPEVzYz5naXg8RXNjPicgLiBzOnBhc3RlX2NtZCAuICciX3gnCisgIGxldCBzOnBhc3RlX2lfY21kID0gJ3g8RXNjPicgLiBzOnBhc3RlX2NtZCAuICciX3MnCiBlbmRpZgogCiBmdW5jISA8U0lEPlNlbGVjdEFsbCgpCkBAIC0xODAsOCArMTgxLDggQEAKIGNub3JlbWVudSAyMC4zNTAgJkVkaXQuJkNvcHk8VGFiPiIreQkJPEMtWT4KIG5ub3JlbWVudSAyMC4zNjAgJkVkaXQuJlBhc3RlPFRhYj4iK2dQCQkiK2dQCiBjbm9yZW1lbnUJICZFZGl0LiZQYXN0ZTxUYWI+IitnUAkJPEMtUj4rCi12bm9yZW1lbnUgPHNjcmlwdD4gJkVkaXQuJlBhc3RlPFRhYj4iK2dQCTxTSUQ+dlBhc3RlCi1pbm9yZW1lbnUgPHNjcmlwdD4gJkVkaXQuJlBhc3RlPFRhYj4iK2dQCTxTSUQ+aVBhc3RlCitleGUgJ3Zub3JlbWVudSA8c2NyaXB0PiAmRWRpdC4mUGFzdGU8VGFiPiIrZ1AJJyAuIHM6cGFzdGVfdl9jbWQKK2V4ZSAnaW5vcmVtZW51IDxzY3JpcHQ+ICZFZGl0LiZQYXN0ZTxUYWI+IitnUAknIC4gczpwYXN0ZV9pX2NtZAogbm5vcmVtZW51IDIwLjM3MCAmRWRpdC5QdXRcICZCZWZvcmU8VGFiPltwCVtwCiBpbm9yZW1lbnUJICZFZGl0LlB1dFwgJkJlZm9yZTxUYWI+W3AJPEMtTz5bcAogbm5vcmVtZW51IDIwLjM4MCAmRWRpdC5QdXRcICZBZnRlcjxUYWI+XXAJXXAKQEAgLTc4MSw4ICs3ODIsOCBAQAogY25vcmVtZW51IDEuMzAgUG9wVXAuJkNvcHkJCTxDLVk+CiBubm9yZW1lbnUgMS40MCBQb3BVcC4mUGFzdGUJCSIrZ1AKIGNub3JlbWVudSAxLjQwIFBvcFVwLiZQYXN0ZQkJPEMtUj4rCi12bm9yZW1lbnUgPHNjcmlwdD4gMS40MCBQb3BVcC4mUGFzdGUJPFNJRD52UGFzdGUKLWlub3JlbWVudSA8c2NyaXB0PiAxLjQwIFBvcFVwLiZQYXN0ZQk8U0lEPmlQYXN0ZQorZXhlICd2bm9yZW1lbnUgPHNjcmlwdD4gMS40MCBQb3BVcC4mUGFzdGUJJyAuIHM6cGFzdGVfdl9jbWQKK2V4ZSAnaW5vcmVtZW51IDxzY3JpcHQ+IDEuNDAgUG9wVXAuJlBhc3RlCScgLiBzOnBhc3RlX2lfY21kCiB2bm9yZW1lbnUgMS41MCBQb3BVcC4mRGVsZXRlCQl4CiBhbiAxLjU1IFBvcFVwLi1TRVAyLQkJCTxOb3A+CiB2bm9yZW1lbnUgMS42MCBQb3BVcC5TZWxlY3RcIEJsb2Nrd2lzZQk8Qy1WPgpAQCAtODQ4LDggKzg0OSw4IEBACiAgIGNub3JlbWVudSAxLjgwIFRvb2xCYXIuQ29weQkJPEMtWT4KICAgbm5vcmVtZW51IDEuOTAgVG9vbEJhci5QYXN0ZQkJIitnUAogICBjbm9yZW1lbnUJIFRvb2xCYXIuUGFzdGUJCTxDLVI+KwotICB2bm9yZW1lbnUgPHNjcmlwdD4JIFRvb2xCYXIuUGFzdGUJPFNJRD52UGFzdGUKLSAgaW5vcmVtZW51IDxzY3JpcHQ+CSBUb29sQmFyLlBhc3RlCTxTSUQ+aVBhc3RlCisgIGV4ZSAndm5vcmVtZW51IDxzY3JpcHQ+CSBUb29sQmFyLlBhc3RlCScgLiBzOnBhc3RlX3ZfY21kCisgIGV4ZSAnaW5vcmVtZW51IDxzY3JpcHQ+CSBUb29sQmFyLlBhc3RlCScgLiBzOnBhc3RlX2lfY21kCiAKICAgaWYgIWhhcygiZ3VpX2F0aGVuYSIpCiAgICAgYW4gMS45NSAgIFRvb2xCYXIuLXNlcDMtCQk8Tm9wPgpAQCAtOTk2LDYgKzk5Nyw4IEBACiAKIGVuZGlmICIgIWV4aXN0cygiZGlkX2luc3RhbGxfc3ludGF4X21lbnUiKQogCit1bmxldCEgczpwYXN0ZV9pX2NtZCBzOnBhc3RlX3ZfY21kIHM6cGFzdGVfY21kCisKICIgUmVzdG9yZSB0aGUgcHJldmlvdXMgdmFsdWUgb2YgJ2Nwb3B0aW9ucycuCiBsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKIHVubGV0IHM6Y3BvX3NhdmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdG9vbHMvdmltc3BlbGwuc2ggYi9ydW50aW1lL3Rvb2xzL3ZpbXNwZWxsLnNoCmluZGV4IDQyMDcyMjIuLmI0MDViN2EgMTAwNzU1Ci0tLSBhL3J1bnRpbWUvdG9vbHMvdmltc3BlbGwuc2gKKysrIGIvcnVudGltZS90b29scy92aW1zcGVsbC5zaApAQCAtMTEsMTEgKzExLDI0IEBACiAjCiAjIE5laWwgU2NoZW1lbmF1ZXIgPG5hc2NoZW1lQHVjYWxnYXJ5LmNhPgogIyBNYXJjaCAxOTk5CisjCisjIFNhZmUgbWV0aG9kIGZvciB0aGUgdGVtcCBmaWxlIGJ5IEphdmllciBGZXJu4W5kZXotU2FuZ3Vpbm9fUGXxYQogCiBJTkZJTEU9JDEKLU9VVEZJTEU9L3RtcC92aW1zcGVsbC4kJAotIyBpZiB5b3UgaGF2ZSAidGVtcGZpbGUiLCB1c2UgdGhlIGZvbGxvd2luZyBsaW5lCi0jT1VURklMRT1gdGVtcGZpbGVgCit0bXA9IiR7VE1QRElSLS90bXB9IgorT1VURklMRT1gbWt0ZW1wIC10IHZpbXNwZWxsWFhYWFhYIHx8IHRlbXBmaWxlIC1wIHZpbXNwZWxsIHx8IGVjaG8gbm9uZWAKKyMgSWYgdGhlIHN0YW5kYXJkIGNvbW1hbmRzIGZhaWxlZCB0aGVuIGNyZWF0ZSB0aGUgZmlsZQorIyBzaW5jZSB3ZSBjYW5ub3QgY3JlYXRlIGEgZGlyZWN0b3J5ICh3ZSBjYW5ub3QgcmVtb3ZlIGl0IG9uIGV4aXQpCisjIGNyZWF0ZSBhIGZpbGUgaW4gdGhlIHNhZmVzdCB3YXkgcG9zc2libGUuCitpZiB0ZXN0ICIkT1VURklMRSIgPSBub25lOyB0aGVuCisgICAgICAgIE9VVEZJTEU9JHRtcC92aW1zcGVsbCQkCisJWyAtZSAkT1VURklMRSBdICYmIHsgZWNobyAiQ2Fubm90IHVzZSB0ZW1wb3JhcnkgZmlsZSAkT1VURklMRSwgaXQgYWxyZWFkeSBleGlzdHMhOyBleGl0IDEgOyB9IAorICAgICAgICAodW1hc2sgMDc3OyB0b3VjaCAkT1VURklMRSkKK2ZpCisjIE5vdGUgdGhlIGNvcHkgb2Ygdmltc3BlbGwgY2Fubm90IGJlIGRlbGV0ZWQgb24gZXhpdCBzaW5jZSBpdCBpcworIyB1c2VkIGJ5IHZpbSwgb3RoZXJ3aXNlIGl0IHNob3VsZCBkbyB0aGlzOgorIyB0cmFwICJybSAtZiAkT1VURklMRSIgMCAxIDIgMyA5IDExIDEzIDE1CisKIAogIwogIyBsb2NhbCBzcGVsbGluZ3MK