ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggZGM3NDhhYi4uMWYxMGE4NiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWF5IDMxCisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVuIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMwLDEwICszMCwyMiBAQAogCQkJCQkJCSprbm93bi1idWdzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS25vd24gYnVncyBhbmQgY3VycmVudCB3b3JrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSI6cXRhZyIgY29tbWFuZDogbWFrZSBsaXN0IG9mIG1hdGNoaW5nIHRhZ3MgYW5kIHVzZSBsaWtlIHF1aWNrZml4IGxpc3QuCi1UaGlzIGNoYW5nZXMgdGhlIHN0YWNrIG9mIHF1aWNrZml4IGxpc3RzLiAgTWFrZSBhbm90aGVyIGxpc3QgYW5kIHVzZSAiOnFuZXh0IiwKLSI6cXByZXYiLCBldGMuPyAgRG8gYWxsb3cgb3RoZXIgY29tbWFuZHMgZm9yIHF1aWNrZml4IGxpc3QsIHN1Y2ggYXMgcXVpY2tmaXgKLXdpbmRvdy4KK0FkZCBleHRyYSBsaXN0IG9mIGZpbGUgbG9jYXRpb25zLiAgQ2FuIGJlIHVzZWQgd2l0aDoKKyAgICA6bHRhZwkgICAgICBsaXN0IG9mIG1hdGNoaW5nIHRhZ3MsIGxpa2UgOnRzZWxlY3QKKworICAgIDpsbmV4dAkgICAgICBuZXh0IGxvY2F0aW9uCisgICAgOmxwcmV2aW91cyA6bE5leHQgcHJldmlvdXMgbG9jYXRpb24KKyAgICA6bG5maWxlCSAgICAgIGxvY2F0aW9uIGluIG5leHQgZmlsZQorICAgIDpsTmZpbGUgOmxwZmlsZSAgIGxvY2F0aW9uIGluIHByZXZpb3VzIGZpbGUKKyAgICA6bHJld2luZCA6bGZpcnN0ICBmaXJzdCBsb2NhdGlvbgorICAgIDpsbGFzdAkgICAgICBsYXN0IGxvY2F0aW9uCisgICAgOmxxIFtOXQkgICAgICBnbyB0byBsb2NhdGlvbiBOIChjdXJyZW50IG9uZSBpZiBOIG9taXR0ZWQpCisgICAgOmx3aW5kb3cJICAgICAgb3BlbiB3aW5kb3cgd2l0aCBsb2NhdGlvbnMgKHNlcGFyYXRlIGZyb20gcXVpY2tmaXggd2luZG93KQorICAgIDpsb3BlbgkgICAgICBvcGVuIHdpbmRvdyB3aXRoIGxvY2F0aW9ucworICAgIDpsY2xvc2UJICAgICAgY2xvc2Ugd2luZG93IHdpdGggbG9jYXRpb25zCisgICAgOmxsaXN0CSAgICAgIGxpc3QgbG9jYXRpb25zCisgICAgOmxmaWxlCSAgICAgIHJlYWQgbG9jYXRpb25zIGZyb20gZmlsZSB1c2luZyAnZXJyb3Jmb3JtYXQnCisgICAgOmxnZXRmaWxlCSAgICAgIGlkZW0sIGRvbid0IGp1bXAgdG8gZmlyc3Qgb25lCiAKIFdpbjMyOiBCYWxsb29uIHRleHQgY2FuJ3QgY29udGFpbiBsaW5lIGJyZWFrLgogICAgIEhpbnRzIGZvciBtdWx0aWxpbmUgdG9vbHRpcHMgZnJvbSBBbGV4ZWkgQWxleGFuZHJvdiAoMjAwNSBNYXIgMjYpCkBAIC01MSw2ICs2Myw5IEBACiBQcm9ibGVtIG5vdGljZWQ6IHRvb2x0aXBzIGFyZSBtZXNzZWQgdXAuICBEZXBlbmRzIG9uIHRoZSBtb21lbnQgJ2VuY29kaW5nJyBpcwogY2hhbmdlZC4KIAorSW5jbHVkZSBuZXcgUEhQIGluZGVudCBzY3JpcHQgZnJvbSBKb2huIFdlbGxlc3o/CisgICAgaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvZG93bmxvYWRfc2NyaXB0LnBocD9zcmNfaWQ9NDMzMAorCiBhdXRvbG9hZDoKIC0gQWRkIGEgVmltIHNjcmlwdCBpbiAkVklNUlVOVElNRS90b29scyB0aGF0IHRha2VzIGEgZmlsZSB3aXRoIGEgbGlzdCBvZgogICBzY3JpcHQgbmFtZXMgYW5kIGEgaGVscCBmaWxlIGFuZCBwcm9kdWNlcyBhIHNjcmlwdCB0aGF0IGNhbiBiZSBzb3VyY2VkIHRvCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dCBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CmluZGV4IGNkYjliZDkuLjAyZmZhNjMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CkBAIC0zOTksMTUgKzM5OSwyMCBAQAogOnJlZGlbcl0gPj4ge2ZpbGV9CVJlZGlyZWN0IG1lc3NhZ2VzIHRvIGZpbGUge2ZpbGV9LiAgQXBwZW5kIGlmIHtmaWxlfQogCQkJYWxyZWFkeSBleGlzdHMuICB7bm90IGluIFZpfQogCi06cmVkaVtyXSBAe2EtekEtWn0JUmVkaXJlY3QgbWVzc2FnZXMgdG8gcmVnaXN0ZXIge2Eten0uICBBcHBlbmQgdG8gdGhlCis6cmVkaVtyXSBAe2EtekEtWn0+CVJlZGlyZWN0IG1lc3NhZ2VzIHRvIHJlZ2lzdGVyIHthLXp9LiAgQXBwZW5kIHRvIHRoZQogCQkJY29udGVudHMgb2YgdGhlIHJlZ2lzdGVyIGlmIGl0cyBuYW1lIGlzIGdpdmVuCi0JCQl1cHBlcmNhc2Uge0EtWn0uICB7bm90IGluIFZpfQorCQkJdXBwZXJjYXNlIHtBLVp9LiAgRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSAiPiIKKwkJCWFmdGVyIHRoZSByZWdpc3RlciBuYW1lIGNhbiBiZSBvbWl0dGVkLiB7bm90IGluIFZpfQogOnJlZGlbcl0gQHthLXp9Pj4JQXBwZW5kIG1lc3NhZ2VzIHRvIHJlZ2lzdGVyIHthLXp9LiB7bm90IGluIFZpfQogCi06cmVkaVtyXSBAKgkJUmVkaXJlY3QgbWVzc2FnZXMgdG8gdGhlIGNsaXBib2FyZC4ge25vdCBpbiBWaX0KKzpyZWRpW3JdIEAqPgkJUmVkaXJlY3QgbWVzc2FnZXMgdG8gdGhlIGNsaXBib2FyZC4gRm9yIGJhY2t3YXJkCisJCQljb21wYXRpYmlsaXR5LCB0aGUgIj4iIGFmdGVyIHRoZSByZWdpc3RlciBuYW1lIGNhbiBiZQorCQkJb21pdHRlZC4ge25vdCBpbiBWaX0KIDpyZWRpW3JdIEAqPj4JCUFwcGVuZCBtZXNzYWdlcyB0byB0aGUgY2xpcGJvYXJkLiB7bm90IGluIFZpfQogCi06cmVkaVtyXSBAIgkJUmVkaXJlY3QgbWVzc2FnZXMgdG8gdGhlIHVubmFtZWQgcmVnaXN0ZXIuIHtub3QgaW4gVml9Cis6cmVkaVtyXSBAIj4JCVJlZGlyZWN0IG1lc3NhZ2VzIHRvIHRoZSB1bm5hbWVkIHJlZ2lzdGVyLiBGb3IKKwkJCWJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSAiPiIgYWZ0ZXIgdGhlIHJlZ2lzdGVyCisJCQluYW1lIGNhbiBiZSBvbWl0dGVkLiB7bm90IGluIFZpfQogOnJlZGlbcl0gQCI+PgkJQXBwZW5kIG1lc3NhZ2VzIHRvIHRoZSB1bm5hbWVkIHJlZ2lzdGVyLiB7bm90IGluIFZpfQogCiA6cmVkaVtyXSA9PiB7dmFyfQlSZWRpcmVjdCBtZXNzYWdlcyB0byBhIHZhcmlhYmxlLiAgSWYgdGhlIHZhcmlhYmxlCmRpZmYgLS1naXQgYS9zcmMvZGlncmFwaC5jIGIvc3JjL2RpZ3JhcGguYwppbmRleCAwNmIyMjdhLi45M2E4MGE4IDEwMDY0NAotLS0gYS9zcmMvZGlncmFwaC5jCisrKyBiL3NyYy9kaWdyYXBoLmMKQEAgLTM4LDExICszOCwxMSBAQAogICogTm90ZTogQ2hhcmFjdGVycyBtYXJrZWQgd2l0aCBYWCBhcmUgbm90IGluY2x1ZGVkIGxpdGVyYWxseSwgYmVjYXVzZSBzb21lCiAgKiBjb21waWxlcnMgY2Fubm90IGhhbmRsZSB0aGVtIChBbWlnYSBTQVMvQyBpcyB0aGUgbW9zdCBwaWNreSBvbmUpLgogICovCitzdGF0aWMgZGlncl9UIGRpZ3JhcGhkZWZhdWx0W10gPQogI2lmIGRlZmluZWQoTVNET1MpIHx8IGRlZmluZWQoT1MyKQogCS8qCiAJICogTVNET1MgZGlncmFwaHMuCiAJICovCi1kaWdyX1QJZGlncmFwaGRlZmF1bHRbXSA9CiAgICAgICAge3snQycsICcsJywgMTI4fSwJLyogfkAgWFggKi8KIAl7J3UnLCAnIicsIDEyOX0sCS8qIIEgKi8KIAl7J2UnLCAnXCcnLCAxMzB9LAkvKiCCICovCkBAIC0xMTEsNyArMTExLDYgQEAKIAkvKgogCSAqIEFUQVJJIGRpZ3JhcGhzCiAJICovCi1kaWdyX1QJZGlncmFwaGRlZmF1bHRbXSA9CiAgICAgICAge3snQycsICcsJywgMTI4fSwJLyogfkAgWFggKi8KIAl7J3UnLCAnIicsIDEyOX0sCS8qIIEgKi8KIAl7J2UnLCAnXCcnLCAxMzB9LAkvKiCCICovCkBAIC0xNzgsNyArMTc3LDYgQEAKIAkvKgogCSAqIGRpZmZlcmVudCBIUFVYIGRpZ3JhcGhzCiAJICovCi1kaWdyX1QJZGlncmFwaGRlZmF1bHRbXSA9CiAgICAgICAge3snQScsICdgJywgMTYxfSwJLyogoSAqLwogCXsnQScsICdeJywgMTYyfSwJLyogoiAqLwogCXsnRScsICdgJywgMTYzfSwJLyogoyAqLwpAQCAtMjg1LDcgKzI4Myw2IEBACiAJICogRUJDRElDIC0gSVNPIGRpZ3JhcGhzCiAJICogVE9ETzogRUJDRElDIFRhYmxlIGlzIENvZGUtUGFnZSAxMDQ3CiAJICovCi1kaWdyX1QJZGlncmFwaGRlZmF1bHRbXSA9CiAgICAgICAge3snYScsICdeJywgICAgNjZ9LAkvKiDiICovCiAJeydhJywgJyInLCAgICA2N30sCS8qIOQgKi8KIAl7J2EnLCAnYCcsICAgIDY4fSwJLyog4CAqLwpAQCAtMzk1LDcgKzM5Miw2IEBACiAJLyoKIAkgKiBNYWNpbnRvc2ggZGlncmFwaHMKIAkgKi8KLWRpZ3JfVAlkaWdyYXBoZGVmYXVsdFtdID0KICAgICAgICB7eydhJywgJ3QnLCA2NH0sCQkvKiBAICovCiAJeydBJywgJyInLCAxMjh9LAkvKiB+QCBYWCAqLwogCXsnQScsICdvJywgMTI5fSwJLyogxSAqLwpAQCAtNTI2LDcgKzUyMiw2IEBACiAJLyoKIAkgKiBkaWdyYXBocyBjb21wYXRpYmxlIHdpdGggVmltIDUueAogCSAqLwotZGlncl9UCWRpZ3JhcGhkZWZhdWx0W10gPQogICAgICAgIHt7J34nLCAnIScsIDE2MX0sCS8qIKEgKi8KIAl7J2MnLCAnfCcsIDE2Mn0sCS8qIKIgKi8KIAl7JyQnLCAnJCcsIDE2M30sCS8qIKMgKi8KQEAgLTYzNSw3ICs2MzAsNiBAQAogCSAqIGRpZ3JhcGhzIGZvciBVbmljb2RlIGZyb20gUkZDMTM0NQogCSAqIChhbHNvIHdvcmsgZm9yIElTTy04ODU5LTEgYWthIGxhdGluMSkKIAkgKi8KLWRpZ3JfVAlkaWdyYXBoZGVmYXVsdFtdID0KICAgICAgICB7CiAJeydOJywgJ1UnLCAweDBhfSwJLyogTEYgZm9yIE5VTCAqLwogCXsnUycsICdIJywgMHgwMX0sCmRpZmYgLS1naXQgYS9zcmMvZWRpdC5jIGIvc3JjL2VkaXQuYwppbmRleCBiY2UwZDgzLi5mNDY4MmMwIDEwMDY0NAotLS0gYS9zcmMvZWRpdC5jCisrKyBiL3NyYy9lZGl0LmMKQEAgLTE5OCwxMCArMTk4LDEwIEBACiBzdGF0aWMgaW50CW9sZF9pbmRlbnQgPSAwOwkJLyogZm9yIF5eRCBjb21tYW5kIGluIGluc2VydCBtb2RlICovCiAKICNpZmRlZiBGRUFUX1JJR0hUTEVGVAotaW50CQlyZXZpbnNfb247CQkvKiByZXZlcnNlIGluc2VydCBtb2RlIG9uICovCi1pbnQJCXJldmluc19jaGFyczsJCS8qIGhvdyBtdWNoIHRvIHNraXAgYWZ0ZXIgZWRpdCAqLwotaW50CQlyZXZpbnNfbGVnYWw7CQkvKiB3YXMgdGhlIGxhc3QgY2hhciAnbGVnYWwnPyAqLwotaW50CQlyZXZpbnNfc2NvbDsJCS8qIHN0YXJ0IGNvbHVtbiBvZiByZXZpbnMgc2Vzc2lvbiAqLworc3RhdGljIGludAlyZXZpbnNfb247CQkvKiByZXZlcnNlIGluc2VydCBtb2RlIG9uICovCitzdGF0aWMgaW50CXJldmluc19jaGFyczsJCS8qIGhvdyBtdWNoIHRvIHNraXAgYWZ0ZXIgZWRpdCAqLworc3RhdGljIGludAlyZXZpbnNfbGVnYWw7CQkvKiB3YXMgdGhlIGxhc3QgY2hhciAnbGVnYWwnPyAqLworc3RhdGljIGludAlyZXZpbnNfc2NvbDsJCS8qIHN0YXJ0IGNvbHVtbiBvZiByZXZpbnMgc2Vzc2lvbiAqLwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEZFQVRfTUJZVEUpICYmIGRlZmluZWQoTUFDT1NfQ0xBU1NJQykKQEAgLTU0MzIsOSArNTQzMiw5IEBACiAgKiBjaGFyYWN0ZXJzIHdpbGwgYmUgbGVmdCBvbiB0aGUgc3RhY2sgYWJvdmUgdGhlIG5ld2x5IGluc2VydGVkIGNoYXJhY3Rlci4KICAqLwogCi1jaGFyX3UJKnJlcGxhY2Vfc3RhY2sgPSBOVUxMOwotbG9uZwlyZXBsYWNlX3N0YWNrX25yID0gMDsJICAgIC8qIG5leHQgZW50cnkgaW4gcmVwbGFjZSBzdGFjayAqLwotbG9uZwlyZXBsYWNlX3N0YWNrX2xlbiA9IDA7CSAgICAvKiBtYXguIG51bWJlciBvZiBlbnRyaWVzICovCitzdGF0aWMgY2hhcl91CSpyZXBsYWNlX3N0YWNrID0gTlVMTDsKK3N0YXRpYyBsb25nCXJlcGxhY2Vfc3RhY2tfbnIgPSAwOwkgICAgLyogbmV4dCBlbnRyeSBpbiByZXBsYWNlIHN0YWNrICovCitzdGF0aWMgbG9uZwlyZXBsYWNlX3N0YWNrX2xlbiA9IDA7CSAgICAvKiBtYXguIG51bWJlciBvZiBlbnRyaWVzICovCiAKICAgICB2b2lkCiByZXBsYWNlX3B1c2goYykKZGlmZiAtLWdpdCBhL3NyYy9zeW50YXguYyBiL3NyYy9zeW50YXguYwppbmRleCA1OTViZWZjLi5mYzI3MTBhIDEwMDY0NAotLS0gYS9zcmMvc3ludGF4LmMKKysrIGIvc3JjL3N5bnRheC5jCkBAIC03NDMyLDE2ICs3NDMyLDE2IEBACiAgKiBOb3RlIHRoYXQgdGhpcyB0YWJsZSBpcyB1c2VkIGJ5IEFMTCBidWZmZXJzLiAgVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZQogICogR1VJIGNhbiByZWRyYXcgYXQgYW55IHRpbWUgZm9yIGFueSBidWZmZXIuCiAgKi8KLWdhcnJheV9UCXRlcm1fYXR0cl90YWJsZSA9IHswLCAwLCAwLCAwLCBOVUxMfTsKK3N0YXRpYyBnYXJyYXlfVAl0ZXJtX2F0dHJfdGFibGUgPSB7MCwgMCwgMCwgMCwgTlVMTH07CiAKICNkZWZpbmUgVEVSTV9BVFRSX0VOVFJZKGlkeCkgKChhdHRyZW50cnlfVCAqKXRlcm1fYXR0cl90YWJsZS5nYV9kYXRhKVtpZHhdCiAKLWdhcnJheV9UCWN0ZXJtX2F0dHJfdGFibGUgPSB7MCwgMCwgMCwgMCwgTlVMTH07CitzdGF0aWMgZ2FycmF5X1QJY3Rlcm1fYXR0cl90YWJsZSA9IHswLCAwLCAwLCAwLCBOVUxMfTsKIAogI2RlZmluZSBDVEVSTV9BVFRSX0VOVFJZKGlkeCkgKChhdHRyZW50cnlfVCAqKWN0ZXJtX2F0dHJfdGFibGUuZ2FfZGF0YSlbaWR4XQogCiAjaWZkZWYgRkVBVF9HVUkKLWdhcnJheV9UCWd1aV9hdHRyX3RhYmxlID0gezAsIDAsIDAsIDAsIE5VTEx9Oworc3RhdGljIGdhcnJheV9UCWd1aV9hdHRyX3RhYmxlID0gezAsIDAsIDAsIDAsIE5VTEx9OwogCiAjZGVmaW5lIEdVSV9BVFRSX0VOVFJZKGlkeCkgKChhdHRyZW50cnlfVCAqKWd1aV9hdHRyX3RhYmxlLmdhX2RhdGEpW2lkeF0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlcm0uYyBiL3NyYy90ZXJtLmMKaW5kZXggMjAyMDNiNS4uOWZmMjkzOCAxMDA2NDQKLS0tIGEvc3JjL3Rlcm0uYworKysgYi9zcmMvdGVybS5jCkBAIC0xNDQsNyArMTQ0LDcgQEAKIAogc3RhdGljIGludCAgZGV0ZWN0ZWRfOGJpdCA9IEZBTFNFOwkvKiBkZXRlY3RlZCA4LWJpdCB0ZXJtaW5hbCAqLwogCi1zdHJ1Y3QgYnVpbHRpbl90ZXJtIGJ1aWx0aW5fdGVybWNhcHNbXSA9CitzdGF0aWMgc3RydWN0IGJ1aWx0aW5fdGVybSBidWlsdGluX3Rlcm1jYXBzW10gPQogewogCiAjaWYgZGVmaW5lZChGRUFUX0dVSSkKQEAgLTI0MTgsOSArMjQxOCw5IEBACiAgKiBtaW5pbWFsIHRnb3RvKCkgaW1wbGVtZW50YXRpb24uCiAgKiBubyBwYWRkaW5nIGFuZCB3ZSBvbmx5IHBhcnNlIGZvciAlaSAlZCBhbmQgJStjaGFyCiAgKi8KLWNoYXIgKnRnb3RvIF9fQVJHUygoY2hhciAqLCBpbnQsIGludCkpOworc3RhdGljIGNoYXIgKnRnb3RvIF9fQVJHUygoY2hhciAqLCBpbnQsIGludCkpOwogCi0gICAgY2hhciAqCisgICAgc3RhdGljIGNoYXIgKgogdGdvdG8oY20sIHgsIHkpCiAgICAgY2hhciAqY207CiAgICAgaW50IHgsIHk7CkBAIC0zNDkxLDcgKzM0OTEsNyBAQAogICogTGlzdCBvZiB0ZXJtaW5hbCBjb2RlcyB0aGF0IGFyZSBjdXJyZW50bHkgcmVjb2duaXplZC4KICAqLwogCi1zdHJ1Y3QgdGVybWNvZGUKK3N0YXRpYyBzdHJ1Y3QgdGVybWNvZGUKIHsKICAgICBjaGFyX3UgIG5hbWVbMl07CSAgICAvKiB0ZXJtY2FwIG5hbWUgb2YgZW50cnkgKi8KICAgICBjaGFyX3UgICpjb2RlOwkgICAgLyogdGVybWluYWwgY29kZSAoaW4gYWxsb2NhdGVkIG1lbW9yeSkgKi8K