ZGlmZiAtLWdpdCBhL01ha2VmaWxlLmZsYWdzIGIvTWFrZWZpbGUuZmxhZ3MKaW5kZXggMjQzZjA5NS4uYzAyMzI5OSAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuZmxhZ3MKKysrIGIvTWFrZWZpbGUuZmxhZ3MKQEAgLTU2LDEwICs1NiwxMyBAQAogQ0ZMQUdTICs9ICQoY2FsbCBjYy1vcHRpb24sLWcpCiBlbmRpZgogCitpZmVxICgkKENPTkZJR19CVUlMRF9MSUJCVVNZQk9YKSx5KQogIyBvbiBpMzg2OiAxNCUgc21hbGxlciBsaWJidXN5Ym94LnNvCiAjIChjb2RlIGl0c2VsZiBpcyA5JSBiaWdnZXIsIHdlIHNhdmUgb24gcmVsb2NzL1BMVC9HT1QpCi1pZmVxICgkKENPTkZJR19CVUlMRF9MSUJCVVNZQk9YKSx5KQogQ0ZMQUdTICs9IC1mcGljCisjIGFuZCBhbm90aGVyIDQlIHJlZHVjdGlvbiBvZiBsaWJidXN5Ym94LnNvOgorIyAoZXh0ZXJuYWwgZW50cnkgcG9pbnRzIG11c3QgYmUgbWFya2VkIEVYVEVSTkFMTFlfVklTSUJMRSkKK0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1mdmlzaWJpbGl0eT1oaWRkZW4pCiBlbmRpZgogCiBpZmVxICgkKENPTkZJR19TVEFUSUMpLHkpCmRpZmYgLS1naXQgYS9hcHBsZXRzL2FwcGxldHMuYyBiL2FwcGxldHMvYXBwbGV0cy5jCmluZGV4IGJiZjE1MGMuLjE5NTBjZjMgMTAwNjQ0Ci0tLSBhL2FwcGxldHMvYXBwbGV0cy5jCisrKyBiL2FwcGxldHMvYXBwbGV0cy5jCkBAIC0yNCw2ICsyNCw2IEBACiAjaWYgRU5BQkxFX0JVSUxEX0xJQkJVU1lCT1gKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKLQlyZXR1cm4gbGliYnVzeWJveF9tYWluKGFyZ2MsIGFyZ3YpOworCXJldHVybiBsYmJfbWFpbihhcmdjLCBhcmd2KTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaGl2YWwvYXIuYyBiL2FyY2hpdmFsL2FyLmMKaW5kZXggY2JlNGQ4ZS4uMGE5NWU1YyAxMDA2NDQKLS0tIGEvYXJjaGl2YWwvYXIuYworKysgYi9hcmNoaXZhbC9hci5jCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIEFSX09QVF9DUkVBVEUJCTB4MjAKICNkZWZpbmUgQVJfT1BUX0lOU0VSVAkJMHg0MAogCi1pbnQgYXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGFyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBhcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdGF0aWMgY29uc3QgY2hhciBtc2dfdW5zdXBwb3J0ZWRfZXJyW10gQUxJR04xID0KZGlmZiAtLWdpdCBhL2FyY2hpdmFsL2JidW56aXAuYyBiL2FyY2hpdmFsL2JidW56aXAuYwppbmRleCBlMTA2YmYwLi42MWI1ZTM5IDEwMDY0NAotLS0gYS9hcmNoaXZhbC9iYnVuemlwLmMKKysrIGIvYXJjaGl2YWwvYmJ1bnppcC5jCkBAIC0xNTgsNyArMTU4LDcgQEAKIAlyZXR1cm4gdW5wYWNrX2J6Ml9zdHJlYW0oU1RESU5fRklMRU5PLCBTVERPVVRfRklMRU5PKTsKIH0KIAotaW50IGJ1bnppcDJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGJ1bnppcDJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGJ1bnppcDJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJZ2V0b3B0MzIoYXJndiwgImNmIik7CkBAIC0yNTYsNyArMjU2LDcgQEAKIAlyZXR1cm4gc3RhdHVzOwogfQogCi1pbnQgZ3VuemlwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBndW56aXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGd1bnppcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlnZXRvcHQzMihhcmd2LCAiY2Z2ZHQiKTsKQEAgLTI5NCw3ICsyOTQsNyBAQAogCXJldHVybiB1bnBhY2tfbHptYV9zdHJlYW0oU1RESU5fRklMRU5PLCBTVERPVVRfRklMRU5PKTsKIH0KIAotaW50IHVubHptYV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdW5sem1hX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB1bmx6bWFfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJZ2V0b3B0MzIoYXJndiwgImNmIik7CkBAIC0zMzYsNyArMzM2LDcgQEAKIAlyZXR1cm4gc3RhdHVzOwogfQogCi1pbnQgdW5jb21wcmVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdW5jb21wcmVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdW5jb21wcmVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlnZXRvcHQzMihhcmd2LCAiY2YiKTsKZGlmZiAtLWdpdCBhL2FyY2hpdmFsL2NwaW8uYyBiL2FyY2hpdmFsL2NwaW8uYwppbmRleCA5MTg4ZTA5Li41OWFlNjBjIDEwMDY0NAotLS0gYS9hcmNoaXZhbC9jcGlvLmMKKysrIGIvYXJjaGl2YWwvY3Bpby5jCkBAIC0yMiw3ICsyMiw3IEBACiAjZGVmaW5lIENQSU9fT1BUX0NSRUFURV9MRUFESU5HX0RJUiAgICAgMHgyMAogI2RlZmluZSBDUElPX09QVF9QUkVTRVJWRV9NVElNRSAgICAgICAgIDB4NDAKIAotaW50IGNwaW9fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNwaW9fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNwaW9fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJYXJjaGl2ZV9oYW5kbGVfdCAqYXJjaGl2ZV9oYW5kbGU7CmRpZmYgLS1naXQgYS9hcmNoaXZhbC9kcGtnLmMgYi9hcmNoaXZhbC9kcGtnLmMKaW5kZXggMzM3NTc2Yy4uMjc1MTJlYiAxMDA2NDQKLS0tIGEvYXJjaGl2YWwvZHBrZy5jCisrKyBiL2FyY2hpdmFsL2Rwa2cuYwpAQCAtMTU1Nyw3ICsxNTU3LDcgQEAKIAlzZXRfc3RhdHVzKHN0YXR1c19udW0sICJpbnN0YWxsZWQiLCAzKTsKIH0KIAotaW50IGRwa2dfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGRwa2dfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGRwa2dfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJZGViX2ZpbGVfdCAqKmRlYl9maWxlID0gTlVMTDsKZGlmZiAtLWdpdCBhL2FyY2hpdmFsL2Rwa2dfZGViLmMgYi9hcmNoaXZhbC9kcGtnX2RlYi5jCmluZGV4IDk3ODFiNTQuLmUxZDJjZDAgMTAwNjQ0Ci0tLSBhL2FyY2hpdmFsL2Rwa2dfZGViLmMKKysrIGIvYXJjaGl2YWwvZHBrZ19kZWIuYwpAQCAtMTMsNyArMTMsNyBAQAogI2RlZmluZSBEUEtHX0RFQl9PUFRfRVhUUkFDVAk4CiAjZGVmaW5lIERQS0dfREVCX09QVF9FWFRSQUNUX1ZFUkJPU0UJMTYKIAotaW50IGRwa2dfZGViX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBkcGtnX2RlYl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZHBrZ19kZWJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJYXJjaGl2ZV9oYW5kbGVfdCAqYXJfYXJjaGl2ZTsKZGlmZiAtLWdpdCBhL2FyY2hpdmFsL2d6aXAuYyBiL2FyY2hpdmFsL2d6aXAuYwppbmRleCBjYWJjYzVlLi5iYzc1MDJlIDEwMDY0NAotLS0gYS9hcmNoaXZhbC9nemlwLmMKKysrIGIvYXJjaGl2YWwvZ3ppcC5jCkBAIC0yMDI1LDcgKzIwMjUsNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgZ3ppcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZ3ppcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZ3ppcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl1bnNpZ25lZCBvcHQ7CmRpZmYgLS1naXQgYS9hcmNoaXZhbC9ycG0uYyBiL2FyY2hpdmFsL3JwbS5jCmluZGV4IDBiNzc0MWEuLmYwNzhhZWEgMTAwNjQ0Ci0tLSBhL2FyY2hpdmFsL3JwbS5jCisrKyBiL2FyY2hpdmFsL3JwbS5jCkBAIC04MCw3ICs4MCw3IEBACiBzdGF0aWMgdm9pZCBmaWxlYWN0aW9uX3NldG93bmdycChjaGFyICpmaWxlbmFtZSwgaW50IGZpbGVyZWYpOwogc3RhdGljIHZvaWQgbG9vcF90aHJvdWdoX2ZpbGVzKGludCBmaWxldGFnLCB2b2lkICgqZmlsZWFjdGlvbikoY2hhciAqZmlsZW5hbWUsIGludCBmaWxlcmVmKSk7CiAKLWludCBycG1fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHJwbV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcnBtX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBvcHQgPSAwLCBmdW5jID0gMCwgcnBtX2ZkLCBvZmZzZXQ7CmRpZmYgLS1naXQgYS9hcmNoaXZhbC9ycG0yY3Bpby5jIGIvYXJjaGl2YWwvcnBtMmNwaW8uYwppbmRleCBmZTcxZTk4Li4zMjlmOGY3IDEwMDY0NAotLS0gYS9hcmNoaXZhbC9ycG0yY3Bpby5jCisrKyBiL2FyY2hpdmFsL3JwbTJjcGlvLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIH0KIAogLyogTm8gZ2V0b3B0IHJlcXVpcmVkICovCi1pbnQgcnBtMmNwaW9fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHJwbTJjcGlvX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBycG0yY3Bpb19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgcnBtX2xlYWQgbGVhZDsKZGlmZiAtLWdpdCBhL2FyY2hpdmFsL3Rhci5jIGIvYXJjaGl2YWwvdGFyLmMKaW5kZXggMThiNjI2Ny4uM2ZlMTg4NiAxMDA2NDQKLS0tIGEvYXJjaGl2YWwvdGFyLmMKKysrIGIvYXJjaGl2YWwvdGFyLmMKQEAgLTc2OSw3ICs3NjksNyBAQAogCTsKICNlbmRpZgogCi1pbnQgdGFyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB0YXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHRhcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljaGFyICgqZ2V0X2hlYWRlcl9wdHIpKGFyY2hpdmVfaGFuZGxlX3QgKikgPSBnZXRfaGVhZGVyX3RhcjsKZGlmZiAtLWdpdCBhL2FyY2hpdmFsL3VuemlwLmMgYi9hcmNoaXZhbC91bnppcC5jCmluZGV4IDIxZDRjMjUuLmJkMTEzYWYgMTAwNjQ0Ci0tLSBhL2FyY2hpdmFsL3VuemlwLmMKKysrIGIvYXJjaGl2YWwvdW56aXAuYwpAQCAtOTMsNyArOTMsNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgdW56aXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHVuemlwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB1bnppcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl6aXBfaGVhZGVyX3QgemlwX2hlYWRlcjsKZGlmZiAtLWdpdCBhL2NvbnNvbGUtdG9vbHMvY2h2dC5jIGIvY29uc29sZS10b29scy9jaHZ0LmMKaW5kZXggYjFmODFhMi4uODM5MGM2MCAxMDA2NDQKLS0tIGEvY29uc29sZS10b29scy9jaHZ0LmMKKysrIGIvY29uc29sZS10b29scy9jaHZ0LmMKQEAgLTE1LDcgKzE1LDcgQEAKIAlWVF9XQUlUQUNUSVZFID0gMHg1NjA3ICAvKiB3YWl0IGZvciB2dCBhY3RpdmUgKi8KIH07CiAKLWludCBjaHZ0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjaHZ0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBjaHZ0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBmZCwgbnVtOwpkaWZmIC0tZ2l0IGEvY29uc29sZS10b29scy9jbGVhci5jIGIvY29uc29sZS10b29scy9jbGVhci5jCmluZGV4IDNjN2Q3MDQuLjc2OWNlMzEgMTAwNjQ0Ci0tLSBhL2NvbnNvbGUtdG9vbHMvY2xlYXIuYworKysgYi9jb25zb2xlLXRvb2xzL2NsZWFyLmMKQEAgLTEyLDcgKzEyLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBjbGVhcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2xlYXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNsZWFyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXJldHVybiBwcmludGYoIlwwMzNbSFwwMzNbSiIpICE9IDY7CmRpZmYgLS1naXQgYS9jb25zb2xlLXRvb2xzL2RlYWxsb2N2dC5jIGIvY29uc29sZS10b29scy9kZWFsbG9jdnQuYwppbmRleCBiZjJiYWMxLi40ODc4M2ZiIDEwMDY0NAotLS0gYS9jb25zb2xlLXRvb2xzL2RlYWxsb2N2dC5jCisrKyBiL2NvbnNvbGUtdG9vbHMvZGVhbGxvY3Z0LmMKQEAgLTE1LDcgKzE1LDcgQEAKIC8qIEZyb20gPGxpbnV4L3Z0Lmg+ICovCiBlbnVtIHsgVlRfRElTQUxMT0NBVEUgPSAweDU2MDggfTsgLyogZnJlZSBtZW1vcnkgYXNzb2NpYXRlZCB0byB2dCAqLwogCi1pbnQgZGVhbGxvY3Z0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBkZWFsbG9jdnRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGRlYWxsb2N2dF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAkvKiBudW0gPSAwIGRlYWxsb2NhdGUgYWxsIHVudXNlZCBjb25zb2xlcyAqLwpkaWZmIC0tZ2l0IGEvY29uc29sZS10b29scy9kdW1wa21hcC5jIGIvY29uc29sZS10b29scy9kdW1wa21hcC5jCmluZGV4IGE2MDZkNTYuLjQwYjU4ZjcgMTAwNjQ0Ci0tLSBhL2NvbnNvbGUtdG9vbHMvZHVtcGttYXAuYworKysgYi9jb25zb2xlLXRvb2xzL2R1bXBrbWFwLmMKQEAgLTIyLDcgKzIyLDcgQEAKICNkZWZpbmUgTlJfS0VZUyAxMjgKICNkZWZpbmUgTUFYX05SX0tFWU1BUFMgMjU2CiAKLWludCBkdW1wa21hcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZHVtcGttYXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGR1bXBrbWFwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBrYmVudHJ5IGtlOwpkaWZmIC0tZ2l0IGEvY29uc29sZS10b29scy9sb2FkZm9udC5jIGIvY29uc29sZS10b29scy9sb2FkZm9udC5jCmluZGV4IDZiNGRjYjQuLjg4MmI4ODEgMTAwNjQ0Ci0tLSBhL2NvbnNvbGUtdG9vbHMvbG9hZGZvbnQuYworKysgYi9jb25zb2xlLXRvb2xzL2xvYWRmb250LmMKQEAgLTE2Niw3ICsxNjYsNyBAQAogCWRvX2xvYWRmb250KGZkLCBpbmJ1ZiArIG9mZnNldCwgdW5pdCwgMjU2KTsKIH0KIAotaW50IGxvYWRmb250X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBsb2FkZm9udF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbG9hZGZvbnRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGZkOwpkaWZmIC0tZ2l0IGEvY29uc29sZS10b29scy9sb2Fka21hcC5jIGIvY29uc29sZS10b29scy9sb2Fka21hcC5jCmluZGV4IDRhNzI2ZjkuLjQwODg1ZWUgMTAwNjQ0Ci0tLSBhL2NvbnNvbGUtdG9vbHMvbG9hZGttYXAuYworKysgYi9jb25zb2xlLXRvb2xzL2xvYWRrbWFwLmMKQEAgLTI1LDcgKzI1LDcgQEAKICNkZWZpbmUgTlJfS0VZUyAgICAgICAgIDEyOAogI2RlZmluZSBNQVhfTlJfS0VZTUFQUyAgMjU2CiAKLWludCBsb2Fka21hcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbG9hZGttYXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGxvYWRrbWFwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBrYmVudHJ5IGtlOwpkaWZmIC0tZ2l0IGEvY29uc29sZS10b29scy9vcGVudnQuYyBiL2NvbnNvbGUtdG9vbHMvb3BlbnZ0LmMKaW5kZXggYzA1MGJhMS4uZmYxNjk1MyAxMDA2NDQKLS0tIGEvY29uc29sZS10b29scy9vcGVudnQuYworKysgYi9jb25zb2xlLXRvb2xzL29wZW52dC5jCkBAIC0xMiw3ICsxMiw3IEBACiAKICNpbmNsdWRlICJsaWJiYi5oIgogCi1pbnQgb3BlbnZ0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBvcGVudnRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG9wZW52dF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljaGFyIHZ0bmFtZVtzaXplb2YoVkNfRk9STUFUKSArIDJdOwpkaWZmIC0tZ2l0IGEvY29uc29sZS10b29scy9yZXNldC5jIGIvY29uc29sZS10b29scy9yZXNldC5jCmluZGV4IGRlZmZlMjg2Li5iYjA5NmNmIDEwMDY0NAotLS0gYS9jb25zb2xlLXRvb2xzL3Jlc2V0LmMKKysrIGIvY29uc29sZS10b29scy9yZXNldC5jCkBAIC0xMiw3ICsxMiw3IEBACiAKICNpbmNsdWRlICJsaWJiYi5oIgogCi1pbnQgcmVzZXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHJlc2V0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCByZXNldF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpZiAoaXNhdHR5KDEpKSB7CmRpZmYgLS1naXQgYS9jb25zb2xlLXRvb2xzL3Jlc2l6ZS5jIGIvY29uc29sZS10b29scy9yZXNpemUuYwppbmRleCAzMjU1MWIyLi5iNGNkZjUwIDEwMDY0NAotLS0gYS9jb25zb2xlLXRvb2xzL3Jlc2l6ZS5jCisrKyBiL2NvbnNvbGUtdG9vbHMvcmVzaXplLmMKQEAgLTIwLDcgKzIwLDcgQEAKIAlleGl0KDEpOwogfQogCi1pbnQgcmVzaXplX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCByZXNpemVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHJlc2l6ZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgdGVybWlvcyBuZXc7CmRpZmYgLS1naXQgYS9jb25zb2xlLXRvb2xzL3NldGNvbnNvbGUuYyBiL2NvbnNvbGUtdG9vbHMvc2V0Y29uc29sZS5jCmluZGV4IDMyMjE4YWUuLjBhYTFkM2EgMTAwNjQ0Ci0tLSBhL2NvbnNvbGUtdG9vbHMvc2V0Y29uc29sZS5jCisrKyBiL2NvbnNvbGUtdG9vbHMvc2V0Y29uc29sZS5jCkBAIC0xOCw3ICsxOCw3IEBACiAKICNkZWZpbmUgT1BUX1NFVENPTlNfUkVTRVQgMQogCi1pbnQgc2V0Y29uc29sZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgc2V0Y29uc29sZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc2V0Y29uc29sZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpkaWZmIC0tZ2l0IGEvY29uc29sZS10b29scy9zZXRrZXljb2Rlcy5jIGIvY29uc29sZS10b29scy9zZXRrZXljb2Rlcy5jCmluZGV4IDNkZTVmOTguLmJhM2QyZTQgMTAwNjQ0Ci0tLSBhL2NvbnNvbGUtdG9vbHMvc2V0a2V5Y29kZXMuYworKysgYi9jb25zb2xlLXRvb2xzL3NldGtleWNvZGVzLmMKQEAgLTIwLDggKzIwLDggQEAKIAlLRFNFVEtFWUNPREUgPSAweDRCNEQgIC8qIHdyaXRlIGtlcm5lbCBrZXljb2RlIHRhYmxlIGVudHJ5ICovCiB9OwogCi1pbnQgc2V0a2V5Y29kZXNfbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwotaW50IHNldGtleWNvZGVzX21haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoraW50IHNldGtleWNvZGVzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKK2ludCBzZXRrZXljb2Rlc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgZmQsIHNjOwogCXN0cnVjdCBrYmtleWNvZGUgYTsKZGlmZiAtLWdpdCBhL2NvbnNvbGUtdG9vbHMvc2V0bG9nY29ucy5jIGIvY29uc29sZS10b29scy9zZXRsb2djb25zLmMKaW5kZXggMmUyYTVhNC4uMGY2NDkxYyAxMDA2NDQKLS0tIGEvY29uc29sZS10b29scy9zZXRsb2djb25zLmMKKysrIGIvY29uc29sZS10b29scy9zZXRsb2djb25zLmMKQEAgLTExLDcgKzExLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBzZXRsb2djb25zX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzZXRsb2djb25zX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzZXRsb2djb25zX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCB7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvYmFzZW5hbWUuYyBiL2NvcmV1dGlscy9iYXNlbmFtZS5jCmluZGV4IGVjMWY4NWIuLmQ1MzZhMWIgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9iYXNlbmFtZS5jCisrKyBiL2NvcmV1dGlscy9iYXNlbmFtZS5jCkBAIC0yNCw3ICsyNCw3IEBACiAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKLWludCBiYXNlbmFtZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgYmFzZW5hbWVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGJhc2VuYW1lX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXNpemVfdCBtLCBuOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2NhbC5jIGIvY29yZXV0aWxzL2NhbC5jCmluZGV4IDMxMTZlMWUuLjhhMDhhOWEgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9jYWwuYworKysgYi9jb3JldXRpbHMvY2FsLmMKQEAgLTc1LDcgKzc1LDcgQEAKICNkZWZpbmUJSl9XRUVLX0xFTgkoV0VFS19MRU4gKyA3KQogI2RlZmluZQlIRUFEX1NFUAkyCQkvKiBzcGFjZXMgYmV0d2VlbiBkYXkgaGVhZGluZ3MgKi8KIAotaW50IGNhbF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2FsX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBjYWxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHRtICpsb2NhbF90aW1lOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2NhdC5jIGIvY29yZXV0aWxzL2NhdC5jCmluZGV4IGNkNTI3NzguLmExZGI0Y2QgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9jYXQuYworKysgYi9jb3JldXRpbHMvY2F0LmMKQEAgLTQzLDcgKzQzLDcgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCi1pbnQgY2F0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjYXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNhdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlnZXRvcHQzMihhcmd2LCAidSIpOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2NhdHYuYyBiL2NvcmV1dGlscy9jYXR2LmMKaW5kZXggNWQ1YTU1MC4uNWY1ZjFiZiAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2NhdHYuYworKysgYi9jb3JldXRpbHMvY2F0di5jCkBAIC0xMiw3ICsxMiw3IEBACiAKICNpbmNsdWRlICJsaWJiYi5oIgogCi1pbnQgY2F0dl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2F0dl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgY2F0dl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgcmV0dmFsID0gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2NoZ3JwLmMgYi9jb3JldXRpbHMvY2hncnAuYwppbmRleCA5MGExY2ZlLi43ZjM5MDQ4IDEwMDY0NAotLS0gYS9jb3JldXRpbHMvY2hncnAuYworKysgYi9jb3JldXRpbHMvY2hncnAuYwpAQCAtMTYsNyArMTYsNyBAQAogLyogVGhpcyBpcyBhIE5PRVhFQyBhcHBsZXQuIEJlIHZlcnkgY2FyZWZ1bCEgKi8KIAogCi1pbnQgY2hncnBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNoZ3JwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBjaGdycF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAkvKiAiY2hncnAgW29wdHNdIGFiYyBmaWxlKHMpIiA9PSAiY2hvd24gW29wdHNdIDphYmMgZmlsZShzKSIgKi8KZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9jaG1vZC5jIGIvY29yZXV0aWxzL2NobW9kLmMKaW5kZXggZGQ3Yjc4NC4uYTU4ZTRmOCAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2NobW9kLmMKKysrIGIvY29yZXV0aWxzL2NobW9kLmMKQEAgLTY3LDcgKzY3LDcgQEAKIAlyZXR1cm4gRkFMU0U7CiB9CiAKLWludCBjaG1vZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2htb2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNobW9kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCByZXR2YWwgPSBFWElUX1NVQ0NFU1M7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvY2hvd24uYyBiL2NvcmV1dGlscy9jaG93bi5jCmluZGV4IGQ5NzQ0OTMuLmRmM2I3N2QgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9jaG93bi5jCisrKyBiL2NvcmV1dGlscy9jaG93bi5jCkBAIC02MSw3ICs2MSw3IEBACiAJcmV0dXJuIEZBTFNFOwogfQogCi1pbnQgY2hvd25fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNob3duX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBjaG93bl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgcmV0dmFsID0gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2Nocm9vdC5jIGIvY29yZXV0aWxzL2Nocm9vdC5jCmluZGV4IDE5MmRhYTguLmEzZTcwZTkgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9jaHJvb3QuYworKysgYi9jb3JldXRpbHMvY2hyb290LmMKQEAgLTExLDcgKzExLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBjaHJvb3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNocm9vdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgY2hyb290X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlmIChhcmdjIDwgMikgewpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2Nrc3VtLmMgYi9jb3JldXRpbHMvY2tzdW0uYwppbmRleCA5ODdmNWYzLi5kZDI3NGFmIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvY2tzdW0uYworKysgYi9jb3JldXRpbHMvY2tzdW0uYwpAQCAtOCw3ICs4LDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBja3N1bV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2tzdW1fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNrc3VtX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVpbnQzMl90ICpjcmMzMl90YWJsZSA9IGNyYzMyX2ZpbGx0YWJsZShOVUxMLCAxKTsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9jb21tLmMgYi9jb3JldXRpbHMvY29tbS5jCmluZGV4IGE0YWIxNDguLjY3MDg4ZTAgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9jb21tLmMKKysrIGIvY29yZXV0aWxzL2NvbW0uYwpAQCAtMzUsNyArMzUsNyBAQAogCWZwdXRzKGxpbmUsIHN0ZG91dCk7CiB9CiAKLWludCBjb21tX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjb21tX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBjb21tX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogI2RlZmluZSBMSU5FX0xFTiAxMDAKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9jcC5jIGIvY29yZXV0aWxzL2NwLmMKaW5kZXggMDQ2MDY3Zi4uNmNmMWUyMSAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2NwLmMKKysrIGIvY29yZXV0aWxzL2NwLmMKQEAgLTIxLDcgKzIxLDcgQEAKIC8qIFRoaXMgaXMgYSBOT0VYRUMgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKIAotaW50IGNwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgY3BfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHN0YXQgc291cmNlX3N0YXQ7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvY3V0LmMgYi9jb3JldXRpbHMvY3V0LmMKaW5kZXggMWNmNDljMi4uMjU3ZjNkNiAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2N1dC5jCisrKyBiL2NvcmV1dGlscy9jdXQuYwpAQCAtMTY1LDcgKzE2NSw3IEBACiAKIHN0YXRpYyBjb25zdCBjaGFyIF9vcF9vbl9maWVsZFtdIEFMSUdOMSA9ICIgb25seSB3aGVuIG9wZXJhdGluZyBvbiBmaWVsZHMiOwogCi1pbnQgY3V0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjdXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGN1dF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljaGFyICpzb3B0LCAqbHRvazsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9kYXRlLmMgYi9jb3JldXRpbHMvZGF0ZS5jCmluZGV4IGUzM2E5NzcuLmE4ZTMzOTMgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9kYXRlLmMKKysrIGIvY29yZXV0aWxzL2RhdGUuYwpAQCAtMzgsNyArMzgsNyBAQAogCQlwdXRlbnYoKGNoYXIqKSJUWj1VVEMwIik7CiB9CiAKLWludCBkYXRlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBkYXRlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBkYXRlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXRpbWVfdCB0bTsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9kZC5jIGIvY29yZXV0aWxzL2RkLmMKaW5kZXggYjlmNWI0Yy4uZmQ0ZTdlOCAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2RkLmMKKysrIGIvY29yZXV0aWxzL2RkLmMKQEAgLTczLDcgKzczLDcgQEAKICNkZWZpbmUgWEFUT1VfU0ZYIHhhdG91bF9zZngKICNlbmRpZgogCi1pbnQgZGRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGRkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBkZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAllbnVtIHsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9kZi5jIGIvY29yZXV0aWxzL2RmLmMKaW5kZXggNmZlOGUyZi4uYWQ2YTRmMyAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2RmLmMKKysrIGIvY29yZXV0aWxzL2RmLmMKQEAgLTI5LDcgKzI5LDcgQEAKIH0KICNlbmRpZgogCi1pbnQgZGZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGRmX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBkZl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl1bnNpZ25lZCBsb25nIGJsb2Nrc191c2VkOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2Rpcm5hbWUuYyBiL2NvcmV1dGlscy9kaXJuYW1lLmMKaW5kZXggZmQyYzM4MS4uYzBjMDkyNSAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2Rpcm5hbWUuYworKysgYi9jb3JldXRpbHMvZGlybmFtZS5jCkBAIC0xNCw3ICsxNCw3IEBACiAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKLWludCBkaXJuYW1lX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBkaXJuYW1lX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBkaXJuYW1lX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlmIChhcmdjICE9IDIpIHsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9kb3MydW5peC5jIGIvY29yZXV0aWxzL2RvczJ1bml4LmMKaW5kZXggMjgxMTA5OC4uMjk1YmUyOSAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2RvczJ1bml4LmMKKysrIGIvY29yZXV0aWxzL2RvczJ1bml4LmMKQEAgLTc4LDcgKzc4LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotaW50IGRvczJ1bml4X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBkb3MydW5peF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZG9zMnVuaXhfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IG8sIGNvbnZfdHlwZTsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9kdS5jIGIvY29yZXV0aWxzL2R1LmMKaW5kZXggMjY5N2FjZi4uMzk0MTE1MSAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2R1LmMKKysrIGIvY29yZXV0aWxzL2R1LmMKQEAgLTE0MCw3ICsxNDAsNyBAQAogCXJldHVybiBzdW07CiB9CiAKLWludCBkdV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZHVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGR1X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIGxvbmcgdG90YWw7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvZWNoby5jIGIvY29yZXV0aWxzL2VjaG8uYwppbmRleCA4NTFkMmVmLi44NjA4NTNmIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvZWNoby5jCisrKyBiL2NvcmV1dGlscy9lY2hvLmMKQEAgLTExOSw4ICsxMTksOCBAQAogCiAvKiBUaGlzIGlzIGEgTk9GT1JLIGFwcGxldC4gQmUgdmVyeSBjYXJlZnVsISAqLwogCi1pbnQgZWNob19tYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci1pbnQgZWNob19tYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK2ludCBlY2hvX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKK2ludCBlY2hvX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXJldHVybiBiYl9lY2hvKGFyZ3YpOwogfQpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2Vudi5jIGIvY29yZXV0aWxzL2Vudi5jCmluZGV4IDVkMGNkODIuLmI0NWNiY2MgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9lbnYuYworKysgYi9jb3JldXRpbHMvZW52LmMKQEAgLTQxLDggKzQxLDggQEAKIAk7CiAjZW5kaWYKIAotaW50IGVudl9tYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci1pbnQgZW52X21haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoraW50IGVudl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CitpbnQgZW52X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCS8qIGNsZWFuZW52IHdhcyBzdGF0aWMgLSB3aHk/ICovCiAJY2hhciAqY2xlYW5lbnZbMV07CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvZXhwYW5kLmMgYi9jb3JldXRpbHMvZXhwYW5kLmMKaW5kZXggMGVmMTA2ZC4uOTZhNzRhMyAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2V4cGFuZC5jCisrKyBiL2NvcmV1dGlscy9leHBhbmQuYwpAQCAtMTI1LDcgKzEyNSw3IEBACiB9CiAjZW5kaWYKIAotaW50IGV4cGFuZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZXhwYW5kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBleHBhbmRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJLyogRGVmYXVsdCA4IHNwYWNlcyBmb3IgMSB0YWIgKi8KZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9leHByLmMgYi9jb3JldXRpbHMvZXhwci5jCmluZGV4IGMyZDk2NjkuLjk1OWY1MjAgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9leHByLmMKKysrIGIvY29yZXV0aWxzL2V4cHIuYwpAQCAtNDgzLDcgKzQ4Myw3IEBACiAJcmV0dXJuIGw7CiB9CiAKLWludCBleHByX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBleHByX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBleHByX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCVZBTFVFICp2OwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2ZhbHNlLmMgYi9jb3JldXRpbHMvZmFsc2UuYwppbmRleCAwN2NmOWU4Li41YmViNThhIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvZmFsc2UuYworKysgYi9jb3JldXRpbHMvZmFsc2UuYwpAQCAtMTQsNyArMTQsNyBAQAogCiAvKiBUaGlzIGlzIGEgTk9GT1JLIGFwcGxldC4gQmUgdmVyeSBjYXJlZnVsISAqLwogCi1pbnQgZmFsc2VfbWFpbihpbnQgQVRUUklCVVRFX1VOVVNFRCBhcmdjLCBjaGFyIEFUVFJJQlVURV9VTlVTRUQgKiphcmd2KTsKK2ludCBmYWxzZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZmFsc2VfbWFpbihpbnQgQVRUUklCVVRFX1VOVVNFRCBhcmdjLCBjaGFyIEFUVFJJQlVURV9VTlVTRUQgKiphcmd2KQogewogCXJldHVybiBFWElUX0ZBSUxVUkU7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvZm9sZC5jIGIvY29yZXV0aWxzL2ZvbGQuYwppbmRleCBiZjRiMTk4Li5lZDQ4NGVkIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvZm9sZC5jCisrKyBiL2NvcmV1dGlscy9mb2xkLmMKQEAgLTM4LDcgKzM4LDcgQEAKIAlyZXR1cm4gY29sdW1uOwogfQogCi1pbnQgZm9sZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZm9sZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZm9sZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljaGFyICpsaW5lX291dCA9IE5VTEw7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvaGVhZC5jIGIvY29yZXV0aWxzL2hlYWQuYwppbmRleCBhZjllOWY0Li42MjkzMDc3IDEwMDY0NAotLS0gYS9jb3JldXRpbHMvaGVhZC5jCisrKyBiL2NvcmV1dGlscy9oZWFkLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogc3RhdGljIGNvbnN0IGNoYXIgaGVhZGVyX2ZtdF9zdHJbXSBBTElHTjEgPSAiXG49PT4gJXMgPD09XG4iOwogCi1pbnQgaGVhZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgaGVhZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaGVhZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl1bnNpZ25lZCBsb25nIGNvdW50ID0gMTA7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvaG9zdGlkLmMgYi9jb3JldXRpbHMvaG9zdGlkLmMKaW5kZXggN2Q5NjY1MS4uNDMzZWNjYyAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2hvc3RpZC5jCisrKyBiL2NvcmV1dGlscy9ob3N0aWQuYwpAQCAtMTMsNyArMTMsNyBAQAogCiAvKiBUaGlzIGlzIGEgTk9GT1JLIGFwcGxldC4gQmUgdmVyeSBjYXJlZnVsISAqLwogCi1pbnQgaG9zdGlkX21haW4oaW50IGFyZ2MsIGNoYXIgQVRUUklCVVRFX1VOVVNFRCAqKmFyZ3YpOworaW50IGhvc3RpZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaG9zdGlkX21haW4oaW50IGFyZ2MsIGNoYXIgQVRUUklCVVRFX1VOVVNFRCAqKmFyZ3YpCiB7CiAJaWYgKGFyZ2MgPiAxKSB7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvaWQuYyBiL2NvcmV1dGlscy9pZC5jCmluZGV4IGY3MmEwMjcuLjdkYmE4MDIgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9pZC5jCisrKyBiL2NvcmV1dGlscy9pZC5jCkBAIC0zNiw3ICszNiw3IEBACiAJcmV0dXJuIHN0YXR1czsKIH0KIAotaW50IGlkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBpZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaWRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHBhc3N3ZCAqcDsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9pbnN0YWxsLmMgYi9jb3JldXRpbHMvaW5zdGFsbC5jCmluZGV4IDUxNjIwODQuLjRhZGNhZGIgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9pbnN0YWxsLmMKKysrIGIvY29yZXV0aWxzL2luc3RhbGwuYwpAQCAtNjYsNyArNjYsNyBAQAogCiAjZW5kaWYKIAotaW50IGluc3RhbGxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGluc3RhbGxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGluc3RhbGxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9sZW5ndGguYyBiL2NvcmV1dGlscy9sZW5ndGguYwppbmRleCBhMzEwYjNiLi5jNzUyM2EwIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvbGVuZ3RoLmMKKysrIGIvY29yZXV0aWxzL2xlbmd0aC5jCkBAIC02LDcgKzYsNyBAQAogCiAvKiBUaGlzIGlzIGEgTk9GT1JLIGFwcGxldC4gQmUgdmVyeSBjYXJlZnVsISAqLwogCi1pbnQgbGVuZ3RoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBsZW5ndGhfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGxlbmd0aF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpZiAoKGFyZ2MgIT0gMikgfHwgKCoqKCsrYXJndikgPT0gJy0nKSkgewpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2xuLmMgYi9jb3JldXRpbHMvbG4uYwppbmRleCA2NThlMzJlLi5lYjcxNzE5IDEwMDY0NAotLS0gYS9jb3JldXRpbHMvbG4uYworKysgYi9jb3JldXRpbHMvbG4uYwpAQCAtMjIsNyArMjIsNyBAQAogI2RlZmluZSBMTl9CQUNLVVAgICAgICAgICAgIDgKICNkZWZpbmUgTE5fU1VGRklYICAgICAgICAgICAxNgogCi1pbnQgbG5fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGxuX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBsbl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgc3RhdHVzID0gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2xvZ25hbWUuYyBiL2NvcmV1dGlscy9sb2duYW1lLmMKaW5kZXggMmU2MjhiYy4uMDlmZDM5NiAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL2xvZ25hbWUuYworKysgYi9jb3JldXRpbHMvbG9nbmFtZS5jCkBAIC0yNCw3ICsyNCw3IEBACiAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKLWludCBsb2duYW1lX21haW4oaW50IGFyZ2MsIGNoYXIgQVRUUklCVVRFX1VOVVNFRCAqKmFyZ3YpOworaW50IGxvZ25hbWVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGxvZ25hbWVfbWFpbihpbnQgYXJnYywgY2hhciBBVFRSSUJVVEVfVU5VU0VEICoqYXJndikKIHsKIAljaGFyIGJ1ZlsxMjhdOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL2xzLmMgYi9jb3JldXRpbHMvbHMuYwppbmRleCA5MmE5YTI4Li5kYmYxYzViIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvbHMuYworKysgYi9jb3JldXRpbHMvbHMuYwpAQCAtNzgzLDcgKzc4Myw3IEBACiAvKiBUSElTIElTIEEgIlNBRkUiIEFQUExFVCwgbWFpbigpIE1BWSBCRSBDQUxMRUQgSU5URVJOQUxMWSBGUk9NIFNIRUxMICovCiAvKiBCRSBDQVJFRlVMISAqLwogCi1pbnQgbHNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGxzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBsc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgZG5vZGUgKipkbmQ7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvbWQ1X3NoYTFfc3VtLmMgYi9jb3JldXRpbHMvbWQ1X3NoYTFfc3VtLmMKaW5kZXggN2Y4YjA4NC4uZTk0ZjJjZSAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL21kNV9zaGExX3N1bS5jCisrKyBiL2NvcmV1dGlscy9tZDVfc2hhMV9zdW0uYwpAQCAtNzcsNyArNzcsNyBAQAogCXJldHVybiBoYXNoX3ZhbHVlOwogfQogCi1pbnQgbWQ1X3NoYTFfc3VtX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtZDVfc2hhMV9zdW1fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG1kNV9zaGExX3N1bV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgcmV0dXJuX3ZhbHVlID0gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL21rZGlyLmMgYi9jb3JldXRpbHMvbWtkaXIuYwppbmRleCBkMWE0MzgwLi42YmRmNzZkIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvbWtkaXIuYworKysgYi9jb3JldXRpbHMvbWtkaXIuYwpAQCAtMzQsNyArMzQsNyBAQAogCTsKICNlbmRpZgogCi1pbnQgbWtkaXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG1rZGlyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBta2Rpcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAltb2RlX3QgbW9kZSA9IChtb2RlX3QpKC0xKTsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9ta2ZpZm8uYyBiL2NvcmV1dGlscy9ta2ZpZm8uYwppbmRleCBlNjZmODE3Li5kMjk4YWRhIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvbWtmaWZvLmMKKysrIGIvY29yZXV0aWxzL21rZmlmby5jCkBAIC0xMyw3ICsxMyw3IEBACiAjaW5jbHVkZSAibGliYmIuaCIKICNpbmNsdWRlICJsaWJjb3JldXRpbHMvY29yZXV0aWxzLmgiCiAKLWludCBta2ZpZm9fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG1rZmlmb19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbWtmaWZvX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCW1vZGVfdCBtb2RlOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL21rbm9kLmMgYi9jb3JldXRpbHMvbWtub2QuYwppbmRleCBhODc2ZGFhLi5lZTUzOWUzIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvbWtub2QuYworKysgYi9jb3JldXRpbHMvbWtub2QuYwpAQCAtMTcsNyArMTcsNyBAQAogc3RhdGljIGNvbnN0IGNoYXIgbW9kZXNfY2hhcnNbXSBBTElHTjEgPSB7ICdwJywgJ2MnLCAndScsICdiJywgMCwgMSwgMSwgMiB9Owogc3RhdGljIGNvbnN0IG1vZGVfdCBtb2Rlc19jdWJwW10gPSB7IFNfSUZJRk8sIFNfSUZDSFIsIFNfSUZCTEsgfTsKIAotaW50IG1rbm9kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBta25vZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbWtub2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJbW9kZV90IG1vZGU7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvbXYuYyBiL2NvcmV1dGlscy9tdi5jCmluZGV4IGQxM2Y0ZDUuLjVkMGI1MTUgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9tdi5jCisrKyBiL2NvcmV1dGlscy9tdi5jCkBAIC0zMyw3ICszMyw3IEBACiBzdGF0aWMgY29uc3QgY2hhciBmbXRbXSBBTElHTjEgPQogCSJjYW5ub3Qgb3ZlcndyaXRlICVzZGlyZWN0b3J5IHdpdGggJXNkaXJlY3RvcnkiOwogCi1pbnQgbXZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG12X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBtdl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3Qgc3RhdCBkZXN0X3N0YXQ7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvbmljZS5jIGIvY29yZXV0aWxzL25pY2UuYwppbmRleCAwY2IzMWU0Li5kMjRhOTViIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvbmljZS5jCisrKyBiL2NvcmV1dGlscy9uaWNlLmMKQEAgLTEwLDcgKzEwLDcgQEAKICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlICJsaWJiYi5oIgogCi1pbnQgbmljZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbmljZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbmljZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgb2xkX3ByaW9yaXR5LCBhZGp1c3RtZW50OwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL25vaHVwLmMgYi9jb3JldXRpbHMvbm9odXAuYwppbmRleCBlMjdiZDJlLi5kYThmNThjIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvbm9odXAuYworKysgYi9jb3JldXRpbHMvbm9odXAuYwpAQCAtMTIsNyArMTIsNyBAQAogCiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IG5vaHVwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBub2h1cF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbm9odXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IG51bGxmZDsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9vZC5jIGIvY29yZXV0aWxzL29kLmMKaW5kZXggMTE0YTc0Ni4uODVlOTc5ZiAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL29kLmMKKysrIGIvY29yZXV0aWxzL29kLmMKQEAgLTE1Niw3ICsxNTYsNyBAQAogCTB4YiwgMSwgOCwgOSwKIH07CiAKLWludCBvZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgb2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG9kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBjaDsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9vZF9ibG9hdHkuYyBiL2NvcmV1dGlscy9vZF9ibG9hdHkuYwppbmRleCAxYmQxYjBjLi45NjU1YzIzIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvb2RfYmxvYXR5LmMKKysrIGIvY29yZXV0aWxzL29kX2Jsb2F0eS5jCkBAIC0xMTk2LDcgKzExOTYsNyBAQAogCWNoZWNrX2FuZF9jbG9zZSgpOwogfQogCi1pbnQgb2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG9kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBvZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IHN1ZmZpeF9tdWx0IGJrbVtdID0gewpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL3ByaW50ZW52LmMgYi9jb3JldXRpbHMvcHJpbnRlbnYuYwppbmRleCAxOWZhODMyLi5iYWM3N2UyIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvcHJpbnRlbnYuYworKysgYi9jb3JldXRpbHMvcHJpbnRlbnYuYwpAQCAtMTEsNyArMTEsNyBAQAogI2luY2x1ZGUgImxpYmJiLmgiCiBleHRlcm4gY2hhciAqKmVudmlyb247CiAKLWludCBwcmludGVudl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcHJpbnRlbnZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHByaW50ZW52X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCS8qIG5vIHZhcmlhYmxlcyBzcGVjaWZpZWQsIHNob3cgd2hvbGUgZW52ICovCmRpZmYgLS1naXQgYS9jb3JldXRpbHMvcHJpbnRmLmMgYi9jb3JldXRpbHMvcHJpbnRmLmMKaW5kZXggZDVlZjMyZS4uYTllZjYxZiAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3ByaW50Zi5jCisrKyBiL2NvcmV1dGlscy9wcmludGYuYwpAQCAtMjg1LDcgKzI4NSw3IEBACiAJcmV0dXJuIHNhdmVfYXJnYyAtIGFyZ2M7CiB9CiAKLWludCBwcmludGZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHByaW50Zl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcHJpbnRmX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKmZvcm1hdDsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9wd2QuYyBiL2NvcmV1dGlscy9wd2QuYwppbmRleCA3M2E5ZDViLi5hYzYwNGRiIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvcHdkLmMKKysrIGIvY29yZXV0aWxzL3B3ZC5jCkBAIC0xMSw3ICsxMSw3IEBACiAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKLWludCBwd2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHB3ZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcHdkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKmJ1ZjsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9yZWFkbGluay5jIGIvY29yZXV0aWxzL3JlYWRsaW5rLmMKaW5kZXggMzllZGMwNS4uYjZlMzg5YSAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3JlYWRsaW5rLmMKKysrIGIvY29yZXV0aWxzL3JlYWRsaW5rLmMKQEAgLTExLDcgKzExLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCByZWFkbGlua19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcmVhZGxpbmtfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHJlYWRsaW5rX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKmJ1ZjsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9yZWFscGF0aC5jIGIvY29yZXV0aWxzL3JlYWxwYXRoLmMKaW5kZXggOWM0Mjk4Ny4uYmNiNzNhOCAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3JlYWxwYXRoLmMKKysrIGIvY29yZXV0aWxzL3JlYWxwYXRoLmMKQEAgLTEyLDcgKzEyLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCByZWFscGF0aF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcmVhbHBhdGhfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHJlYWxwYXRoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCByZXR2YWwgPSBFWElUX1NVQ0NFU1M7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvcm0uYyBiL2NvcmV1dGlscy9ybS5jCmluZGV4IGE2ODZmYzQuLmExMjMxNTYgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9ybS5jCisrKyBiL2NvcmV1dGlscy9ybS5jCkBAIC0xOSw3ICsxOSw3IEBACiAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKLWludCBybV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcm1fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHJtX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBzdGF0dXMgPSAwOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL3JtZGlyLmMgYi9jb3JldXRpbHMvcm1kaXIuYwppbmRleCAzMTU0MDFlLi43MWQyOWRkIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvcm1kaXIuYworKysgYi9jb3JldXRpbHMvcm1kaXIuYwpAQCAtMTYsNyArMTYsNyBAQAogLyogVGhpcyBpcyBhIE5PRk9SSyBhcHBsZXQuIEJlIHZlcnkgY2FyZWZ1bCEgKi8KIAogCi1pbnQgcm1kaXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHJtZGlyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBybWRpcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgc3RhdHVzID0gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL3NlcS5jIGIvY29yZXV0aWxzL3NlcS5jCmluZGV4IDA1MGMzMzMuLjAxZDcxZjIgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9zZXEuYworKysgYi9jb3JldXRpbHMvc2VxLmMKQEAgLTEyLDcgKzEyLDcgQEAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKIAotaW50IHNlcV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgc2VxX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzZXFfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJZG91YmxlIGxhc3QsIGluY3JlbWVudCwgaTsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9zbGVlcC5jIGIvY29yZXV0aWxzL3NsZWVwLmMKaW5kZXggMjZjZGJjNC4uNjg5MGUzNSAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3NsZWVwLmMKKysrIGIvY29yZXV0aWxzL3NsZWVwLmMKQEAgLTMzLDcgKzMzLDcgQEAKIH07CiAjZW5kaWYKIAotaW50IHNsZWVwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzbGVlcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc2xlZXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5zaWduZWQgZHVyYXRpb247CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvc29ydC5jIGIvY29yZXV0aWxzL3NvcnQuYwppbmRleCAzMTFjNzc0Li4zMTMyMzQ2IDEwMDY0NAotLS0gYS9jb3JldXRpbHMvc29ydC5jCisrKyBiL2NvcmV1dGlscy9zb3J0LmMKQEAgLTI3NCw3ICsyNzQsNyBAQAogfQogI2VuZGlmCiAKLWludCBzb3J0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzb3J0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzb3J0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCUZJTEUgKmZwLCAqb3V0ZmlsZSA9IHN0ZG91dDsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9zcGxpdC5jIGIvY29yZXV0aWxzL3NwbGl0LmMKaW5kZXggNmQ4OTI0YS4uNTFhNjMxYyAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3NwbGl0LmMKKysrIGIvY29yZXV0aWxzL3NwbGl0LmMKQEAgLTU1LDcgKzU1LDcgQEAKICNkZWZpbmUgU1BMSVRfT1BUX2IgKDE8PDEpCiAjZGVmaW5lIFNQTElUX09QVF9hICgxPDwyKQogCi1pbnQgc3BsaXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHNwbGl0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzcGxpdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl1bnNpZ25lZCBzdWZmaXhfbGVuID0gMjsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9zdGF0LmMgYi9jb3JldXRpbHMvc3RhdC5jCmluZGV4IGVkNjU4MGUuLmE1YTMwNTQgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy9zdGF0LmMKKysrIGIvY29yZXV0aWxzL3N0YXQuYwpAQCAtNjA5LDcgKzYwOSw3IEBACiAJcmV0dXJuIDE7CiB9CiAKLWludCBzdGF0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzdGF0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzdGF0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKmZvcm1hdCA9IE5VTEw7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvc3R0eS5jIGIvY29yZXV0aWxzL3N0dHkuYwppbmRleCAxZjBkNDIyLi44YWQxMmU2IDEwMDY0NAotLS0gYS9jb3JldXRpbHMvc3R0eS5jCisrKyBiL2NvcmV1dGlscy9zdHR5LmMKQEAgLTkxMSw3ICs5MTEsNyBAQAogI2RlZmluZSBTVFRZX3ZlcmJvc2Vfb3V0cHV0ICAgICAoMTw8MikKICNkZWZpbmUgU1RUWV9yZWNvdmVyYWJsZV9vdXRwdXQgKDE8PDMpCiAjZGVmaW5lIFNUVFlfbm9hcmdzICAgICAgICAgICAgICgxPDw0KQotaW50IHN0dHlfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHN0dHlfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHN0dHlfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHRlcm1pb3MgbW9kZTsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy9zdW0uYyBiL2NvcmV1dGlscy9zdW0uYwppbmRleCBhNzVkZDMyLi42NTQ3OGIwIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvc3VtLmMKKysrIGIvY29yZXV0aWxzL3N1bS5jCkBAIC03NCw3ICs3NCw3IEBACiAjdW5kZWYgYnVmCiB9CiAKLWludCBzdW1fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHN1bV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc3VtX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIG47CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvc3luYy5jIGIvY29yZXV0aWxzL3N5bmMuYwppbmRleCBkNTYyZjNmLi45ZGJkZDk4IDEwMDY0NAotLS0gYS9jb3JldXRpbHMvc3luYy5jCisrKyBiL2NvcmV1dGlscy9zeW5jLmMKQEAgLTEzLDcgKzEzLDcgQEAKIAogLyogVGhpcyBpcyBhIE5PRk9SSyBhcHBsZXQuIEJlIHZlcnkgY2FyZWZ1bCEgKi8KIAotaW50IHN5bmNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHN5bmNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHN5bmNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJYmJfd2Fybl9pZ25vcmluZ19hcmdzKGFyZ2MgLSAxKTsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy90YWlsLmMgYi9jb3JldXRpbHMvdGFpbC5jCmluZGV4IDUzZGJmMzMuLmJlZWNiYWUgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy90YWlsLmMKKysrIGIvY29yZXV0aWxzL3RhaWwuYwpAQCAtNzksNyArNzksNyBAQAogCXJldHVybiB4YXRvdV9zZngocCwgdGFpbF9zdWZmaXhlcyk7CiB9CiAKLWludCB0YWlsX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB0YWlsX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB0YWlsX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIGNvdW50ID0gMTA7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvdGVlLmMgYi9jb3JldXRpbHMvdGVlLmMKaW5kZXggODMxMzI1OC4uMTNmYjRhMyAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3RlZS5jCisrKyBiL2NvcmV1dGlscy90ZWUuYwpAQCAtMTMsNyArMTMsNyBAQAogI2luY2x1ZGUgImxpYmJiLmgiCiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAKLWludCB0ZWVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHRlZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdGVlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNvbnN0IGNoYXIgKm1vZGUgPSAid1wwYSI7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvdG91Y2guYyBiL2NvcmV1dGlscy90b3VjaC5jCmluZGV4IGQ4NDk4ZDguLjFiODNkYzQgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy90b3VjaC5jCisrKyBiL2NvcmV1dGlscy90b3VjaC5jCkBAIC0yMSw3ICsyMSw3IEBACiAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKLWludCB0b3VjaF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdG91Y2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHRvdWNoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBmZDsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy90ci5jIGIvY29yZXV0aWxzL3RyLmMKaW5kZXggNmEzNGUzMC4uOTUyMWJiYyAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3RyLmMKKysrIGIvY29yZXV0aWxzL3RyLmMKQEAgLTE2NSw3ICsxNjUsNyBAQAogCXJldHVybiBpeDsKIH0KIAotaW50IHRyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB0cl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdHJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5zaWduZWQgY2hhciAqcHRyOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL3RydWUuYyBiL2NvcmV1dGlscy90cnVlLmMKaW5kZXggOWRjZDY5YS4uMmI1OTE5MyAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3RydWUuYworKysgYi9jb3JldXRpbHMvdHJ1ZS5jCkBAIC0xNCw3ICsxNCw3IEBACiAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKLWludCB0cnVlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB0cnVlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB0cnVlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXJldHVybiBFWElUX1NVQ0NFU1M7CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvdHR5LmMgYi9jb3JldXRpbHMvdHR5LmMKaW5kZXggZDhjZTc4Yy4uYjBhNTBmZiAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3R0eS5jCisrKyBiL2NvcmV1dGlscy90dHkuYwpAQCAtMTIsNyArMTIsNyBAQAogCiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IHR0eV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdHR5X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB0dHlfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY29uc3QgY2hhciAqczsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy91bmFtZS5jIGIvY29yZXV0aWxzL3VuYW1lLmMKaW5kZXggZTcwYjFmOS4uMmVlY2I1ZCAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3VuYW1lLmMKKysrIGIvY29yZXV0aWxzL3VuYW1lLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlvZmZzZXRvZih1bmFtZV9pbmZvX3QscHJvY2Vzc29yKQogfTsKIAotaW50IHVuYW1lX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB1bmFtZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdW5hbWVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5hbWVfaW5mb190IHVuYW1lX2luZm87CmRpZmYgLS1naXQgYS9jb3JldXRpbHMvdW5pcS5jIGIvY29yZXV0aWxzL3VuaXEuYwppbmRleCA3MTliYmI1Li5jZGExZTYxIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvdW5pcS5jCisrKyBiL2NvcmV1dGlscy91bmlxLmMKQEAgLTI3LDcgKzI3LDcgQEAKIAlyZXR1cm4gKHJlYWQwd3JpdGUyKSA/IHN0ZG91dCA6IHN0ZGluOwogfQogCi1pbnQgdW5pcV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdW5pcV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdW5pcV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlGSUxFICppbiwgKm91dDsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy91c2xlZXAuYyBiL2NvcmV1dGlscy91c2xlZXAuYwppbmRleCBlMGNkNTZlLi4xYzkwMjIzIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvdXNsZWVwLmMKKysrIGIvY29yZXV0aWxzL3VzbGVlcC5jCkBAIC0xMyw3ICsxMyw3IEBACiAKIC8qIFRoaXMgaXMgYSBOT0ZPUksgYXBwbGV0LiBCZSB2ZXJ5IGNhcmVmdWwhICovCiAKLWludCB1c2xlZXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHVzbGVlcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdXNsZWVwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlmIChhcmdjICE9IDIpIHsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy91dWRlY29kZS5jIGIvY29yZXV0aWxzL3V1ZGVjb2RlLmMKaW5kZXggN2E1MmJkYi4uNDY4MzY2MiAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3V1ZGVjb2RlLmMKKysrIGIvY29yZXV0aWxzL3V1ZGVjb2RlLmMKQEAgLTEyNiw3ICsxMjYsNyBAQAogCX0KIH0KIAotaW50IHV1ZGVjb2RlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB1dWRlY29kZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdXVkZWNvZGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJRklMRSAqc3JjX3N0cmVhbSA9IHN0ZGluOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL3V1ZW5jb2RlLmMgYi9jb3JldXRpbHMvdXVlbmNvZGUuYwppbmRleCAxN2RlZjhkLi5lMTlmOTk2IDEwMDY0NAotLS0gYS9jb3JldXRpbHMvdXVlbmNvZGUuYworKysgYi9jb3JldXRpbHMvdXVlbmNvZGUuYwpAQCAtMTUsNyArMTUsNyBAQAogCURTVF9CVUZfU0laRSA9IDQgKiAoKFNSQ19CVUZfU0laRSArIDIpIC8gMyksCiB9OwogCi1pbnQgdXVlbmNvZGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHV1ZW5jb2RlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB1dWVuY29kZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3Qgc3RhdCBzdGF0X2J1ZjsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy93Yy5jIGIvY29yZXV0aWxzL3djLmMKaW5kZXggYzhhNDg2NS4uMjkxYWY0MSAxMDA2NDQKLS0tIGEvY29yZXV0aWxzL3djLmMKKysrIGIvY29yZXV0aWxzL3djLmMKQEAgLTY4LDcgKzY4LDcgQEAKIAlXQ19MRU5HVEgJPSAzCiB9OwogCi1pbnQgd2NfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHdjX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB3Y19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlGSUxFICpmcDsKZGlmZiAtLWdpdCBhL2NvcmV1dGlscy93aG8uYyBiL2NvcmV1dGlscy93aG8uYwppbmRleCA1NDYwNTBhLi42ZTc3MTBjIDEwMDY0NAotLS0gYS9jb3JldXRpbHMvd2hvLmMKKysrIGIvY29yZXV0aWxzL3doby5jCkBAIC0zOSw3ICszOSw3IEBACiAJc3RyY3B5KHN0cjYsICJvbGQiKTsKIH0KIAotaW50IHdob19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgd2hvX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB3aG9fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciBzdHI2WzZdOwpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL3dob2FtaS5jIGIvY29yZXV0aWxzL3dob2FtaS5jCmluZGV4IDM3MTgzNTguLmUyZmRmYzkgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy93aG9hbWkuYworKysgYi9jb3JldXRpbHMvd2hvYW1pLmMKQEAgLTEzLDcgKzEzLDcgQEAKIAogLyogVGhpcyBpcyBhIE5PRk9SSyBhcHBsZXQuIEJlIHZlcnkgY2FyZWZ1bCEgKi8KIAotaW50IHdob2FtaV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgd2hvYW1pX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB3aG9hbWlfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaWYgKGFyZ2MgPiAxKQpkaWZmIC0tZ2l0IGEvY29yZXV0aWxzL3llcy5jIGIvY29yZXV0aWxzL3llcy5jCmluZGV4IDU1MjllYWIuLjI2OWQyYTAgMTAwNjQ0Ci0tLSBhL2NvcmV1dGlscy95ZXMuYworKysgYi9jb3JldXRpbHMveWVzLmMKQEAgLTE4LDcgKzE4LDcgQEAKIAogLyogVGhpcyBpcyBhIE5PRk9SSyBhcHBsZXQuIEJlIHZlcnkgY2FyZWZ1bCEgKi8KIAotaW50IHllc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgeWVzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB5ZXNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqKmZpcnN0X2FyZzsKZGlmZiAtLWdpdCBhL2RlYmlhbnV0aWxzL21rdGVtcC5jIGIvZGViaWFudXRpbHMvbWt0ZW1wLmMKaW5kZXggMWM3MWMyZS4uNTc3MmFkOSAxMDA2NDQKLS0tIGEvZGViaWFudXRpbHMvbWt0ZW1wLmMKKysrIGIvZGViaWFudXRpbHMvbWt0ZW1wLmMKQEAgLTExLDcgKzExLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBta3RlbXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG1rdGVtcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbWt0ZW1wX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBnZXRvcHQzMihhcmd2LCAiZHF0Iik7CmRpZmYgLS1naXQgYS9kZWJpYW51dGlscy9waXBlX3Byb2dyZXNzLmMgYi9kZWJpYW51dGlscy9waXBlX3Byb2dyZXNzLmMKaW5kZXggYWM4ZmI1MC4uNGJmZGY2YSAxMDA2NDQKLS0tIGEvZGViaWFudXRpbHMvcGlwZV9wcm9ncmVzcy5jCisrKyBiL2RlYmlhbnV0aWxzL3BpcGVfcHJvZ3Jlc3MuYwpAQCAtMTQsNyArMTQsNyBAQAogLyogUmVhZCBhIGJsb2NrIG9mIGRhdGEgZnJvbSBzdGRpbiwgd3JpdGUgaXQgdG8gc3Rkb3V0LgogICogQWN0aXZpdHkgaXMgaW5kaWNhdGVkIGJ5IGEgJy4nIHRvIHN0ZGVycgogICovCi1pbnQgcGlwZV9wcm9ncmVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcGlwZV9wcm9ncmVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcGlwZV9wcm9ncmVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlSRVNFUlZFX0NPTkZJR19CVUZGRVIoYnVmLCBQSVBFX1BST0dSRVNTX1NJWkUpOwpkaWZmIC0tZ2l0IGEvZGViaWFudXRpbHMvcnVuX3BhcnRzLmMgYi9kZWJpYW51dGlscy9ydW5fcGFydHMuYwppbmRleCA1NmY3MGM2Li4zMzg4MTdmIDEwMDY0NAotLS0gYS9kZWJpYW51dGlscy9ydW5fcGFydHMuYworKysgYi9kZWJpYW51dGlscy9ydW5fcGFydHMuYwpAQCAtMTEwLDcgKzExMCw3IEBACiAJOwogI2VuZGlmCiAKLWludCBydW5fcGFydHNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHJ1bl9wYXJ0c19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcnVuX3BhcnRzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNvbnN0IGNoYXIgKnVtYXNrX3AgPSAiMjIiOwpkaWZmIC0tZ2l0IGEvZGViaWFudXRpbHMvc3RhcnRfc3RvcF9kYWVtb24uYyBiL2RlYmlhbnV0aWxzL3N0YXJ0X3N0b3BfZGFlbW9uLmMKaW5kZXggNzYzM2NiMC4uNjg2MGJhYiAxMDA2NDQKLS0tIGEvZGViaWFudXRpbHMvc3RhcnRfc3RvcF9kYWVtb24uYworKysgYi9kZWJpYW51dGlscy9zdGFydF9zdG9wX2RhZW1vbi5jCkBAIC0yMzQsNyArMjM0LDcgQEAKIAlPUFRfTklDRUxFVkVMICA9IDB4NDAwMCAqIEVOQUJMRV9GRUFUVVJFX1NUQVJUX1NUT1BfREFFTU9OX0ZBTkNZLCAvLyAtTgogfTsKIAotaW50IHN0YXJ0X3N0b3BfZGFlbW9uX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzdGFydF9zdG9wX2RhZW1vbl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc3RhcnRfc3RvcF9kYWVtb25fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5zaWduZWQgb3B0OwpkaWZmIC0tZ2l0IGEvZGViaWFudXRpbHMvd2hpY2guYyBiL2RlYmlhbnV0aWxzL3doaWNoLmMKaW5kZXggYjU1NmE5Zi4uODgzODEzMCAxMDA2NDQKLS0tIGEvZGViaWFudXRpbHMvd2hpY2guYworKysgYi9kZWJpYW51dGlscy93aGljaC5jCkBAIC0xMiw3ICsxMiw3IEBACiAKICNpbmNsdWRlICJsaWJiYi5oIgogCi1pbnQgd2hpY2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHdoaWNoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB3aGljaF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgc3RhdHVzID0gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvZG9jcy9uZXctYXBwbGV0LUhPV1RPLnR4dCBiL2RvY3MvbmV3LWFwcGxldC1IT1dUTy50eHQKaW5kZXggMDVmZjkyZi4uMzdhNzhlOSAxMDA2NDQKLS0tIGEvZG9jcy9uZXctYXBwbGV0LUhPV1RPLnR4dAorKysgYi9kb2NzL25ldy1hcHBsZXQtSE9XVE8udHh0CkBAIC00Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAibGliYmIuaCIKICNpbmNsdWRlICJvdGhlci5oIgogCi1pbnQgbXVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG11X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBtdV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgZmQ7CmRpZmYgLS1naXQgYS9lMmZzcHJvZ3MvY2hhdHRyLmMgYi9lMmZzcHJvZ3MvY2hhdHRyLmMKaW5kZXggMzU0MjRmOC4uZGI1NDM3MiAxMDA2NDQKLS0tIGEvZTJmc3Byb2dzL2NoYXR0ci5jCisrKyBiL2UyZnNwcm9ncy9jaGF0dHIuYwpAQCAtMTQyLDcgKzE0Miw3IEBACiAJCWl0ZXJhdGVfb25fZGlyKG5hbWUsIGNoYXR0cl9kaXJfcHJvYywgZ3ApOwogfQogCi1pbnQgY2hhdHRyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjaGF0dHJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNoYXR0cl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgZ2xvYmFscyBnOwpkaWZmIC0tZ2l0IGEvZTJmc3Byb2dzL2ZzY2suYyBiL2UyZnNwcm9ncy9mc2NrLmMKaW5kZXggMTEwYjNkMi4uZjgwZGU4MSAxMDA2NDQKLS0tIGEvZTJmc3Byb2dzL2ZzY2suYworKysgYi9lMmZzcHJvZ3MvZnNjay5jCkBAIC0xMTUzLDcgKzExNTMsNyBAQAogCWNhbmNlbF9yZXF1ZXN0ZWQgPSAxOwogfQogCi1pbnQgZnNja19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZnNja19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZnNja19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgaSwgc3RhdHVzID0gMDsKZGlmZiAtLWdpdCBhL2UyZnNwcm9ncy9sc2F0dHIuYyBiL2UyZnNwcm9ncy9sc2F0dHIuYwppbmRleCA1ZjRmODcyLi42ZjRiOTc0IDEwMDY0NAotLS0gYS9lMmZzcHJvZ3MvbHNhdHRyLmMKKysrIGIvZTJmc3Byb2dzL2xzYXR0ci5jCkBAIC05NSw3ICs5NSw3IEBACiAJfQogfQogCi1pbnQgbHNhdHRyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBsc2F0dHJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGxzYXR0cl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlnZXRvcHQzMihhcmd2LCAiUmFkbHYiKTsKZGlmZiAtLWdpdCBhL2UyZnNwcm9ncy9vbGRfZTJmc3Byb2dzL2NoYXR0ci5jIGIvZTJmc3Byb2dzL29sZF9lMmZzcHJvZ3MvY2hhdHRyLmMKaW5kZXggYjkzMzkzOC4uYWUzOWQ5MiAxMDA2NDQKLS0tIGEvZTJmc3Byb2dzL29sZF9lMmZzcHJvZ3MvY2hhdHRyLmMKKysrIGIvZTJmc3Byb2dzL29sZF9lMmZzcHJvZ3MvY2hhdHRyLmMKQEAgLTE3MCw3ICsxNzAsNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgY2hhdHRyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjaGF0dHJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNoYXR0cl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgaTsKZGlmZiAtLWdpdCBhL2UyZnNwcm9ncy9vbGRfZTJmc3Byb2dzL2ZzY2suYyBiL2UyZnNwcm9ncy9vbGRfZTJmc3Byb2dzL2ZzY2suYwppbmRleCA3ZTczODM4Li5kNDkxNGE1IDEwMDY0NAotLS0gYS9lMmZzcHJvZ3Mvb2xkX2UyZnNwcm9ncy9mc2NrLmMKKysrIGIvZTJmc3Byb2dzL29sZF9lMmZzcHJvZ3MvZnNjay5jCkBAIC0xMzIxLDcgKzEzMjEsNyBAQAogCSAgICBtYXhfcnVubmluZyA9IGF0b2kodG1wKTsKIH0KIAotaW50IGZzY2tfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGZzY2tfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGZzY2tfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGksIHN0YXR1cyA9IDA7CmRpZmYgLS1naXQgYS9lMmZzcHJvZ3Mvb2xkX2UyZnNwcm9ncy9sc2F0dHIuYyBiL2UyZnNwcm9ncy9vbGRfZTJmc3Byb2dzL2xzYXR0ci5jCmluZGV4IGJiYzAzYWEuLjI3N2VjN2MgMTAwNjQ0Ci0tLSBhL2UyZnNwcm9ncy9vbGRfZTJmc3Byb2dzL2xzYXR0ci5jCisrKyBiL2UyZnNwcm9ncy9vbGRfZTJmc3Byb2dzL2xzYXR0ci5jCkBAIC0xMTIsNyArMTEyLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotaW50IGxzYXR0cl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbHNhdHRyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBsc2F0dHJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9lMmZzcHJvZ3Mvb2xkX2UyZnNwcm9ncy90dW5lMmZzLmMgYi9lMmZzcHJvZ3Mvb2xkX2UyZnNwcm9ncy90dW5lMmZzLmMKaW5kZXggOTIwYTUwYy4uYzVjODRkNiAxMDA2NDQKLS0tIGEvZTJmc3Byb2dzL29sZF9lMmZzcHJvZ3MvdHVuZTJmcy5jCisrKyBiL2UyZnNwcm9ncy9vbGRfZTJmc3Byb2dzL3R1bmUyZnMuYwpAQCAtNTc3LDcgKzU3Nyw3IEBACiAJaWYgKEVOQUJMRV9GRUFUVVJFX0NMRUFOX1VQICYmIGpvdXJuYWxfZGV2aWNlKSBmcmVlKGpvdXJuYWxfZGV2aWNlKTsKIH0KIAotaW50IHR1bmUyZnNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHR1bmUyZnNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHR1bmUyZnNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJZXJyY29kZV90IHJldHZhbDsKZGlmZiAtLWdpdCBhL2VkaXRvcnMvYXdrLmMgYi9lZGl0b3JzL2F3ay5jCmluZGV4IGE4MjBjN2EuLmRhMzQwMWIgMTAwNjQ0Ci0tLSBhL2VkaXRvcnMvYXdrLmMKKysrIGIvZWRpdG9ycy9hd2suYwpAQCAtMjc1Miw3ICsyNzUyLDcgQEAKICN1bmRlZiBmaWxlc19oYXBwZW4KIH0KIAotaW50IGF3a19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgYXdrX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBhd2tfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5zaWduZWQgb3B0OwpkaWZmIC0tZ2l0IGEvZWRpdG9ycy9jbXAuYyBiL2VkaXRvcnMvY21wLmMKaW5kZXggMzRhMGRlNS4uNmRmZTA0MCAxMDA2NDQKLS0tIGEvZWRpdG9ycy9jbXAuYworKysgYi9lZGl0b3JzL2NtcC5jCkBAIC00Miw3ICs0Miw3IEBACiAjZGVmaW5lIENNUF9PUFRfcyAoMTw8MCkKICNkZWZpbmUgQ01QX09QVF9sICgxPDwxKQogCi1pbnQgY21wX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjbXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNtcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlGSUxFICpmcDEsICpmcDIsICpvdXRmaWxlID0gc3Rkb3V0OwpkaWZmIC0tZ2l0IGEvZWRpdG9ycy9kaWZmLmMgYi9lZGl0b3JzL2RpZmYuYwppbmRleCAzYTY5NGUwLi5jMTU4Yzg3IDEwMDY0NAotLS0gYS9lZGl0b3JzL2RpZmYuYworKysgYi9lZGl0b3JzL2RpZmYuYwpAQCAtMTIwNyw3ICsxMjA3LDcgQEAKICNlbmRpZgogCiAKLWludCBkaWZmX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBkaWZmX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBkaWZmX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWJvb2wgZ290c3RkaW4gPSAwOwpkaWZmIC0tZ2l0IGEvZWRpdG9ycy9lZC5jIGIvZWRpdG9ycy9lZC5jCmluZGV4IDMxMTg1ZDkuLmNjZWZmMGMgMTAwNjQ0Ci0tLSBhL2VkaXRvcnMvZWQuYworKysgYi9lZGl0b3JzL2VkLmMKQEAgLTg4LDcgKzg4LDcgQEAKIH0KIAogCi1pbnQgZWRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGVkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBlZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlJTklUX0coKTsKZGlmZiAtLWdpdCBhL2VkaXRvcnMvcGF0Y2guYyBiL2VkaXRvcnMvcGF0Y2guYwppbmRleCA2NTc5MWRmLi4wN2ZhNWNmIDEwMDY0NAotLS0gYS9lZGl0b3JzL3BhdGNoLmMKKysrIGIvZWRpdG9ycy9wYXRjaC5jCkBAIC03Nyw3ICs3Nyw3IEBACiAJcmV0dXJuIHN0YXQoZmlsZW5hbWUsICZzdGF0YnVmKTsKIH0KIAotaW50IHBhdGNoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBwYXRjaF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcGF0Y2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IHBhdGNoX2xldmVsID0gLTE7CmRpZmYgLS1naXQgYS9lZGl0b3JzL3NlZC5jIGIvZWRpdG9ycy9zZWQuYwppbmRleCBkY2RmMzgyLi5mNzVmY2VlIDEwMDY0NAotLS0gYS9lZGl0b3JzL3NlZC5jCisrKyBiL2VkaXRvcnMvc2VkLmMKQEAgLTEyMjMsNyArMTIyMyw3IEBACiAJZnJlZShzdik7CiB9CiAKLWludCBzZWRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHNlZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc2VkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWVudW0gewpkaWZmIC0tZ2l0IGEvZWRpdG9ycy92aS5jIGIvZWRpdG9ycy92aS5jCmluZGV4IDI1YzgyMzQuLjI0OWJmMjkgMTAwNjQ0Ci0tLSBhL2VkaXRvcnMvdmkuYworKysgYi9lZGl0b3JzL3ZpLmMKQEAgLTMxMSw3ICszMTEsNyBAQAogCWZwdXRzKG91dCwgc3Rkb3V0KTsKIH0KIAotaW50IHZpX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB2aV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdmlfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGM7CmRpZmYgLS1naXQgYS9maW5kdXRpbHMvZmluZC5jIGIvZmluZHV0aWxzL2ZpbmQuYwppbmRleCBiNjE4ODE0Li45ZWZlMmRiIDEwMDY0NAotLS0gYS9maW5kdXRpbHMvZmluZC5jCisrKyBiL2ZpbmR1dGlscy9maW5kLmMKQEAgLTc5NCw3ICs3OTQsNyBAQAogfQogCiAKLWludCBmaW5kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBmaW5kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBmaW5kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbnNbXSBBTElHTjEgPQpkaWZmIC0tZ2l0IGEvZmluZHV0aWxzL2dyZXAuYyBiL2ZpbmR1dGlscy9ncmVwLmMKaW5kZXggMmQ4ODZhMC4uZmM0MGJlMiAxMDA2NDQKLS0tIGEvZmluZHV0aWxzL2dyZXAuYworKysgYi9maW5kdXRpbHMvZ3JlcC5jCkBAIC0zOTMsNyArMzkzLDcgQEAKIAlyZXR1cm4gbWF0Y2hlZDsKIH0KIAotaW50IGdyZXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGdyZXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGdyZXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJRklMRSAqZmlsZTsKZGlmZiAtLWdpdCBhL2ZpbmR1dGlscy94YXJncy5jIGIvZmluZHV0aWxzL3hhcmdzLmMKaW5kZXggZjdjNzgzMi4uZWUxNmVhNiAxMDA2NDQKLS0tIGEvZmluZHV0aWxzL3hhcmdzLmMKKysrIGIvZmluZHV0aWxzL3hhcmdzLmMKQEAgLTM3Myw3ICszNzMsNyBAQAogCVVTRV9GRUFUVVJFX1hBUkdTX1NVUFBPUlRfVEVSTU9QVCggICAgICJ4IikgXAogCVVTRV9GRUFUVVJFX1hBUkdTX1NVUFBPUlRfWkVST19URVJNKCAgICIwIikKIAotaW50IHhhcmdzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB4YXJnc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgeGFyZ3NfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqKmFyZ3M7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FwcGxldHMuaCBiL2luY2x1ZGUvYXBwbGV0cy5oCmluZGV4IGFjM2Y2NWYuLmNlYWIwMDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXBwbGV0cy5oCisrKyBiL2luY2x1ZGUvYXBwbGV0cy5oCkBAIC0yNCwxMSArMjQsMTEgQEAKICovCiAKICNpZiBkZWZpbmVkKFBST1RPVFlQRVMpCi0jIGRlZmluZSBBUFBMRVQobmFtZSxsLHMpICAgICAgICAgICAgICAgICAgICBpbnQgbmFtZSMjX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKLSMgZGVmaW5lIEFQUExFVF9OT1VTQUdFKG5hbWUsbWFpbixsLHMpICAgICAgIGludCBtYWluIyNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwotIyBkZWZpbmUgQVBQTEVUX09ERE5BTUUobmFtZSxtYWluLGwscyxuYW1lMikgaW50IG1haW4jI19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7Ci0jIGRlZmluZSBBUFBMRVRfTk9FWEVDKG5hbWUsbWFpbixsLHMsbmFtZTIpICBpbnQgbWFpbiMjX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKLSMgZGVmaW5lIEFQUExFVF9OT0ZPUksobmFtZSxtYWluLGwscyxuYW1lMikgIGludCBtYWluIyNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworIyBkZWZpbmUgQVBQTEVUKG5hbWUsbCxzKSAgICAgICAgICAgICAgICAgICAgaW50IG5hbWUjI19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CisjIGRlZmluZSBBUFBMRVRfTk9VU0FHRShuYW1lLG1haW4sbCxzKSAgICAgICBpbnQgbWFpbiMjX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKKyMgZGVmaW5lIEFQUExFVF9PREROQU1FKG5hbWUsbWFpbixsLHMsbmFtZTIpIGludCBtYWluIyNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOworIyBkZWZpbmUgQVBQTEVUX05PRVhFQyhuYW1lLG1haW4sbCxzLG5hbWUyKSAgaW50IG1haW4jI19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CisjIGRlZmluZSBBUFBMRVRfTk9GT1JLKG5hbWUsbWFpbixsLHMsbmFtZTIpICBpbnQgbWFpbiMjX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIAogI2VsaWYgZGVmaW5lZChOQU1FX01BSU5fQ05BTUUpCiAjIGRlZmluZSBBUFBMRVQobmFtZSxsLHMpICAgICAgICAgICAgICAgICAgICBuYW1lIG5hbWUjI19tYWluIG5hbWUKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYnVzeWJveC5oIGIvaW5jbHVkZS9idXN5Ym94LmgKaW5kZXggMWMyM2I5Yi4uNWMwMWVjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9idXN5Ym94LmgKKysrIGIvaW5jbHVkZS9idXN5Ym94LmgKQEAgLTQ4LDEyICs0OCwyMiBAQAogI2VuZGlmCiB9OwogCisKIC8qIERlZmluZWQgaW4gYXBwbGV0bGliLmMgKi8KIGV4dGVybiBjb25zdCBzdHJ1Y3QgYmJfYXBwbGV0IGFwcGxldHNbXTsKIGV4dGVybiBjb25zdCB1bnNpZ25lZCBzaG9ydCBOVU1fQVBQTEVUUzsKLXZvaWQgYmJveF9wcmVwYXJlX21haW4oY2hhciAqKmFyZ3YpOworCisvKiBMZW5ndGggb2YgdGhlc2UgbmFtZXMgaGFzIGVmZmVjdCBvbiBzaXplIG9mIGxpYmJ1c3lib3gKKyAqIGFuZCAiaW5kaXZpZHVhbCIgYmluYXJpZXMuIEtlZXAgdGhlbSBzaG9ydC4KKyAqLwordm9pZCBsYmJfcHJlcGFyZShjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiAjaWYgRU5BQkxFX0JVSUxEX0xJQkJVU1lCT1gKLWludCBsaWJidXN5Ym94X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKKyNpZiBFTkFCTEVfRkVBVFVSRV9TSEFSRURfQlVTWUJPWAoraW50IGxiYl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgRVhURVJOQUxMWV9WSVNJQkxFOworI2Vsc2UKK2ludCBsYmJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwogI2VuZGlmCisjZW5kaWYKKwogCiAjZW5kaWYJLyogX0JCX0lOVEVSTkFMX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYmJiLmggYi9pbmNsdWRlL2xpYmJiLmgKaW5kZXggOWQ4YjVmMy4uYmU1NDhhMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saWJiYi5oCisrKyBiL2luY2x1ZGUvbGliYmIuaApAQCAtNjczLDcgKzY3Myw3IEBACiBleHRlcm4gaW50IHhmdW5jX2Vycm9yX3JldHZhbDsKIGV4dGVybiBqbXBfYnVmIGRpZV9qbXA7CiBleHRlcm4gdm9pZCB4ZnVuY19kaWUodm9pZCkgQVRUUklCVVRFX05PUkVUVVJOOwotZXh0ZXJuIHZvaWQgYmJfc2hvd191c2FnZSh2b2lkKSBBVFRSSUJVVEVfTk9SRVRVUk4gQVRUUklCVVRFX0VYVEVSTkFMTFlfVklTSUJMRTsKK2V4dGVybiB2b2lkIGJiX3Nob3dfdXNhZ2Uodm9pZCkgQVRUUklCVVRFX05PUkVUVVJOOwogZXh0ZXJuIHZvaWQgYmJfZXJyb3JfbXNnKGNvbnN0IGNoYXIgKnMsIC4uLikgX19hdHRyaWJ1dGVfXyAoKGZvcm1hdCAocHJpbnRmLCAxLCAyKSkpOwogZXh0ZXJuIHZvaWQgYmJfZXJyb3JfbXNnX2FuZF9kaWUoY29uc3QgY2hhciAqcywgLi4uKSBfX2F0dHJpYnV0ZV9fICgobm9yZXR1cm4sIGZvcm1hdCAocHJpbnRmLCAxLCAyKSkpOwogZXh0ZXJuIHZvaWQgYmJfcGVycm9yX21zZyhjb25zdCBjaGFyICpzLCAuLi4pIF9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKTsKQEAgLTY4NywxOCArNjg3LDI3IEBACiBleHRlcm4gdm9pZCBiYl9pbmZvX21zZyhjb25zdCBjaGFyICpzLCAuLi4pIF9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKTsKIGV4dGVybiB2b2lkIGJiX3ZlcnJvcl9tc2coY29uc3QgY2hhciAqcywgdmFfbGlzdCBwLCBjb25zdCBjaGFyICpzdHJlcnIpOwogCisvKiBXZSBuZWVkIHRvIGV4cG9ydCBYWFhfbWFpbiBmcm9tIGxpYmJ1c3lib3gKKyAqIG9ubHkgaWYgd2UgYnVpbGQgImluZGl2aWR1YWwiIGJpbmFyaWVzCisgKi8KKyNpZiBFTkFCTEVfRkVBVFVSRV9JTkRJVklEVUFMCisjZGVmaW5lIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFIEVYVEVSTkFMTFlfVklTSUJMRQorI2Vsc2UKKyNkZWZpbmUgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEUKKyNlbmRpZgorCiAKIC8qIGFwcGxldHMgd2hpY2ggYXJlIHVzZWZ1bCBmcm9tIGFub3RoZXIgYXBwbGV0cyAqLwogaW50IGJiX2NhdChjaGFyKiogYXJndik7CiBpbnQgYmJfZWNobyhjaGFyKiogYXJndik7Ci1pbnQgdGVzdF9tYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci1pbnQga2lsbF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdGVzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CitpbnQga2lsbF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiAjaWYgRU5BQkxFX1JPVVRFCiB2b2lkIGJiX2Rpc3BsYXlyb3V0ZXMoaW50IG5vcmVzb2x2ZSwgaW50IG5ldHN0YXRmbXQpOwogI2VuZGlmCi1pbnQgY2hvd25fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNob3duX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKICNpZiBFTkFCTEVfR1VOWklQCi1pbnQgZ3VuemlwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBndW56aXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogI2VuZGlmCiBpbnQgYmJ1bnBhY2soY2hhciAqKmFyZ3YsCiAJY2hhciogKCptYWtlX25ld19uYW1lKShjaGFyICpmaWxlbmFtZSksCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BsYXRmb3JtLmggYi9pbmNsdWRlL3BsYXRmb3JtLmgKaW5kZXggMzk4MDk0NS4uNTNkNzI4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wbGF0Zm9ybS5oCisrKyBiL2luY2x1ZGUvcGxhdGZvcm0uaApAQCAtNzEsOSArNzEsMTAgQEAKIC8qIC1md2hvbGUtcHJvZ3JhbSBtYWtlcyBhbGwgc3ltYm9scyBsb2NhbC4gVGhlIGF0dHJpYnV0ZSBleHRlcm5hbGx5X3Zpc2libGUKICAgIGZvcmNlcyBhIHN5bWJvbCBnbG9iYWwuICAqLwogIyBpZiBfX0dOVUNfUFJFUkVRICg0LDEpCi0jICBkZWZpbmUgQVRUUklCVVRFX0VYVEVSTkFMTFlfVklTSUJMRSBfX2F0dHJpYnV0ZV9fICgoX19leHRlcm5hbGx5X3Zpc2libGVfXykpCisjICBkZWZpbmUgRVhURVJOQUxMWV9WSVNJQkxFIF9fYXR0cmlidXRlX18oKCB2aXNpYmlsaXR5KCJkZWZhdWx0IikgKSk7CisvL19fYXR0cmlidXRlX18gKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkKICMgZWxzZQotIyAgZGVmaW5lIEFUVFJJQlVURV9FWFRFUk5BTExZX1ZJU0lCTEUKKyMgIGRlZmluZSBFWFRFUk5BTExZX1ZJU0lCTEUKICMgZW5kaWYgLyogR05VQyA+PSA0LjEgKi8KIAogLyogV2UgdXNlIF9fZXh0ZW5zaW9uX18gaW4gc29tZSBwbGFjZXMgdG8gc3VwcHJlc3MgLXBlZGFudGljIHdhcm5pbmdzCmRpZmYgLS1naXQgYS9pbml0L2hhbHQuYyBiL2luaXQvaGFsdC5jCmluZGV4IGUyMWFkNTcuLmQ5ZjhiMWEgMTAwNjQ0Ci0tLSBhL2luaXQvaGFsdC5jCisrKyBiL2luaXQvaGFsdC5jCkBAIC0xMCw3ICsxMCw3IEBACiAjaW5jbHVkZSAibGliYmIuaCIKICNpbmNsdWRlIDxzeXMvcmVib290Lmg+CiAKLWludCBoYWx0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBoYWx0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBoYWx0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0YXRpYyBjb25zdCBpbnQgbWFnaWNbXSA9IHsKZGlmZiAtLWdpdCBhL2luaXQvaW5pdC5jIGIvaW5pdC9pbml0LmMKaW5kZXggNWU4NDAxMS4uNDA5ZThjNCAxMDA2NDQKLS0tIGEvaW5pdC9pbml0LmMKKysrIGIvaW5pdC9pbml0LmMKQEAgLTg4Miw3ICs4ODIsNyBAQAogfQogI2VuZGlmICAvKiBGRUFUVVJFX1VTRV9JTklUVEFCICovCiAKLWludCBpbml0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBpbml0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBpbml0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBpbml0X2FjdGlvbiAqYTsKZGlmZiAtLWdpdCBhL2luaXQvbWVzZy5jIGIvaW5pdC9tZXNnLmMKaW5kZXggMWE1NzZjYi4uY2ZiNTE3ZiAxMDA2NDQKLS0tIGEvaW5pdC9tZXNnLmMKKysrIGIvaW5pdC9tZXNnLmMKQEAgLTE1LDcgKzE1LDcgQEAKICNkZWZpbmUgU19JV0dSUF9PUl9TX0lXT1RICShTX0lXR1JQIHwgU19JV09USCkKICNlbmRpZgogCi1pbnQgbWVzZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbWVzZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbWVzZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3Qgc3RhdCBzYjsKZGlmZiAtLWdpdCBhL2lwc3ZkL3RjcHVkcC5jIGIvaXBzdmQvdGNwdWRwLmMKaW5kZXggNTM3YTUyNC4uOThiMDc1ZiAxMDA2NDQKLS0tIGEvaXBzdmQvdGNwdWRwLmMKKysrIGIvaXBzdmQvdGNwdWRwLmMKQEAgLTEzMyw3ICsxMzMsNyBAQAogCQljb25uZWN0aW9uX3N0YXR1cygpOwogfQogCi1pbnQgdGNwdWRwc3ZkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB0Y3B1ZHBzdmRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHRjcHVkcHN2ZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljaGFyICpzdHJfYywgKnN0cl9DLCAqc3RyX2IsICpzdHJfdDsKZGlmZiAtLWdpdCBhL2xpYmJiL2FwcGxldGxpYi5jIGIvbGliYmIvYXBwbGV0bGliLmMKaW5kZXggNzgwOGRmNS4uOTUzZjFlNyAxMDA2NDQKLS0tIGEvbGliYmIvYXBwbGV0bGliLmMKKysrIGIvbGliYmIvYXBwbGV0bGliLmMKQEAgLTEyNyw3ICsxMjcsNyBAQAogaW50ICpjb25zdCBiYl9lcnJubyBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5kYXRhIikpKTsKICNlbmRpZgogCi12b2lkIGJib3hfcHJlcGFyZV9tYWluKGNoYXIgKiphcmd2KQordm9pZCBsYmJfcHJlcGFyZShjaGFyICoqYXJndikKIHsKICNpZmRlZiBfX0dMSUJDX18KIAkoKihpbnQgKiopJmJiX2Vycm5vKSA9IF9fZXJybm9fbG9jYXRpb24oKTsKQEAgLTY2MSwxMiArNjYxLDEyIEBACiAKIAogI2lmIEVOQUJMRV9CVUlMRF9MSUJCVVNZQk9YCi1pbnQgbGliYnVzeWJveF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK2ludCBsYmJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAjZWxzZQogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogI2VuZGlmCiB7Ci0JYmJveF9wcmVwYXJlX21haW4oYXJndik7CisJbGJiX3ByZXBhcmUoYXJndik7CiAKICNpZiAhQkJfTU1VCiAJLyogTk9NTVUgcmUtZXhlYyB0cmljayBzZXRzIGhpZ2gtb3JkZXIgYml0IGluIGZpcnN0IGJ5dGUgb2YgbmFtZSAqLwpkaWZmIC0tZ2l0IGEvbG9naW51dGlscy9hZGRncm91cC5jIGIvbG9naW51dGlscy9hZGRncm91cC5jCmluZGV4IGIyMTMwNzQuLjliMmM2NzkgMTAwNjQ0Ci0tLSBhL2xvZ2ludXRpbHMvYWRkZ3JvdXAuYworKysgYi9sb2dpbnV0aWxzL2FkZGdyb3VwLmMKQEAgLTEyMiw3ICsxMjIsNyBAQAogICogSWYgY2FsbGVkIHdpdGggdHdvIG5vbi1vcHRpb24gYXJndW1lbnRzLCBhZGRncm91cAogICogd2lsbCBhZGQgYW4gZXhpc3RpbmcgdXNlciB0byBhbiBleGlzdGluZyBncm91cC4KICAqLwotaW50IGFkZGdyb3VwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBhZGRncm91cF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgYWRkZ3JvdXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqZ3JvdXA7CmRpZmYgLS1naXQgYS9sb2dpbnV0aWxzL2FkZHVzZXIuYyBiL2xvZ2ludXRpbHMvYWRkdXNlci5jCmluZGV4IDE0OWVhOWMuLjVjNjI0MjggMTAwNjQ0Ci0tLSBhL2xvZ2ludXRpbHMvYWRkdXNlci5jCisrKyBiL2xvZ2ludXRpbHMvYWRkdXNlci5jCkBAIC0xNjUsNyArMTY1LDcgQEAKICAqCiAgKiBjYW4gYmUgY3VzdG9taXplZCB2aWEgY29tbWFuZC1saW5lIHBhcmFtZXRlcnMuCiAgKi8KLWludCBhZGR1c2VyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBhZGR1c2VyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBhZGR1c2VyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBwYXNzd2QgcHc7CmRpZmYgLS1naXQgYS9sb2dpbnV0aWxzL2NocGFzc3dkLmMgYi9sb2dpbnV0aWxzL2NocGFzc3dkLmMKaW5kZXggNjFmOWI4OS4uN2Q0Nzg5OSAxMDA2NDQKLS0tIGEvbG9naW51dGlscy9jaHBhc3N3ZC5jCisrKyBiL2xvZ2ludXRpbHMvY2hwYXNzd2QuYwpAQCAtMjAsNyArMjAsNyBAQAogI2RlZmluZSBPUFRfRU5DCQkxCiAjZGVmaW5lIE9QVF9NRDUJCTIKIAotaW50IGNocGFzc3dkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjaHBhc3N3ZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgY2hwYXNzd2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqbmFtZSwgKnBhc3M7CmRpZmYgLS1naXQgYS9sb2dpbnV0aWxzL2NyeXB0cHcuYyBiL2xvZ2ludXRpbHMvY3J5cHRwdy5jCmluZGV4IDA4NDc4NTcuLjA2ODE3YTYgMTAwNjQ0Ci0tLSBhL2xvZ2ludXRpbHMvY3J5cHRwdy5jCisrKyBiL2xvZ2ludXRpbHMvY3J5cHRwdy5jCkBAIC03LDcgKzcsNyBAQAogCiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IGNyeXB0cHdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGNyeXB0cHdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNyeXB0cHdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciBzYWx0W3NpemVvZigiJE4kWFhYWFhYWFgiKV07CmRpZmYgLS1naXQgYS9sb2dpbnV0aWxzL2RlbHVzZXIuYyBiL2xvZ2ludXRpbHMvZGVsdXNlci5jCmluZGV4IDBlNGYwMmQuLmM2N2FkNzIgMTAwNjQ0Ci0tLSBhL2xvZ2ludXRpbHMvZGVsdXNlci5jCisrKyBiL2xvZ2ludXRpbHMvZGVsdXNlci5jCkBAIC05Myw3ICs5Myw3IEBACiAJZnJlZShuZXcpOwogfQogCi1pbnQgZGVsdXNlcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZGVsdXNlcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZGVsdXNlcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpZiAoYXJnYyA9PSAyCmRpZmYgLS1naXQgYS9sb2dpbnV0aWxzL2dldHR5LmMgYi9sb2dpbnV0aWxzL2dldHR5LmMKaW5kZXggZGI4ZDdjZS4uYmM3MzVkMCAxMDA2NDQKLS0tIGEvbG9naW51dGlscy9nZXR0eS5jCisrKyBiL2xvZ2ludXRpbHMvZ2V0dHkuYwpAQCAtNjk5LDcgKzY5OSw3IEBACiAjZW5kaWYgLyogU1lTVl9TVFlMRSAqLwogCiAKLWludCBnZXR0eV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZ2V0dHlfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGdldHR5X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBudWxsZmQ7CmRpZmYgLS1naXQgYS9sb2dpbnV0aWxzL2xvZ2luLmMgYi9sb2dpbnV0aWxzL2xvZ2luLmMKaW5kZXggZGZkYzU4Yi4uYmRkYzBmNSAxMDA2NDQKLS0tIGEvbG9naW51dGlscy9sb2dpbi5jCisrKyBiL2xvZ2ludXRpbHMvbG9naW4uYwpAQCAtMjE5LDcgKzIxOSw3IEBACiAJZXhpdChFWElUX1NVQ0NFU1MpOwogfQogCi1pbnQgbG9naW5fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGxvZ2luX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBsb2dpbl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAllbnVtIHsKZGlmZiAtLWdpdCBhL2xvZ2ludXRpbHMvcGFzc3dkLmMgYi9sb2dpbnV0aWxzL3Bhc3N3ZC5jCmluZGV4IGNlMzMzYjQuLjk5YWZkZTIgMTAwNjQ0Ci0tLSBhL2xvZ2ludXRpbHMvcGFzc3dkLmMKKysrIGIvbG9naW51dGlscy9wYXNzd2QuYwpAQCAtNzAsNyArNzAsNyBAQAogCXJldHVybiByZXQ7CiB9CiAKLWludCBwYXNzd2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHBhc3N3ZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcGFzc3dkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWVudW0gewpkaWZmIC0tZ2l0IGEvbG9naW51dGlscy9zdS5jIGIvbG9naW51dGlscy9zdS5jCmluZGV4IDEyMzkwN2UuLjhjNTUxNzAgMTAwNjQ0Ci0tLSBhL2xvZ2ludXRpbHMvc3UuYworKysgYi9sb2dpbnV0aWxzL3N1LmMKQEAgLTExLDcgKzExLDcgQEAKICNkZWZpbmUgU1VfT1BUX21wICgzKQogI2RlZmluZSBTVV9PUFRfbCAoNCkKIAotaW50IHN1X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzdV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc3VfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5zaWduZWQgZmxhZ3M7CmRpZmYgLS1naXQgYS9sb2dpbnV0aWxzL3N1bG9naW4uYyBiL2xvZ2ludXRpbHMvc3Vsb2dpbi5jCmluZGV4IDVjNzNiZGEuLjdmMTAwYTEgMTAwNjQ0Ci0tLSBhL2xvZ2ludXRpbHMvc3Vsb2dpbi5jCisrKyBiL2xvZ2ludXRpbHMvc3Vsb2dpbi5jCkBAIC0zNCw3ICszNCw3IEBACiB9CiAKIAotaW50IHN1bG9naW5fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHN1bG9naW5fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHN1bG9naW5fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqY3A7CmRpZmYgLS1naXQgYS9sb2dpbnV0aWxzL3Zsb2NrLmMgYi9sb2dpbnV0aWxzL3Zsb2NrLmMKaW5kZXggOGUzYTFlYS4uNmU5MjhlMiAxMDA2NDQKLS0tIGEvbG9naW51dGlscy92bG9jay5jCisrKyBiL2xvZ2ludXRpbHMvdmxvY2suYwpAQCAtMzMsNyArMzMsNyBAQAogCWlvY3RsKHZmZCwgVlRfUkVMRElTUCwgVlRfQUNLQUNRKTsKIH0KIAotaW50IHZsb2NrX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB2bG9ja19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdmxvY2tfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc2lnc2V0X3Qgc2lnOwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL2FkanRpbWV4LmMgYi9taXNjdXRpbHMvYWRqdGltZXguYwppbmRleCBiMTE4MDdkLi42N2RkMGE5IDEwMDY0NAotLS0gYS9taXNjdXRpbHMvYWRqdGltZXguYworKysgYi9taXNjdXRpbHMvYWRqdGltZXguYwpAQCAtNDMsNyArNDMsNyBAQAogCSJjbG9jayBub3Qgc3luY2hyb25pemVkIgogfTsKIAotaW50IGFkanRpbWV4X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBhZGp0aW1leF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgYWRqdGltZXhfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJZW51bSB7CmRpZmYgLS1naXQgYS9taXNjdXRpbHMvYmJjb25maWcuYyBiL21pc2N1dGlscy9iYmNvbmZpZy5jCmluZGV4IDgwM2QxZDkuLmVlNTY2NzggMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy9iYmNvbmZpZy5jCisrKyBiL21pc2N1dGlscy9iYmNvbmZpZy5jCkBAIC00LDcgKzQsNyBAQAogI2luY2x1ZGUgImxpYmJiLmgiCiAjaW5jbHVkZSAiYmJjb25maWdvcHRzLmgiCiAKLWludCBiYmNvbmZpZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgYmJjb25maWdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGJiY29uZmlnX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXByaW50ZihiYmNvbmZpZ19jb25maWcpOwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL2NocnQuYyBiL21pc2N1dGlscy9jaHJ0LmMKaW5kZXggMWY1NDY1Yy4uNDE4ZTdhZSAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL2NocnQuYworKysgYi9taXNjdXRpbHMvY2hydC5jCkBAIC00MSw4ICs0MSw4IEBACiAjZGVmaW5lIE9QVF9mICgxPDwzKQogI2RlZmluZSBPUFRfbyAoMTw8NCkKIAotaW50IGNocnRfbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwotaW50IGNocnRfbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCitpbnQgY2hydF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CitpbnQgY2hydF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlwaWRfdCBwaWQgPSAwOwogCXVuc2lnbmVkIG9wdDsKZGlmZiAtLWdpdCBhL21pc2N1dGlscy9jcm9uZC5jIGIvbWlzY3V0aWxzL2Nyb25kLmMKaW5kZXggZmE3YjNkYS4uOGVlN2U1OCAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL2Nyb25kLmMKKysrIGIvbWlzY3V0aWxzL2Nyb25kLmMKQEAgLTEyOCw3ICsxMjgsNyBAQAogCX0KIH0KIAotaW50IGNyb25kX21haW4oaW50IGFjLCBjaGFyICoqYXYpOworaW50IGNyb25kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBjcm9uZF9tYWluKGludCBhYywgY2hhciAqKmF2KQogewogCXVuc2lnbmVkIG9wdDsKZGlmZiAtLWdpdCBhL21pc2N1dGlscy9jcm9udGFiLmMgYi9taXNjdXRpbHMvY3JvbnRhYi5jCmluZGV4IDFiODI3ZDcuLjZkMjQ1ZGEgMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy9jcm9udGFiLmMKKysrIGIvbWlzY3V0aWxzL2Nyb250YWIuYwpAQCAtMzEsNyArMzEsNyBAQAogc3RhdGljIGludCBHZXRSZXBsYWNlU3RyZWFtKGNvbnN0IGNoYXIgKnVzZXIsIGNvbnN0IGNoYXIgKmZpbGUpOwogc3RhdGljIGludCBDaGFuZ2VVc2VyKGNvbnN0IGNoYXIgKnVzZXIsIHNob3J0IGRvY2hkaXIpOwogCi1pbnQgY3JvbnRhYl9tYWluKGludCBhYywgY2hhciAqKmF2KTsKK2ludCBjcm9udGFiX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBjcm9udGFiX21haW4oaW50IGFjLCBjaGFyICoqYXYpCiB7CiAJZW51bSB7IE5PTkUsIEVESVQsIExJU1QsIFJFUExBQ0UsIERFTEVURSB9IG9wdGlvbiA9IE5PTkU7CmRpZmYgLS1naXQgYS9taXNjdXRpbHMvZGMuYyBiL21pc2N1dGlscy9kYy5jCmluZGV4IGNlZDUxNDkuLmZmYzNmOGQgMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy9kYy5jCisrKyBiL21pc2N1dGlscy9kYy5jCkBAIC0xOTcsNyArMTk3LDcgQEAKIAlyZXR1cm4gaTsKIH0KIAotaW50IGRjX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBkY19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZGNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJLyogdGFrZSBzdHVmZiBmcm9tIHN0ZGluIGlmIG5vIGFyZ3MgYXJlIGdpdmVuICovCmRpZmYgLS1naXQgYS9taXNjdXRpbHMvZGV2ZnNkLmMgYi9taXNjdXRpbHMvZGV2ZnNkLmMKaW5kZXggNzM0ZDRhNy4uY2Q5NDg2OSAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL2RldmZzZC5jCisrKyBiL21pc2N1dGlscy9kZXZmc2QuYwpAQCAtMzM2LDcgKzMzNiw3IEBACiAKIC8qICBQdWJsaWMgZnVuY3Rpb25zIGZvbGxvdyAgKi8KIAotaW50IGRldmZzZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZGV2ZnNkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBkZXZmc2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IHByaW50X3ZlcnNpb24gPSBGQUxTRTsKZGlmZiAtLWdpdCBhL21pc2N1dGlscy9lamVjdC5jIGIvbWlzY3V0aWxzL2VqZWN0LmMKaW5kZXggZTY2ZDc0ZS4uOTlmMDFhYiAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL2VqZWN0LmMKKysrIGIvbWlzY3V0aWxzL2VqZWN0LmMKQEAgLTI1LDcgKzI1LDcgQEAKICNkZWZpbmUgRkxBR19DTE9TRSAgMQogI2RlZmluZSBGTEFHX1NNQVJUICAyCiAKLWludCBlamVjdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZWplY3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGVqZWN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CmRpZmYgLS1naXQgYS9taXNjdXRpbHMvaGRwYXJtLmMgYi9taXNjdXRpbHMvaGRwYXJtLmMKaW5kZXggMzY1ZTI0Yy4uODY5YTViMiAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL2hkcGFybS5jCisrKyBiL21pc2N1dGlscy9oZHBhcm0uYwpAQCAtMjAwNSw3ICsyMDA1LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIC8qIG91ciBtYWluKCkgcm91dGluZTogKi8KLWludCBoZHBhcm1fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGhkcGFybV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaGRwYXJtX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBjOwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL2xhc3QuYyBiL21pc2N1dGlscy9sYXN0LmMKaW5kZXggZjM4YzRiOC4uZmM1OTE2ZSAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL2xhc3QuYworKysgYi9taXNjdXRpbHMvbGFzdC5jCkBAIC0yNiw3ICsyNiw3IEBACiAjZXJyb3Igc3RydWN0IHV0bXAgbWVtYmVyIGNoYXJbXSBzaXplKHMpIGhhdmUgY2hhbmdlZCEKICNlbmRpZgogCi1pbnQgbGFzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbGFzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbGFzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgdXRtcCB1dDsKZGlmZiAtLWdpdCBhL21pc2N1dGlscy9sZXNzLmMgYi9taXNjdXRpbHMvbGVzcy5jCmluZGV4IGIxZTVjZTkuLjVmZmViY2QgMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy9sZXNzLmMKKysrIGIvbWlzY3V0aWxzL2xlc3MuYwpAQCAtMTMxMSw3ICsxMzExLDcgQEAKIAlleGl0KDEpOwogfQogCi1pbnQgbGVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbGVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbGVzc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQga2V5cHJlc3M7CmRpZmYgLS1naXQgYS9taXNjdXRpbHMvbWFrZWRldnMuYyBiL21pc2N1dGlscy9tYWtlZGV2cy5jCmluZGV4IGQzNmM2OTUuLjFmODhmMzQgMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy9tYWtlZGV2cy5jCisrKyBiL21pc2N1dGlscy9tYWtlZGV2cy5jCkBAIC0xMCw3ICsxMCw3IEBACiAjaW5jbHVkZSAibGliYmIuaCIKIAogI2lmIEVOQUJMRV9GRUFUVVJFX01BS0VERVZTX0xFQUYKLWludCBtYWtlZGV2c19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbWFrZWRldnNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG1ha2VkZXZzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCW1vZGVfdCBtb2RlOwpAQCAtNjksNyArNjksNyBAQAogCiAvKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMIHYyIG9yIGxhdGVyLCBzZWUgdGhlIGZpbGUgTElDRU5TRSBpbiB0aGlzIHRhcmJhbGwuICovCiAKLWludCBtYWtlZGV2c19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbWFrZWRldnNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG1ha2VkZXZzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCUZJTEUgKnRhYmxlID0gc3RkaW47CmRpZmYgLS1naXQgYS9taXNjdXRpbHMvbWljcm9jb20uYyBiL21pc2N1dGlscy9taWNyb2NvbS5jCmluZGV4IGUwOTdkYzQuLjEyMzVmMDYgMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy9taWNyb2NvbS5jCisrKyBiL21pc2N1dGlscy9taWNyb2NvbS5jCkBAIC05LDcgKzksNyBAQAogICovCiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IG1pY3JvY29tX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtaWNyb2NvbV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbWljcm9jb21fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHBvbGxmZCBwZmRbMl07CmRpZmYgLS1naXQgYS9taXNjdXRpbHMvbW91bnRwb2ludC5jIGIvbWlzY3V0aWxzL21vdW50cG9pbnQuYwppbmRleCAzNzZiZDk1Li41NjQ3ZTRjIDEwMDY0NAotLS0gYS9taXNjdXRpbHMvbW91bnRwb2ludC5jCisrKyBiL21pc2N1dGlscy9tb3VudHBvaW50LmMKQEAgLTExLDcgKzExLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBtb3VudHBvaW50X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtb3VudHBvaW50X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBtb3VudHBvaW50X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBzdGF0IHN0OwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL210LmMgYi9taXNjdXRpbHMvbXQuYwppbmRleCBiOWJjMmExLi5iZTFmMjFhIDEwMDY0NAotLS0gYS9taXNjdXRpbHMvbXQuYworKysgYi9taXNjdXRpbHMvbXQuYwpAQCAtNTAsNyArNTAsNyBAQAogCXswLCAwfQogfTsKIAotaW50IG10X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY29uc3QgY2hhciAqZmlsZSA9ICIvZGV2L3RhcGUiOwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL3JhaWRhdXRvcnVuLmMgYi9taXNjdXRpbHMvcmFpZGF1dG9ydW4uYwppbmRleCBlZGNiNmQ2Li4yNzY2MjQ1IDEwMDY0NAotLS0gYS9taXNjdXRpbHMvcmFpZGF1dG9ydW4uYworKysgYi9taXNjdXRpbHMvcmFpZGF1dG9ydW4uYwpAQCAtMTMsNyArMTMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CiAjaW5jbHVkZSA8bGludXgvcmFpZC9tZF91Lmg+CiAKLWludCByYWlkYXV0b3J1bl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcmFpZGF1dG9ydW5fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHJhaWRhdXRvcnVuX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlmIChhcmdjICE9IDIpCmRpZmYgLS1naXQgYS9taXNjdXRpbHMvcmVhZGFoZWFkLmMgYi9taXNjdXRpbHMvcmVhZGFoZWFkLmMKaW5kZXggMTAzY2U4ZS4uNjQ3ZWIzMSAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL3JlYWRhaGVhZC5jCisrKyBiL21pc2N1dGlscy9yZWFkYWhlYWQuYwpAQCAtMTIsNyArMTIsNyBAQAogCiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IHJlYWRhaGVhZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcmVhZGFoZWFkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCByZWFkYWhlYWRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJRklMRSAqZjsKZGlmZiAtLWdpdCBhL21pc2N1dGlscy9ydW5sZXZlbC5jIGIvbWlzY3V0aWxzL3J1bmxldmVsLmMKaW5kZXggZjUxYTY0Ny4uMDQwNjRlZSAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL3J1bmxldmVsLmMKKysrIGIvbWlzY3V0aWxzL3J1bmxldmVsLmMKQEAgLTE1LDcgKzE1LDcgQEAKICNpbmNsdWRlIDx1dG1wLmg+CiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IHJ1bmxldmVsX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBydW5sZXZlbF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcnVubGV2ZWxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHV0bXAgKnV0OwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL3J4LmMgYi9taXNjdXRpbHMvcnguYwppbmRleCA2NzVhYWQyLi44OTg3MDNjIDEwMDY0NAotLS0gYS9taXNjdXRpbHMvcnguYworKysgYi9taXNjdXRpbHMvcnguYwpAQCAtMjQ5LDcgKzI0OSw3IEBACiB7CiB9CiAKLWludCByeF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcnhfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHJ4X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKmZuOwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL3NldHNpZC5jIGIvbWlzY3V0aWxzL3NldHNpZC5jCmluZGV4IDhkNzM4ZWQuLjExMGJiNmIgMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy9zZXRzaWQuYworKysgYi9taXNjdXRpbHMvc2V0c2lkLmMKQEAgLTE2LDcgKzE2LDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBzZXRzaWRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHNldHNpZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc2V0c2lkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlmIChhcmdjIDwgMikKZGlmZiAtLWdpdCBhL21pc2N1dGlscy9zdHJpbmdzLmMgYi9taXNjdXRpbHMvc3RyaW5ncy5jCmluZGV4IGI3ZjVhMGIuLmQ3NWJlY2MgMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy9zdHJpbmdzLmMKKysrIGIvbWlzY3V0aWxzL3N0cmluZ3MuYwpAQCAtMTYsNyArMTYsNyBAQAogI2RlZmluZSBQUklOVF9PRkZTRVQJNAogI2RlZmluZSBTSVpFCQkJOAogCi1pbnQgc3RyaW5nc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgc3RyaW5nc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc3RyaW5nc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgbiwgYywgc3RhdHVzID0gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL3Rhc2tzZXQuYyBiL21pc2N1dGlscy90YXNrc2V0LmMKaW5kZXggM2MxMTdkYS4uZTY0ZmQ2NSAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL3Rhc2tzZXQuYworKysgYi9taXNjdXRpbHMvdGFza3NldC5jCkBAIC00MSw4ICs0MSw4IEBACiAKICNkZWZpbmUgT1BUX3AgMQogCi1pbnQgdGFza3NldF9tYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci1pbnQgdGFza3NldF9tYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK2ludCB0YXNrc2V0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKK2ludCB0YXNrc2V0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNwdV9zZXRfdCBtYXNrLCBuZXdfbWFzazsKIAlwaWRfdCBwaWQgPSAwOwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL3RpbWUuYyBiL21pc2N1dGlscy90aW1lLmMKaW5kZXggOGY3OWE1MS4uZDIxOTQ0ZSAxMDA2NDQKLS0tIGEvbWlzY3V0aWxzL3RpbWUuYworKysgYi9taXNjdXRpbHMvdGltZS5jCkBAIC00MDIsNyArNDAyLDcgQEAKIAlzaWduYWwoU0lHUVVJVCwgcXVpdF9zaWduYWwpOwogfQogCi1pbnQgdGltZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdGltZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdGltZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlyZXNvdXJjZV90IHJlczsKZGlmZiAtLWdpdCBhL21pc2N1dGlscy90dHlzaXplLmMgYi9taXNjdXRpbHMvdHR5c2l6ZS5jCmluZGV4IDI5MmNmYjguLmY1MWIzMjggMTAwNjQ0Ci0tLSBhL21pc2N1dGlscy90dHlzaXplLmMKKysrIGIvbWlzY3V0aWxzL3R0eXNpemUuYwpAQCAtMTEsNyArMTEsNyBAQAogICovCiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IHR0eXNpemVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHR0eXNpemVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHR0eXNpemVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5zaWduZWQgdyxoOwpkaWZmIC0tZ2l0IGEvbWlzY3V0aWxzL3dhdGNoZG9nLmMgYi9taXNjdXRpbHMvd2F0Y2hkb2cuYwppbmRleCAxNGJkNDRmLi5lMDQwYzY0IDEwMDY0NAotLS0gYS9taXNjdXRpbHMvd2F0Y2hkb2cuYworKysgYi9taXNjdXRpbHMvd2F0Y2hkb2cuYwpAQCAtMjQsNyArMjQsNyBAQAogCWV4aXQoMCk7CiB9CiAKLWludCB3YXRjaGRvZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgd2F0Y2hkb2dfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHdhdGNoZG9nX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIG9wdHM7CmRpZmYgLS1naXQgYS9tb2R1dGlscy9pbnNtb2QuYyBiL21vZHV0aWxzL2luc21vZC5jCmluZGV4IGQ3ZTRiZWYuLjZmM2I3ZDAgMTAwNjQ0Ci0tLSBhL21vZHV0aWxzL2luc21vZC5jCisrKyBiL21vZHV0aWxzL2luc21vZC5jCkBAIC03Miw3ICs3Miw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRV9GRUFUVVJFXzJfNl9NT0RVTEVTCi1leHRlcm4gaW50IGluc21vZF9uZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitleHRlcm4gaW50IGluc21vZF9uZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiAjZW5kaWYKIAogCkBAIC0zOTUyLDggKzM5NTIsOCBAQAogdm9pZCBwcmludF9sb2FkX21hcChzdHJ1Y3Qgb2JqX2ZpbGUgKmYpOwogI2VuZGlmCiAKLWludCBpbnNtb2RfbWFpbiggaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKLWludCBpbnNtb2RfbWFpbiggaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoraW50IGluc21vZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CitpbnQgaW5zbW9kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKm9wdF9vLCAqYXJnMTsKIAlpbnQgbGVuOwpAQCAtNDI2MSw3ICs0MjYxLDcgQEAKIAl9CiB9CiAKLWludCBpbnNtb2RfbmdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGluc21vZF9uZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaW5zbW9kX25nX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWxvbmcgcmV0OwpkaWZmIC0tZ2l0IGEvbW9kdXRpbHMvbHNtb2QuYyBiL21vZHV0aWxzL2xzbW9kLmMKaW5kZXggMDliMDNkMC4uNzAxNDY4MSAxMDA2NDQKLS0tIGEvbW9kdXRpbHMvbHNtb2QuYworKysgYi9tb2R1dGlscy9sc21vZC5jCkBAIC03NCw3ICs3NCw3IEBACiAJTkVXX01PRF9JTklUSUFMSVpJTkcgPSA2NAogfTsKIAotaW50IGxzbW9kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBsc21vZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbHNtb2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IG1vZHVsZV9pbmZvIGluZm87CkBAIC0xNDAsNyArMTQwLDcgQEAKIAogI2Vsc2UgLyogQ09ORklHX0ZFQVRVUkVfUVVFUllfTU9EVUxFX0lOVEVSRkFDRSAqLwogCi1pbnQgbHNtb2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGxzbW9kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBsc21vZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlGSUxFICpmaWxlID0geGZvcGVuKCIvcHJvYy9tb2R1bGVzIiwgInIiKTsKZGlmZiAtLWdpdCBhL21vZHV0aWxzL21vZHByb2JlLmMgYi9tb2R1dGlscy9tb2Rwcm9iZS5jCmluZGV4IDM2YTNjMzUuLmE2N2RkZWEgMTAwNjQ0Ci0tLSBhL21vZHV0aWxzL21vZHByb2JlLmMKKysrIGIvbW9kdXRpbHMvbW9kcHJvYmUuYwpAQCAtODYxLDggKzg2MSw4IEBACiAJcmV0dXJuIHJjOwogfQogCi1pbnQgbW9kcHJvYmVfbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwotaW50IG1vZHByb2JlX21haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoraW50IG1vZHByb2JlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKK2ludCBtb2Rwcm9iZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgcmMgPSBFWElUX1NVQ0NFU1M7CiAJY2hhciAqdW51c2VkOwpkaWZmIC0tZ2l0IGEvbW9kdXRpbHMvcm1tb2QuYyBiL21vZHV0aWxzL3JtbW9kLmMKaW5kZXggYmEzZTg4Yy4uNjFjZmJkMSAxMDA2NDQKLS0tIGEvbW9kdXRpbHMvcm1tb2QuYworKysgYi9tb2R1dGlscy9ybW1vZC5jCkBAIC0zOCw3ICszOCw3IEBACiBpbnQgcXVlcnlfbW9kdWxlKGNvbnN0IGNoYXIgKm5hbWUsIGludCB3aGljaCwgdm9pZCAqYnVmLAogCQkJc2l6ZV90IGJ1ZnNpemUsIHNpemVfdCAqcmV0KTsKIAotaW50IHJtbW9kX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBybW1vZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcm1tb2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IG4sIHJldCA9IEVYSVRfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvYXJwLmMgYi9uZXR3b3JraW5nL2FycC5jCmluZGV4IDhjZGVlMTguLjM2OTg1ZmMgMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvYXJwLmMKKysrIGIvbmV0d29ya2luZy9hcnAuYwpAQCAtNDM0LDcgKzQzNCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBhcnBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGFycF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgYXJwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKmh3X3R5cGU7CmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL2FycGluZy5jIGIvbmV0d29ya2luZy9hcnBpbmcuYwppbmRleCBhMmM0YzIyLi40NDYxNWQ1IDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL2FycGluZy5jCisrKyBiL25ldHdvcmtpbmcvYXJwaW5nLmMKQEAgLTIyNyw3ICsyMjcsNyBAQAogCXJldHVybiAxOwogfQogCi1pbnQgYXJwaW5nX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBhcnBpbmdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGFycGluZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljb25zdCBjaGFyICpkZXZpY2UgPSAiZXRoMCI7CmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL2Ruc2QuYyBiL25ldHdvcmtpbmcvZG5zZC5jCmluZGV4IGM5MDZkZTMuLjhmMDFkNWMgMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvZG5zZC5jCisrKyBiL25ldHdvcmtpbmcvZG5zZC5jCkBAIC0zMjgsNyArMzI4LDcgQEAKIAlleGl0KDIpOwogfQogCi1pbnQgZG5zZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZG5zZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZG5zZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljb25zdCBjaGFyICpsaXN0ZW5faW50ZXJmYWNlID0gIjAuMC4wLjAiOwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy9ldGhlci13YWtlLmMgYi9uZXR3b3JraW5nL2V0aGVyLXdha2UuYwppbmRleCBmYzI2YWQwLi5iNzUyMTUyIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL2V0aGVyLXdha2UuYworKysgYi9uZXR3b3JraW5nL2V0aGVyLXdha2UuYwpAQCAtMTc4LDcgKzE3OCw3IEBACiAJcmV0dXJuIGJ5dGVfY250OwogfQogCi1pbnQgZXRoZXJfd2FrZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZXRoZXJfd2FrZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZXRoZXJfd2FrZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljb25zdCBjaGFyICppZm5hbWUgPSAiZXRoMCI7CmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL2Z0cGdldHB1dC5jIGIvbmV0d29ya2luZy9mdHBnZXRwdXQuYwppbmRleCA1ODg0N2E5Li41ODdmMDAwIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL2Z0cGdldHB1dC5jCisrKyBiL25ldHdvcmtpbmcvZnRwZ2V0cHV0LmMKQEAgLTI5Niw3ICsyOTYsNyBAQAogCTsKICNlbmRpZgogCi1pbnQgZnRwZ2V0cHV0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBmdHBnZXRwdXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGZ0cGdldHB1dF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAkvKiBjb250ZW50LWxlbmd0aCBvZiB0aGUgZmlsZSAqLwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy9ob3N0bmFtZS5jIGIvbmV0d29ya2luZy9ob3N0bmFtZS5jCmluZGV4IDY3ODNkYmEuLjJjMjI0YmUgMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvaG9zdG5hbWUuYworKysgYi9uZXR3b3JraW5nL2hvc3RuYW1lLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAl9CiB9CiAKLWludCBob3N0bmFtZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgaG9zdG5hbWVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGhvc3RuYW1lX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWVudW0gewpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy9odHRwZC5jIGIvbmV0d29ya2luZy9odHRwZC5jCmluZGV4IDA2YTVhNTYuLjYxMTg1MDIgMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvaHR0cGQuYworKysgYi9uZXR3b3JraW5nL2h0dHBkLmMKQEAgLTIxMTEsNyArMjExMSw3IEBACiB9OwogCiAKLWludCBodHRwZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgaHR0cGRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGh0dHBkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBzZXJ2ZXJfc29ja2V0ID0gc2VydmVyX3NvY2tldDsgLyogZm9yIGdjYyAqLwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy9pZmNvbmZpZy5jIGIvbmV0d29ya2luZy9pZmNvbmZpZy5jCmluZGV4IDBkNTM2NzYuLjNkY2IxMTggMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvaWZjb25maWcuYworKysgYi9uZXR3b3JraW5nL2lmY29uZmlnLmMKQEAgLTI2MSw3ICsyNjEsNyBAQAogICogT3VyIG1haW4gZnVuY3Rpb24uCiAgKi8KIAotaW50IGlmY29uZmlnX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBpZmNvbmZpZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaWZjb25maWdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IGlmcmVxIGlmcjsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvaWZ1cGRvd24uYyBiL25ldHdvcmtpbmcvaWZ1cGRvd24uYwppbmRleCBiZDUzZjkzLi5jNGQ3MjUyIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL2lmdXBkb3duLmMKKysrIGIvbmV0d29ya2luZy9pZnVwZG93bi5jCkBAIC0xMTMzLDcgKzExMzMsNyBAQAogfQogCiAKLWludCBpZnVwZG93bl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgaWZ1cGRvd25fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGlmdXBkb3duX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCAoKmNtZHMpKHN0cnVjdCBpbnRlcmZhY2VfZGVmbl90ICopID0gTlVMTDsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvaW5ldGQuYyBiL25ldHdvcmtpbmcvaW5ldGQuYwppbmRleCA2ZDcyZTEzLi45ZWE3ZjljIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL2luZXRkLmMKKysrIGIvbmV0d29ya2luZy9pbmV0ZC5jCkBAIC0xMzAzLDcgKzEzMDMsNyBAQAogI2VuZGlmCiAKIAotaW50IGluZXRkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBpbmV0ZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaW5ldGRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc2VydnRhYl90ICpzZXA7CmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL2lwLmMgYi9uZXR3b3JraW5nL2lwLmMKaW5kZXggYzgyZDczMS4uM2VhMWI2MiAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy9pcC5jCisrKyBiL25ldHdvcmtpbmcvaXAuYwpAQCAtMzgsNyArMzgsNyBAQAogfQogCiAjaWYgRU5BQkxFX0ZFQVRVUkVfSVBfQUREUkVTUwotaW50IGlwYWRkcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgaXBhZGRyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBpcGFkZHJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAgICAgaXBfZnVuYyA9IGRvX2lwYWRkcjsKQEAgLTQ2LDcgKzQ2LDcgQEAKIH0KICNlbmRpZgogI2lmIEVOQUJMRV9GRUFUVVJFX0lQX0xJTksKLWludCBpcGxpbmtfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGlwbGlua19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaXBsaW5rX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogICAgIGlwX2Z1bmMgPSBkb19pcGxpbms7CkBAIC01NCw3ICs1NCw3IEBACiB9CiAjZW5kaWYKICNpZiBFTkFCTEVfRkVBVFVSRV9JUF9ST1VURQotaW50IGlwcm91dGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGlwcm91dGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGlwcm91dGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAgICAgaXBfZnVuYyA9IGRvX2lwcm91dGU7CkBAIC02Miw3ICs2Miw3IEBACiB9CiAjZW5kaWYKICNpZiBFTkFCTEVfRkVBVFVSRV9JUF9SVUxFCi1pbnQgaXBydWxlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBpcHJ1bGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGlwcnVsZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKICAgICBpcF9mdW5jID0gZG9faXBydWxlOwpAQCAtNzAsNyArNzAsNyBAQAogfQogI2VuZGlmCiAjaWYgRU5BQkxFX0ZFQVRVUkVfSVBfVFVOTkVMCi1pbnQgaXB0dW5uZWxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGlwdHVubmVsX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBpcHR1bm5lbF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKICAgICBpcF9mdW5jID0gZG9faXB0dW5uZWw7CkBAIC03OSw3ICs3OSw3IEBACiAjZW5kaWYKIAogCi1pbnQgaXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGlwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBpcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdGF0aWMgY29uc3QgY2hhciBrZXl3b3Jkc1tdIEFMSUdOMSA9CmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL2lwY2FsYy5jIGIvbmV0d29ya2luZy9pcGNhbGMuYwppbmRleCA3NTk3MDQzLi5kN2M5NjhjIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL2lwY2FsYy5jCisrKyBiL25ldHdvcmtpbmcvaXBjYWxjLmMKQEAgLTc1LDcgKzc1LDcgQEAKIAkJOwogI2VuZGlmCiAKLWludCBpcGNhbGNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGlwY2FsY19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaXBjYWxjX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIG9wdDsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvaXNydl9pZGVudGQuYyBiL25ldHdvcmtpbmcvaXNydl9pZGVudGQuYwppbmRleCA5YmMzYjYwLi5hOTNkZTEyIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL2lzcnZfaWRlbnRkLmMKKysrIGIvbmV0d29ya2luZy9pc3J2X2lkZW50ZC5jCkBAIC05Miw3ICs5Miw3IEBACiAJd2hpbGUgKGRvX3JkKDAsICh2b2lkKikmYnVmKSA9PSAwKTsKIH0KIAotaW50IGZha2VpZGVudGRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGZha2VpZGVudGRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGZha2VpZGVudGRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJZW51bSB7CmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL25hbWVpZi5jIGIvbmV0d29ya2luZy9uYW1laWYuYwppbmRleCAyMTE0NTE2Li4wMzY5YzA4IDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL25hbWVpZi5jCisrKyBiL25ldHdvcmtpbmcvbmFtZWlmLmMKQEAgLTU1LDcgKzU1LDcgQEAKIAlyZXR1cm4gbWFjOwogfQogCi1pbnQgbmFtZWlmX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBuYW1laWZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG5hbWVpZl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAltYWN0YWJsZV90ICpjbGlzdCA9IE5VTEw7CmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL25jLmMgYi9uZXR3b3JraW5nL25jLmMKaW5kZXggMTk3NTBlNS4uYjJmNTkwYSAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy9uYy5jCisrKyBiL25ldHdvcmtpbmcvbmMuYwpAQCAtMjIsNyArMjIsNyBAQAogCWJiX2Vycm9yX21zZ19hbmRfZGllKCJ0aW1lZCBvdXQiKTsKIH0KIAotaW50IG5jX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBuY19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbmNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJLyogc2ZkIHNpdHMgX2hlcmVfIG9ubHkgYmVjYXVzZSBvZiAicmVwZWF0IiBvcHRpb24gKC1sIC1sKS4gKi8KZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvbmNfYmxvYXR5LmMgYi9uZXR3b3JraW5nL25jX2Jsb2F0eS5jCmluZGV4IGFiODI0NjUuLmNiYzBhNjQgMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvbmNfYmxvYXR5LmMKKysrIGIvbmV0d29ya2luZy9uY19ibG9hdHkuYwpAQCAtNjY4LDcgKzY2OCw3IEBACiB9IC8qIHJlYWR3cml0ZSAqLwogCiAvKiBtYWluOiBub3cgd2UgcHVsbCBpdCBhbGwgdG9nZXRoZXIuLi4gKi8KLWludCBuY19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbmNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG5jX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKnN0cl9wLCAqc3RyX3MsICpzdHJfdzsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvbmV0c3RhdC5jIGIvbmV0d29ya2luZy9uZXRzdGF0LmMKaW5kZXggZTVlZDEwZS4uMTFmMTQxOSAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy9uZXRzdGF0LmMKKysrIGIvbmV0d29ya2luZy9uZXRzdGF0LmMKQEAgLTQ4NCw3ICs0ODQsNyBAQAogICogT3VyIG1haW4gZnVuY3Rpb24uCiAgKi8KIAotaW50IG5ldHN0YXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG5ldHN0YXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG5ldHN0YXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY29uc3QgY2hhciAqbmV0X2Nvbm5fbGluZV9oZWFkZXIgPSBQUklOVF9ORVRfQ09OTl9IRUFERVI7CmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL25zbG9va3VwLmMgYi9uZXR3b3JraW5nL25zbG9va3VwLmMKaW5kZXggZmFiN2UzZS4uMTgzYWUxNSAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy9uc2xvb2t1cC5jCisrKyBiL25ldHdvcmtpbmcvbnNsb29rdXAuYwpAQCAtMTI3LDcgKzEyNyw3IEBACiAJfQogfQogCi1pbnQgbnNsb29rdXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG5zbG9va3VwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBuc2xvb2t1cF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAkvKiBXZSBhbGxvdyAxIG9yIDIgYXJndW1lbnRzLgpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy9waW5nLmMgYi9uZXR3b3JraW5nL3BpbmcuYwppbmRleCA1ZDYxY2Q3Li44YjcwZDlhIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL3BpbmcuYworKysgYi9uZXR3b3JraW5nL3BpbmcuYwpAQCAtMTczLDcgKzE3Myw3IEBACiB9CiAjZW5kaWYKIAotaW50IHBpbmdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHBpbmdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHBpbmdfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJbGVuX2FuZF9zb2NrYWRkciAqbHNhOwpAQCAtNjc2LDcgKzY3Niw3IEBACiAJCXBpbmc0KGxzYSk7CiB9CiAKLWludCBwaW5nX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBwaW5nX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBwaW5nX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWxlbl9hbmRfc29ja2FkZHIgKmxzYTsKQEAgLTcyNCw3ICs3MjQsNyBAQAogCiAKICNpZiBFTkFCTEVfUElORzYKLWludCBwaW5nNl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcGluZzZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHBpbmc2X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWFyZ3ZbMF0gPSAoY2hhciopIi02IjsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvcHNjYW4uYyBiL25ldHdvcmtpbmcvcHNjYW4uYwppbmRleCA1YWUzZTYxLi5kMThmOGRiIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL3BzY2FuLmMKKysrIGIvbmV0d29ya2luZy9wc2Nhbi5jCkBAIC0zMCw3ICszMCw3IEBACiAvKiBXZSBkb24ndCBleHBlY3QgdG8gc2VlIDEwMDArIHNlY29uZHMgZGVsYXksIHVuc2lnbmVkIGlzIGVub3VnaCAqLwogI2RlZmluZSBNT05PVE9OSUNfVVMoKSAoKHVuc2lnbmVkKW1vbm90b25pY191cygpKQogCi1pbnQgcHNjYW5fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHBzY2FuX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBwc2Nhbl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljb25zdCBjaGFyICpvcHRfbWF4X3BvcnQgPSAiMTAyNCI7ICAgICAgLyogLVA6IGRlZmF1bHQgbWF4IHBvcnQgKi8KZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvcm91dGUuYyBiL25ldHdvcmtpbmcvcm91dGUuYwppbmRleCA1NWE2YzIxLi4zNDI1ZTYzIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL3JvdXRlLmMKKysrIGIvbmV0d29ya2luZy9yb3V0ZS5jCkBAIC02NDAsNyArNjQwLDcgQEAKIAkiXDAxMFwwMDJkZWxldGUiICAvKiBTaW5jZSBpdCdzIGxhc3QsIHdlIGNhbiBzYXZlIGEgYnl0ZS4gKi8KIDsKIAotaW50IHJvdXRlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCByb3V0ZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcm91dGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5zaWduZWQgb3B0OwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy9zbGF0dGFjaC5jIGIvbmV0d29ya2luZy9zbGF0dGFjaC5jCmluZGV4IGNlNmQ3MDUuLjE3ZGY0ZmEgMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvc2xhdHRhY2guYworKysgYi9uZXR3b3JraW5nL3NsYXR0YWNoLmMKQEAgLTExOSw3ICsxMTksNyBAQAogCXJlc3RvcmVfc3RhdGVfYW5kX2V4aXQoMCk7CiB9CiAKLWludCBzbGF0dGFjaF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgc2xhdHRhY2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHNsYXR0YWNoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCS8qIExpbmUgZGlzY2lwbGluZSBjb2RlIHRhYmxlICovCmRpZmYgLS1naXQgYS9uZXR3b3JraW5nL3RlbG5ldC5jIGIvbmV0d29ya2luZy90ZWxuZXQuYwppbmRleCBhZTUyNmZhLi45MDg1YzU4IDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL3RlbG5ldC5jCisrKyBiL25ldHdvcmtpbmcvdGVsbmV0LmMKQEAgLTU1MCw4ICs1NTAsOCBAQAogCQl0Y3NldGF0dHIoMCwgVENTQURSQUlOLCAmRy50ZXJtaW9zX2RlZik7CiB9CiAKLWludCB0ZWxuZXRfbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwotaW50IHRlbG5ldF9tYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK2ludCB0ZWxuZXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOworaW50IHRlbG5ldF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljaGFyICpob3N0OwogCWludCBwb3J0OwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy90ZWxuZXRkLmMgYi9uZXR3b3JraW5nL3RlbG5ldGQuYwppbmRleCBiMjE5OTEyLi4yN2RkZTFhIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL3RlbG5ldGQuYworKysgYi9uZXR3b3JraW5nL3RlbG5ldGQuYwpAQCAtMzYwLDcgKzM2MCw3IEBACiAjZW5kaWYKIAogCi1pbnQgdGVsbmV0ZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdGVsbmV0ZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdGVsbmV0ZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlmZF9zZXQgcmRmZHNldCwgd3JmZHNldDsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvdGZ0cC5jIGIvbmV0d29ya2luZy90ZnRwLmMKaW5kZXggNTlmNTNhZS4uYTI2ODM5NyAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy90ZnRwLmMKKysrIGIvbmV0d29ya2luZy90ZnRwLmMKQEAgLTM5MSw3ICszOTEsNyBAQAogCXJldHVybiBmaW5pc2hlZCA9PSAwOyAvKiByZXR1cm5zIDEgb24gZmFpbHVyZSAqLwogfQogCi1pbnQgdGZ0cF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgdGZ0cF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdGZ0cF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlsZW5fYW5kX3NvY2thZGRyICpwZWVyX2xzYTsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvdHJhY2Vyb3V0ZS5jIGIvbmV0d29ya2luZy90cmFjZXJvdXRlLmMKaW5kZXggZThkNDg2Zi4uNzczZmM2YSAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy90cmFjZXJvdXRlLmMKKysrIGIvbmV0d29ya2luZy90cmFjZXJvdXRlLmMKQEAgLTg4OSw3ICs4ODksNyBAQAogCXByaW50ZigiICAldS4lMDN1IG1zIiwgdHQvMTAwMCwgdHQlMTAwMCk7CiB9CiAKLWludCB0cmFjZXJvdXRlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB0cmFjZXJvdXRlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB0cmFjZXJvdXRlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBjb2RlLCBuOwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy91ZGhjcC9kaGNwYy5jIGIvbmV0d29ya2luZy91ZGhjcC9kaGNwYy5jCmluZGV4IDIxYjQ5NmMuLmUwMDM3OWIgMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvdWRoY3AvZGhjcGMuYworKysgYi9uZXR3b3JraW5nL3VkaGNwL2RoY3BjLmMKQEAgLTE0MCw3ICsxNDAsNyBAQAogfQogCiAKLWludCB1ZGhjcGNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHVkaGNwY19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdWRoY3BjX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVpbnQ4X3QgKnRlbXAsICptZXNzYWdlOwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy91ZGhjcC9kaGNwZC5jIGIvbmV0d29ya2luZy91ZGhjcC9kaGNwZC5jCmluZGV4IDQzNDNmMWMuLjk2NzllMDggMTAwNjQ0Ci0tLSBhL25ldHdvcmtpbmcvdWRoY3AvZGhjcGQuYworKysgYi9uZXR3b3JraW5nL3VkaGNwL2RoY3BkLmMKQEAgLTIxLDcgKzIxLDcgQEAKIC8qIHN0cnVjdCBzZXJ2ZXJfY29uZmlnX3Qgc2VydmVyX2NvbmZpZyBpcyBpbiBiYl9jb21tb25fYnVmc2l6MSAqLwogCiAKLWludCB1ZGhjcGRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHVkaGNwZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgdWRoY3BkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWZkX3NldCByZmRzOwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy91ZGhjcC9kaGNwcmVsYXkuYyBiL25ldHdvcmtpbmcvdWRoY3AvZGhjcHJlbGF5LmMKaW5kZXggOTFmY2IxNS4uNDIzNzhkNiAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy91ZGhjcC9kaGNwcmVsYXkuYworKysgYi9uZXR3b3JraW5nL3VkaGNwL2RoY3ByZWxheS5jCkBAIC0yNzksNyArMjc5LDcgQEAKIAl9CiB9CiAKLWludCBkaGNwcmVsYXlfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGRoY3ByZWxheV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZGhjcHJlbGF5X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBudW1fc29ja2V0cywgbWF4X3NvY2tldDsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvdWRoY3AvZHVtcGxlYXNlcy5jIGIvbmV0d29ya2luZy91ZGhjcC9kdW1wbGVhc2VzLmMKaW5kZXggM2U5MzFjMC4uMjE4ZTZiYyAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy91ZGhjcC9kdW1wbGVhc2VzLmMKKysrIGIvbmV0d29ya2luZy91ZGhjcC9kdW1wbGVhc2VzLmMKQEAgLTcsNyArNyw3IEBACiAjaW5jbHVkZSAiY29tbW9uLmgiCiAjaW5jbHVkZSAiZGhjcGQuaCIKIAotaW50IGR1bXBsZWFzZXNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGR1bXBsZWFzZXNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGR1bXBsZWFzZXNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGZkOwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy92Y29uZmlnLmMgYi9uZXR3b3JraW5nL3Zjb25maWcuYwppbmRleCA4YmQ4ODcwLi43YjZjMmZhIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL3Zjb25maWcuYworKysgYi9uZXR3b3JraW5nL3Zjb25maWcuYwpAQCAtMTA2LDcgKzEwNiw3IEBACiAKIHN0YXRpYyBjb25zdCBjaGFyIGNvbmZfZmlsZV9uYW1lW10gQUxJR04xID0gIi9wcm9jL25ldC92bGFuL2NvbmZpZyI7CiAKLWludCB2Y29uZmlnX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB2Y29uZmlnX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCB2Y29uZmlnX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCB2bGFuX2lvY3RsX2FyZ3MgaWZyOwpkaWZmIC0tZ2l0IGEvbmV0d29ya2luZy93Z2V0LmMgYi9uZXR3b3JraW5nL3dnZXQuYwppbmRleCAzZjk5NTRjLi5iMTJkMTlhIDEwMDY0NAotLS0gYS9uZXR3b3JraW5nL3dnZXQuYworKysgYi9uZXR3b3JraW5nL3dnZXQuYwpAQCAtMzkxLDcgKzM5MSw3IEBACiB9CiAKIAotaW50IHdnZXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHdnZXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHdnZXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciBidWZbNTEyXTsKZGlmZiAtLWdpdCBhL25ldHdvcmtpbmcvemNpcC5jIGIvbmV0d29ya2luZy96Y2lwLmMKaW5kZXggNjIzNTBjNi4uYTE2YTY0MiAxMDA2NDQKLS0tIGEvbmV0d29ya2luZy96Y2lwLmMKKysrIGIvbmV0d29ya2luZy96Y2lwLmMKQEAgLTE1Niw3ICsxNTYsNyBAQAogLyoqCiAgKiBtYWluIHByb2dyYW0KICAqLwotaW50IHpjaXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHpjaXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHpjaXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IHN0YXRlID0gUFJPQkU7CmRpZmYgLS1naXQgYS9wcm9jcHMvZnJlZS5jIGIvcHJvY3BzL2ZyZWUuYwppbmRleCA0MjE5M2ZkLi5lNzZkZDIxIDEwMDY0NAotLS0gYS9wcm9jcHMvZnJlZS5jCisrKyBiL3Byb2Nwcy9mcmVlLmMKQEAgLTExLDcgKzExLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBmcmVlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBmcmVlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBmcmVlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBzeXNpbmZvIGluZm87CmRpZmYgLS1naXQgYS9wcm9jcHMvZnVzZXIuYyBiL3Byb2Nwcy9mdXNlci5jCmluZGV4IDYwYzEwOTUuLjM2ZDYzNGQgMTAwNjQ0Ci0tLSBhL3Byb2Nwcy9mdXNlci5jCisrKyBiL3Byb2Nwcy9mdXNlci5jCkBAIC0zMTYsNyArMzE2LDcgQEAKIAlyZXR1cm4gc3VjY2VzczsKIH0KIAotaW50IGZ1c2VyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBmdXNlcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZnVzZXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJLypzdGF0aWMgLS0gaHVoPz8/Ki8gaW50IG9wdCA9IDA7IC8qIEZVU0VSX09QVF8gKi8KZGlmZiAtLWdpdCBhL3Byb2Nwcy9raWxsLmMgYi9wcm9jcHMva2lsbC5jCmluZGV4IDMyM2VlN2IuLjBjN2MxNjAgMTAwNjQ0Ci0tLSBhL3Byb2Nwcy9raWxsLmMKKysrIGIvcHJvY3BzL2tpbGwuYwpAQCAtMjQsNyArMjQsNyBAQAogICogVGhpcyBpcyBuZWVkZWQgdG8gYXZvaWQgY29sbGlzaW9uIHdpdGgga2lsbCAtOSAuLi4gc3ludGF4CiAgKi8KIAotaW50IGtpbGxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGtpbGxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGtpbGxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqYXJnOwpkaWZmIC0tZ2l0IGEvcHJvY3BzL25tZXRlci5jIGIvcHJvY3BzL25tZXRlci5jCmluZGV4IDEyN2EzZDEuLmI4NDZlZTUgMTAwNjQ0Ci0tLSBhL3Byb2Nwcy9ubWV0ZXIuYworKysgYi9wcm9jcHMvbm1ldGVyLmMKQEAgLTc3MCw3ICs3NzAsNyBAQAogCWluaXRfY3IKIH07CiAKLWludCBubWV0ZXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG5tZXRlcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbm1ldGVyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgYnVmWzMyXTsKZGlmZiAtLWdpdCBhL3Byb2Nwcy9wZ3JlcC5jIGIvcHJvY3BzL3BncmVwLmMKaW5kZXggYzU3NDdhMS4uZjVkNGNmYyAxMDA2NDQKLS0tIGEvcHJvY3BzL3BncmVwLmMKKysrIGIvcHJvY3BzL3BncmVwLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAkJa2lsbChwaWQsIHNpZ25vKTsKIH0KIAotaW50IHBncmVwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBwZ3JlcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcGdyZXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdW5zaWduZWQgcGlkID0gZ2V0cGlkKCk7CmRpZmYgLS1naXQgYS9wcm9jcHMvcGlkb2YuYyBiL3Byb2Nwcy9waWRvZi5jCmluZGV4IDk2Mjk0NTIuLmYyOTU2MTcgMTAwNjQ0Ci0tLSBhL3Byb2Nwcy9waWRvZi5jCisrKyBiL3Byb2Nwcy9waWRvZi5jCkBAIC0xNiw3ICsxNiw3IEBACiAJT1BUX09NSVQgICA9IFVTRV9GRUFUVVJFX1BJRE9GX09NSVQoICAoMTw8T1BUQklUX09NSVQgICkpICsgMCwKIH07CiAKLWludCBwaWRvZl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcGlkb2ZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHBpZG9mX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIGZpcnN0ID0gMTsKZGlmZiAtLWdpdCBhL3Byb2Nwcy9wcy5jIGIvcHJvY3BzL3BzLmMKaW5kZXggZjVjODAxZC4uMDg5MjJlYiAxMDA2NDQKLS0tIGEvcHJvY3BzL3BzLmMKKysrIGIvcHJvY3BzL3BzLmMKQEAgLTI3OCw3ICsyNzgsNyBAQAogCXByaW50ZigiJS4qc1xuIiwgdGVybWluYWxfd2lkdGgsIGJ1ZmZlcik7CiB9CiAKLWludCBwc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcHNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHBzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXByb2Nwc19zdGF0dXNfdCAqcDsKQEAgLTM0MCw3ICszNDAsNyBAQAogI2Vsc2UgLyogIUVOQUJMRV9ERVNLVE9QICovCiAKIAotaW50IHBzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBwc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcHNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJcHJvY3BzX3N0YXR1c190ICpwID0gTlVMTDsKZGlmZiAtLWdpdCBhL3Byb2Nwcy9yZW5pY2UuYyBiL3Byb2Nwcy9yZW5pY2UuYwppbmRleCBiMmE5ZWQ3Li5hYjBkM2ExIDEwMDY0NAotLS0gYS9wcm9jcHMvcmVuaWNlLmMKKysrIGIvcHJvY3BzL3JlbmljZS5jCkBAIC0yNiw3ICsyNiw3IEBACiB2b2lkIEJVR19iYWRfUFJJT19QR1JQKHZvaWQpOwogdm9pZCBCVUdfYmFkX1BSSU9fVVNFUih2b2lkKTsKIAotaW50IHJlbmljZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcmVuaWNlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCByZW5pY2VfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RhdGljIGNvbnN0IGNoYXIgWGV0cHJpb3JpdHlfbXNnW10gQUxJR04xID0gIiVjZXRwcmlvcml0eSI7CmRpZmYgLS1naXQgYS9wcm9jcHMvc3lzY3RsLmMgYi9wcm9jcHMvc3lzY3RsLmMKaW5kZXggNTEwMGY1Ny4uYTg0ZjlhZSAxMDA2NDQKLS0tIGEvcHJvY3BzL3N5c2N0bC5jCisrKyBiL3Byb2Nwcy9zeXNjdGwuYwpAQCAtNTksNyArNTksNyBAQAogLyoKICAqICAgIHN5c2N0bF9tYWluKCkuLi4KICAqLwotaW50IHN5c2N0bF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgc3lzY3RsX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzeXNjdGxfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IHJldHZhbCA9IDA7CmRpZmYgLS1naXQgYS9wcm9jcHMvdG9wLmMgYi9wcm9jcHMvdG9wLmMKaW5kZXggMWI4YzE4NS4uN2YxYzgzZiAxMDA2NDQKLS0tIGEvcHJvY3BzL3RvcC5jCisrKyBiL3Byb2Nwcy90b3AuYwpAQCAtNzgyLDcgKzc4Miw3IEBACiAJCXwgUFNTQ0FOX0NPTU0sCiB9OwogCi1pbnQgdG9wX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB0b3BfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHRvcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgY291bnQsIGxpbmVzLCBjb2w7CmRpZmYgLS1naXQgYS9wcm9jcHMvdXB0aW1lLmMgYi9wcm9jcHMvdXB0aW1lLmMKaW5kZXggZWUwNjU3ZS4uMDdlOGQ2MCAxMDA2NDQKLS0tIGEvcHJvY3BzL3VwdGltZS5jCisrKyBiL3Byb2Nwcy91cHRpbWUuYwpAQCAtMjUsNyArMjUsNyBAQAogI2RlZmluZSBMT0FEX0ZSQUMoeCkgTE9BRF9JTlQoKCh4KSAmIChGSVhFRF8xLTEpKSAqIDEwMCkKIAogCi1pbnQgdXB0aW1lX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB1cHRpbWVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHVwdGltZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgdXBkYXlzLCB1cGhvdXJzLCB1cG1pbnV0ZXM7CmRpZmYgLS1naXQgYS9wcm9jcHMvd2F0Y2guYyBiL3Byb2Nwcy93YXRjaC5jCmluZGV4IDNkMTgxMDUuLjc2ZDJhODcgMTAwNjQ0Ci0tLSBhL3Byb2Nwcy93YXRjaC5jCisrKyBiL3Byb2Nwcy93YXRjaC5jCkBAIC0yMyw3ICsyMyw3IEBACiAvLwogLy8gKHByb2NwcyAzLnggYW5kIHByb2NwcyAyLnggYXJlIGZvcmtzLCBub3QgbmV3ZXIvb2xkZXIgdmVyc2lvbnMgb2YgdGhlIHNhbWUpCiAKLWludCB3YXRjaF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgd2F0Y2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHdhdGNoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXVuc2lnbmVkIG9wdDsKZGlmZiAtLWdpdCBhL3J1bml0L2NocHN0LmMgYi9ydW5pdC9jaHBzdC5jCmluZGV4IDFiYzhlMTguLjBmNjA1Y2MgMTAwNjQ0Ci0tLSBhL3J1bml0L2NocHN0LmMKKysrIGIvcnVuaXQvY2hwc3QuYwpAQCAtMjg5LDcgKzI4OSw3IEBACiBzdGF0aWMgdm9pZCBlbnZkaXIoaW50LCBjaGFyICoqKSBBVFRSSUJVVEVfTk9SRVRVUk47CiBzdGF0aWMgdm9pZCBzb2Z0bGltaXQoaW50LCBjaGFyICoqKSBBVFRSSUJVVEVfTk9SRVRVUk47CiAKLWludCBjaHBzdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgY2hwc3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGNocHN0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCUlOSVRfRygpOwpkaWZmIC0tZ2l0IGEvcnVuaXQvcnVuc3YuYyBiL3J1bml0L3J1bnN2LmMKaW5kZXggN2NmMTQyZC4uOGM1YTRkNCAxMDA2NDQKLS0tIGEvcnVuaXQvcnVuc3YuYworKysgYi9ydW5pdC9ydW5zdi5jCkBAIC00MzksNyArNDM5LDcgQEAKIAlyZXR1cm4gMTsKIH0KIAotaW50IHJ1bnN2X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBydW5zdl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcnVuc3ZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IHN0YXQgczsKZGlmZiAtLWdpdCBhL3J1bml0L3J1bnN2ZGlyLmMgYi9ydW5pdC9ydW5zdmRpci5jCmluZGV4IDkyNGY3NzEuLjllOThjYTYgMTAwNjQ0Ci0tLSBhL3J1bml0L3J1bnN2ZGlyLmMKKysrIGIvcnVuaXQvcnVuc3ZkaXIuYwpAQCAtMjA0LDcgKzIwNCw3IEBACiAJcmV0dXJuIDE7CiB9CiAKLWludCBydW5zdmRpcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgcnVuc3ZkaXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHJ1bnN2ZGlyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBzdGF0IHM7CmRpZmYgLS1naXQgYS9ydW5pdC9zdi5jIGIvcnVuaXQvc3YuYwppbmRleCA3NTczOTFhLi5lMzFhZGZmIDEwMDY0NAotLS0gYS9ydW5pdC9zdi5jCisrKyBiL3J1bml0L3N2LmMKQEAgLTQxMSw3ICs0MTEsNyBAQAogCXJldHVybiAxOwogfQogCi1pbnQgc3ZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHN2X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzdl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl1bnNpZ25lZCBvcHQ7CmRpZmYgLS1naXQgYS9ydW5pdC9zdmxvZ2QuYyBiL3J1bml0L3N2bG9nZC5jCmluZGV4IGJmNDZlZjcuLjVmNjgyYjEgMTAwNjQ0Ci0tLSBhL3J1bml0L3N2bG9nZC5jCisrKyBiL3J1bml0L3N2bG9nZC5jCkBAIC04NDMsNyArODQzLDcgQEAKIAl9CiB9CiAKLWludCBzdmxvZ2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHN2bG9nZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc3Zsb2dkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKnIsKmwsKmI7CmRpZmYgLS1naXQgYS9zY3JpcHRzL3RyeWxpbmsgYi9zY3JpcHRzL3RyeWxpbmsKaW5kZXggNjI5MmRjNi4uMjU2MjlhYSAxMDA3NTUKLS0tIGEvc2NyaXB0cy90cnlsaW5rCisrKyBiL3NjcmlwdHMvdHJ5bGluawpAQCAtMjYsNyArMjYsNyBAQAogIyAtLWVuYWJsZS1uZXctZHRhZ3MgICAgICAgICAgICA/CiAjIC16LGNvbWJyZWxvYyAgICAgICAgICAgICAgICAgID8KICMgLXNvbmFtZT0ibGliYnVzeWJveC5zby4kQkJfVkVSIgotIyAtLXVuZGVmaW5lZD1saWJidXN5Ym94X21haW4gICBTZWVkIG5hbWUgdG8gc3RhcnQgcHVsbGluZyBmcm9tCisjIC0tdW5kZWZpbmVkPWxiYl9tYWluICAgICAgICAgIFNlZWQgbmFtZSB0byBzdGFydCBwdWxsaW5nIGZyb20KICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG90aGVyd2lzZSB3ZSdsbCBuZWVkIC0td2hvbGUtYXJjaGl2ZSkKICMgLXN0YXRpYyAgICAgICAgICAgICAgICAgICAgICAgTm90IHVzZWQsIGJ1dCBtYXkgYmUgdXNlZnVsISBtYW5wYWdlOgogIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLi4uIFRoaXMgb3B0aW9uIGNhbiBiZSB1c2VkIHdpdGggLXNoYXJlZC4KQEAgLTE3Miw3ICsxNzIsNyBAQAogCSAgICAtV2wsLS1lbmFibGUtbmV3LWR0YWdzIFwKIAkgICAgLVdsLC16LGNvbWJyZWxvYyBcCiAJICAgIC1XbCwtc29uYW1lPSJsaWJidXN5Ym94LnNvLiRCQl9WRVIiIFwKLQkgICAgLVdsLC0tdW5kZWZpbmVkPWxpYmJ1c3lib3hfbWFpbiBcCisJICAgIC1XbCwtLXVuZGVmaW5lZD1sYmJfbWFpbiBcCiAJICAgIC1XbCwtLXNvcnQtY29tbW9uIFwKIAkgICAgLVdsLC0tc29ydC1zZWN0aW9uIC1XbCxhbGlnbm1lbnQgXAogCSAgICAtV2wsLS1zdGFydC1ncm91cCAkQV9GSUxFUyAtV2wsLS1lbmQtZ3JvdXAgXApAQCAtMjIwLDE0ICsyMjAsMTQgQEAKICAgICB3aGlsZSByZWFkIG5hbWUgbWFpbiBqdW5rOyBkbwogCiAJZWNobyAiXAotdm9pZCBiYm94X3ByZXBhcmVfbWFpbihjaGFyICoqYXJndik7Cit2b2lkIGxiYl9wcmVwYXJlKGNoYXIgKiphcmd2KTsKIGludCAkbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwogCiBjb25zdCBjaGFyICphcHBsZXRfbmFtZSA9IFwiJG5hbWVcIjsKIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewotCWJib3hfcHJlcGFyZV9tYWluKGFyZ3YpOworCWxiYl9wcmVwYXJlKGFyZ3YpOwogCXJldHVybiAkbWFpbihhcmdjLCBhcmd2KTsKIH0KICIgPiIkc2hhcmVkbGliX2Rpci9hcHBsZXQuYyIKZGlmZiAtLWdpdCBhL3NlbGludXgvY2hjb24uYyBiL3NlbGludXgvY2hjb24uYwppbmRleCAzNjA5ODgwLi5mMDBlMjQyIDEwMDY0NAotLS0gYS9zZWxpbnV4L2NoY29uLmMKKysrIGIvc2VsaW51eC9jaGNvbi5jCkBAIC0xMjAsNyArMTIwLDcgQEAKIAk7CiAjZW5kaWYKIAotaW50IGNoY29uX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBjaGNvbl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgY2hjb25fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqcmVmZXJlbmNlX2ZpbGU7CmRpZmYgLS1naXQgYS9zZWxpbnV4L2dldGVuZm9yY2UuYyBiL3NlbGludXgvZ2V0ZW5mb3JjZS5jCmluZGV4IDYyYjQyNjMuLmUxMWU3OGUgMTAwNjQ0Ci0tLSBhL3NlbGludXgvZ2V0ZW5mb3JjZS5jCisrKyBiL3NlbGludXgvZ2V0ZW5mb3JjZS5jCkBAIC04LDcgKzgsNyBAQAogCiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IGdldGVuZm9yY2VfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGdldGVuZm9yY2VfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGdldGVuZm9yY2VfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IHJjOwpkaWZmIC0tZ2l0IGEvc2VsaW51eC9nZXRzZWJvb2wuYyBiL3NlbGludXgvZ2V0c2Vib29sLmMKaW5kZXggNTk4YTUxYy4uZWEwODBkNCAxMDA2NDQKLS0tIGEvc2VsaW51eC9nZXRzZWJvb2wuYworKysgYi9zZWxpbnV4L2dldHNlYm9vbC5jCkBAIC04LDcgKzgsNyBAQAogCiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IGdldHNlYm9vbF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgZ2V0c2Vib29sX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBnZXRzZWJvb2xfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGksIHJjID0gMCwgYWN0aXZlLCBwZW5kaW5nLCBsZW4gPSAwOwpkaWZmIC0tZ2l0IGEvc2VsaW51eC9sb2FkX3BvbGljeS5jIGIvc2VsaW51eC9sb2FkX3BvbGljeS5jCmluZGV4IGFkZDVjNjYuLmY5YWE0OWQgMTAwNjQ0Ci0tLSBhL3NlbGludXgvbG9hZF9wb2xpY3kuYworKysgYi9zZWxpbnV4L2xvYWRfcG9saWN5LmMKQEAgLTQsNyArNCw3IEBACiAgKi8KICNpbmNsdWRlICJsaWJiYi5oIgogCi1pbnQgbG9hZF9wb2xpY3lfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGxvYWRfcG9saWN5X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBsb2FkX3BvbGljeV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgcmM7CmRpZmYgLS1naXQgYS9zZWxpbnV4L21hdGNocGF0aGNvbi5jIGIvc2VsaW51eC9tYXRjaHBhdGhjb24uYwppbmRleCBiYjcwOTllLi42ZGU2OGJjIDEwMDY0NAotLS0gYS9zZWxpbnV4L21hdGNocGF0aGNvbi5jCisrKyBiL3NlbGludXgvbWF0Y2hwYXRoY29uLmMKQEAgLTI5LDcgKzI5LDcgQEAKICNkZWZpbmUgT1BUX1BSRUZJWCAgICAgICgxPDwzKSAgLyogLXAgKi8KICNkZWZpbmUgT1BUX1ZFUklGWSAgICAgICgxPDw0KSAgLyogLVYgKi8KIAotaW50IG1hdGNocGF0aGNvbl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbWF0Y2hwYXRoY29uX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBtYXRjaHBhdGhjb25fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGVycm9yID0gMDsKZGlmZiAtLWdpdCBhL3NlbGludXgvcnVuY29uLmMgYi9zZWxpbnV4L3J1bmNvbi5jCmluZGV4IDM3YWM1ZDEuLjg5YTRiMDUgMTAwNjQ0Ci0tLSBhL3NlbGludXgvcnVuY29uLmMKKysrIGIvc2VsaW51eC9ydW5jb24uYwpAQCAtODcsNyArODcsNyBAQAogI2RlZmluZSBPUFRTX0hFTFAJKDE8PDUpCS8qIGggKi8KICNkZWZpbmUgT1BUU19DT05URVhUX0NPTVBPTkVOVAkJKE9QVFNfUk9MRSB8IE9QVFNfVFlQRSB8IE9QVFNfVVNFUiB8IE9QVFNfUkFOR0UpCiAKLWludCBydW5jb25fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHJ1bmNvbl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcnVuY29uX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKnJvbGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc2VsaW51eC9zZWxpbnV4ZW5hYmxlZC5jIGIvc2VsaW51eC9zZWxpbnV4ZW5hYmxlZC5jCmluZGV4IDhhOWM3Y2QuLjExNGQyYjYgMTAwNjQ0Ci0tLSBhL3NlbGludXgvc2VsaW51eGVuYWJsZWQuYworKysgYi9zZWxpbnV4L3NlbGludXhlbmFibGVkLmMKQEAgLTcsNyArNyw3IEBACiAgKi8KICNpbmNsdWRlICJsaWJiYi5oIgogCi1pbnQgc2VsaW51eGVuYWJsZWRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHNlbGludXhlbmFibGVkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzZWxpbnV4ZW5hYmxlZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlyZXR1cm4gIWlzX3NlbGludXhfZW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvc2VsaW51eC9zZXRlbmZvcmNlLmMgYi9zZWxpbnV4L3NldGVuZm9yY2UuYwppbmRleCA1OWIxYjBmLi4xOTgzMjRjIDEwMDY0NAotLS0gYS9zZWxpbnV4L3NldGVuZm9yY2UuYworKysgYi9zZWxpbnV4L3NldGVuZm9yY2UuYwpAQCAtMTksNyArMTksNyBAQAogCU5VTEwsCiB9OwogCi1pbnQgc2V0ZW5mb3JjZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgc2V0ZW5mb3JjZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc2V0ZW5mb3JjZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgaSwgcmM7CmRpZmYgLS1naXQgYS9zZWxpbnV4L3NldGZpbGVzLmMgYi9zZWxpbnV4L3NldGZpbGVzLmMKaW5kZXggNWFlNDgyZS4uOTA1MzMzZiAxMDA2NDQKLS0tIGEvc2VsaW51eC9zZXRmaWxlcy5jCisrKyBiL3NlbGludXgvc2V0ZmlsZXMuYwpAQCAtNDg2LDcgKzQ4Niw3IEBACiAJZ290byBvdXQ7CiB9CiAKLWludCBzZXRmaWxlc19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgc2V0ZmlsZXNfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHNldGZpbGVzX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBzdGF0IHNiOwpkaWZmIC0tZ2l0IGEvc2hlbGwvYXNoLmMgYi9zaGVsbC9hc2guYwppbmRleCBhZjk2YzRkLi4yYjlhOGNjIDEwMDY0NAotLS0gYS9zaGVsbC9hc2guYworKysgYi9zaGVsbC9hc2guYwpAQCAtMTI3MzksNyArMTI3MzksNyBAQAogICogZXhjZXB0aW9uIG9jY3Vycy4gIFdoZW4gYW4gZXhjZXB0aW9uIG9jY3VycyB0aGUgdmFyaWFibGUgInN0YXRlIgogICogaXMgdXNlZCB0byBmaWd1cmUgb3V0IGhvdyBmYXIgd2UgaGFkIGdvdHRlbi4KICAqLwotaW50IGFzaF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgYXNoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBhc2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqc2hpbml0OwpkaWZmIC0tZ2l0IGEvc2hlbGwvYmJzaC5jIGIvc2hlbGwvYmJzaC5jCmluZGV4IDA5YzRiZDkuLjAyZTYwNTAgMTAwNjQ0Ci0tLSBhL3NoZWxsL2Jic2guYworKysgYi9zaGVsbC9iYnNoLmMKQEAgLTE5OCw3ICsxOTgsNyBAQAogCX0KIH0KIAotaW50IGJic2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGJic2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGJic2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqY29tbWFuZD1OVUxMOwpkaWZmIC0tZ2l0IGEvc2hlbGwvaHVzaC5jIGIvc2hlbGwvaHVzaC5jCmluZGV4IDE5NzdkYTAuLmE3NjMyNzcgMTAwNjQ0Ci0tLSBhL3NoZWxsL2h1c2guYworKysgYi9zaGVsbC9odXNoLmMKQEAgLTM2NzUsNyArMzY3NSw3IEBACiB9CiAjZW5kaWYKIAotaW50IGh1c2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGh1c2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGh1c2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RhdGljIGNvbnN0IGNoYXIgdmVyc2lvbl9zdHJbXSBBTElHTjEgPSAiSFVTSF9WRVJTSU9OPSJIVVNIX1ZFUl9TVFI7CmRpZmYgLS1naXQgYS9zaGVsbC9sYXNoLmMgYi9zaGVsbC9sYXNoLmMKaW5kZXggYjdhMGE2YS4uY2UxY2U3ZiAxMDA2NDQKLS0tIGEvc2hlbGwvbGFzaC5jCisrKyBiL3NoZWxsL2xhc2guYwpAQCAtMTQ5MSw3ICsxNDkxLDcgQEAKIH0KICNlbmRpZgogCi1pbnQgbGFzaF9tYWluKGludCBhcmdjX2wsIGNoYXIgKiphcmd2X2wpOworaW50IGxhc2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGxhc2hfbWFpbihpbnQgYXJnY19sLCBjaGFyICoqYXJndl9sKQogewogCXVuc2lnbmVkIG9wdDsKZGlmZiAtLWdpdCBhL3NoZWxsL21zaC5jIGIvc2hlbGwvbXNoLmMKaW5kZXggNDFmZTFiNi4uN2VmZDdmOSAxMDA2NDQKLS0tIGEvc2hlbGwvbXNoLmMKKysrIGIvc2hlbGwvbXNoLmMKQEAgLTUxNjQsNyArNTE2NCw3IEBACiAgKiBzaGVsbAogICovCiAKLWludCBtc2hfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG1zaF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbXNoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBmOwpkaWZmIC0tZ2l0IGEvc3lza2xvZ2Qva2xvZ2QuYyBiL3N5c2tsb2dkL2tsb2dkLmMKaW5kZXggMmFmNDEwNS4uMTE2NDI0NiAxMDA2NDQKLS0tIGEvc3lza2xvZ2Qva2xvZ2QuYworKysgYi9zeXNrbG9nZC9rbG9nZC5jCkBAIC0zNSw3ICszNSw3IEBACiAjZGVmaW5lIEtMT0dEX0xPR0JVRl9TSVpFIEJVRlNJWgogI2RlZmluZSBsb2dfYnVmZmVyIGJiX2NvbW1vbl9idWZzaXoxCiAKLWludCBrbG9nZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQga2xvZ2RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGtsb2dkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBpID0gaTsgLyogc2lsZW5jZSBnY2MgKi8KZGlmZiAtLWdpdCBhL3N5c2tsb2dkL2xvZ2dlci5jIGIvc3lza2xvZ2QvbG9nZ2VyLmMKaW5kZXggNmUxZGViZC4uZTJkMDc0NiAxMDA2NDQKLS0tIGEvc3lza2xvZ2QvbG9nZ2VyLmMKKysrIGIvc3lza2xvZ2QvbG9nZ2VyLmMKQEAgLTgxLDcgKzgxLDcgQEAKIH0KIAogCi1pbnQgbG9nZ2VyX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBsb2dnZXJfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGxvZ2dlcl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljaGFyICpzdHJfcCwgKnN0cl90OwpkaWZmIC0tZ2l0IGEvc3lza2xvZ2QvbG9ncmVhZC5jIGIvc3lza2xvZ2QvbG9ncmVhZC5jCmluZGV4IDY5YTA4NGYuLjY1NjdkZjMgMTAwNjQ0Ci0tLSBhL3N5c2tsb2dkL2xvZ3JlYWQuYworKysgYi9zeXNrbG9nZC9sb2dyZWFkLmMKQEAgLTUzLDcgKzUzLDcgQEAKIAlleGl0KDApOwogfQogCi1pbnQgbG9ncmVhZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbG9ncmVhZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbG9ncmVhZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgY3VyOwpkaWZmIC0tZ2l0IGEvc3lza2xvZ2Qvc3lzbG9nZC5jIGIvc3lza2xvZ2Qvc3lzbG9nZC5jCmluZGV4IGYyN2JkODMuLjI4NGU1NzQgMTAwNjQ0Ci0tLSBhL3N5c2tsb2dkL3N5c2xvZ2QuYworKysgYi9zeXNrbG9nZC9zeXNsb2dkLmMKQEAgLTU1Niw3ICs1NTYsNyBAQAogCX0gLyogZm9yICovCiB9CiAKLWludCBzeXNsb2dkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzeXNsb2dkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzeXNsb2dkX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgT1BUSU9OX0RFQ0w7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L2RtZXNnLmMgYi91dGlsLWxpbnV4L2RtZXNnLmMKaW5kZXggM2FhOTllNS4uMWFkYjBmYyAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9kbWVzZy5jCisrKyBiL3V0aWwtbGludXgvZG1lc2cuYwpAQCAtMTIsNyArMTIsNyBAQAogI2luY2x1ZGUgPHN5cy9rbG9nLmg+CiAjaW5jbHVkZSAibGliYmIuaCIKIAotaW50IGRtZXNnX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBkbWVzZ19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZG1lc2dfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqc2l6ZSwgKmxldmVsOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC9mYnNldC5jIGIvdXRpbC1saW51eC9mYnNldC5jCmluZGV4IGEyYjhiMzguLmY2N2EyODMgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvZmJzZXQuYworKysgYi91dGlsLWxpbnV4L2Zic2V0LmMKQEAgLTMwOSw3ICszMDksNyBAQAogI2lmZGVmIFNUQU5EQUxPTkUKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICNlbHNlCi1pbnQgZmJzZXRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGZic2V0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBmYnNldF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC9mZGZvcm1hdC5jIGIvdXRpbC1saW51eC9mZGZvcm1hdC5jCmluZGV4IGRjNDVlMjMuLmM0Zjk3YWUgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvZmRmb3JtYXQuYworKysgYi91dGlsLWxpbnV4L2ZkZm9ybWF0LmMKQEAgLTEsMTIgKzEsNyBAQAogLyogdmk6IHNldCBzdz00IHRzPTQ6ICovCiAvKiBmZGZvcm1hdC5jICAtICBMb3ctbGV2ZWwgZm9ybWF0cyBhIGZsb3BweSBkaXNrIC0gV2VybmVyIEFsbWVzYmVyZ2VyICovCiAKLS8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgotICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotICogMTk5OS0wMy0yMCBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAY29uZWN0aXZhLmNvbS5icj4KLSAqIC0gbW9yZSBpMThuL25scyB0cmFuc2xhdGFibGUgc3RyaW5ncyBtYXJrZWQKLSAqCi0gKiA1IEp1bHkgMjAwMyAtLSBtb2RpZmllZCBmb3IgQnVzeWJveCBieSBFcmlrIEFuZGVyc2VuCisvKiA1IEp1bHkgMjAwMyAtLSBtb2RpZmllZCBmb3IgQnVzeWJveCBieSBFcmlrIEFuZGVyc2VuCiAgKi8KIAogI2luY2x1ZGUgImxpYmJiLmgiCkBAIC00NSw4ICs0MCw4IEBACiAjZGVmaW5lIEZER0VUUFJNIF9JT1IoMiwgMHgwNCwgc3RydWN0IGZsb3BweV9zdHJ1Y3QpCiAjZGVmaW5lIEZEX0ZJTExfQllURSAweEY2IC8qIGZvcm1hdCBmaWxsIGJ5dGUuICovCiAKLWludCBmZGZvcm1hdF9tYWluKGludCBhcmdjLGNoYXIgKiphcmd2KTsKLWludCBmZGZvcm1hdF9tYWluKGludCBhcmdjLGNoYXIgKiphcmd2KQoraW50IGZkZm9ybWF0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKK2ludCBmZGZvcm1hdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgZmQsIG4sIGN5bCwgcmVhZF9ieXRlcywgdmVyaWZ5OwogCXVuc2lnbmVkIGNoYXIgKmRhdGE7CkBAIC0xMTYsNyArMTExLDcgQEAKIAkJCS8qIENoZWNrIGJhY2t3YXJkcyBzbyB3ZSBkb24ndCBuZWVkIGEgY291bnRlciAqLwogCQkJd2hpbGUgKC0tcmVhZF9ieXRlcyA+PSAwKSB7CiAJCQkJaWYgKGRhdGFbcmVhZF9ieXRlc10gIT0gRkRfRklMTF9CWVRFKSB7Ci0JCQkJCSBwcmludGYoImJhZCBkYXRhIGluIGN5bCAlZFxuQ29udGludWluZy4uLiAiLGN5bCk7CisJCQkJCSBwcmludGYoImJhZCBkYXRhIGluIGN5bCAlZFxuQ29udGludWluZy4uLiAiLCBjeWwpOwogCQkJCX0KIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC9mZGlzay5jIGIvdXRpbC1saW51eC9mZGlzay5jCmluZGV4IDlmMzA1NzEuLjAxYzAxYmQgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvZmRpc2suYworKysgYi91dGlsLWxpbnV4L2ZkaXNrLmMKQEAgLTI3MzUsNyArMjczNSw3IEBACiB9CiAjZW5kaWYKIAotaW50IGZkaXNrX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBmZGlza19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZmRpc2tfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqc3RyX2IsICpzdHJfQywgKnN0cl9ILCAqc3RyX1M7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L2ZyZWVyYW1kaXNrLmMgYi91dGlsLWxpbnV4L2ZyZWVyYW1kaXNrLmMKaW5kZXggNGJkOTM3OC4uYmRlNmFmYyAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9mcmVlcmFtZGlzay5jCisrKyBiL3V0aWwtbGludXgvZnJlZXJhbWRpc2suYwpAQCAtMTQsNyArMTQsNyBAQAogLyogRnJvbSA8bGludXgvZmQuaD4gKi8KICNkZWZpbmUgRkRGTFVTSCAgX0lPKDIsMHg0YikKIAotaW50IGZyZWVyYW1kaXNrX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBmcmVlcmFtZGlza19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgZnJlZXJhbWRpc2tfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGZkOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC9mc2NrX21pbml4LmMgYi91dGlsLWxpbnV4L2ZzY2tfbWluaXguYwppbmRleCA1ZjkyZjM1Li5kZWI4MmY3IDEwMDY0NAotLS0gYS91dGlsLWxpbnV4L2ZzY2tfbWluaXguYworKysgYi91dGlsLWxpbnV4L2ZzY2tfbWluaXguYwpAQCAtMTI0OSw3ICsxMjQ5LDcgQEAKIHZvaWQgY2hlY2syKHZvaWQpOwogI2VuZGlmCiAKLWludCBmc2NrX21pbml4X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBmc2NrX21pbml4X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBmc2NrX21pbml4X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCB0ZXJtaW9zIHRtcDsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgvZ2V0b3B0LmMgYi91dGlsLWxpbnV4L2dldG9wdC5jCmluZGV4IDQ3NjdkNTguLjA2MTc1MGUgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvZ2V0b3B0LmMKKysrIGIvdXRpbC1saW51eC9nZXRvcHQuYwpAQCAtMjc5LDggKzI3OSw4IEBACiAJOwogI2VuZGlmCiAKLWludCBnZXRvcHRfbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKTsKLWludCBnZXRvcHRfbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoraW50IGdldG9wdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CitpbnQgZ2V0b3B0X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKm9wdHN0ciA9IE5VTEw7CiAJY2hhciAqbmFtZSA9IE5VTEw7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L2hleGR1bXAuYyBiL3V0aWwtbGludXgvaGV4ZHVtcC5jCmluZGV4IGUyOTRmMTkuLmU2ODIwYWUgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvaGV4ZHVtcC5jCisrKyBiL3V0aWwtbGludXgvaGV4ZHVtcC5jCkBAIC01NCw3ICs1NCw3IEBACiAJeyB9CiB9OwogCi1pbnQgaGV4ZHVtcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgaGV4ZHVtcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaGV4ZHVtcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAljb25zdCBjaGFyICpwOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC9od2Nsb2NrLmMgYi91dGlsLWxpbnV4L2h3Y2xvY2suYwppbmRleCAwOWIwOWViLi5mOTEzNzliIDEwMDY0NAotLS0gYS91dGlsLWxpbnV4L2h3Y2xvY2suYworKysgYi91dGlsLWxpbnV4L2h3Y2xvY2suYwpAQCAtMTcxLDcgKzE3MSw3IEBACiAjZGVmaW5lIEhXQ0xPQ0tfT1BUX1NZU1RPSEMgICAgIDB4MTAKICNkZWZpbmUgSFdDTE9DS19PUFRfUlRDRklMRSAgICAgMHgyMAogCi1pbnQgaHdjbG9ja19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgaHdjbG9ja19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgaHdjbG9ja19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl1bnNpZ25lZCBvcHQ7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L2lwY3JtLmMgYi91dGlsLWxpbnV4L2lwY3JtLmMKaW5kZXggZjQ5ZDI4ZS4uYTk0MDBkMSAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9pcGNybS5jCisrKyBiL3V0aWwtbGludXgvaXBjcm0uYwpAQCAtNzYsNyArNzYsNyBAQAogI2VuZGlmIC8qIElQQ1JNX0xFR0FDWSAqLwogCiAKLWludCBpcGNybV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgaXBjcm1fbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGlwY3JtX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBjOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC9pcGNzLmMgYi91dGlsLWxpbnV4L2lwY3MuYwppbmRleCBkNTMyNTkwLi5jN2I0NmY1IDEwMDY0NAotLS0gYS91dGlsLWxpbnV4L2lwY3MuYworKysgYi91dGlsLWxpbnV4L2lwY3MuYwpAQCAtNTU4LDcgKzU1OCw3IEBACiAJYmJfcHV0Y2hhcignXG4nKTsKIH0KIAotaW50IGlwY3NfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IGlwY3NfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IGlwY3NfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGlkID0gMDsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgvbG9zZXR1cC5jIGIvdXRpbC1saW51eC9sb3NldHVwLmMKaW5kZXggYzYxYWYzZC4uYTllY2ZkNSAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9sb3NldHVwLmMKKysrIGIvdXRpbC1saW51eC9sb3NldHVwLmMKQEAgLTExLDcgKzExLDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBsb3NldHVwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBsb3NldHVwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBsb3NldHVwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgZGV2W10gPSBMT09QX05BTUUiMCI7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L21kZXYuYyBiL3V0aWwtbGludXgvbWRldi5jCmluZGV4IDMzZGM1ZDMuLmE5YzE0NjkgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvbWRldi5jCisrKyBiL3V0aWwtbGludXgvbWRldi5jCkBAIC0yODcsNyArMjg3LDcgQEAKIAl9CiB9CiAKLWludCBtZGV2X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtZGV2X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBtZGV2X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWNoYXIgKmFjdGlvbjsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgvbWtmc19taW5peC5jIGIvdXRpbC1saW51eC9ta2ZzX21pbml4LmMKaW5kZXggMmIwNjk3YS4uZGU5ZGRlMyAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9ta2ZzX21pbml4LmMKKysrIGIvdXRpbC1saW51eC9ta2ZzX21pbml4LmMKQEAgLTYwMyw3ICs2MDMsNyBAQAogCXByaW50ZigiTWF4c2l6ZT0lbGRcbiIsIChsb25nKVNCX01BWFNJWkUpOwogfQogCi1pbnQgbWtmc19taW5peF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbWtmc19taW5peF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbWtmc19taW5peF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgbW50ZW50ICptcDsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgvbWtzd2FwLmMgYi91dGlsLWxpbnV4L21rc3dhcC5jCmluZGV4IDg4ZjFmYmIuLmFmNGNjMTAgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvbWtzd2FwLmMKKysrIGIvdXRpbC1saW51eC9ta3N3YXAuYwpAQCAtOCw3ICs4LDcgQEAKIAogI2luY2x1ZGUgImxpYmJiLmgiCiAKLWludCBta3N3YXBfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG1rc3dhcF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgbWtzd2FwX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBmZCwgcGFnZXNpemU7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L21vcmUuYyBiL3V0aWwtbGludXgvbW9yZS5jCmluZGV4IDBhMjFhOWEuLmVlNTU5YjEgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvbW9yZS5jCisrKyBiL3V0aWwtbGludXgvbW9yZS5jCkBAIC01Miw3ICs1Miw3IEBACiAKICNkZWZpbmUgQ09OVkVSVEVEX1RBQl9TSVpFIDgKIAotaW50IG1vcmVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG1vcmVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IG1vcmVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IGMgPSBjOyAvKiBmb3IgZ2NjICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L21vdW50LmMgYi91dGlsLWxpbnV4L21vdW50LmMKaW5kZXggMTBhZGE1NC4uN2M1OGFlZiAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9tb3VudC5jCisrKyBiL3V0aWwtbGludXgvbW91bnQuYwpAQCAtMTU1OSw3ICsxNTU5LDcgQEAKIAogc3RhdGljIGNvbnN0IGNoYXIgbXVzdF9iZV9yb290W10gQUxJR04xID0gInlvdSBtdXN0IGJlIHJvb3QiOwogCi1pbnQgbW91bnRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG1vdW50X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBtb3VudF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAllbnVtIHsgT1BUX0FMTCA9IDB4MTAgfTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgvcGl2b3Rfcm9vdC5jIGIvdXRpbC1saW51eC9waXZvdF9yb290LmMKaW5kZXggOTI5ZWQzMC4uMjhhZjAwYyAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9waXZvdF9yb290LmMKKysrIGIvdXRpbC1saW51eC9waXZvdF9yb290LmMKQEAgLTEyLDcgKzEyLDcgQEAKIAogZXh0ZXJuIGludCBwaXZvdF9yb290KGNvbnN0IGNoYXIgKiBuZXdfcm9vdCxjb25zdCBjaGFyICogcHV0X29sZCk7CiAKLWludCBwaXZvdF9yb290X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBwaXZvdF9yb290X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBwaXZvdF9yb290X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlmIChhcmdjICE9IDMpCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L3JkYXRlLmMgYi91dGlsLWxpbnV4L3JkYXRlLmMKaW5kZXggNDM4N2YwNC4uMTUwZWZiZSAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9yZGF0ZS5jCisrKyBiL3V0aWwtbGludXgvcmRhdGUuYwpAQCAtNDIsNyArNDIsNyBAQAogCXJldHVybiBudG9obChuZXR0KSAtIFJGQ184NjhfQklBUzsKIH0KIAotaW50IHJkYXRlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCByZGF0ZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgcmRhdGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJdGltZV90IHJlbW90ZV90aW1lOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC9yZWFkcHJvZmlsZS5jIGIvdXRpbC1saW51eC9yZWFkcHJvZmlsZS5jCmluZGV4IDE1MjEzNzYuLmRiZTdjNzEgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvcmVhZHByb2ZpbGUuYworKysgYi91dGlsLWxpbnV4L3JlYWRwcm9maWxlLmMKQEAgLTQxLDcgKzQxLDcgQEAKIHN0YXRpYyBjb25zdCBjaGFyIGRlZmF1bHRtYXBbXSBBTElHTjEgPSAiL2Jvb3QvU3lzdGVtLm1hcCI7CiBzdGF0aWMgY29uc3QgY2hhciBkZWZhdWx0cHJvW10gQUxJR04xID0gIi9wcm9jL3Byb2ZpbGUiOwogCi1pbnQgcmVhZHByb2ZpbGVfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IHJlYWRwcm9maWxlX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCByZWFkcHJvZmlsZV9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlGSUxFICptYXA7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L3NldGFyY2guYyBiL3V0aWwtbGludXgvc2V0YXJjaC5jCmluZGV4IDA4Mjk0ZTUuLmRiYzAyZGUgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvc2V0YXJjaC5jCisrKyBiL3V0aWwtbGludXgvc2V0YXJjaC5jCkBAIC0xMSw3ICsxMSw3IEBACiAKICNpbmNsdWRlICJsaWJiYi5oIgogCi1pbnQgc2V0YXJjaF9tYWluKGludCBBVFRSSUJVVEVfVU5VU0VEIGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzZXRhcmNoX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBNQUlOX0VYVEVSTkFMTFlfVklTSUJMRTsKIGludCBzZXRhcmNoX21haW4oaW50IEFUVFJJQlVURV9VTlVTRUQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50IHBlcnMgPSAtMTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgvc3dhcG9ub2ZmLmMgYi91dGlsLWxpbnV4L3N3YXBvbm9mZi5jCmluZGV4IGRiNDNhYTUuLjY4NThkMjYgMTAwNjQ0Ci0tLSBhL3V0aWwtbGludXgvc3dhcG9ub2ZmLmMKKysrIGIvdXRpbC1saW51eC9zd2Fwb25vZmYuYwpAQCAtNTgsNyArNTgsNyBAQAogCXJldHVybiBlcnI7CiB9CiAKLWludCBzd2FwX29uX29mZl9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgc3dhcF9vbl9vZmZfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHN3YXBfb25fb2ZmX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCByZXQ7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4L3N3aXRjaF9yb290LmMgYi91dGlsLWxpbnV4L3N3aXRjaF9yb290LmMKaW5kZXggZTRlOWUyMS4uNzAwZjc5OSAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC9zd2l0Y2hfcm9vdC5jCisrKyBiL3V0aWwtbGludXgvc3dpdGNoX3Jvb3QuYwpAQCAtNjQsNyArNjQsNyBAQAogCX0gZWxzZSB1bmxpbmsoZGlyZWN0b3J5KTsKIH0KIAotaW50IHN3aXRjaF9yb290X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBzd2l0Y2hfcm9vdF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgTUFJTl9FWFRFUk5BTExZX1ZJU0lCTEU7CiBpbnQgc3dpdGNoX3Jvb3RfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY2hhciAqbmV3cm9vdCwgKmNvbnNvbGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC91bW91bnQuYyBiL3V0aWwtbGludXgvdW1vdW50LmMKaW5kZXggYzU3YTQ5ZS4uMTdkODhiMyAxMDA2NDQKLS0tIGEvdXRpbC1saW51eC91bW91bnQuYworKysgYi91dGlsLWxpbnV4L3Vtb3VudC5jCkBAIC0yMSw3ICsyMSw3IEBACiAjZGVmaW5lIE9QVF9SRU1PVU5UICAgICAgICAgICAgICgxIDw8IDQpCiAjZGVmaW5lIE9QVF9BTEwgICAgICAgICAgICAgICAgIChFTkFCTEVfRkVBVFVSRV9VTU9VTlRfQUxMID8gKDEgPDwgNSkgOiAwKQogCi1pbnQgdW1vdW50X21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCB1bW91bnRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIE1BSU5fRVhURVJOQUxMWV9WSVNJQkxFOwogaW50IHVtb3VudF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlpbnQgZG9Gb3JjZTsK