ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3MjUxNDFlLi45ZTk5MTg3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTMgQEAKIDIwMDEtMDMtMDcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KIAorICAqIGRlc2MuYzogT24gRnJlZUJTRCBmbG9jayBzdHJ1Y3R1cmUgdXNlcyA2NCBiaXQgb2Zmc2V0cy4KKyAgKiBmaWxlLmM6IE9uIEZyZWVCU0QgdXNlIHN0YXQ2NCBhbmQgcGFscyBpbnN0ZWFkIG9mIHN0YXQuCisgICogZnJlZWJzZC9zeXNjYWxscy5wcmludDogdXNlIHN0YXQ2NCwgbHN0YXQ2NCBhbmQgZnN0YXQ2NC4KKyAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbC5oOiBkaXR0by4KKyAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oOiBkaXR0by4KKworMjAwMS0wMy0wNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCiAgICogZmlsZS5jOiBtZXJnZSBtaXNzaW5nIHBhcnQgb2YgSGFyYWxkIEL2aG1lJ3Mgc29sYXJpcyBwYXRjaGVzLAogICAgIHdhcyBvbmx5IGRlY2xhcmluZyBzeXNfe3N0YXQ2NCxsc3RhdDY0LGZzdGF0NjR9IG9uIGxpbnV4IQogCmRpZmYgLS1naXQgYS9kZXNjLmMgYi9kZXNjLmMKaW5kZXggZTFjNDNmYi4uYjlkOGQzNSAxMDA2NDQKLS0tIGEvZGVzYy5jCisrKyBiL2Rlc2MuYwpAQCAtMzUsNiArMzUsMTIgQEAKICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN5cy9maWxlLmg+CiAKKyNpZiBGUkVFQlNECisjZGVmaW5lIGZsb2NrNjQJZmxvY2sJCS8qIEhvcnJpZCBoYWNrICovCisjZGVmaW5lIHByaW50ZmxvY2sgcHJpbnRmbG9jazY0CS8qIEhvcnJpZGVyIGhhY2sgKi8KKyNlbmRpZgorCisKIHN0YXRpYyBzdHJ1Y3QgeGxhdCBmY250bGNtZHNbXSA9IHsKIAl7IEZfRFVQRkQsCSJGX0RVUEZEIgl9LAogCXsgRl9HRVRGRCwJIkZfR0VURkQiCX0sCkBAIC0xNzIsNiArMTc4LDcgQEAKIAl7IDAsCQlOVUxMCQl9LAogfTsKIAorI2lmbmRlZiBGUkVFQlNECiAvKiBmY250bC9sb2NrZiAqLwogc3RhdGljIHZvaWQKIHByaW50ZmxvY2sodGNwLCBhZGRyLCBnZXRsaykKQEAgLTE5NSw4ICsyMDIsOSBAQAogCWVsc2UKIAkJdHByaW50ZigifSIpOwogfQorI2VuZGlmCiAKLSNpZiBfTEZTNjRfTEFSR0VGSUxFCisjaWYgX0xGUzY0X0xBUkdFRklMRSB8fCBGUkVFQlNECiAvKiBmY250bC9sb2NrZiAqLwogc3RhdGljIHZvaWQKIHByaW50ZmxvY2s2NCh0Y3AsIGFkZHIsIGdldGxrKQpkaWZmIC0tZ2l0IGEvZmlsZS5jIGIvZmlsZS5jCmluZGV4IGYxYzhmM2EuLmVlNmJjOWUgMTAwNjQ0Ci0tLSBhL2ZpbGUuYworKysgYi9maWxlLmMKQEAgLTEzMCw2ICsxMzAsOSBAQAogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUgPHN5cy9tb3VudC5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKKyNkZWZpbmUgc3RhdDY0IHN0YXQKKyNkZWZpbmUgSEFWRV9TVEFUNjQgMQkvKiBVZ2x5IGhhY2sgKi8KICNlbmRpZgogCiAjaWZkZWYgTUFKT1JfSU5fU1lTTUFDUk9TCkBAIC02NTIsNiArNjU1LDcgQEAKIH0KICNlbmRpZgogCisjaWZuZGVmIEZSRUVCU0QKIHN0YXRpYyB2b2lkCiByZWFscHJpbnRzdGF0KHRjcCwgc3RhdGJ1ZikKIHN0cnVjdCB0Y2IgKnRjcDsKQEAgLTY5NSwxNyArNjk5LDcgQEAKICAgICBpZiAoIWFiYnJldih0Y3ApKSB7CiAJICAgIHRwcmludGYoInN0X2F0aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYtPnN0X2F0aW1lKSk7CiAJICAgIHRwcmludGYoInN0X210aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYtPnN0X210aW1lKSk7Ci0jaWZuZGVmIEZSRUVCU0QKIAkgICAgdHByaW50Zigic3RfY3RpbWU9JXN9Iiwgc3ByaW50dGltZShzdGF0YnVmLT5zdF9jdGltZSkpOwotI2Vsc2UgLyogRlJFRUJTRCAqLwotCSAgICB0cHJpbnRmKCJzdF9jdGltZT0lcywgIiwgc3ByaW50dGltZShzdGF0YnVmLT5zdF9jdGltZSkpOwotCSAgICB0cHJpbnRmKCJzdF9mbGFncz0iKTsKLQkgICAgaWYgKHN0YXRidWYtPnN0X2ZsYWdzKSB7Ci0JCSAgICBwcmludGZsYWdzKGZpbGVmbGFncywgc3RhdGJ1Zi0+c3RfZmxhZ3MpOwotCSAgICB9IGVsc2UKLQkJICAgIHRwcmludGYoIjAiKTsKLQkgICAgdHByaW50ZigiLCBzdF9nZW49JXV9Iiwgc3RhdGJ1Zi0+c3RfZ2VuKTsKLSNlbmRpZiAvKiBGUkVFQlNEICovCiAgICAgfQogICAgIGVsc2UKIAkgICAgdHByaW50ZigiLi4ufSIpOwpAQCAtNzQxLDYgKzczNSw3IEBACiAKIAlyZWFscHJpbnRzdGF0KHRjcCwgJnN0YXRidWYpOwogfQorI2VuZGlmCS8qICFGUkVFQlNEICovCiAKICNpZmRlZiBIQVZFX1NUQVQ2NAogc3RhdGljIHZvaWQKQEAgLTgxNyw3ICs4MTIsMTcgQEAKIAlpZiAoIWFiYnJldih0Y3ApKSB7CiAJCXRwcmludGYoInN0X2F0aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfYXRpbWUpKTsKIAkJdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9tdGltZSkpOworI2lmbmRlZiBGUkVFQlNECiAJCXRwcmludGYoInN0X2N0aW1lPSVzfSIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZSkpOworI2Vsc2UgLyogRlJFRUJTRCAqLworCQl0cHJpbnRmKCJzdF9jdGltZT0lcywgIiwgc3ByaW50dGltZShzdGF0YnVmLnN0X2N0aW1lKSk7CisJCXRwcmludGYoInN0X2ZsYWdzPSIpOworCQlpZiAoc3RhdGJ1Zi5zdF9mbGFncykgeworCQkJcHJpbnRmbGFncyhmaWxlZmxhZ3MsIHN0YXRidWYuc3RfZmxhZ3MpOworCQl9IGVsc2UKKwkJCXRwcmludGYoIjAiKTsKKwkJdHByaW50ZigiLCBzdF9nZW49JXV9Iiwgc3RhdGJ1Zi5zdF9nZW4pOworI2VuZGlmIC8qIEZSRUVCU0QgKi8KIAl9CiAJZWxzZQogCQl0cHJpbnRmKCIuLi59Iik7CkBAIC04NzksNyArODg0LDcgQEAKIH0KICNlbmRpZiAvKiBsaW51eCAmJiAhSUE2NCAqLwogCi0KKyNpZm5kZWYgRlJFRUJTRAogaW50CiBzeXNfc3RhdCh0Y3ApCiBzdHJ1Y3QgdGNiICp0Y3A7CkBAIC04OTIsNiArODk3LDcgQEAKIAl9CiAJcmV0dXJuIDA7CiB9CisjZW5kaWYKIAogaW50CiBzeXNfc3RhdDY0KHRjcCkKQEAgLTkyNyw2ICs5MzMsNyBAQAogIyBlbmRpZiAvKiAhSUE2NCAqLwogI2VuZGlmIC8qIGxpbnV4ICovCiAKKyNpZm5kZWYgRlJFRUJTRAogaW50CiBzeXNfZnN0YXQodGNwKQogc3RydWN0IHRjYiAqdGNwOwpAQCAtOTM4LDYgKzk0NSw3IEBACiAJfQogCXJldHVybiAwOwogfQorI2VuZGlmCiAKIGludAogc3lzX2ZzdGF0NjQodGNwKQpAQCAtOTcxLDYgKzk3OSw3IEBACiAjIGVuZGlmIC8qICFJQTY0ICovCiAjZW5kaWYKIAorI2lmbmRlZiBGUkVFQlNECiBpbnQKIHN5c19sc3RhdCh0Y3ApCiBzdHJ1Y3QgdGNiICp0Y3A7CkBAIC05ODMsNiArOTkyLDcgQEAKIAl9CiAJcmV0dXJuIDA7CiB9CisjZW5kaWYKIAogaW50CiBzeXNfbHN0YXQ2NCh0Y3ApCmRpZmYgLS1naXQgYS9mcmVlYnNkL2kzODYvc3lzY2FsbC5oIGIvZnJlZWJzZC9pMzg2L3N5c2NhbGwuaAppbmRleCAyZDdjNTBkLi5jMDllNWEyIDEwMDY0NAotLS0gYS9mcmVlYnNkL2kzODYvc3lzY2FsbC5oCisrKyBiL2ZyZWVic2QvaTM4Ni9zeXNjYWxsLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgLi8uLi9zeXNjYWxscy5wbCBvbiBXZWQgTWFyICA3IDEyOjIyOjU4IDIwMDEKKyAqIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IC4vLi4vc3lzY2FsbHMucGwgb24gV2VkIE1hciAgNyAxNzoxMTozMyAyMDAxCiAgKi8KIAogI2RlZmluZSBzeXNfc3lzY2FsbCBwcmludGFyZ3MKQEAgLTM5LDkgKzM5LDkgQEAKIGludCBzeXNfZmNoZmxhZ3MoKTsKICNkZWZpbmUgc3lzX3N5bmMgcHJpbnRhcmdzCiBpbnQgc3lzX2tpbGwoKTsKLWludCBzeXNfc3RhdCgpOworaW50IHN5c19zdGF0NjQoKTsKICNkZWZpbmUgc3lzX2dldHBwaWQgcHJpbnRhcmdzCi1pbnQgc3lzX2xzdGF0KCk7CitpbnQgc3lzX2xzdGF0NjQoKTsKIGludCBzeXNfZHVwKCk7CiBpbnQgc3lzX3BpcGUoKTsKICNkZWZpbmUgc3lzX2dldGVnaWQgcHJpbnRhcmdzCkBAIC02Myw3ICs2Myw3IEBACiBpbnQgc3lzX2V4ZWN2ZSgpOwogaW50IHN5c191bWFzaygpOwogaW50IHN5c19jaHJvb3QoKTsKLWludCBzeXNfZnN0YXQoKTsKK2ludCBzeXNfZnN0YXQ2NCgpOwogI2RlZmluZSBzeXNfZ2V0a2VybmluZm8gcHJpbnRhcmdzCiBpbnQgc3lzX2dldHBhZ2VzaXplKCk7CiBpbnQgc3lzX21zeW5jKCk7CkBAIC0xNjEsOSArMTYxLDkgQEAKICNkZWZpbmUgc3lzX3NldGdpZCBwcmludGFyZ3MKICNkZWZpbmUgc3lzX3NldGVnaWQgcHJpbnRhcmdzCiAjZGVmaW5lIHN5c19zZXRldWlkIHByaW50YXJncwotaW50IHN5c19zdGF0KCk7Ci1pbnQgc3lzX2ZzdGF0KCk7Ci1pbnQgc3lzX2xzdGF0KCk7CitpbnQgc3lzX3N0YXQ2NCgpOworaW50IHN5c19mc3RhdDY0KCk7CitpbnQgc3lzX2xzdGF0NjQoKTsKIGludCBzeXNfcGF0aGNvbmYoKTsKIGludCBzeXNfZnBhdGhjb25mKCk7CiBpbnQgc3lzX2dldHJsaW1pdCgpOwpkaWZmIC0tZ2l0IGEvZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaCBiL2ZyZWVic2QvaTM4Ni9zeXNjYWxsZW50LmgKaW5kZXggZjhiMWU0ZS4uYjQ1ZWUzNiAxMDA2NDQKLS0tIGEvZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaAorKysgYi9mcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IC4vLi4vc3lzY2FsbHMucGwgb24gV2VkIE1hciAgNyAxMjoyMjo1OCAyMDAxCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSAuLy4uL3N5c2NhbGxzLnBsIG9uIFdlZCBNYXIgIDcgMTc6MTE6MzMgMjAwMQogICovCiAKICAgeyAxLAkwLAlzeXNfc3lzY2FsbCwJInN5c2NhbGwiCX0sIC8qIDAgKi8KQEAgLTQwLDkgKzQwLDkgQEAKICAgeyAyLAlURiwJc3lzX2ZjaGZsYWdzLAkiZmNoZmxhZ3MiCX0sIC8qIDM1ICovCiAgIHsgMSwJMCwJc3lzX3N5bmMsCSJzeW5jIgl9LCAvKiAzNiAqLwogICB7IDIsCVRTLAlzeXNfa2lsbCwJImtpbGwiCX0sIC8qIDM3ICovCi0gIHsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIJfSwgLyogMzggKi8KKyAgeyAyLAlURiwJc3lzX3N0YXQ2NCwJInN0YXQiCX0sIC8qIDM4ICovCiAgIHsgMSwJMCwJc3lzX2dldHBwaWQsCSJnZXRwcGlkIgl9LCAvKiAzOSAqLwotICB7IDIsCVRGLAlzeXNfbHN0YXQsCSJsc3RhdCIJfSwgLyogNDAgKi8KKyAgeyAyLAlURiwJc3lzX2xzdGF0NjQsCSJsc3RhdCIJfSwgLyogNDAgKi8KICAgeyAxLAkwLAlzeXNfZHVwLAkiZHVwIgl9LCAvKiA0MSAqLwogICB7IDEsCTAsCXN5c19waXBlLAkicGlwZSIJfSwgLyogNDIgKi8KICAgeyAxLAkwLAlzeXNfZ2V0ZWdpZCwJImdldGVnaWQiCX0sIC8qIDQzICovCkBAIC02NCw3ICs2NCw3IEBACiAgIHsgMywJVEZ8VFAsCXN5c19leGVjdmUsCSJleGVjdmUiCX0sIC8qIDU5ICovCiAgIHsgMSwJMCwJc3lzX3VtYXNrLAkidW1hc2siCX0sIC8qIDYwICovCiAgIHsgMSwJVEYsCXN5c19jaHJvb3QsCSJjaHJvb3QiCX0sIC8qIDYxICovCi0gIHsgMiwJVEYsCXN5c19mc3RhdCwJImZzdGF0Igl9LCAvKiA2MiAqLworICB7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJImZzdGF0Igl9LCAvKiA2MiAqLwogICB7IDQsCTAsCXN5c19nZXRrZXJuaW5mbywJImdldGtlcm5pbmZvIgl9LCAvKiA2MyAqLwogICB7IDEsCTAsCXN5c19nZXRwYWdlc2l6ZSwJImdldHBhZ2VzaXplIgl9LCAvKiA2NCAqLwogICB7IDMsCTAsCXN5c19tc3luYywJIm1zeW5jIgl9LCAvKiA2NSAqLwpAQCAtMTkwLDkgKzE5MCw5IEBACiAgIHsgLTEsCTAsCXByaW50YXJncywJIlNZU18xODUiCX0sIC8qIDE4NSAqLwogICB7IC0xLAkwLAlwcmludGFyZ3MsCSJTWVNfMTg2Igl9LCAvKiAxODYgKi8KICAgeyAtMSwJMCwJcHJpbnRhcmdzLAkiU1lTXzE4NyIJfSwgLyogMTg3ICovCi0gIHsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIJfSwgLyogMTg4ICovCi0gIHsgMiwJVEYsCXN5c19mc3RhdCwJImZzdGF0Igl9LCAvKiAxODkgKi8KLSAgeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiCX0sIC8qIDE5MCAqLworICB7IDIsCVRGLAlzeXNfc3RhdDY0LAkic3RhdCIJfSwgLyogMTg4ICovCisgIHsgMiwJVEYsCXN5c19mc3RhdDY0LAkiZnN0YXQiCX0sIC8qIDE4OSAqLworICB7IDIsCVRGLAlzeXNfbHN0YXQ2NCwJImxzdGF0Igl9LCAvKiAxOTAgKi8KICAgeyAyLAlURiwJc3lzX3BhdGhjb25mLAkicGF0aGNvbmYiCX0sIC8qIDE5MSAqLwogICB7IDIsCTAsCXN5c19mcGF0aGNvbmYsCSJmcGF0aGNvbmYiCX0sIC8qIDE5MiAqLwogICB7IC0xLAkwLAlwcmludGFyZ3MsCSJTWVNfMTkzIgl9LCAvKiAxOTMgKi8KZGlmZiAtLWdpdCBhL2ZyZWVic2Qvc3lzY2FsbHMucHJpbnQgYi9mcmVlYnNkL3N5c2NhbGxzLnByaW50CmluZGV4IDM0NjFmNDMuLmZlMDMzNmQgMTAwNjQ0Ci0tLSBhL2ZyZWVic2Qvc3lzY2FsbHMucHJpbnQKKysrIGIvZnJlZWJzZC9zeXNjYWxscy5wcmludApAQCAtNjQsNyArNjQsNyBAQAogZmxvY2sKIGZvcmsKIGZwYXRoY29uZgotZnN0YXQKK2ZzdGF0CQlzeXNfZnN0YXQ2NAogZnN0YXRmcwogZnN5bmMKIGZ0cnVuY2F0ZQlzeXNfZnRydW5jYXRlNjQKQEAgLTk3LDcgKzk3LDcgQEAKIGxpbmsKIGxpc3RlbgogbHNlZWsJCXN5c19sc2VlazY0Ci1sc3RhdAorbHN0YXQJCXN5c19sc3RhdDY0CiBtaW5jb3JlCiBta2RpcgogbWtmaWZvCkBAIC0xNzEsNyArMTcxLDcgQEAKIHNpZ3ZlYwogc29ja2V0CiBzb2NrZXRwYWlyCi1zdGF0CitzdGF0CQlzeXNfc3RhdDY0CiBzdGF0ZnMKIHN0aW1lCiBzeW1saW5rCg==