DivestOS/Patches/Linux_CVEs/CVE-2017-7187/3.4/0002.patch.base64
2017-11-07 22:03:58 -05:00

1 line
13 KiB
Plaintext

RnJvbSA4MDkzYmYwMjg3OGFhNjU5Y2ZjZjhjYmZjMjcyYjJhZDQ1ZWVmMjRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnbGFzIEdpbGJlcnQgPGRnaWxiZXJ0QGludGVybG9nLmNvbT4KRGF0ZTogVHVlLCAwMyBKdW4gMjAxNCAxMzoxODoxOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEJBQ0tQT1JUOiBzZzogcmVsYXggMTYgYnl0ZSBjZGIgcmVzdHJpY3Rpb24KCiAtIHJlbW92ZSB0aGUgMTYgYnl0ZSBDREIgKFNDU0kgY29tbWFuZCkgbGVuZ3RoIGxpbWl0IGZyb20gdGhlIHNnIGRyaXZlcgogICBieSBoYW5kbGluZyBsb25nZXIgQ0RCcyB0aGUgc2FtZSB3YXkgYXMgdGhlIGJzZyBkcml2ZXIuIFJlbW92ZSBjb21tZW50CiAgIGZyb20gc2cuaCBwdWJsaWMgaW50ZXJmYWNlIGFib3V0IHRoZSBjbWRfbGVuIGZpZWxkIGJlaW5nIGxpbWl0ZWQgdG8gMTYKICAgYnl0ZXMuCiAtIHJlbW92ZSBzb21lIGRlYWQgY29kZSBjYXVzZWQgYnkgdGhpcyBjaGFuZ2UKIC0gY2xlYW51cCBjb21tZW50IGJsb2NrIGF0IHRoZSB0b3Agb2Ygc2cuaCwgZml4IHVybHMKCkNoYW5nZS1JZDogSWU4MTUwZTUzNzViMzMxNmQ1ZDUyMDZmMDc5YzRhNTBmMWM1MGI3NTUKU2lnbmVkLW9mZi1ieTogRG91Z2xhcyBHaWxiZXJ0IDxkZ2lsYmVydEBpbnRlcmxvZy5jb20+ClJldmlld2VkLWJ5OiBNaWtlIENocmlzdGllIDxtaWNoYWVsY0Bjcy53aXNjLmVkdT4KUmV2aWV3ZWQtYnk6IEhhbm5lcyBSZWluZWNrZSA8aGFyZUBzdXNlLmRlPgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KLS0tCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3NnLmMgYi9kcml2ZXJzL3Njc2kvc2cuYwppbmRleCAyMTZkMzFmLi41NjE3OGJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2cuYworKysgYi9kcml2ZXJzL3Njc2kvc2cuYwpAQCAtNyw5ICs3LDcgQEAKICAqIE9yaWdpbmFsIGRyaXZlciAoc2cuYyk6CiAgKiAgICAgICAgQ29weXJpZ2h0IChDKSAxOTkyIExhd3JlbmNlIEZvYXJkCiAgKiBWZXJzaW9uIDIgYW5kIDMgZXh0ZW5zaW9ucyB0byBkcml2ZXI6Ci0gKiAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4IC0gMjAwNSBEb3VnbGFzIEdpbGJlcnQKLSAqCi0gKiAgTW9kaWZpZWQgIDE5LUpBTi0xOTk4ICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4gIERldmZzIHN1cHBvcnQKKyAqICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTggLSAyMDE0IERvdWdsYXMgR2lsYmVydAogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMTgsMTEgKzE2LDExIEBACiAgKgogICovCiAKLXN0YXRpYyBpbnQgc2dfdmVyc2lvbl9udW0gPSAzMDUzNDsJLyogMiBkaWdpdHMgZm9yIGVhY2ggY29tcG9uZW50ICovCi0jZGVmaW5lIFNHX1ZFUlNJT05fU1RSICIzLjUuMzQiCitzdGF0aWMgaW50IHNnX3ZlcnNpb25fbnVtID0gMzA1MzY7CS8qIDIgZGlnaXRzIGZvciBlYWNoIGNvbXBvbmVudCAqLworI2RlZmluZSBTR19WRVJTSU9OX1NUUiAiMy41LjM2IgogCiAvKgotICogIEQuIFAuIEdpbGJlcnQgKGRnaWxiZXJ0QGludGVybG9nLmNvbSwgZG91Z2dAdHJpb2RlLm5ldC5hdSksIG5vdGVzOgorICogIEQuIFAuIEdpbGJlcnQgKGRnaWxiZXJ0QGludGVybG9nLmNvbSksIG5vdGVzOgogICogICAgICAtIHNjc2kgbG9nZ2luZyBpcyBhdmFpbGFibGUgdmlhIFNDU0lfTE9HX1RJTUVPVVQgbWFjcm9zLiBGaXJzdAogICogICAgICAgIHRoZSBrZXJuZWwvbW9kdWxlIG5lZWRzIHRvIGJlIGJ1aWx0IHdpdGggQ09ORklHX1NDU0lfTE9HR0lORwogICogICAgICAgIChvdGhlcndpc2UgdGhlIG1hY3JvcyBjb21waWxlIHRvIGVtcHR5IHN0YXRlbWVudHMpLgpAQCAtNjMsNyArNjEsNyBAQAogCiAjaWZkZWYgQ09ORklHX1NDU0lfUFJPQ19GUwogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KLXN0YXRpYyBjaGFyICpzZ192ZXJzaW9uX2RhdGUgPSAiMjAwNjEwMjciOworc3RhdGljIGNoYXIgKnNnX3ZlcnNpb25fZGF0ZSA9ICIyMDE0MDYwMyI7CiAKIHN0YXRpYyBpbnQgc2dfcHJvY19pbml0KHZvaWQpOwogc3RhdGljIHZvaWQgc2dfcHJvY19jbGVhbnVwKHZvaWQpOwpAQCAtNzIsNiArNzAsMTIgQEAKICNkZWZpbmUgU0dfQUxMT1dfRElPX0RFRiAwCiAKICNkZWZpbmUgU0dfTUFYX0RFVlMgMzI3NjgKKworLyogU0dfTUFYX0NEQl9TSVpFIHNob3VsZCBiZSAyNjAgKHNwYzRyMzcgc2VjdGlvbiAzLjEuMzApIGhvd2V2ZXIgdGhlIHR5cGUKKyAqIG9mIHNnX2lvX2hkcjo6Y21kX2xlbiBjYW4gb25seSByZXByZXNlbnQgMjU1LiBBbGwgU0NTSSBjb21tYW5kcyBncmVhdGVyCisgKiB0aGFuIDE2IGJ5dGVzIGFyZSAidmFyaWFibGUgbGVuZ3RoIiB3aG9zZSBsZW5ndGggaXMgYSBtdWx0aXBsZSBvZiA0CisgKi8KKyNkZWZpbmUgU0dfTUFYX0NEQl9TSVpFIDI1MgogCiAvKgogICogU3VwcG9zZSB5b3Ugd2FudCB0byBjYWxjdWxhdGUgdGhlIGZvcm11bGEgbXVsZGl2KHgsbSxkKT1pbnQoeCAqIG0gLyBkKQpAQCAtMTU5LDcgKzE2Myw3IEBACiAJY2hhciBmb3JjZV9wYWNraWQ7CS8qIDEgLT4gcGFja19pZCBpbnB1dCB0byByZWFkKCksIDAgLT4gaWdub3JlZCAqLwogCXZvbGF0aWxlIGNoYXIgY2xvc2VkOwkvKiAxIC0+IGZkIGNsb3NlZCBidXQgcmVxdWVzdChzKSBvdXRzdGFuZGluZyAqLwogCWNoYXIgY21kX3E7CQkvKiAxIC0+IGFsbG93IGNvbW1hbmQgcXVldWluZywgMCAtPiBkb24ndCAqLwotCWNoYXIgbmV4dF9jbWRfbGVuOwkvKiAwIC0+IGF1dG9tYXRpYyAoZGVmKSwgPjAgLT4gdXNlIG9uIG5leHQgd3JpdGUoKSAqLworCXVuc2lnbmVkIGNoYXIgbmV4dF9jbWRfbGVuOyAvKiAwOiBhdXRvbWF0aWMsID4wOiB1c2Ugb24gbmV4dCB3cml0ZSgpICovCiAJY2hhciBrZWVwX29ycGhhbjsJLyogMCAtPiBkcm9wIG9ycGhhbiAoZGVmKSwgMSAtPiBrZWVwIGZvciByZWFkKCkgKi8KIAljaGFyIG1tYXBfY2FsbGVkOwkvKiAwIC0+IG1tYXAoKSBuZXZlciBjYWxsZWQgb24gdGhpcyBmZCAqLwogCXN0cnVjdCBrcmVmIGZfcmVmOwpAQCAtNTQyLDcgKzU0Niw3IEBACiAJU2dfcmVxdWVzdCAqc3JwOwogCXN0cnVjdCBzZ19oZWFkZXIgb2xkX2hkcjsKIAlzZ19pb19oZHJfdCAqaHA7Ci0JdW5zaWduZWQgY2hhciBjbW5kW01BWF9DT01NQU5EX1NJWkVdOworCXVuc2lnbmVkIGNoYXIgY21uZFtTR19NQVhfQ0RCX1NJWkVdOwogCiAJaWYgKHVubGlrZWx5KHNlZ21lbnRfZXEoZ2V0X2ZzKCksIEtFUk5FTF9EUykpKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTU3NywxMiArNTgxLDYgQEAKIAlidWYgKz0gU1pfU0dfSEVBREVSOwogCV9fZ2V0X3VzZXIob3Bjb2RlLCBidWYpOwogCWlmIChzZnAtPm5leHRfY21kX2xlbiA+IDApIHsKLQkJaWYgKHNmcC0+bmV4dF9jbWRfbGVuID4gTUFYX0NPTU1BTkRfU0laRSkgewotCQkJU0NTSV9MT0dfVElNRU9VVCgxLCBwcmludGsoInNnX3dyaXRlOiBjb21tYW5kIGxlbmd0aCB0b28gbG9uZ1xuIikpOwotCQkJc2ZwLT5uZXh0X2NtZF9sZW4gPSAwOwotCQkJc2dfcmVtb3ZlX3JlcXVlc3Qoc2ZwLCBzcnApOwotCQkJcmV0dXJuIC1FSU87Ci0JCX0KIAkJY21kX3NpemUgPSBzZnAtPm5leHRfY21kX2xlbjsKIAkJc2ZwLT5uZXh0X2NtZF9sZW4gPSAwOwkvKiByZXNldCBzbyBvbmx5IHRoaXMgd3JpdGUoKSBlZmZlY3RlZCAqLwogCX0gZWxzZSB7CkBAIC02NTQsNyArNjUyLDcgQEAKIAlpbnQgazsKIAlTZ19yZXF1ZXN0ICpzcnA7CiAJc2dfaW9faGRyX3QgKmhwOwotCXVuc2lnbmVkIGNoYXIgY21uZFtNQVhfQ09NTUFORF9TSVpFXTsKKwl1bnNpZ25lZCBjaGFyIGNtbmRbU0dfTUFYX0NEQl9TSVpFXTsKIAlpbnQgdGltZW91dDsKIAl1bnNpZ25lZCBsb25nIHVsX3RpbWVvdXQ7CiAKQEAgLTE2NDcsMTUgKzE2NDUsMjcgQEAKIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IHNmcC0+cGFyZW50ZHAtPmRldmljZS0+cmVxdWVzdF9xdWV1ZTsKIAlzdHJ1Y3QgcnFfbWFwX2RhdGEgKm1kLCBtYXBfZGF0YTsKIAlpbnQgcncgPSBocC0+ZHhmZXJfZGlyZWN0aW9uID09IFNHX0RYRkVSX1RPX0RFViA/IFdSSVRFIDogUkVBRDsKKwl1bnNpZ25lZCBjaGFyICpsb25nX2NtZHAgPSBOVUxMOwogCiAJU0NTSV9MT0dfVElNRU9VVCg0LCBwcmludGsoS0VSTl9JTkZPICJzZ19zdGFydF9yZXE6IGR4ZmVyX2xlbj0lZFxuIiwKIAkJCQkgICBkeGZlcl9sZW4pKTsKIAorCWlmIChocC0+Y21kX2xlbiA+IEJMS19NQVhfQ0RCKSB7CisJCWxvbmdfY21kcCA9IGt6YWxsb2MoaHAtPmNtZF9sZW4sIEdGUF9LRVJORUwpOworCQlpZiAoIWxvbmdfY21kcCkKKwkJCXJldHVybiAtRU5PTUVNOworCX0KKwogCXJxID0gYmxrX2dldF9yZXF1ZXN0KHEsIHJ3LCBHRlBfQVRPTUlDKTsKLQlpZiAoIXJxKQorCWlmICghcnEpIHsKKwkJa2ZyZWUobG9uZ19jbWRwKTsKIAkJcmV0dXJuIC1FTk9NRU07CisJfQogCiAJYmxrX3JxX3NldF9ibG9ja19wYyhycSk7CisKKwlpZiAoaHAtPmNtZF9sZW4gPiBCTEtfTUFYX0NEQikKKwkJcnEtPmNtZCA9IGxvbmdfY21kcDsKIAltZW1jcHkocnEtPmNtZCwgY21kLCBocC0+Y21kX2xlbik7CiAJcnEtPmNtZF9sZW4gPSBocC0+Y21kX2xlbjsKIApAQCAtMTc0MCw2ICsxNzUwLDggQEAKIAkJaWYgKHNycC0+YmlvKQogCQkJcmV0ID0gYmxrX3JxX3VubWFwX3VzZXIoc3JwLT5iaW8pOwogCisJCWlmIChzcnAtPnJxLT5jbWQgIT0gc3JwLT5ycS0+X19jbWQpCisJCQlrZnJlZShzcnAtPnJxLT5jbWQpOwogCQlibGtfcHV0X3JlcXVlc3Qoc3JwLT5ycSk7CiAJfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Njc2kvc2cuaCBiL2luY2x1ZGUvc2NzaS9zZy5oCmluZGV4IGE5ZjNjNmYuLmQ4YzBjNDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc2NzaS9zZy5oCisrKyBiL2luY2x1ZGUvc2NzaS9zZy5oCkBAIC00LDc3ICs0LDM0IEBACiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KIAogLyoKLSAgIEhpc3Rvcnk6Ci0gICAgU3RhcnRlZDogQXVnIDkgYnkgTGF3cmVuY2UgRm9hcmQgKGVudHJvcHlAd29ybGQuc3RkLmNvbSksIHRvIGFsbG93IHVzZXIKLSAgICAgcHJvY2VzcyBjb250cm9sIG9mIFNDU0kgZGV2aWNlcy4KLSAgICBEZXZlbG9wbWVudCBTcG9uc29yZWQgYnkgS2lsbHkgQ29ycC4gTlkgTlkKLU9yaWdpbmFsIGRyaXZlciAoc2cuaCk6Ci0qICAgICAgIENvcHlyaWdodCAoQykgMTk5MiBMYXdyZW5jZSBGb2FyZAotVmVyc2lvbiAyIGFuZCAzIGV4dGVuc2lvbnMgdG8gZHJpdmVyOgotKiAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTggLSAyMDA2IERvdWdsYXMgR2lsYmVydAotCi0gICAgVmVyc2lvbjogMy41LjM0ICgyMDA2MDkyMCkKLSAgICBUaGlzIHZlcnNpb24gaXMgZm9yIDIuNiBzZXJpZXMga2VybmVscy4KLQotICAgIEZvciBhIGZ1bGwgY2hhbmdlbG9nIHNlZSBodHRwOi8vd3d3LnRvcnF1ZS5uZXQvc2cKLQotTWFwIG9mIFNHIHZlcmlvbnMgdG8gdGhlIExpbnV4IGtlcm5lbHMgaW4gd2hpY2ggdGhleSBhcHBlYXI6Ci0gICAgICAgLS0tLS0tLS0tLSAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgIG9yaWdpbmFsICAgICAgICAgIGFsbCBrZXJuZWxzIDwgMi4yLjYKLSAgICAgICAyLjEuNDAgICAgICAgICAgICAyLjIuMjAKLSAgICAgICAzLjAueCAgICAgICAgICAgICBvcHRpb25hbCB2ZXJzaW9uIDMgc2cgZHJpdmVyIGZvciAyLjIgc2VyaWVzCi0gICAgICAgMy4xLjE3KysgICAgICAgICAgMi40LjArKwotICAgICAgIDMuNS4zMCsrICAgICAgICAgIDIuNi4wKysKLQotTWFqb3IgbmV3IGZlYXR1cmVzIGluIFNHIDMueCBkcml2ZXIgKGNmIFNHIDIueCBkcml2ZXJzKQotCS0gU0dfSU8gaW9jdGwoKSBjb21iaW5lcyBmdW5jdGlvbiBpZiB3cml0ZSgpIGFuZCByZWFkKCkKLQktIG5ldyBpbnRlcmZhY2UgKHNnX2lvX2hkcl90KSBidXQgc3RpbGwgc3VwcG9ydHMgb2xkIGludGVyZmFjZQotCS0gc2NhdHRlci9nYXRoZXIgaW4gdXNlciBzcGFjZSwgZGlyZWN0IElPLCBhbmQgbW1hcCBzdXBwb3J0ZWQKLQotIFRoZSBub3JtYWwgYWN0aW9uIG9mIHRoaXMgZHJpdmVyIGlzIHRvIHVzZSB0aGUgYWRhcHRlciAoSEJBKSBkcml2ZXIgdG8gRE1BCi0gZGF0YSBpbnRvIGtlcm5lbCBidWZmZXJzIGFuZCB0aGVuIHVzZSB0aGUgQ1BVIHRvIGNvcHkgdGhlIGRhdGEgaW50byB0aGUgCi0gdXNlciBzcGFjZSAodmljZSB2ZXJzYSBmb3Igd3JpdGVzKS4gVGhhdCBpcyBjYWxsZWQgImluZGlyZWN0IiBJTyBkdWUgdG8gCi0gdGhlIGRvdWJsZSBoYW5kbGluZyBvZiBkYXRhLiBUaGVyZSBhcmUgdHdvIG1ldGhvZHMgb2ZmZXJlZCB0byByZW1vdmUgdGhlCi0gcmVkdW5kYW50IGNvcHk6IDEpIGRpcmVjdCBJTyBhbmQgMikgdXNpbmcgdGhlIG1tYXAoKSBzeXN0ZW0gY2FsbCB0byBtYXAKLSB0aGUgcmVzZXJ2ZSBidWZmZXIgKHRoaXMgZHJpdmVyIGhhcyBvbmUgcmVzZXJ2ZSBidWZmZXIgcGVyIGZkKSBpbnRvIHRoZQotIHVzZXIgc3BhY2UuIEJvdGggaGF2ZSB0aGVpciBhZHZhbnRhZ2VzLgotIEluIHRlcm1zIG9mIGFic29sdXRlIHNwZWVkIG1tYXAoKSBpcyBmYXN0ZXIuIElmIHNwZWVkIGlzIG5vdCBhIGNvbmNlcm4sIAotIGluZGlyZWN0IElPIHNob3VsZCBiZSBmaW5lLiBSZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgotCi0gKiogTi5CLiBUbyB1c2UgZGlyZWN0IElPICdlY2hvIDEgPiAvcHJvYy9zY3NpL3NnL2FsbG93X2Rpbycgb3IKLSAgICAgICAgICdlY2hvIDEgPiAvc3lzL21vZHVsZS9zZy9wYXJhbWV0ZXJzL2FsbG93X2RpbycgaXMgbmVlZGVkLgotICAgICAgICAgVGhhdCBhdHRyaWJ1dGUgaXMgMCBieSBkZWZhdWx0LiAqKgotIAotIEhpc3RvcmljYWwgbm90ZTogdGhpcyBTQ1NJIHBhc3MtdGhyb3VnaCBkcml2ZXIgaGFzIGJlZW4ga25vd24gYXMgInNnIiBmb3IgCi0gYSBkZWNhZGUuIEluIGJyb2FkZXIga2VybmVsIGRpc2N1c3Npb25zICJzZyIgaXMgdXNlZCB0byByZWZlciB0byBzY2F0dGVyCi0gZ2F0aGVyIHRlY2huaXF1ZXMuIFRoZSBjb250ZXh0IHNob3VsZCBjbGFyaWZ5IHdoaWNoICJzZyIgaXMgcmVmZXJyZWQgdG8uCi0KLSBEb2N1bWVudGF0aW9uCi0gPT09PT09PT09PT09PQotIEEgd2ViIHNpdGUgZm9yIHRoZSBTRyBkZXZpY2UgZHJpdmVyIGNhbiBiZSBmb3VuZCBhdDoKLQlodHRwOi8vd3d3LnRvcnF1ZS5uZXQvc2cgIFthbHRlcm5hdGl2ZWx5IGNoZWNrIHRoZSBNQUlOVEFJTkVSUyBmaWxlXQotIFRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2cgdmVyc2lvbiAzIGRyaXZlciBjYW4gYmUgZm91bmQgYXQ6Ci0gCWh0dHA6Ly93d3cudG9ycXVlLm5ldC9zZy9wL3NnX3YzX2hvLmh0bWwKLSBUaGlzIGlzIGEgcmVuZGVyaW5nIGZyb20gRG9jQm9vayBzb3VyY2UgW2NoYW5nZSB0aGUgZXh0ZW5zaW9uIHRvICJzZ21sIgotIG9yICJ4bWwiXS4gVGhlcmUgYXJlIHJlbmRlcmluZ3MgaW4gInBzIiwgInBkZiIsICJydGYiIGFuZCAidHh0IiAoc29vbikuCi0gVGhlIFNHX0lPIGlvY3RsIGlzIG5vdyBmb3VuZCBpbiBvdGhlciBwYXJ0cyBrZXJuZWwgKGUuZy4gdGhlIGJsb2NrIGxheWVyKS4KLSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaHR0cDovL3d3dy50b3JxdWUubmV0L3NnL3NnX2lvLmh0bWwKLQotIFRoZSBvbGRlciwgdmVyc2lvbiAyIGRvY3VtZW50cyBkaXNjdXNzIHRoZSBvcmlnaW5hbCBzZyBpbnRlcmZhY2UgaW4gZGV0YWlsOgotCWh0dHA6Ly93d3cudG9ycXVlLm5ldC9zZy9wL3Njc2ktZ2VuZXJpYy50eHQKLQlodHRwOi8vd3d3LnRvcnF1ZS5uZXQvc2cvcC9zY3NpLWdlbmVyaWNfbG9uZy50eHQKLSBBbHNvIGF2YWlsYWJsZTogPGtlcm5lbF9zb3VyY2U+L0RvY3VtZW50YXRpb24vc2NzaS9zY3NpLWdlbmVyaWMudHh0Ci0KLSBVdGlsaXR5IGFuZCB0ZXN0IHByb2dyYW1zIGFyZSBhdmFpbGFibGUgYXQgdGhlIHNnIHdlYiBzaXRlLiBUaGV5IGFyZSAKLSBwYWNrYWdlZCBhcyBzZzNfdXRpbHMgKGZvciB0aGUgbGsgMi40IGFuZCAyLjYgc2VyaWVzKSBhbmQgc2dfdXRpbHMKLSAoZm9yIHRoZSBsayAyLjIgc2VyaWVzKS4KLSovCisgKiBIaXN0b3J5OgorICogIFN0YXJ0ZWQ6IEF1ZyA5IGJ5IExhd3JlbmNlIEZvYXJkIChlbnRyb3B5QHdvcmxkLnN0ZC5jb20pLCB0byBhbGxvdyB1c2VyCisgKiAgIHByb2Nlc3MgY29udHJvbCBvZiBTQ1NJIGRldmljZXMuCisgKiAgRGV2ZWxvcG1lbnQgU3BvbnNvcmVkIGJ5IEtpbGx5IENvcnAuIE5ZIE5ZCisgKgorICogT3JpZ2luYWwgZHJpdmVyIChzZy5oKToKKyAqICAgICAgIENvcHlyaWdodCAoQykgMTk5MiBMYXdyZW5jZSBGb2FyZAorICogVmVyc2lvbiAyIGFuZCAzIGV4dGVuc2lvbnMgdG8gZHJpdmVyOgorICoJQ29weXJpZ2h0IChDKSAxOTk4IC0gMjAxNCBEb3VnbGFzIEdpbGJlcnQKKyAqCisgKiAgVmVyc2lvbjogMy41LjM2ICgyMDE0MDYwMykKKyAqICBUaGlzIHZlcnNpb24gaXMgZm9yIDIuNiBhbmQgMyBzZXJpZXMga2VybmVscy4KKyAqCisgKiBEb2N1bWVudGF0aW9uCisgKiA9PT09PT09PT09PT09CisgKiBBIHdlYiBzaXRlIGZvciB0aGUgU0cgZGV2aWNlIGRyaXZlciBjYW4gYmUgZm91bmQgYXQ6CisgKglodHRwOi8vc2cuZGFubnkuY3ovc2cgIFthbHRlcm5hdGl2ZWx5IGNoZWNrIHRoZSBNQUlOVEFJTkVSUyBmaWxlXQorICogVGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzZyB2ZXJzaW9uIDMgZHJpdmVyIGNhbiBiZSBmb3VuZCBhdDoKKyAqCWh0dHA6Ly9zZy5kYW5ueS5jei9zZy9wL3NnX3YzX2hvLmh0bWwKKyAqIEFsc28gc2VlOiA8a2VybmVsX3NvdXJjZT4vRG9jdW1lbnRhdGlvbi9zY3NpL3Njc2ktZ2VuZXJpYy50eHQKKyAqCisgKiBGb3IgdXRpbGl0eSBhbmQgdGVzdCBwcm9ncmFtcyBzZWU6IGh0dHA6Ly9zZy5kYW5ueS5jei9zZy9zZzNfdXRpbHMuaHRtbAorICovCiAKICNpZmRlZiBfX0tFUk5FTF9fCiBleHRlcm4gaW50IHNnX2JpZ19idWZmOyAvKiBmb3Igc3lzY3RsICovCiAjZW5kaWYKIAotLyogTmV3IGludGVyZmFjZSBpbnRyb2R1Y2VkIGluIHRoZSAzLnggU0cgZHJpdmVycyBmb2xsb3dzICovCiAKIHR5cGVkZWYgc3RydWN0IHNnX2lvdmVjIC8qIHNhbWUgc3RydWN0dXJlIGFzIHVzZWQgYnkgcmVhZHYoKSBMaW51eCBzeXN0ZW0gKi8KIHsgICAgICAgICAgICAgICAgICAgICAgIC8qIGNhbGwuIEl0IGRlZmluZXMgb25lIHNjYXR0ZXItZ2F0aGVyIGVsZW1lbnQuICovCkBAIC04Nyw3ICs0NCw3IEBACiB7CiAgICAgaW50IGludGVyZmFjZV9pZDsgICAgICAgICAgIC8qIFtpXSAnUycgZm9yIFNDU0kgZ2VuZXJpYyAocmVxdWlyZWQpICovCiAgICAgaW50IGR4ZmVyX2RpcmVjdGlvbjsgICAgICAgIC8qIFtpXSBkYXRhIHRyYW5zZmVyIGRpcmVjdGlvbiAgKi8KLSAgICB1bnNpZ25lZCBjaGFyIGNtZF9sZW47ICAgICAgLyogW2ldIFNDU0kgY29tbWFuZCBsZW5ndGggKCA8PSAxNiBieXRlcykgKi8KKyAgICB1bnNpZ25lZCBjaGFyIGNtZF9sZW47ICAgICAgLyogW2ldIFNDU0kgY29tbWFuZCBsZW5ndGggKi8KICAgICB1bnNpZ25lZCBjaGFyIG14X3NiX2xlbjsgICAgLyogW2ldIG1heCBsZW5ndGggdG8gd3JpdGUgdG8gc2JwICovCiAgICAgdW5zaWduZWQgc2hvcnQgaW92ZWNfY291bnQ7IC8qIFtpXSAwIGltcGxpZXMgbm8gc2NhdHRlciBnYXRoZXIgKi8KICAgICB1bnNpZ25lZCBpbnQgZHhmZXJfbGVuOyAgICAgLyogW2ldIGJ5dGUgY291bnQgb2YgZGF0YSB0cmFuc2ZlciAqLwo=