ZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQppbmRleCA1ODUzNDliLi44NTcyNTUxIDEwMDY0NAotLS0gYS9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL01ha2VmaWxlCkBAIC0xNzE5LDYgKzE3MTksOSBAQAogCS1pZiB0ZXN0IC1uICIkKE1BS0VNTykiIC1hIC1mICQoUE9ESVIpL01ha2VmaWxlOyB0aGVuIFwKIAkJY2QgJChQT0RJUik7ICQoTUFLRSkgLWYgTWFrZWZpbGUgY2hlY2sgVklNPS4uLyQoVklNVEFSR0VUKTsgXAogCWZpCisJLWlmIHRlc3QgJChWSU1UQVJHRVQpICE9IHZpbSAtYSAhIC1lIHZpbTsgdGhlbiBcCisJCWxuIC1zICQoVklNVEFSR0VUKSB2aW07IFwKKwlmaQogCWNkIHRlc3RkaXI7ICQoTUFLRSkgLWYgTWFrZWZpbGUgJChHVUlfVEVTVFRBUkdFVCkgVklNUFJPRz0uLi8kKFZJTVRBUkdFVCkgJChHVUlfVEVTVEFSRykKIAogdGVzdGNsZWFuOgpAQCAtMjE0OCw3ICsyMTUxLDcgQEAKICMgQ2xlYW4gdXAgYWxsIHRoZSBmaWxlcyB0aGF0IGhhdmUgYmVlbiBwcm9kdWNlZCwgZXhjZXB0IGNvbmZpZ3VyZSdzLgogIyBXZSBzdXBwb3J0IGNvbW1vbiB0eXBpbmcgbWlzdGFrZXMgZm9yIEp1ZXJnZW4hIDotKQogY2xlYW4gY2VsYW46IHRlc3RjbGVhbgotCS1ybSAtZiAqLm8gb2JqZWN0cy8qIGNvcmUgJChWSU1UQVJHRVQpLmNvcmUgJChWSU1UQVJHRVQpIHh4ZC8qLm8KKwktcm0gLWYgKi5vIG9iamVjdHMvKiBjb3JlICQoVklNVEFSR0VUKS5jb3JlICQoVklNVEFSR0VUKSB2aW0geHhkLyoubwogCS1ybSAtZiAkKFRPT0xTKSBhdXRvL29zZGVmLmggYXV0by9wYXRoZGVmLmMgYXV0by9pZl9wZXJsLmMKIAktcm0gLWYgY29uZnRlc3QqICp+IGF1dG8vbGluay5zZWQKIAktcm0gLXJmICQoQVBQRElSKQpkaWZmIC0tZ2l0IGEvc3JjL2V4X2dldGxuLmMgYi9zcmMvZXhfZ2V0bG4uYwppbmRleCBjZTQ4YjY3Li4zNzZjYmNjIDEwMDY0NAotLS0gYS9zcmMvZXhfZ2V0bG4uYworKysgYi9zcmMvZXhfZ2V0bG4uYwpAQCAtMjg0MSw2ICsyODQxLDM4IEBACiAgICAgcHJldl9jY2xpbmUgPSAqY2NwOwogfQogCisjaWYgZGVmaW5lZChGRUFUX0VWQUwpIHx8IGRlZmluZWQoUFJPVE8pCisvKgorICogU2F2ZSB0aGUgY29tbWFuZCBsaW5lIGludG8gYWxsb2NhdGVkIG1lbW9yeS4gIFJldHVybnMgYSBwb2ludGVyIHRvIGJlCisgKiBwYXNzZWQgdG8gcmVzdG9yZV9jbWRsaW5lX2FsbG9jKCkgbGF0ZXIuCisgKiBSZXR1cm5zIE5VTEwgd2hlbiBmYWlsZWQuCisgKi8KKyAgICBjaGFyX3UgKgorc2F2ZV9jbWRsaW5lX2FsbG9jKCkKK3sKKyAgICBzdHJ1Y3QgY21kbGluZV9pbmZvICpwOworCisgICAgcCA9IChzdHJ1Y3QgY21kbGluZV9pbmZvICopYWxsb2MoKHVuc2lnbmVkKXNpemVvZihzdHJ1Y3QgY21kbGluZV9pbmZvKSk7CisgICAgaWYgKHAgIT0gTlVMTCkKKwlzYXZlX2NtZGxpbmUocCk7CisgICAgcmV0dXJuIChjaGFyX3UgKilwOworfQorCisvKgorICogUmVzdG9yZSB0aGUgY29tbWFuZCBsaW5lIGZyb20gdGhlIHJldHVybiB2YWx1ZSBvZiBzYXZlX2NtZGxpbmVfYWxsb2MoKS4KKyAqLworICAgIHZvaWQKK3Jlc3RvcmVfY21kbGluZV9hbGxvYyhwKQorICAgIGNoYXJfdSAgKnA7Cit7CisgICAgaWYgKHAgIT0gTlVMTCkKKyAgICB7CisJcmVzdG9yZV9jbWRsaW5lKChzdHJ1Y3QgY21kbGluZV9pbmZvICopcCk7CisJdmltX2ZyZWUocCk7CisgICAgfQorfQorI2VuZGlmCisKIC8qCiAgKiBwYXN0ZSBhIHlhbmsgcmVnaXN0ZXIgaW50byB0aGUgY29tbWFuZCBsaW5lLgogICogdXNlZCBieSBDVFJMLVIgY29tbWFuZCBpbiBjb21tYW5kLWxpbmUgbW9kZQpkaWZmIC0tZ2l0IGEvc3JjL3BvL3BsLmNwMTI1MC5wbyBiL3NyYy9wby9wbC5jcDEyNTAucG8KaW5kZXggMDYzMWFjNC4uZTEwZTc0NSAxMDA2NDQKLS0tIGEvc3JjL3BvL3BsLmNwMTI1MC5wbworKysgYi9zcmMvcG8vcGwuY3AxMjUwLnBvCkBAIC05MTAsNyArOTEwLDcgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICIjIFZhbHVlIG9mICdlbmNvZGluZycgd2hlbiB0aGlzIGZpbGUgd2FzIHdyaXR0ZW5cbiIKLW1zZ3N0ciAiIyBXYXJ0b5zmICdlbmNvZGluZycgdyBjemFzaWUgemFwc3UgdGVnbyBwbGlrdVxuIgorbXNnc3RyICIjIFdhcnRvnOYgJ2VuY29kaW5nJyB3IGN6YXNpZSB6YXBpc3UgdGVnbyBwbGlrdVxuIgogCiBtc2dpZCAiSWxsZWdhbCBzdGFydGluZyBjaGFyIgogbXNnc3RyICJOaWVkb3B1c3pjemFsbnkgcG9jerl0a293eSB6bmFrIgpAQCAtMTQ4Myw3ICsxNDgzLDcgQEAKIAogIy4gUmUtb3BlbmluZyB0aGUgb3JpZ2luYWwgZmlsZSBmYWlsZWQhCiBtc2dpZCAiRTIwMjogQ29udmVyc2lvbiBtYWRlIGZpbGUgdW5yZWFkYWJsZSEiCi1tc2dzdHIgIkUyMDI6IFBsaWsgc3R3b3J6b255IHBvcHJ6ZXogcHJ6ZW1pYW7qIGplc3Qgbmllb2Rjenl0eXdhbG55ISIKK21zZ3N0ciAiRTIwMjogTmllIG1vv25hIG90d29yennmIHBsaWt1IHV0d29yem9uZWdvIHByemV6IHByemVtaWFu6iEiCiAKIG1zZ2lkICJbZmlmby9zb2NrZXRdIgogbXNnc3RyICJbZmlmby9zb2NrZXRdIgpAQCAtMTY0OCwxMyArMTY0OCwxMyBAQAogbXNnc3RyICJbbWFjXSIKIAogbXNnaWQgIlttYWMgZm9ybWF0XSIKLW1zZ3N0ciAiW2Zvcm1hdCBtYWMtYV0iCittc2dzdHIgIltmb3JtYXQgbWFjYV0iCiAKIG1zZ2lkICJbdW5peF0iCiBtc2dzdHIgIlt1bml4XSIKIAogbXNnaWQgIlt1bml4IGZvcm1hdF0iCi1tc2dzdHIgIltmb3JtYXQgdW5peC1hXSIKK21zZ3N0ciAiW2Zvcm1hdCB1bml4YV0iCiAKIG1zZ2lkICIxIGxpbmUsICIKIG1zZ3N0ciAiMSB3aWVyc3osICIKQEAgLTE5MjgsNyArMTkyOCw3IEBACiBtc2dzdHIgIklucHV0IF9NZXRob2RzIgogCiBtc2dpZCAiVklNIC0gU2VhcmNoIGFuZCBSZXBsYWNlLi4uIgotbXNnc3RyICJWSU0gLSBTenVrYWogaSBaYW1pZW5pYWouLi4iCittc2dzdHIgIlZJTSAtIFN6dWthaiBpIFphbWll8S4uLiIKIAogbXNnaWQgIlZJTSAtIFNlYXJjaC4uLiIKIG1zZ3N0ciAiVklNIC0gU3p1a2FqLi4uIgpAQCAtMTk2Nyw3ICsxOTY3LDcgQEAKIG1zZ3N0ciAiWmFtaWXxIHdzenlzdGtpZSIKIAogbXNnaWQgIlZpbTogUmVjZWl2ZWQgXCJkaWVcIiByZXF1ZXN0IGZyb20gc2Vzc2lvbiBtYW5hZ2VyXG4iCi1tc2dzdHIgIlZpbTogb3RyenltYW5vIL+5ZGFuaWUgXCJkaWVcIiBvZCBtYW5hZL9lcmEgc2VzamlcbiIKK21zZ3N0ciAiVmltOiBvdHJ6eW1hbm8gv7lkYW5pZSBcImRpZVwiIG9kIG1lbmVkv2VyYSBzZXNqaVxuIgogCiBtc2dpZCAiQ2xvc2UiCiBtc2dzdHIgIlphbWtuaWoiCkBAIC0yNDYzLDcgKzI0NjMsNyBAQAogbXNnc3RyICJ3cml0ZWxpbmVzKCkgd3ltYWdhIGxpc3R5IGNpuWfzdyIKIAogbXNnaWQgIkUyNjQ6IFB5dGhvbjogRXJyb3IgaW5pdGlhbGlzaW5nIEkvTyBvYmplY3RzIgotbXNnc3RyICJFMjY0OiBQeXRob246IEKzuWQgdyBpbmljamFsaXphY2ppIG9iaWVrdPN3IEkvTyIKK21zZ3N0ciAiRTI2NDogUHl0aG9uOiBCs7lkIHcgdXJ1Y2hvbWllbml1IG9iaWVrdPN3IEkvTyIKIAogbXNnaWQgImF0dGVtcHQgdG8gcmVmZXIgdG8gZGVsZXRlZCBidWZmZXIiCiBtc2dzdHIgInBy82JhIG9kbmllc2llbmlhIGRvIHNrYXNvd2FuZWdvIGJ1Zm9yYSIKQEAgLTI1NDIsNyArMjU0Miw3IEBACiBtc2dzdHIgIlBva2G/IGJheuoga2xhc3kiCiAKIG1zZ2lkICJTaG93IG92ZXJyaWRkZW4gbWVtYmVyIGZ1bmN0aW9uIgotbXNnc3RyICJQb2thvyBwcnplcGlzYW65IGZ1bmtjauogY3qzb25rb3e5IgorbXNnc3RyICJQb2thvyBwcnplcGlzYW65IGZ1bmtjauogY3qzb25vd7kiCiAKIG1zZ2lkICJSZXRyaWV2ZSBmcm9tIGZpbGUiCiBtc2dzdHIgIlBvYmllcmFqIHogcGxpa3UiCkBAIC0yNTg3LDcgKzI1ODcsNyBAQAogbXNnc3RyICJQb2thvyBkb2t1bWVudGFjauogZGxhIgogCiBtc2dpZCAiR2VuZXJhdGUgZG9jdSBmb3IiCi1tc2dzdHIgIld5Z2VuZXJ1aiBkb2t1bWVudGFjauogZGxhIgorbXNnc3RyICJVdHfzcnogZG9rdW1lbnRhY2rqIGRsYSIKIAogbXNnaWQgIiIKICJDYW5ub3QgY29ubmVjdCB0byBTTmlGRisuIENoZWNrIGVudmlyb25tZW50IChzbmlmZmVtYWNzIG11c3QgYmUgZm91bmQgaW4gIgpkaWZmIC0tZ2l0IGEvc3JjL3NjcmVlbi5jIGIvc3JjL3NjcmVlbi5jCmluZGV4IGMyOTNkZTEuLjhjNTJhYWQgMTAwNjQ0Ci0tLSBhL3NyYy9zY3JlZW4uYworKysgYi9zcmMvc2NyZWVuLmMKQEAgLTQ2Myw2ICs0NjMsMTIgQEAKIAkJKSkKIAljdXJ3aW4tPndfcmVkcl90eXBlID0gdHlwZTsKIAorI2lmZGVmIEZFQVRfV0lORE9XUworICAgIC8qIFJlZHJhdyB0aGUgdGFiIHBhZ2VzIGxpbmUgaWYgbmVlZGVkLiAqLworICAgIGlmIChyZWRyYXdfdGFibGluZSB8fCB0eXBlID49IE5PVF9WQUxJRCkKKwlkcmF3X3RhYmxpbmUoKTsKKyNlbmRpZgorCiAjaWZkZWYgRkVBVF9TWU5fSEwKICAgICAvKgogICAgICAqIENvcnJlY3Qgc3RvcmVkIHN5bnRheCBoaWdobGlnaHRpbmcgaW5mbyBmb3IgY2hhbmdlcyBpbiBlYWNoIGRpc3BsYXllZApAQCAtNDkwLDEyICs0OTYsNiBAQAogICAgIH0KICNlbmRpZgogCi0jaWZkZWYgRkVBVF9XSU5ET1dTCi0gICAgLyogUmVkcmF3IHRoZSB0YWIgcGFnZXMgbGluZSBpZiBuZWVkZWQuICovCi0gICAgaWYgKHJlZHJhd190YWJsaW5lIHx8IHR5cGUgPj0gTk9UX1ZBTElEKQotCWRyYXdfdGFibGluZSgpOwotI2VuZGlmCi0KICAgICAvKgogICAgICAqIEdvIGZyb20gdG9wIHRvIGJvdHRvbSB0aHJvdWdoIHRoZSB3aW5kb3dzLCByZWRyYXdpbmcgdGhlIG9uZXMgdGhhdCBuZWVkCiAgICAgICogaXQuCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0NDkudmltIGIvc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQppbmRleCAxOWVmOTQ5Li4zYjA5ODJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0NDkudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3Q0OS52aW0KQEAgLTEsNiArMSw2IEBACiAiIFZpbSBzY3JpcHQgbGFuZ3VhZ2UgdGVzdHMKICIgQXV0aG9yOglTZXJ2YXRpdXMgQnJhbmR0IDxTZXJ2YXRpdXMuQnJhbmR0QGZ1aml0c3Utc2llbWVucy5jb20+Ci0iIExhc3QgQ2hhbmdlOgkyMDA2IEZlYiAyOAorIiBMYXN0IENoYW5nZToJMjAwNiBBcHIgMjgKIAogIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgVGVzdCBlbnZpcm9ubWVudAkJCQkJCQkgICAge3t7MQpkaWZmIC0tZ2l0IGEvc3JjL3ZlcnNpb24uaCBiL3NyYy92ZXJzaW9uLmgKaW5kZXggYzkxY2IwYi4uYWYwZWYwZSAxMDA2NDQKLS0tIGEvc3JjL3ZlcnNpb24uaAorKysgYi9zcmMvdmVyc2lvbi5oCkBAIC0zNSw2ICszNSw2IEBACiAgKi8KICNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwZiIKICNkZWZpbmUgVklNX1ZFUlNJT05fU0hPUlQJIjcuMGYiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wZjAzIEJFVEEiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGYwMyBCRVRBICgyMDA2IEFwciAyNykiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkdfREFURQkiVklNIC0gVmkgSU1wcm92ZWQgNy4wZjAzIEJFVEEgKDIwMDYgQXByIDI3LCBjb21waWxlZCAiCisjZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wZjA0IEJFVEEiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGYwNCBCRVRBICgyMDA2IEFwciAyOCkiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkdfREFURQkiVklNIC0gVmkgSU1wcm92ZWQgNy4wZjA0IEJFVEEgKDIwMDYgQXByIDI4LCBjb21waWxlZCAiCg==