ZGlmZiAtLWdpdCBhL3N1cHdpc2RvbS9zcF9jb21tdW5pY2F0ZS5jIGIvc3Vwd2lzZG9tL3NwX2NvbW11bmljYXRlLmMKaW5kZXggZWUwNjdjNC4uOThkNjA5NiAxMDA2NDQKLS0tIGEvc3Vwd2lzZG9tL3NwX2NvbW11bmljYXRlLmMKKysrIGIvc3Vwd2lzZG9tL3NwX2NvbW11bmljYXRlLmMKQEAgLTEzNSw2ICsxMzUsMTAgQEAKICAgICB7CiAgICAgICBjYXJkLT5mZWVwYXJhLmZlZV9zdGFydCA9ICh1aW50OClmaWVsZC52YWwuaW50dmFsOwogICAgIH0KKyAgICBlbHNlIGlmKElTX0tFWShQS19JTlRfQU1PVU5UX0xJTUlULGZpZWxkLmtleSkpCisgICAgeworICAgICAgY2FyZC0+YW1vdW50bGltaXQgPSAodWludDMyKWZpZWxkLnZhbC5pbnR2YWw7CisgICAgfQogICB9CiAgIC8vZGlzcF9oaW50X2luZm8ocG9zLCLJ7bfdyM/WpLPJuaYiLERFTEFZX1RJTUUxcyk7CiAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvc3Vwd2lzZG9tL3NwX2NvbW11bmljYXRlLmggYi9zdXB3aXNkb20vc3BfY29tbXVuaWNhdGUuaAppbmRleCA4YTZmNTlhLi4yODg1NDM1IDEwMDY0NAotLS0gYS9zdXB3aXNkb20vc3BfY29tbXVuaWNhdGUuaAorKysgYi9zdXB3aXNkb20vc3BfY29tbXVuaWNhdGUuaApAQCAtODEsNiArODEsNyBAQAogI2RlZmluZSBQS19JTlRfRkVFU1RBUlQJCQkJIjE3IgogI2RlZmluZSBQS19JTlRfUEVSTUlUCQkJCSIxOCIKICNkZWZpbmUgUEtfU1RSX0xJTUlUTVNHCQkJCSIxOSIKKyNkZWZpbmUgUEtfSU5UX0FNT1VOVF9MSU1JVAkJCSIyMCIKIAogI2RlZmluZSBTUF9DTURfVVBHUkFERSAweDIwICAgICAgICAgCS8v1NrP38n9vLYKICNkZWZpbmUgU1BfQ01EX1RSQU5TRFRMX0FDQ09VTlQgMHgyMiAgICAvL7zH1cvB98uuCmRpZmYgLS1naXQgYS9zdXB3aXNkb20vc3BfY29uZmlnLmggYi9zdXB3aXNkb20vc3BfY29uZmlnLmgKaW5kZXggMTMzNzVmMy4uYTI3NzQ3NyAxMDA2NDQKLS0tIGEvc3Vwd2lzZG9tL3NwX2NvbmZpZy5oCisrKyBiL3N1cHdpc2RvbS9zcF9jb25maWcuaApAQCAtMjMyLDggKzIzMiw5IEBACiAgIHVpbnQ4IGNhcmR0eXBlOwogICB1aW50OCBleHBpcmVkYXRlWzRdOwogCi0gIHVpbnQxNiB3YXRlcmxpbWl0OwkJLy+1pbTOs/bLrsnPz96jqDEwMG1so6kKLSAgdWludDMyIGNvYmlsbG5vOwkJLy+9u9LXtqm1pbHgusUsQkNEwusKKyAgdWludDE2IHdhdGVybGltaXQ7CQkvL7WltM6z9suuwffBv8nPz96jqDEwMG1so6kKKyAgdWludDE2IGFtb3VudGxpbWl0OwkJLy+1pbTOs/bLrr3wtu7Jz8/eICi31ikKKyAgdWludDMyIGNvYmlsbG5vOwkJLy+9u9LXtqm1pbHgusUKICAgdWludDgJcGVybWl0OwkJCS8vyse38dTK0O3P+7fRo6wwLdTK0O2jrDEtsrvUytDtCiAgIGNoYXIgbGltaXRtc2dbNDVdOwkJLy/P3tbGz/u30dDFz6IKICAgc3BfcXJjb2RlX3QgcXJjb2RlOwkvL7b+zqzC6wpkaWZmIC0tZ2l0IGEvc3Vwd2lzZG9tL3NwX2NvbnN1bWUuYyBiL3N1cHdpc2RvbS9zcF9jb25zdW1lLmMKaW5kZXggZGE2YWI4My4uNWQyODM1MSAxMDA2NDQKLS0tIGEvc3Vwd2lzZG9tL3NwX2NvbnN1bWUuYworKysgYi9zdXB3aXNkb20vc3BfY29uc3VtZS5jCkBAIC0yNDEsNiArMjQxLDcgQEAKICAgdWludDE2IHJldDsKICAgc3BfdHJhbnNkdGxfdCByZWNvcmQ7CiAgIE1FTUNMRUFSKCZyZWNvcmQsIHNpemVvZihyZWNvcmQpKTsKKyAgTUVNQ0xFQVIoY2FyZCxzaXplb2Yoc3BfY2FyZF90KSk7CiAgIGNhcmQtPmNhcmR0eXBlID0gcG9zLT5jYXJkU3RhdGUudGFnX3R5cGU7CiAgIE1FTUNQWShjYXJkLT5jYXJkcGh5aWQsIHBvcy0+Y2FyZFN0YXRlLnNuciwgNCk7CiAgIHJldCA9IHNwX2NhcmRfcmVhZChjYXJkKTsKQEAgLTQ0OCw3ICs0NDksMTIgQEAKICAgICB9CiAgICAgaWYocG9zLT5wdXJjaGFzZS5wYWlkX251bSA+IGNhcmQtPndhdGVybGltaXQpCiAgICAgewotICAgICAgZGlzcF9oaW50X2luZm9fdHdvKHBvcywizaPWubP2y64iLCLS0bTvtaW0zrP2y67Jz8/eIixERUxBWV9USU1FMnMpOworICAgICAgZGlzcF9oaW50X2luZm9fdHdvKHBvcywgIs2j1rmz9suuIiwi0tG077WltM6z9suuyc/P3iIsIERFTEFZX1RJTUUycyk7CisgICAgICBjYXJkV29ya1N0YXRlLT5jdXJyZW50X3N0YXRlID0gQ0FSRFdPUktTVEFUVVNfU1RPUFBJTkc7CisgICAgfQorICAgIGVsc2UgaWYocG9zLT5wdXJjaGFzZS5wYWlkX3N1bSA+IGNhcmQtPmFtb3VudGxpbWl0KQorICAgIHsKKyAgICAgIGRpc3BfaGludF9pbmZvX3R3byhwb3MsICLNo9a5s/bLriIsItLRtO+1pbTOvfC27snPz94iLCBERUxBWV9USU1FMnMpOwogICAgICAgY2FyZFdvcmtTdGF0ZS0+Y3VycmVudF9zdGF0ZSA9IENBUkRXT1JLU1RBVFVTX1NUT1BQSU5HOwogICAgIH0KICAgICBjYXJkV29ya1N0YXRlLT5wYXVzZV90aWNrID0gdGltZXJfZ2V0X3RpY2tlcigpOwpAQCAtNjQwLDYgKzY0Niw3IEBACiAgICAgICBicmVhazsKICAgICB9CiAgICAgZGlzcF9oaW50X2luZm9fdHdvKHBvcywgIsfrx/O2/s6swusiLCLH68nUtcguLi4iLDApOworCU1FTUNMRUFSKCZDQVJELHNpemVvZihzcF9jYXJkX3QpKTsKICAgICByZXQgPSBzcF9xcmNvZGVfaW5pdChwb3MsICZDQVJEKTsKICAgICBpZihyZXQpCiAgICAgewpAQCAtNzA0LDExICs3MTEsMTYgQEAKICAgICAgIGNhcmRXb3JrU3RhdGUtPmN1cnJlbnRfc3RhdGUgPSBDQVJEV09SS1NUQVRVU19FUlJPUjsKICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBpZihwb3MtPnB1cmNoYXNlLnBhaWRfbnVtID4gQ0FSRC53YXRlcmxpbWl0KQorICAgIGlmKHBvcy0+cHVyY2hhc2UucGFpZF9udW0gPkNBUkQud2F0ZXJsaW1pdCkKICAgICB7CiAgICAgICBkaXNwX2hpbnRfaW5mb190d28ocG9zLCAizaPWubP2y64iLCLS0bTvtaW0zrP2y67Jz8/eIiwgREVMQVlfVElNRTJzKTsKICAgICAgIGNhcmRXb3JrU3RhdGUtPmN1cnJlbnRfc3RhdGUgPSBDQVJEV09SS1NUQVRVU19TVE9QUElORzsKICAgICB9CisgICAgZWxzZSBpZihwb3MtPnB1cmNoYXNlLnBhaWRfc3VtID4gQ0FSRC5hbW91bnRsaW1pdCkKKyAgICB7CisgICAgICBkaXNwX2hpbnRfaW5mb190d28ocG9zLCAizaPWubP2y64iLCLS0bTvtaW0zr3wtu7Jz8/eIiwgREVMQVlfVElNRTJzKTsKKyAgICAgIGNhcmRXb3JrU3RhdGUtPmN1cnJlbnRfc3RhdGUgPSBDQVJEV09SS1NUQVRVU19TVE9QUElORzsKKyAgICB9CiAgICAgY2FyZFdvcmtTdGF0ZS0+bGFzdF9zdGF0ZSA9IGNhcmRXb3JrU3RhdGUtPmN1cnJlbnRfc3RhdGU7CiAgICAgY2FyZFdvcmtTdGF0ZS0+cGF1c2VfdGljayA9IHNwX2dldF90aWNrZXIoKTsKICAgICBicmVhazsK