drm: Branch 'master' - 6 commits
[email protected] (GitLab Mirror) Mon, 9 Dec 2019 20:47:14 +0000 (UTC)
| Newsgroups | gmane.comp.video.dri.patches |
|---|---|
| Message-ID | <[email protected]> |
IHRlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jICAgIHwgICAzNSArKwogdGVzdHMvYW1kZ3B1L2Ft ZGdwdV90ZXN0LmggICAgfCAgICA1IAogdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMgICAgfCAg NTgxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogdGVzdHMvYW1k Z3B1L2RlYWRsb2NrX3Rlc3RzLmMgfCAgIDY2ICsrKysKIDQgZmlsZXMgY2hhbmdlZCwgNjQ2IGlu c2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKTmV3IGNvbW1pdHM6CmNvbW1pdCAzMWE2ZWMx NDFhZDBmMTkwYWY1OWE5NmQ4NmYwZWJlOGZjZWU2Mjg3CkF1dGhvcjogRmxvcmEgQ3VpIDxmbG9y YS5jdWlAYW1kLmNvbT4KRGF0ZTogICBNb24gTWFyIDE4IDE2OjQ1OjMxIDIwMTkgKzA4MDAKCiAg ICB0ZXN0cy9hbWRncHU6IGFkZCBnZnggcmluZyBiYWQgc2xvdyBkcmF3IHRlc3QKICAgIAogICAg Zm9yIGdmeDkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogRmxvcmEgQ3VpIDxmbG9yYS5jdWlAYW1k LmNvbT4KICAgIFJldmlld2VkLWJ5OiBNYXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29t PgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jIGIvdGVzdHMvYW1kZ3B1 L2FtZGdwdV90ZXN0LmMKaW5kZXggNTRiZDMzZGMuLmVhNGE5MTEzIDEwMDY0NAotLS0gYS90ZXN0 cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYworKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwpA QCAtNDgxLDYgKzQ4MSwxMiBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGlzYWJsZV9zdWl0ZXMoKQog CQkJCSJnZnggcmluZyBiYWQgZHJhdyB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUw KSIsIENVX0ZBTFNFKSkKIAkJCWZwcmludGYoc3RkZXJyLCAidGVzdCBkZWFjdGl2YXRpb24gZmFp bGVkIC0gJXNcbiIsIENVX2dldF9lcnJvcl9tc2coKSk7CiAKKwkvKiBUaGlzIHRlc3Qgd2FzIHJh biBvbiBHRlg5IG9ubHkgKi8KKwkvL2lmIChmYW1pbHlfaWQgPCBBTURHUFVfRkFNSUxZX0FJIHx8 IGZhbWlseV9pZCA+IEFNREdQVV9GQU1JTFlfUlYpCisJCWlmIChhbWRncHVfc2V0X3Rlc3RfYWN0 aXZlKERFQURMT0NLX1RFU1RTX1NUUiwKKwkJCQkiZ2Z4IHJpbmcgc2xvdyBiYWQgZHJhdyB0ZXN0 IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIENVX0ZBTFNFKSkKKwkJCWZwcmludGYo c3RkZXJyLCAidGVzdCBkZWFjdGl2YXRpb24gZmFpbGVkIC0gJXNcbiIsIENVX2dldF9lcnJvcl9t c2coKSk7CisKIAlpZiAoYW1kZ3B1X3NldF90ZXN0X2FjdGl2ZShCT19URVNUU19TVFIsICJNZXRh ZGF0YSIsIENVX0ZBTFNFKSkKIAkJZnByaW50ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBm YWlsZWQgLSAlc1xuIiwgQ1VfZ2V0X2Vycm9yX21zZygpKTsKIApkaWZmIC0tZ2l0IGEvdGVzdHMv YW1kZ3B1L2FtZGdwdV90ZXN0LmggYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaAppbmRleCAy MWMwMjRmZC4uZjU0OTIyNTggMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5o CisrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oCkBAIC0yNDAsNiArMjQwLDggQEAgdm9p ZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNl X2hhbmRsZSwgdWludDMyX3QgaXAKIHZvaWQgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfc2xvd19oZWxw ZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWludDMyX3QgaXBfdHlwZSk7 CiB2b2lkIGFtZGdwdV9tZW1jcHlfZHJhd190ZXN0KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmlj ZV9oYW5kbGUsIHVpbnQzMl90IHJpbmcsCiAJCQkgICAgIGludCBoYW5nKTsKK3ZvaWQgYW1kZ3B1 X21lbWNweV9kcmF3X2hhbmdfc2xvd190ZXN0KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9o YW5kbGUsIHVpbnQzMl90IHJpbmcpOworCiAvKioKICAqIEhlbHBlciBmdW5jdGlvbnMKICAqLwpk aWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUvYmFz aWNfdGVzdHMuYwppbmRleCA0NGU2Y2NlNC4uODRmMzgyN2QgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2Ft ZGdwdS9iYXNpY190ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jCkBAIC0z NTgsNyArMzU4LDggQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHByZWFtYmxlY2FjaGVfZ2Z4OVtd ID0gewogZW51bSBwc190eXBlIHsKIAlQU19DT05TVCwKIAlQU19URVgsCi0JUFNfSEFORworCVBT X0hBTkcsCisJUFNfSEFOR19TTE9XCiB9OwogCiBzdGF0aWMgY29uc3QgdWludDMyX3QgcHNfY29u c3Rfc2hhZGVyX2dmeDlbXSA9IHsKQEAgLTUxMCw2ICs1MTEsMjEgQEAgc3RydWN0IGFtZGdwdV90 ZXN0X3NoYWRlciBtZW1jcHlfY3NfaGFuZ19zbG93X3J2ID0gewogICAgICAgICAxCiB9OwogCit1 bnNpZ25lZCBpbnQgbWVtY3B5X3BzX2hhbmdfc2xvd19haV9jb2Rlc1tdID0geworICAgICAgICAw eGJlZmMwMDBjLCAweGJlOGUwMTdlLCAweGJlZmUwNzdlLCAweGQ0MDgwMDAwLAorICAgICAgICAw eGQ0MDkwMDAxLCAweGQ0MGMwMTAwLCAweGQ0MGQwMTAxLCAweGYwODAwZjAwLAorICAgICAgICAw eDAwNDAwMDAyLCAweGJlZmUwMTBlLCAweGJmOGMwZjcwLCAweGJmODAwMDAwLAorICAgICAgICAw eGJmODAwMDAwLCAweGJmODAwMDAwLCAweGJmODAwMDAwLCAweGM0MDAxODBmLAorICAgICAgICAw eDAzMDIwMTAwLCAweGJmODEwMDAwCit9OworCitzdHJ1Y3QgYW1kZ3B1X3Rlc3Rfc2hhZGVyIG1l bWNweV9wc19oYW5nX3Nsb3dfYWkgPSB7CisgICAgICAgIG1lbWNweV9wc19oYW5nX3Nsb3dfYWlf Y29kZXMsCisgICAgICAgIDcsCisgICAgICAgIDIsCisgICAgICAgIDkKK307CisKIGludCBhbWRn cHVfYm9fYWxsb2NfYW5kX21hcF9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LCB1bnNpZ25l ZCBzaXplLAogCQkJdW5zaWduZWQgYWxpZ25tZW50LCB1bnNpZ25lZCBoZWFwLCB1aW50NjRfdCBh bGxvY19mbGFncywKIAkJCXVpbnQ2NF90IG1hcHBpbmdfZmxhZ3MsIGFtZGdwdV9ib19oYW5kbGUg KmJvLCB2b2lkICoqY3B1LApAQCAtMjc1OSw2ICsyNzc1LDM1IEBAIHZvaWQgYW1kZ3B1X2Rpc3Bh dGNoX2hhbmdfc2xvd19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwg dWludDMyCiAJfQogfQogCitzdGF0aWMgaW50IGFtZGdwdV9kcmF3X2xvYWRfcHNfc2hhZGVyX2hh bmdfc2xvdyh1aW50MzJfdCAqcHRyLCBpbnQgZmFtaWx5KQoreworCXN0cnVjdCBhbWRncHVfdGVz dF9zaGFkZXIgKnNoYWRlcjsKKwlpbnQgaSwgbG9vcCA9IDB4NDAwMDA7CisKKwlzd2l0Y2ggKGZh bWlseSkgeworCQljYXNlIEFNREdQVV9GQU1JTFlfQUk6CisJCWNhc2UgQU1ER1BVX0ZBTUlMWV9S VjoKKwkJCXNoYWRlciA9ICZtZW1jcHlfcHNfaGFuZ19zbG93X2FpOworCQkJYnJlYWs7CisJCWRl ZmF1bHQ6CisJCQlyZXR1cm4gLTE7CisJCQlicmVhazsKKwl9CisKKwltZW1jcHkocHRyLCBzaGFk ZXItPnNoYWRlciwgc2hhZGVyLT5oZWFkZXJfbGVuZ3RoICogc2l6ZW9mKHVpbnQzMl90KSk7CisK Kwlmb3IgKGkgPSAwOyBpIDwgbG9vcDsgaSsrKQorCQltZW1jcHkocHRyICsgc2hhZGVyLT5oZWFk ZXJfbGVuZ3RoICsgc2hhZGVyLT5ib2R5X2xlbmd0aCAqIGksCisJCQlzaGFkZXItPnNoYWRlciAr IHNoYWRlci0+aGVhZGVyX2xlbmd0aCwKKwkJCXNoYWRlci0+Ym9keV9sZW5ndGggKiBzaXplb2Yo dWludDMyX3QpKTsKKworCW1lbWNweShwdHIgKyBzaGFkZXItPmhlYWRlcl9sZW5ndGggKyBzaGFk ZXItPmJvZHlfbGVuZ3RoICogbG9vcCwKKwkJc2hhZGVyLT5zaGFkZXIgKyBzaGFkZXItPmhlYWRl cl9sZW5ndGggKyBzaGFkZXItPmJvZHlfbGVuZ3RoLAorCQlzaGFkZXItPmZvb3RfbGVuZ3RoICog c2l6ZW9mKHVpbnQzMl90KSk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBhbWRncHVf ZHJhd19sb2FkX3BzX3NoYWRlcih1aW50OF90ICpwdHIsIGludCBwc190eXBlKQogewogCWludCBp OwpAQCAtMjg0Niw3ICsyODkxLDggQEAgc3RhdGljIGludCBhbWRncHVfZHJhd19pbml0KHVpbnQz Ml90ICpwdHIpCiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2Ry YXdibHRfc3VyZl9pbmZvKHVpbnQzMl90ICpwdHIsCi0JCQkJCQkJIHVpbnQ2NF90IGRzdF9hZGRy KQorCQkJCQkJCSB1aW50NjRfdCBkc3RfYWRkciwKKwkJCQkJCQkgaW50IGhhbmdfc2xvdykKIHsK IAlpbnQgaSA9IDA7CiAKQEAgLTI4NzEsNyArMjkxNyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Ry YXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdibHRfc3VyZl9pbmZvKHVpbnQzMl90ICpwdHIsCiAJcHRy W2krK10gPSAweDMxODsKIAlwdHJbaSsrXSA9IGRzdF9hZGRyID4+IDg7CiAJcHRyW2krK10gPSBk c3RfYWRkciA+PiA0MDsKLQlwdHJbaSsrXSA9IDB4N2MwMWY7CisJcHRyW2krK10gPSBoYW5nX3Ns b3cgPyAweDFmZmM3ZmYgOiAweDdjMDFmOwogCXB0cltpKytdID0gMDsKIAlwdHJbaSsrXSA9IDB4 NTA0Mzg7CiAJcHRyW2krK10gPSAweDEwMTQwMDAwOwpAQCAtMjg4MCw3ICsyOTI2LDcgQEAgc3Rh dGljIGludCBhbWRncHVfZHJhd19zZXR1cF9hbmRfd3JpdGVfZHJhd2JsdF9zdXJmX2luZm8odWlu dDMyX3QgKnB0ciwKIAkvKiBtbUNCX01SVDBfRVBJVENIICovCiAJcHRyW2krK10gPSBQQUNLRVQz KFBBQ0tFVDNfU0VUX0NPTlRFWFRfUkVHLCAxKTsKIAlwdHJbaSsrXSA9IDB4MWU4OwotCXB0cltp KytdID0gMHgxZjsKKwlwdHJbaSsrXSA9IGhhbmdfc2xvdyA/IDB4N2ZmIDogMHgxZjsKIAogCS8q IDB4QTMyQiAgIENCX0NPTE9SMV9CQVNFICovCiAJcHRyW2krK10gPSBQQUNLRVQzKFBBQ0tFVDNf U0VUX0NPTlRFWFRfUkVHLCAxKTsKQEAgLTI5MDYsNyArMjk1Miw3IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdibHRfc3VyZl9pbmZvKHVpbnQzMl90ICpwdHIs CiAJcmV0dXJuIGk7CiB9CiAKLXN0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRl X2RyYXdibHRfc3RhdGUodWludDMyX3QgKnB0cikKK3N0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfc2V0 dXBfYW5kX3dyaXRlX2RyYXdibHRfc3RhdGUodWludDMyX3QgKnB0ciwgaW50IGhhbmdfc2xvdykK IHsKIAlpbnQgaSA9IDA7CiAJY29uc3QgdWludDMyX3QgKmNhY2hlZF9jbWRfcHRyOwpAQCAtMjkz OCw2ICsyOTg0LDggQEAgc3RhdGljIGludCBhbWRncHVfZHJhd19zZXR1cF9hbmRfd3JpdGVfZHJh d2JsdF9zdGF0ZSh1aW50MzJfdCAqcHRyKQogCWNhY2hlZF9jbWRfc2l6ZSA9IHNpemVvZihjYWNo ZWRfY21kX2dmeDkpOwogCiAJbWVtY3B5KHB0ciArIGksIGNhY2hlZF9jbWRfcHRyLCBjYWNoZWRf Y21kX3NpemUpOworCWlmIChoYW5nX3Nsb3cpCisJCSoocHRyICsgaSArIDEyKSA9IDB4ODAwMDgw MDsKIAlpICs9IGNhY2hlZF9jbWRfc2l6ZS9zaXplb2YodWludDMyX3QpOwogCiAJcmV0dXJuIGk7 CkBAIC0yOTQ1LDcgKzI5OTMsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9kcmF3X3NldHVwX2FuZF93 cml0ZV9kcmF3Ymx0X3N0YXRlKHVpbnQzMl90ICpwdHIpCiAKIHN0YXRpYyBpbnQgYW1kZ3B1X2Ry YXdfdnNfUmVjdFBvc1RleEZhc3Rfd3JpdGUyaHcodWludDMyX3QgKnB0ciwKIAkJCQkJCSAgaW50 IHBzX3R5cGUsCi0JCQkJCQkgIHVpbnQ2NF90IHNoYWRlcl9hZGRyKQorCQkJCQkJICB1aW50NjRf dCBzaGFkZXJfYWRkciwKKwkJCQkJCSAgaW50IGhhbmdfc2xvdykKIHsKIAlpbnQgaSA9IDA7CiAK QEAgLTI5ODcsOCArMzAzNiw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1Rl eEZhc3Rfd3JpdGUyaHcodWludDMyX3QgKnB0ciwKIAlwdHJbaSsrXSA9IFBBQ0tFVDMoUEtUM19T RVRfU0hfUkVHLCA0KTsKIAlwdHJbaSsrXSA9IDB4NGM7CiAJaSArPSAyOwotCXB0cltpKytdID0g MHg0MjAwMDAwMDsKLQlwdHJbaSsrXSA9IDB4NDIwMDAwMDA7CisJcHRyW2krK10gPSBoYW5nX3Ns b3cgPyAweDQ1MDAwMDAwIDogMHg0MjAwMDAwMDsKKwlwdHJbaSsrXSA9IGhhbmdfc2xvdyA/IDB4 NDUwMDAwMDAgOiAweDQyMDAwMDAwOwogCiAJcHRyW2krK10gPSBQQUNLRVQzKFBLVDNfU0VUX1NI X1JFRywgNCk7CiAJcHRyW2krK10gPSAweDUwOwpAQCAtMzEyNSwxMSArMzE3NCwxMSBAQCB2b2lk IGFtZGdwdV9tZW1zZXRfZHJhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAog CWkgPSAwOwogCWkgKz0gYW1kZ3B1X2RyYXdfaW5pdChwdHJfY21kICsgaSk7CiAKLQlpICs9IGFt ZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N1cmZfaW5mbyhwdHJfY21kICsgaSwg bWNfYWRkcmVzc19kc3QpOworCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdi bHRfc3VyZl9pbmZvKHB0cl9jbWQgKyBpLCBtY19hZGRyZXNzX2RzdCwgMCk7CiAKLQlpICs9IGFt ZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N0YXRlKHB0cl9jbWQgKyBpKTsKKwlp ICs9IGFtZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N0YXRlKHB0cl9jbWQgKyBp LCAwKTsKIAotCWkgKz0gYW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1RleEZhc3Rfd3JpdGUyaHcocHRy X2NtZCArIGksIFBTX0NPTlNULCBtY19hZGRyZXNzX3NoYWRlcl92cyk7CisJaSArPSBhbWRncHVf ZHJhd192c19SZWN0UG9zVGV4RmFzdF93cml0ZTJodyhwdHJfY21kICsgaSwgUFNfQ09OU1QsIG1j X2FkZHJlc3Nfc2hhZGVyX3ZzLCAwKTsKIAogCWkgKz0gYW1kZ3B1X2RyYXdfcHNfd3JpdGUyaHco cHRyX2NtZCArIGksIFBTX0NPTlNULCBtY19hZGRyZXNzX3NoYWRlcl9wcyk7CiAKQEAgLTMyODgs MTEgKzMzMzcsMTEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X21lbWNweV9kcmF3KGFtZGdwdV9kZXZp Y2VfaGFuZGxlIGRldmljZV9oYW5kbGUsCiAJaSA9IDA7CiAJaSArPSBhbWRncHVfZHJhd19pbml0 KHB0cl9jbWQgKyBpKTsKIAotCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdi bHRfc3VyZl9pbmZvKHB0cl9jbWQgKyBpLCBtY19hZGRyZXNzX2RzdCk7CisJaSArPSBhbWRncHVf ZHJhd19zZXR1cF9hbmRfd3JpdGVfZHJhd2JsdF9zdXJmX2luZm8ocHRyX2NtZCArIGksIG1jX2Fk ZHJlc3NfZHN0LCAwKTsKIAotCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdi bHRfc3RhdGUocHRyX2NtZCArIGkpOworCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRl X2RyYXdibHRfc3RhdGUocHRyX2NtZCArIGksIDApOwogCi0JaSArPSBhbWRncHVfZHJhd192c19S ZWN0UG9zVGV4RmFzdF93cml0ZTJodyhwdHJfY21kICsgaSwgUFNfVEVYLCBtY19hZGRyZXNzX3No YWRlcl92cyk7CisJaSArPSBhbWRncHVfZHJhd192c19SZWN0UG9zVGV4RmFzdF93cml0ZTJodyhw dHJfY21kICsgaSwgUFNfVEVYLCBtY19hZGRyZXNzX3NoYWRlcl92cywgMCk7CiAKIAlpICs9IGFt ZGdwdV9kcmF3X3BzX3dyaXRlMmh3KHB0cl9jbWQgKyBpLCBQU19URVgsIG1jX2FkZHJlc3Nfc2hh ZGVyX3BzKTsKIApAQCAtMzQzOCw2ICszNDg3LDE2OCBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZHJh d190ZXN0KHZvaWQpCiAJfQogfQogCit2b2lkIGFtZGdwdV9tZW1jcHlfZHJhd19oYW5nX3Nsb3df dGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdCByaW5nKQor eworCWFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0X2hhbmRsZTsKKwlhbWRncHVfYm9faGFu ZGxlIGJvX3NoYWRlcl9wcywgYm9fc2hhZGVyX3ZzOworCWFtZGdwdV9ib19oYW5kbGUgYm9fZHN0 LCBib19zcmMsIGJvX2NtZCwgcmVzb3VyY2VzWzVdOworCXZvaWQgKnB0cl9zaGFkZXJfcHM7CisJ dm9pZCAqcHRyX3NoYWRlcl92czsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwdHJfZHN0Owor CXVuc2lnbmVkIGNoYXIgKnB0cl9zcmM7CisJdWludDMyX3QgKnB0cl9jbWQ7CisJdWludDY0X3Qg bWNfYWRkcmVzc19kc3QsIG1jX2FkZHJlc3Nfc3JjLCBtY19hZGRyZXNzX2NtZDsKKwl1aW50NjRf dCBtY19hZGRyZXNzX3NoYWRlcl9wcywgbWNfYWRkcmVzc19zaGFkZXJfdnM7CisJYW1kZ3B1X3Zh X2hhbmRsZSB2YV9zaGFkZXJfcHMsIHZhX3NoYWRlcl92czsKKwlhbWRncHVfdmFfaGFuZGxlIHZh X2RzdCwgdmFfc3JjLCB2YV9jbWQ7CisJc3RydWN0IGFtZGdwdV9ncHVfaW5mbyBncHVfaW5mbyA9 IHswfTsKKwlpbnQgaSwgcjsKKwlpbnQgYm9fc2l6ZSA9IDB4NDAwMDAwMDsKKwlpbnQgYm9fc2hh ZGVyX3BzX3NpemUgPSAweDQwMDAwMDsKKwlpbnQgYm9fc2hhZGVyX3ZzX3NpemUgPSA0MDk2Owor CWludCBib19jbWRfc2l6ZSA9IDQwOTY7CisJc3RydWN0IGFtZGdwdV9jc19yZXF1ZXN0IGlic19y ZXF1ZXN0ID0gezB9OworCXN0cnVjdCBhbWRncHVfY3NfaWJfaW5mbyBpYl9pbmZvPSB7MH07CisJ dWludDMyX3QgaGFuZ19zdGF0ZSwgaGFuZ3MsIGV4cGlyZWQ7CisJYW1kZ3B1X2JvX2xpc3RfaGFu ZGxlIGJvX2xpc3Q7CisJc3RydWN0IGFtZGdwdV9jc19mZW5jZSBmZW5jZV9zdGF0dXMgPSB7MH07 CisKKwlyID0gYW1kZ3B1X3F1ZXJ5X2dwdV9pbmZvKGRldmljZV9oYW5kbGUsICZncHVfaW5mbyk7 CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9jc19jdHhfY3JlYXRlKGRl dmljZV9oYW5kbGUsICZjb250ZXh0X2hhbmRsZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwor CisJciA9IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX2NtZF9zaXpl LCA0MDk2LAorCQkJCSAgICBBTURHUFVfR0VNX0RPTUFJTl9HVFQsIDAsCisJCQkJICAgICZib19j bWQsICh2b2lkICoqKSZwdHJfY21kLAorCQkJCSAgICAmbWNfYWRkcmVzc19jbWQsICZ2YV9jbWQp OworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwltZW1zZXQocHRyX2NtZCwgMCwgYm9fY21kX3Np emUpOworCisJciA9IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX3No YWRlcl9wc19zaXplLCA0MDk2LAorCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAwLAorCQkJ CQkmYm9fc2hhZGVyX3BzLCAmcHRyX3NoYWRlcl9wcywKKwkJCQkJJm1jX2FkZHJlc3Nfc2hhZGVy X3BzLCAmdmFfc2hhZGVyX3BzKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJbWVtc2V0KHB0 cl9zaGFkZXJfcHMsIDAsIGJvX3NoYWRlcl9wc19zaXplKTsKKworCXIgPSBhbWRncHVfYm9fYWxs b2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCBib19zaGFkZXJfdnNfc2l6ZSwgNDA5NiwKKwkJCQkJ QU1ER1BVX0dFTV9ET01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX3NoYWRlcl92cywgJnB0cl9zaGFk ZXJfdnMsCisJCQkJCSZtY19hZGRyZXNzX3NoYWRlcl92cywgJnZhX3NoYWRlcl92cyk7CisJQ1Vf QVNTRVJUX0VRVUFMKHIsIDApOworCW1lbXNldChwdHJfc2hhZGVyX3ZzLCAwLCBib19zaGFkZXJf dnNfc2l6ZSk7CisKKwlyID0gYW1kZ3B1X2RyYXdfbG9hZF9wc19zaGFkZXJfaGFuZ19zbG93KHB0 cl9zaGFkZXJfcHMsIGdwdV9pbmZvLmZhbWlseV9pZCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp OworCisJciA9IGFtZGdwdV9kcmF3X2xvYWRfdnNfc2hhZGVyKHB0cl9zaGFkZXJfdnMpOworCUNV X0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZp Y2VfaGFuZGxlLCBib19zaXplLCA0MDk2LAorCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAw LAorCQkJCQkmYm9fc3JjLCAodm9pZCAqKikmcHRyX3NyYywKKwkJCQkJJm1jX2FkZHJlc3Nfc3Jj LCAmdmFfc3JjKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2Fs bG9jX2FuZF9tYXAoZGV2aWNlX2hhbmRsZSwgYm9fc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dF TV9ET01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX2RzdCwgKHZvaWQgKiopJnB0cl9kc3QsCisJCQkJ CSZtY19hZGRyZXNzX2RzdCwgJnZhX2RzdCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJ bWVtc2V0KHB0cl9zcmMsIDB4NTUsIGJvX3NpemUpOworCisJaSA9IDA7CisJaSArPSBhbWRncHVf ZHJhd19pbml0KHB0cl9jbWQgKyBpKTsKKworCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dy aXRlX2RyYXdibHRfc3VyZl9pbmZvKHB0cl9jbWQgKyBpLCBtY19hZGRyZXNzX2RzdCwgMSk7CisK KwlpICs9IGFtZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N0YXRlKHB0cl9jbWQg KyBpLCAxKTsKKworCWkgKz0gYW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1RleEZhc3Rfd3JpdGUyaHco cHRyX2NtZCArIGksIFBTX1RFWCwKKwkJCQkJCQltY19hZGRyZXNzX3NoYWRlcl92cywgMSk7CisK KwlpICs9IGFtZGdwdV9kcmF3X3BzX3dyaXRlMmh3KHB0cl9jbWQgKyBpLCBQU19URVgsIG1jX2Fk ZHJlc3Nfc2hhZGVyX3BzKTsKKworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDMoUEtUM19TRVRfU0hf UkVHLCA4KTsKKwlwdHJfY21kW2krK10gPSAweGM7CisJcHRyX2NtZFtpKytdID0gbWNfYWRkcmVz c19zcmMgPj4gODsKKwlwdHJfY21kW2krK10gPSBtY19hZGRyZXNzX3NyYyA+PiA0MCB8IDB4MTBl MDAwMDA7CisJcHRyX2NtZFtpKytdID0gMHgxZmZjN2ZmOworCXB0cl9jbWRbaSsrXSA9IDB4OTA1 MDBmYWM7CisJcHRyX2NtZFtpKytdID0gMHhmZmUwMDA7CisJaSArPSAzOworCisJcHRyX2NtZFtp KytdID0gUEFDS0VUMyhQS1QzX1NFVF9TSF9SRUcsIDQpOworCXB0cl9jbWRbaSsrXSA9IDB4MTQ7 CisJcHRyX2NtZFtpKytdID0gMHg5MjsKKwlpICs9IDM7CisKKwlwdHJfY21kW2krK10gPSBQQUNL RVQzKFBBQ0tFVDNfU0VUX0NPTlRFWFRfUkVHLCAxKTsKKwlwdHJfY21kW2krK10gPSAweDE5MTsK KwlwdHJfY21kW2krK10gPSAwOworCisJaSArPSBhbWRncHVfZHJhd19kcmF3KHB0cl9jbWQgKyBp KTsKKworCXdoaWxlIChpICYgNykKKwkJcHRyX2NtZFtpKytdID0gMHhmZmZmMTAwMDsgLyogdHlw ZTMgbm9wIHBhY2tldCAqLworCisJcmVzb3VyY2VzWzBdID0gYm9fZHN0OworCXJlc291cmNlc1sx XSA9IGJvX3NyYzsKKwlyZXNvdXJjZXNbMl0gPSBib19zaGFkZXJfcHM7CisJcmVzb3VyY2VzWzNd ID0gYm9fc2hhZGVyX3ZzOworCXJlc291cmNlc1s0XSA9IGJvX2NtZDsKKwlyID0gYW1kZ3B1X2Jv X2xpc3RfY3JlYXRlKGRldmljZV9oYW5kbGUsIDUsIHJlc291cmNlcywgTlVMTCwgJmJvX2xpc3Qp OworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCWliX2luZm8uaWJfbWNfYWRkcmVzcyA9IG1j X2FkZHJlc3NfY21kOworCWliX2luZm8uc2l6ZSA9IGk7CisJaWJzX3JlcXVlc3QuaXBfdHlwZSA9 IEFNREdQVV9IV19JUF9HRlg7CisJaWJzX3JlcXVlc3QucmluZyA9IHJpbmc7CisJaWJzX3JlcXVl c3QucmVzb3VyY2VzID0gYm9fbGlzdDsKKwlpYnNfcmVxdWVzdC5udW1iZXJfb2ZfaWJzID0gMTsK KwlpYnNfcmVxdWVzdC5pYnMgPSAmaWJfaW5mbzsKKwlpYnNfcmVxdWVzdC5mZW5jZV9pbmZvLmhh bmRsZSA9IE5VTEw7CisJciA9IGFtZGdwdV9jc19zdWJtaXQoY29udGV4dF9oYW5kbGUsIDAsICZp YnNfcmVxdWVzdCwgMSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJZmVuY2Vfc3RhdHVz LmlwX3R5cGUgPSBBTURHUFVfSFdfSVBfR0ZYOworCWZlbmNlX3N0YXR1cy5pcF9pbnN0YW5jZSA9 IDA7CisJZmVuY2Vfc3RhdHVzLnJpbmcgPSByaW5nOworCWZlbmNlX3N0YXR1cy5jb250ZXh0ID0g Y29udGV4dF9oYW5kbGU7CisJZmVuY2Vfc3RhdHVzLmZlbmNlID0gaWJzX3JlcXVlc3Quc2VxX25v OworCisJLyogd2FpdCBmb3IgSUIgYWNjb21wbGlzaGVkICovCisJciA9IGFtZGdwdV9jc19xdWVy eV9mZW5jZV9zdGF0dXMoJmZlbmNlX3N0YXR1cywKKwkJCQkJIEFNREdQVV9USU1FT1VUX0lORklO SVRFLAorCQkJCQkgMCwgJmV4cGlyZWQpOworCisJciA9IGFtZGdwdV9jc19xdWVyeV9yZXNldF9z dGF0ZShjb250ZXh0X2hhbmRsZSwgJmhhbmdfc3RhdGUsICZoYW5ncyk7CisJQ1VfQVNTRVJUX0VR VUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTChoYW5nX3N0YXRlLCBBTURHUFVfQ1RYX1VOS05P V05fUkVTRVQpOworCisJciA9IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3koYm9fbGlzdCk7CisJQ1Vf QVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib191bm1hcF9hbmRfZnJlZShib19k c3QsIHZhX2RzdCwgbWNfYWRkcmVzc19kc3QsIGJvX3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChy LCAwKTsKKwlyID0gYW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NyYywgdmFfc3JjLCBtY19h ZGRyZXNzX3NyYywgYm9fc2l6ZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFt ZGdwdV9ib191bm1hcF9hbmRfZnJlZShib19jbWQsIHZhX2NtZCwgbWNfYWRkcmVzc19jbWQsIGJv X2NtZF9zaXplKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX3Vu bWFwX2FuZF9mcmVlKGJvX3NoYWRlcl9wcywgdmFfc2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRl cl9wcywgYm9fc2hhZGVyX3BzX3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlyID0g YW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NoYWRlcl92cywgdmFfc2hhZGVyX3ZzLCBtY19h ZGRyZXNzX3NoYWRlcl92cywgYm9fc2hhZGVyX3ZzX3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChy LCAwKTsKKworCXIgPSBhbWRncHVfY3NfY3R4X2ZyZWUoY29udGV4dF9oYW5kbGUpOworCUNVX0FT U0VSVF9FUVVBTChyLCAwKTsKK30KKwogc3RhdGljIHZvaWQgYW1kZ3B1X2dwdV9yZXNldF90ZXN0 KHZvaWQpCiB7CiAJaW50IHI7CmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvZGVhZGxvY2tfdGVz dHMuYyBiL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCmluZGV4IDA3MzVhNzI0Li5kNmVi MzViMSAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMKKysrIGIvdGVz dHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMKQEAgLTExOSw2ICsxMTksNyBAQCBzdGF0aWMgdm9p ZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19jb21wdXRlKHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1 X2Rpc3BhdGNoX2hhbmdfc2xvd19nZngodm9pZCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0 Y2hfaGFuZ19zbG93X2NvbXB1dGUodm9pZCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfZHJhd19oYW5n X2dmeCh2b2lkKTsKK3N0YXRpYyB2b2lkIGFtZGdwdV9kcmF3X2hhbmdfc2xvd19nZngodm9pZCk7 CiAKIENVX0JPT0wgc3VpdGVfZGVhZGxvY2tfdGVzdHNfZW5hYmxlKHZvaWQpCiB7CkBAIC0xODgs NiArMTg5LDcgQEAgQ1VfVGVzdEluZm8gZGVhZGxvY2tfdGVzdHNbXSA9IHsKIAl7ICJnZnggcmlu ZyBiYWQgc2xvdyBkaXNwYXRjaCB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIs IGFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfZ2Z4IH0sCiAJeyAiY29tcHV0ZSByaW5nIGJhZCBz bG93IGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTAsNTApIiwgYW1k Z3B1X2Rpc3BhdGNoX2hhbmdfc2xvd19jb21wdXRlIH0sCiAJeyAiZ2Z4IHJpbmcgYmFkIGRyYXcg dGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBhbWRncHVfZHJhd19oYW5nX2dm eCB9LAorCXsgImdmeCByaW5nIHNsb3cgYmFkIGRyYXcgdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBf dGltZW91dD01MCkiLCBhbWRncHVfZHJhd19oYW5nX3Nsb3dfZ2Z4IH0sCiAJQ1VfVEVTVF9JTkZP X05VTEwsCiB9OwogCkBAIC01MjYsMyArNTI4LDE5IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kcmF3 X2hhbmdfZ2Z4KHZvaWQpCiAJCWFtZGdwdV9tZW1jcHlfZHJhd190ZXN0KGRldmljZV9oYW5kbGUs IHJpbmdfaWQsIDApOwogCX0KIH0KKworc3RhdGljIHZvaWQgYW1kZ3B1X2RyYXdfaGFuZ19zbG93 X2dmeCh2b2lkKQoreworCXN0cnVjdCBkcm1fYW1kZ3B1X2luZm9faHdfaXAgaW5mbzsKKwl1aW50 MzJfdCByaW5nX2lkOworCWludCByOworCisJciA9IGFtZGdwdV9xdWVyeV9od19pcF9pbmZvKGRl dmljZV9oYW5kbGUsIEFNREdQVV9IV19JUF9HRlgsIDAsICZpbmZvKTsKKwlDVV9BU1NFUlRfRVFV QUwociwgMCk7CisKKwlmb3IgKHJpbmdfaWQgPSAwOyAoMSA8PCByaW5nX2lkKSAmIGluZm8uYXZh aWxhYmxlX3JpbmdzOyByaW5nX2lkKyspIHsKKwkJYW1kZ3B1X21lbWNweV9kcmF3X3Rlc3QoZGV2 aWNlX2hhbmRsZSwgcmluZ19pZCwgMCk7CisJCWFtZGdwdV9tZW1jcHlfZHJhd19oYW5nX3Nsb3df dGVzdChkZXZpY2VfaGFuZGxlLCByaW5nX2lkKTsKKwkJYW1kZ3B1X21lbWNweV9kcmF3X3Rlc3Qo ZGV2aWNlX2hhbmRsZSwgcmluZ19pZCwgMCk7CisJfQorfQpjb21taXQgNWUxZjY1MzNhMGIxNTU4 NzIyMGY2NjE4NzJjODY5ODE3MDZiNGQ0MgpBdXRob3I6IEZsb3JhIEN1aSA8ZmxvcmEuY3VpQGFt ZC5jb20+CkRhdGU6ICAgTW9uIE1hciAxOCAxNDoxNDo0MiAyMDE5ICswODAwCgogICAgdGVzdHMv YW1kZ3B1OiBhZGQgZ2Z4IHJpbmcgZHJhdyBoYW5nIHRlc3QKICAgIAogICAgZm9yIGdmeDkKICAg IAogICAgU2lnbmVkLW9mZi1ieTogRmxvcmEgQ3VpIDxmbG9yYS5jdWlAYW1kLmNvbT4KICAgIFJl dmlld2VkLWJ5OiBNYXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29tPgoKZGlmZiAtLWdp dCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0 LmMKaW5kZXggMDgzODdmYzcuLjU0YmQzM2RjIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYW1k Z3B1X3Rlc3QuYworKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwpAQCAtNDc2LDYgKzQ3 NiwxMSBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGlzYWJsZV9zdWl0ZXMoKQogCQkJCSJjb21wdXRl IHJpbmcgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01 MCw1MCkiLCBDVV9GQUxTRSkpCiAJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9u IGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOwogCisJLy9pZiAoZmFtaWx5X2lk IDwgQU1ER1BVX0ZBTUlMWV9BSSB8fCBmYW1pbHlfaWQgPiBBTURHUFVfRkFNSUxZX1JWKQorCQlp ZiAoYW1kZ3B1X3NldF90ZXN0X2FjdGl2ZShERUFETE9DS19URVNUU19TVFIsCisJCQkJImdmeCBy aW5nIGJhZCBkcmF3IHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTApIiwgQ1VfRkFM U0UpKQorCQkJZnByaW50ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xu IiwgQ1VfZ2V0X2Vycm9yX21zZygpKTsKKwogCWlmIChhbWRncHVfc2V0X3Rlc3RfYWN0aXZlKEJP X1RFU1RTX1NUUiwgIk1ldGFkYXRhIiwgQ1VfRkFMU0UpKQogCQlmcHJpbnRmKHN0ZGVyciwgInRl c3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOwogCmRp ZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaCBiL3Rlc3RzL2FtZGdwdS9hbWRn cHVfdGVzdC5oCmluZGV4IGUwYmFmNTQ5Li4yMWMwMjRmZCAxMDA2NDQKLS0tIGEvdGVzdHMvYW1k Z3B1L2FtZGdwdV90ZXN0LmgKKysrIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmgKQEAgLTIz OCw3ICsyMzgsOCBAQCBleHRlcm4gQ1VfVGVzdEluZm8gc3luY29ial90aW1lbGluZV90ZXN0c1td OwogCiB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihhbWRncHVfZGV2aWNlX2hhbmRs ZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdCBpcF90eXBlKTsKIHZvaWQgYW1kZ3B1X2Rpc3BhdGNo X2hhbmdfc2xvd19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWlu dDMyX3QgaXBfdHlwZSk7Ci0KK3ZvaWQgYW1kZ3B1X21lbWNweV9kcmF3X3Rlc3QoYW1kZ3B1X2Rl dmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWludDMyX3QgcmluZywKKwkJCSAgICAgaW50IGhh bmcpOwogLyoqCiAgKiBIZWxwZXIgZnVuY3Rpb25zCiAgKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2Ft ZGdwdS9iYXNpY190ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKaW5kZXggMGNl MjY4ZmIuLjQ0ZTZjY2U0IDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwor KysgYi90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwpAQCAtMzU3LDcgKzM1Nyw4IEBAIHN0YXRp YyBjb25zdCB1aW50MzJfdCBwcmVhbWJsZWNhY2hlX2dmeDlbXSA9IHsKIAogZW51bSBwc190eXBl IHsKIAlQU19DT05TVCwKLQlQU19URVgKKwlQU19URVgsCisJUFNfSEFORwogfTsKIAogc3RhdGlj IGNvbnN0IHVpbnQzMl90IHBzX2NvbnN0X3NoYWRlcl9nZng5W10gPSB7CkBAIC0yNzgzLDYgKzI3 ODQsMTIgQEAgc3RhdGljIGludCBhbWRncHVfZHJhd19sb2FkX3BzX3NoYWRlcih1aW50OF90ICpw dHIsIGludCBwc190eXBlKQogCQkJcGF0Y2hpbmZvX2NvZGVfc2l6ZSA9IHBzX3RleF9zaGFkZXJf cGF0Y2hpbmZvX2NvZGVfc2l6ZV9nZng5OwogCQkJcGF0Y2hjb2RlX29mZnNldCA9IHBzX3RleF9z aGFkZXJfcGF0Y2hpbmZvX29mZnNldF9nZng5OwogCQkJYnJlYWs7CisJCWNhc2UgUFNfSEFORzoK KwkJCXNoYWRlciA9IG1lbWNweV9wc19oYW5nOworCQkJc2hhZGVyX3NpemUgPSBzaXplb2YobWVt Y3B5X3BzX2hhbmcpOworCisJCQltZW1jcHkocHRyLCBzaGFkZXIsIHNoYWRlcl9zaXplKTsKKwkJ CXJldHVybiAwOwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIC0xOwogCQkJYnJlYWs7CkBAIC0zMjM2 LDcgKzMyNDMsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfbWVtY3B5X2RyYXcoYW1kZ3B1X2Rldmlj ZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwKIAkJCSAgICAgICBhbWRncHVfYm9faGFuZGxlIGJvX3No YWRlcl92cywKIAkJCSAgICAgICB1aW50NjRfdCBtY19hZGRyZXNzX3NoYWRlcl9wcywKIAkJCSAg ICAgICB1aW50NjRfdCBtY19hZGRyZXNzX3NoYWRlcl92cywKLQkJCSAgICAgICB1aW50MzJfdCBy aW5nKQorCQkJICAgICAgIHVpbnQzMl90IHJpbmcsIGludCBoYW5nKQogewogCWFtZGdwdV9jb250 ZXh0X2hhbmRsZSBjb250ZXh0X2hhbmRsZTsKIAlhbWRncHVfYm9faGFuZGxlIGJvX2RzdCwgYm9f c3JjLCBib19jbWQsIHJlc291cmNlc1s1XTsKQEAgLTMzNDEsMTQgKzMzNDgsMjAgQEAgc3RhdGlj IHZvaWQgYW1kZ3B1X21lbWNweV9kcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5k bGUsCiAJciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoJmZlbmNlX3N0YXR1cywKIAkJ CQkJIEFNREdQVV9USU1FT1VUX0lORklOSVRFLAogCQkJCQkgMCwgJmV4cGlyZWQpOwotCUNVX0FT U0VSVF9FUVVBTChyLCAwKTsKLQlDVV9BU1NFUlRfRVFVQUwoZXhwaXJlZCwgdHJ1ZSk7CisJaWYg KCFoYW5nKSB7CisJCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwkJQ1VfQVNTRVJUX0VRVUFMKGV4 cGlyZWQsIHRydWUpOwogCi0JLyogdmVyaWZ5IGlmIG1lbWNweSB0ZXN0IHJlc3VsdCBtZWV0cyB3 aXRoIGV4cGVjdGVkICovCi0JaSA9IDA7Ci0Jd2hpbGUoaSA8IGJvX3NpemUpIHsKLQkJQ1VfQVNT RVJUX0VRVUFMKHB0cl9kc3RbaV0sIHB0cl9zcmNbaV0pOwotCQlpKys7CisJCS8qIHZlcmlmeSBp ZiBtZW1jcHkgdGVzdCByZXN1bHQgbWVldHMgd2l0aCBleHBlY3RlZCAqLworCQlpID0gMDsKKwkJ d2hpbGUoaSA8IGJvX3NpemUpIHsKKwkJCUNVX0FTU0VSVF9FUVVBTChwdHJfZHN0W2ldLCBwdHJf c3JjW2ldKTsKKwkJCWkrKzsKKwkJfQorCX0gZWxzZSB7CisJCXIgPSBhbWRncHVfY3NfcXVlcnlf cmVzZXRfc3RhdGUoY29udGV4dF9oYW5kbGUsICZoYW5nX3N0YXRlLCAmaGFuZ3MpOworCQlDVV9B U1NFUlRfRVFVQUwociwgMCk7CisJCUNVX0FTU0VSVF9FUVVBTChoYW5nX3N0YXRlLCBBTURHUFVf Q1RYX1VOS05PV05fUkVTRVQpOwogCX0KIAogCXIgPSBhbWRncHVfYm9fbGlzdF9kZXN0cm95KGJv X2xpc3QpOwpAQCAtMzM2Niw3ICszMzc5LDggQEAgc3RhdGljIHZvaWQgYW1kZ3B1X21lbWNweV9k cmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGUsCiAJQ1VfQVNTRVJUX0VRVUFM KHIsIDApOwogfQogCi1zdGF0aWMgdm9pZCBhbWRncHVfbWVtY3B5X2RyYXdfdGVzdChhbWRncHVf ZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdCByaW5nKQordm9pZCBhbWRncHVf bWVtY3B5X2RyYXdfdGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50 MzJfdCByaW5nLAorCQkJICAgICBpbnQgaGFuZykKIHsKIAlhbWRncHVfYm9faGFuZGxlIGJvX3No YWRlcl9wcywgYm9fc2hhZGVyX3ZzOwogCXZvaWQgKnB0cl9zaGFkZXJfcHM7CkBAIC0zMzc0LDYg KzMzODgsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfbWVtY3B5X2RyYXdfdGVzdChhbWRncHVfZGV2 aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdAogCXVpbnQ2NF90IG1jX2FkZHJlc3Nf c2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRlcl92czsKIAlhbWRncHVfdmFfaGFuZGxlIHZhX3No YWRlcl9wcywgdmFfc2hhZGVyX3ZzOwogCWludCBib19zaGFkZXJfc2l6ZSA9IDQwOTY7CisJZW51 bSBwc190eXBlIHBzX3R5cGUgPSBoYW5nID8gUFNfSEFORyA6IFBTX1RFWDsKIAlpbnQgcjsKIAog CXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCBib19zaGFkZXJfc2l6 ZSwgNDA5NiwKQEAgLTMzOTAsMTQgKzM0MDUsMTQgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X21lbWNw eV9kcmF3X3Rlc3QoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWludDMyX3QK IAlDVV9BU1NFUlRfRVFVQUwociwgMCk7CiAJbWVtc2V0KHB0cl9zaGFkZXJfdnMsIDAsIGJvX3No YWRlcl9zaXplKTsKIAotCXIgPSBhbWRncHVfZHJhd19sb2FkX3BzX3NoYWRlcihwdHJfc2hhZGVy X3BzLCBQU19URVgpOworCXIgPSBhbWRncHVfZHJhd19sb2FkX3BzX3NoYWRlcihwdHJfc2hhZGVy X3BzLCBwc190eXBlKTsKIAlDVV9BU1NFUlRfRVFVQUwociwgMCk7CiAKIAlyID0gYW1kZ3B1X2Ry YXdfbG9hZF92c19zaGFkZXIocHRyX3NoYWRlcl92cyk7CiAJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp OwogCiAJYW1kZ3B1X21lbWNweV9kcmF3KGRldmljZV9oYW5kbGUsIGJvX3NoYWRlcl9wcywgYm9f c2hhZGVyX3ZzLAotCQkJbWNfYWRkcmVzc19zaGFkZXJfcHMsIG1jX2FkZHJlc3Nfc2hhZGVyX3Zz LCByaW5nKTsKKwkJCW1jX2FkZHJlc3Nfc2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRlcl92cywg cmluZywgaGFuZyk7CiAKIAlyID0gYW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NoYWRlcl9w cywgdmFfc2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRlcl9wcywgYm9fc2hhZGVyX3NpemUpOwog CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKQEAgLTM0MTksNyArMzQzNCw3IEBAIHN0YXRpYyB2b2lk IGFtZGdwdV9kcmF3X3Rlc3Qodm9pZCkKIAogCWZvciAocmluZ19pZCA9IDA7ICgxIDw8IHJpbmdf aWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQrKykgewogCQlhbWRncHVfbWVtc2V0 X2RyYXdfdGVzdChkZXZpY2VfaGFuZGxlLCByaW5nX2lkKTsKLQkJYW1kZ3B1X21lbWNweV9kcmF3 X3Rlc3QoZGV2aWNlX2hhbmRsZSwgcmluZ19pZCk7CisJCWFtZGdwdV9tZW1jcHlfZHJhd190ZXN0 KGRldmljZV9oYW5kbGUsIHJpbmdfaWQsIDApOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvdGVzdHMv YW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUvZGVhZGxvY2tfdGVzdHMuYwpp bmRleCA5NDlkYzI5OC4uMDczNWE3MjQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9kZWFkbG9j a190ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCkBAIC0xMTgsNiAr MTE4LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfZ2Z4KHZvaWQpOwogc3Rh dGljIHZvaWQgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfY29tcHV0ZSh2b2lkKTsKIHN0YXRpYyB2b2lk IGFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfZ2Z4KHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1 X2Rpc3BhdGNoX2hhbmdfc2xvd19jb21wdXRlKHZvaWQpOworc3RhdGljIHZvaWQgYW1kZ3B1X2Ry YXdfaGFuZ19nZngodm9pZCk7CiAKIENVX0JPT0wgc3VpdGVfZGVhZGxvY2tfdGVzdHNfZW5hYmxl KHZvaWQpCiB7CkBAIC0xODYsNiArMTg3LDcgQEAgQ1VfVGVzdEluZm8gZGVhZGxvY2tfdGVzdHNb XSA9IHsKIAl7ICJjb21wdXRlIHJpbmcgYmFkIGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9j a3VwX3RpbWVvdXQ9NTAsNTApIiwgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfY29tcHV0ZSB9LAogCXsg ImdmeCByaW5nIGJhZCBzbG93IGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVv dXQ9NTApIiwgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfc2xvd19nZnggfSwKIAl7ICJjb21wdXRlIHJp bmcgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCw1 MCkiLCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19zbG93X2NvbXB1dGUgfSwKKwl7ICJnZnggcmluZyBi YWQgZHJhdyB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIGFtZGdwdV9kcmF3 X2hhbmdfZ2Z4IH0sCiAJQ1VfVEVTVF9JTkZPX05VTEwsCiB9OwogCkBAIC01MDYsMyArNTA4LDIx IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfY29tcHV0ZSh2b2lkKQog ewogCWFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfaGVscGVyKGRldmljZV9oYW5kbGUsIEFNREdQ VV9IV19JUF9DT01QVVRFKTsKIH0KKworc3RhdGljIHZvaWQgYW1kZ3B1X2RyYXdfaGFuZ19nZngo dm9pZCkKK3sKKwlpbnQgcjsKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9pbmZvX2h3X2lwIGluZm87CisJ dWludDMyX3QgcmluZ19pZDsKKworCXIgPSBhbWRncHVfcXVlcnlfaHdfaXBfaW5mbyhkZXZpY2Vf aGFuZGxlLCBBTURHUFVfSFdfSVBfR0ZYLCAwLCAmaW5mbyk7CisJQ1VfQVNTRVJUX0VRVUFMKHIs IDApOworCWlmICghaW5mby5hdmFpbGFibGVfcmluZ3MpCisJCXByaW50ZigiU0tJUCAuLi4gYXMg dGhlcmUncyBubyBncmFwaGljIHJpbmdcbiIpOworCisJZm9yIChyaW5nX2lkID0gMDsgKDEgPDwg cmluZ19pZCkgJiBpbmZvLmF2YWlsYWJsZV9yaW5nczsgcmluZ19pZCsrKSB7CisJCWFtZGdwdV9t ZW1jcHlfZHJhd190ZXN0KGRldmljZV9oYW5kbGUsIHJpbmdfaWQsIDApOworCQlhbWRncHVfbWVt Y3B5X2RyYXdfdGVzdChkZXZpY2VfaGFuZGxlLCByaW5nX2lkLCAxKTsKKwkJYW1kZ3B1X21lbWNw eV9kcmF3X3Rlc3QoZGV2aWNlX2hhbmRsZSwgcmluZ19pZCwgMCk7CisJfQorfQpjb21taXQgNzFi OWU2OGQ5OTliZTQ3OWI1NjBkMjkzMGQ4MzI1YWQ2MjdiZjRiZQpBdXRob3I6IEZsb3JhIEN1aSA8 ZmxvcmEuY3VpQGFtZC5jb20+CkRhdGU6ICAgTW9uIE1hciAxOCAxNTozMjozMCAyMDE5ICswODAw CgogICAgdGVzdHMvYW1kZ3B1OiBhZGQgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdAogICAgCiAgICBh ZGQgZ2Z4L2NvbXB1dGUgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdCBmb3IgZ2Z4OQogICAgCiAgICBT aWduZWQtb2ZmLWJ5OiBGbG9yYSBDdWkgPGZsb3JhLmN1aUBhbWQuY29tPgogICAgUmV2aWV3ZWQt Ynk6IE1hcmVrIE9sxaHDoWsgPG1hcmVrLm9sc2FrQGFtZC5jb20+CgpkaWZmIC0tZ2l0IGEvdGVz dHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwppbmRl eCAwODY0MjIwMy4uMDgzODdmYzcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVz dC5jCisrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCkBAIC00NjQsNiArNDY0LDE4IEBA IHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNhYmxlX3N1aXRlcygpCiAJCQkJImNvbXB1dGUgcmluZyBi YWQgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBDVV9GQUxT RSkpCiAJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4i LCBDVV9nZXRfZXJyb3JfbXNnKCkpOwogCisJLyogVGhpcyB0ZXN0IHdhcyByYW4gb24gR0ZYOSBv bmx5ICovCisJLy9pZiAoZmFtaWx5X2lkIDwgQU1ER1BVX0ZBTUlMWV9BSSB8fCBmYW1pbHlfaWQg PiBBTURHUFVfRkFNSUxZX1JWKQorCQlpZiAoYW1kZ3B1X3NldF90ZXN0X2FjdGl2ZShERUFETE9D S19URVNUU19TVFIsCisJCQkJImdmeCByaW5nIGJhZCBzbG93IGRpc3BhdGNoIHRlc3QgKHNldCBh bWRncHUubG9ja3VwX3RpbWVvdXQ9NTApIiwgQ1VfRkFMU0UpKQorCQkJZnByaW50ZihzdGRlcnIs ICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xuIiwgQ1VfZ2V0X2Vycm9yX21zZygpKTsK KworCS8qIFRoaXMgdGVzdCB3YXMgcmFuIG9uIEdGWDkgb25seSAqLworCS8vaWYgKGZhbWlseV9p ZCA8IEFNREdQVV9GQU1JTFlfQUkgfHwgZmFtaWx5X2lkID4gQU1ER1BVX0ZBTUlMWV9SVikKKwkJ aWYgKGFtZGdwdV9zZXRfdGVzdF9hY3RpdmUoREVBRExPQ0tfVEVTVFNfU1RSLAorCQkJCSJjb21w dXRlIHJpbmcgYmFkIHNsb3cgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91 dD01MCw1MCkiLCBDVV9GQUxTRSkpCisJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0 aW9uIGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOworCiAJaWYgKGFtZGdwdV9z ZXRfdGVzdF9hY3RpdmUoQk9fVEVTVFNfU1RSLCAiTWV0YWRhdGEiLCBDVV9GQUxTRSkpCiAJCWZw cmludGYoc3RkZXJyLCAidGVzdCBkZWFjdGl2YXRpb24gZmFpbGVkIC0gJXNcbiIsIENVX2dldF9l cnJvcl9tc2coKSk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oIGIv dGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmgKaW5kZXggZTFkOTAyNTMuLmUwYmFmNTQ5IDEwMDY0 NAotLS0gYS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaAorKysgYi90ZXN0cy9hbWRncHUvYW1k Z3B1X3Rlc3QuaApAQCAtMjM3LDYgKzIzNyw3IEBAIENVX0JPT0wgc3VpdGVfc3luY29ial90aW1l bGluZV90ZXN0c19lbmFibGUodm9pZCk7CiBleHRlcm4gQ1VfVGVzdEluZm8gc3luY29ial90aW1l bGluZV90ZXN0c1tdOwogCiB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihhbWRncHVf ZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLCB1aW50MzJfdCBpcF90eXBlKTsKK3ZvaWQgYW1k Z3B1X2Rpc3BhdGNoX2hhbmdfc2xvd19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNl X2hhbmRsZSwgdWludDMyX3QgaXBfdHlwZSk7CiAKIC8qKgogICogSGVscGVyIGZ1bmN0aW9ucwpk aWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUvYmFz aWNfdGVzdHMuYwppbmRleCA5ZGRlN2FmMC4uMGNlMjY4ZmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2Ft ZGdwdS9iYXNpY190ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jCkBAIC0z MDcsNyArMzA3LDggQEAgc3RhdGljICB1aW50MzJfdCBzaGFkZXJfYmluW10gPSB7CiBlbnVtIGNz X3R5cGUgewogCUNTX0JVRkZFUkNMRUFSLAogCUNTX0JVRkZFUkNPUFksCi0JQ1NfSEFORworCUNT X0hBTkcsCisJQ1NfSEFOR19TTE9XCiB9OwogCiBzdGF0aWMgY29uc3QgdWludDMyX3QgYnVmZmVy Y2xlYXJfY3Nfc2hhZGVyX2dmeDlbXSA9IHsKQEAgLTQ3Nyw2ICs0NzgsMzcgQEAgdW5zaWduZWQg aW50IG1lbWNweV9wc19oYW5nW10gPSB7CiAgICAgICAgIDB4RjgwMDE4MEYsIDB4MDMwMjAxMDAs IDB4QkY4MTAwMDAKIH07CiAKK3N0cnVjdCBhbWRncHVfdGVzdF9zaGFkZXIgeworCXVpbnQzMl90 ICpzaGFkZXI7CisJdWludDMyX3QgaGVhZGVyX2xlbmd0aDsKKwl1aW50MzJfdCBib2R5X2xlbmd0 aDsKKwl1aW50MzJfdCBmb290X2xlbmd0aDsKK307CisKK3Vuc2lnbmVkIGludCBtZW1jcHlfY3Nf aGFuZ19zbG93X2FpX2NvZGVzW10gPSB7CisgICAgMHhkMWZkMDAwMCwgMHgwNDAxMGMwOCwgMHhl MDBjMjAwMCwgMHg4MDAwMDEwMCwKKyAgICAweGJmOGMwZjcwLCAweGUwMWMyMDAwLCAweDgwMDEw MTAwLCAweGJmODEwMDAwCit9OworCitzdHJ1Y3QgYW1kZ3B1X3Rlc3Rfc2hhZGVyIG1lbWNweV9j c19oYW5nX3Nsb3dfYWkgPSB7CisgICAgICAgIG1lbWNweV9jc19oYW5nX3Nsb3dfYWlfY29kZXMs CisgICAgICAgIDQsCisgICAgICAgIDMsCisgICAgICAgIDEKK307CisKK3Vuc2lnbmVkIGludCBt ZW1jcHlfY3NfaGFuZ19zbG93X3J2X2NvZGVzW10gPSB7CisgICAgMHg4ZTAwODYwYywgMHgzMjAw MDAwMCwgMHhlMDBjMjAwMCwgMHg4MDAxMDEwMCwKKyAgICAweGJmOGMwZjcwLCAweGUwMWMyMDAw LCAweDgwMDIwMTAwLCAweGJmODEwMDAwCit9OworCitzdHJ1Y3QgYW1kZ3B1X3Rlc3Rfc2hhZGVy IG1lbWNweV9jc19oYW5nX3Nsb3dfcnYgPSB7CisgICAgICAgIG1lbWNweV9jc19oYW5nX3Nsb3df cnZfY29kZXMsCisgICAgICAgIDQsCisgICAgICAgIDMsCisgICAgICAgIDEKK307CisKIGludCBh bWRncHVfYm9fYWxsb2NfYW5kX21hcF9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LCB1bnNp Z25lZCBzaXplLAogCQkJdW5zaWduZWQgYWxpZ25tZW50LCB1bnNpZ25lZCBoZWFwLCB1aW50NjRf dCBhbGxvY19mbGFncywKIAkJCXVpbnQ2NF90IG1hcHBpbmdfZmxhZ3MsIGFtZGdwdV9ib19oYW5k bGUgKmJvLCB2b2lkICoqY3B1LApAQCAtMjA3NCw2ICsyMTA2LDM3IEBAIHN0YXRpYyB2b2lkIGFt ZGdwdV9zeW5jX2RlcGVuZGVuY3lfdGVzdCh2b2lkKQogCWZyZWUoaWJzX3JlcXVlc3QuZGVwZW5k ZW5jaWVzKTsKIH0KIAorc3RhdGljIGludCBhbWRncHVfZGlzcGF0Y2hfbG9hZF9jc19zaGFkZXJf aGFuZ19zbG93KHVpbnQzMl90ICpwdHIsIGludCBmYW1pbHkpCit7CisJc3RydWN0IGFtZGdwdV90 ZXN0X3NoYWRlciAqc2hhZGVyOworCWludCBpLCBsb29wID0gMHgxMDAwMDsKKworCXN3aXRjaCAo ZmFtaWx5KSB7CisJCWNhc2UgQU1ER1BVX0ZBTUlMWV9BSToKKwkJCXNoYWRlciA9ICZtZW1jcHlf Y3NfaGFuZ19zbG93X2FpOworCQkJYnJlYWs7CisJCWNhc2UgQU1ER1BVX0ZBTUlMWV9SVjoKKwkJ CXNoYWRlciA9ICZtZW1jcHlfY3NfaGFuZ19zbG93X3J2OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCQlyZXR1cm4gLTE7CisJCQlicmVhazsKKwl9CisKKwltZW1jcHkocHRyLCBzaGFkZXItPnNo YWRlciwgc2hhZGVyLT5oZWFkZXJfbGVuZ3RoICogc2l6ZW9mKHVpbnQzMl90KSk7CisKKwlmb3Ig KGkgPSAwOyBpIDwgbG9vcDsgaSsrKQorCQltZW1jcHkocHRyICsgc2hhZGVyLT5oZWFkZXJfbGVu Z3RoICsgc2hhZGVyLT5ib2R5X2xlbmd0aCAqIGksCisJCQlzaGFkZXItPnNoYWRlciArIHNoYWRl ci0+aGVhZGVyX2xlbmd0aCwKKwkJCXNoYWRlci0+Ym9keV9sZW5ndGggKiBzaXplb2YodWludDMy X3QpKTsKKworCW1lbWNweShwdHIgKyBzaGFkZXItPmhlYWRlcl9sZW5ndGggKyBzaGFkZXItPmJv ZHlfbGVuZ3RoICogbG9vcCwKKwkJc2hhZGVyLT5zaGFkZXIgKyBzaGFkZXItPmhlYWRlcl9sZW5n dGggKyBzaGFkZXItPmJvZHlfbGVuZ3RoLAorCQlzaGFkZXItPmZvb3RfbGVuZ3RoICogc2l6ZW9m KHVpbnQzMl90KSk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBhbWRncHVfZGlzcGF0 Y2hfbG9hZF9jc19zaGFkZXIodWludDhfdCAqcHRyLAogCQkJCQkgICBpbnQgY3NfdHlwZSkKIHsK QEAgLTI1MjYsNiArMjU4OSwxNzUgQEAgdm9pZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19oZWxwZXIo YW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwgdWludDMyX3QgaXAKIAl9CiB9CiAK K3N0YXRpYyB2b2lkIGFtZGdwdV9tZW1jcHlfZGlzcGF0Y2hfaGFuZ19zbG93X3Rlc3QoYW1kZ3B1 X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwKKwkJCQkJCSAgdWludDMyX3QgaXBfdHlwZSwg dWludDMyX3QgcmluZykKK3sKKwlhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dF9oYW5kbGU7 CisJYW1kZ3B1X2JvX2hhbmRsZSBib19zcmMsIGJvX2RzdCwgYm9fc2hhZGVyLCBib19jbWQsIHJl c291cmNlc1s0XTsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwdHJfZHN0OworCXZvaWQgKnB0 cl9zaGFkZXI7CisJdW5zaWduZWQgY2hhciAqcHRyX3NyYzsKKwl1aW50MzJfdCAqcHRyX2NtZDsK Kwl1aW50NjRfdCBtY19hZGRyZXNzX3NyYywgbWNfYWRkcmVzc19kc3QsIG1jX2FkZHJlc3Nfc2hh ZGVyLCBtY19hZGRyZXNzX2NtZDsKKwlhbWRncHVfdmFfaGFuZGxlIHZhX3NyYywgdmFfZHN0LCB2 YV9zaGFkZXIsIHZhX2NtZDsKKwlpbnQgaSwgcjsKKwlpbnQgYm9fZHN0X3NpemUgPSAweDQwMDAw MDA7CisJaW50IGJvX3NoYWRlcl9zaXplID0gMHg0MDAwMDA7CisJaW50IGJvX2NtZF9zaXplID0g NDA5NjsKKwlzdHJ1Y3QgYW1kZ3B1X2NzX3JlcXVlc3QgaWJzX3JlcXVlc3QgPSB7MH07CisJc3Ry dWN0IGFtZGdwdV9jc19pYl9pbmZvIGliX2luZm89IHswfTsKKwl1aW50MzJfdCBoYW5nX3N0YXRl LCBoYW5ncywgZXhwaXJlZDsKKwlzdHJ1Y3QgYW1kZ3B1X2dwdV9pbmZvIGdwdV9pbmZvID0gezB9 OworCWFtZGdwdV9ib19saXN0X2hhbmRsZSBib19saXN0OworCXN0cnVjdCBhbWRncHVfY3NfZmVu Y2UgZmVuY2Vfc3RhdHVzID0gezB9OworCisJciA9IGFtZGdwdV9xdWVyeV9ncHVfaW5mbyhkZXZp Y2VfaGFuZGxlLCAmZ3B1X2luZm8pOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBh bWRncHVfY3NfY3R4X2NyZWF0ZShkZXZpY2VfaGFuZGxlLCAmY29udGV4dF9oYW5kbGUpOworCUNV X0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZp Y2VfaGFuZGxlLCBib19jbWRfc2l6ZSwgNDA5NiwKKwkJCQkgICAgQU1ER1BVX0dFTV9ET01BSU5f R1RULCAwLAorCQkJCSAgICAmYm9fY21kLCAodm9pZCAqKikmcHRyX2NtZCwKKwkJCQkgICAgJm1j X2FkZHJlc3NfY21kLCAmdmFfY21kKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJbWVtc2V0 KHB0cl9jbWQsIDAsIGJvX2NtZF9zaXplKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21h cChkZXZpY2VfaGFuZGxlLCBib19zaGFkZXJfc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9E T01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX3NoYWRlciwgJnB0cl9zaGFkZXIsCisJCQkJCSZtY19h ZGRyZXNzX3NoYWRlciwgJnZhX3NoYWRlcik7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCW1l bXNldChwdHJfc2hhZGVyLCAwLCBib19zaGFkZXJfc2l6ZSk7CisKKwlyID0gYW1kZ3B1X2Rpc3Bh dGNoX2xvYWRfY3Nfc2hhZGVyX2hhbmdfc2xvdyhwdHJfc2hhZGVyLCBncHVfaW5mby5mYW1pbHlf aWQpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5k X21hcChkZXZpY2VfaGFuZGxlLCBib19kc3Rfc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9E T01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX3NyYywgKHZvaWQgKiopJnB0cl9zcmMsCisJCQkJCSZt Y19hZGRyZXNzX3NyYywgJnZhX3NyYyk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9 IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX2RzdF9zaXplLCA0MDk2 LAorCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAwLAorCQkJCQkmYm9fZHN0LCAodm9pZCAq KikmcHRyX2RzdCwKKwkJCQkJJm1jX2FkZHJlc3NfZHN0LCAmdmFfZHN0KTsKKwlDVV9BU1NFUlRf RVFVQUwociwgMCk7CisKKwltZW1zZXQocHRyX3NyYywgMHg1NSwgYm9fZHN0X3NpemUpOworCisJ aSA9IDA7CisJaSArPSBhbWRncHVfZGlzcGF0Y2hfaW5pdChwdHJfY21kICsgaSwgaXBfdHlwZSk7 CisKKwkvKiAgSXNzdWUgY29tbWFuZHMgdG8gc2V0IGN1IG1hc2sgdXNlZCBpbiBjdXJyZW50IGRp c3BhdGNoICovCisJaSArPSBhbWRncHVfZGlzcGF0Y2hfd3JpdGVfY3VtYXNrKHB0cl9jbWQgKyBp KTsKKworCS8qIFdyaXRlcyBzaGFkZXIgc3RhdGUgdG8gSFcgKi8KKwlpICs9IGFtZGdwdV9kaXNw YXRjaF93cml0ZTJodyhwdHJfY21kICsgaSwgbWNfYWRkcmVzc19zaGFkZXIpOworCisJLyogV3Jp dGUgY29uc3RhbnQgZGF0YSAqLworCS8qIFdyaXRlcyB0aGUgdGV4dHVyZSByZXNvdXJjZSBjb25z dGFudHMgZGF0YSB0byB0aGUgU0dQUnMgKi8KKwlwdHJfY21kW2krK10gPSBQQUNLRVQzX0NPTVBV VEUoUEtUM19TRVRfU0hfUkVHLCA0KTsKKwlwdHJfY21kW2krK10gPSAweDI0MDsKKwlwdHJfY21k W2krK10gPSBtY19hZGRyZXNzX3NyYzsKKwlwdHJfY21kW2krK10gPSAobWNfYWRkcmVzc19zcmMg Pj4gMzIpIHwgMHgxMDAwMDA7CisJcHRyX2NtZFtpKytdID0gMHg0MDAwMDA7CisJcHRyX2NtZFtp KytdID0gMHg3NGZhYzsKKworCS8qIFdyaXRlcyB0aGUgVUFWIGNvbnN0YW50IGRhdGEgdG8gdGhl IFNHUFJzLiAqLworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDNfQ09NUFVURShQS1QzX1NFVF9TSF9S RUcsIDQpOworCXB0cl9jbWRbaSsrXSA9IDB4MjQ0OworCXB0cl9jbWRbaSsrXSA9IG1jX2FkZHJl c3NfZHN0OworCXB0cl9jbWRbaSsrXSA9IChtY19hZGRyZXNzX2RzdCA+PiAzMikgfCAweDEwMDAw MDsKKwlwdHJfY21kW2krK10gPSAweDQwMDAwMDsKKwlwdHJfY21kW2krK10gPSAweDc0ZmFjOwor CisJLyogY2xlYXIgbW1DT01QVVRFX1JFU09VUkNFX0xJTUlUUyAqLworCXB0cl9jbWRbaSsrXSA9 IFBBQ0tFVDNfQ09NUFVURShQS1QzX1NFVF9TSF9SRUcsIDEpOworCXB0cl9jbWRbaSsrXSA9IDB4 MjE1OworCXB0cl9jbWRbaSsrXSA9IDA7CisKKwkvKiBkaXNwYXRjaCBkaXJlY3QgY29tbWFuZCAq LworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDNfQ09NUFVURShQQUNLRVQzX0RJU1BBVENIX0RJUkVD VCwgMyk7CisJcHRyX2NtZFtpKytdID0gMHgxMDAwMDsKKwlwdHJfY21kW2krK10gPSAxOworCXB0 cl9jbWRbaSsrXSA9IDE7CisJcHRyX2NtZFtpKytdID0gMTsKKworCXdoaWxlIChpICYgNykKKwkJ cHRyX2NtZFtpKytdID0gMHhmZmZmMTAwMDsgLyogdHlwZTMgbm9wIHBhY2tldCAqLworCisJcmVz b3VyY2VzWzBdID0gYm9fc2hhZGVyOworCXJlc291cmNlc1sxXSA9IGJvX3NyYzsKKwlyZXNvdXJj ZXNbMl0gPSBib19kc3Q7CisJcmVzb3VyY2VzWzNdID0gYm9fY21kOworCXIgPSBhbWRncHVfYm9f bGlzdF9jcmVhdGUoZGV2aWNlX2hhbmRsZSwgNCwgcmVzb3VyY2VzLCBOVUxMLCAmYm9fbGlzdCk7 CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJaWJfaW5mby5pYl9tY19hZGRyZXNzID0gbWNf YWRkcmVzc19jbWQ7CisJaWJfaW5mby5zaXplID0gaTsKKwlpYnNfcmVxdWVzdC5pcF90eXBlID0g aXBfdHlwZTsKKwlpYnNfcmVxdWVzdC5yaW5nID0gcmluZzsKKwlpYnNfcmVxdWVzdC5yZXNvdXJj ZXMgPSBib19saXN0OworCWlic19yZXF1ZXN0Lm51bWJlcl9vZl9pYnMgPSAxOworCWlic19yZXF1 ZXN0LmlicyA9ICZpYl9pbmZvOworCWlic19yZXF1ZXN0LmZlbmNlX2luZm8uaGFuZGxlID0gTlVM TDsKKwlyID0gYW1kZ3B1X2NzX3N1Ym1pdChjb250ZXh0X2hhbmRsZSwgMCwgJmlic19yZXF1ZXN0 LCAxKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlmZW5jZV9zdGF0dXMuaXBfdHlwZSA9 IGlwX3R5cGU7CisJZmVuY2Vfc3RhdHVzLmlwX2luc3RhbmNlID0gMDsKKwlmZW5jZV9zdGF0dXMu cmluZyA9IHJpbmc7CisJZmVuY2Vfc3RhdHVzLmNvbnRleHQgPSBjb250ZXh0X2hhbmRsZTsKKwlm ZW5jZV9zdGF0dXMuZmVuY2UgPSBpYnNfcmVxdWVzdC5zZXFfbm87CisKKwkvKiB3YWl0IGZvciBJ QiBhY2NvbXBsaXNoZWQgKi8KKwlyID0gYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygmZmVu Y2Vfc3RhdHVzLAorCQkJCQkgQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsCisJCQkJCSAwLCAmZXhw aXJlZCk7CisKKwlyID0gYW1kZ3B1X2NzX3F1ZXJ5X3Jlc2V0X3N0YXRlKGNvbnRleHRfaGFuZGxl LCAmaGFuZ19zdGF0ZSwgJmhhbmdzKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJQ1VfQVNT RVJUX0VRVUFMKGhhbmdfc3RhdGUsIEFNREdQVV9DVFhfVU5LTk9XTl9SRVNFVCk7CisKKwlyID0g YW1kZ3B1X2JvX2xpc3RfZGVzdHJveShib19saXN0KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7 CisKKwlyID0gYW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NyYywgdmFfc3JjLCBtY19hZGRy ZXNzX3NyYywgYm9fZHN0X3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlyID0gYW1k Z3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX2RzdCwgdmFfZHN0LCBtY19hZGRyZXNzX2RzdCwgYm9f ZHN0X3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fdW5t YXBfYW5kX2ZyZWUoYm9fY21kLCB2YV9jbWQsIG1jX2FkZHJlc3NfY21kLCBib19jbWRfc2l6ZSk7 CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib191bm1hcF9hbmRfZnJl ZShib19zaGFkZXIsIHZhX3NoYWRlciwgbWNfYWRkcmVzc19zaGFkZXIsIGJvX3NoYWRlcl9zaXpl KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGNv bnRleHRfaGFuZGxlKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cit9CisKK3ZvaWQgYW1kZ3B1 X2Rpc3BhdGNoX2hhbmdfc2xvd19oZWxwZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hh bmRsZSwgdWludDMyX3QgaXBfdHlwZSkKK3sKKwlpbnQgcjsKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9p bmZvX2h3X2lwIGluZm87CisJdWludDMyX3QgcmluZ19pZDsKKworCXIgPSBhbWRncHVfcXVlcnlf aHdfaXBfaW5mbyhkZXZpY2VfaGFuZGxlLCBpcF90eXBlLCAwLCAmaW5mbyk7CisJQ1VfQVNTRVJU X0VRVUFMKHIsIDApOworCWlmICghaW5mby5hdmFpbGFibGVfcmluZ3MpCisJCXByaW50ZigiU0tJ UCAuLi4gYXMgdGhlcmUncyBubyByaW5nIGZvciBpcCAlZFxuIiwgaXBfdHlwZSk7CisKKwlmb3Ig KHJpbmdfaWQgPSAwOyAoMSA8PCByaW5nX2lkKSAmIGluZm8uYXZhaWxhYmxlX3JpbmdzOyByaW5n X2lkKyspIHsKKwkJYW1kZ3B1X21lbWNweV9kaXNwYXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIGlw X3R5cGUsIHJpbmdfaWQsIDApOworCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX2hhbmdfc2xvd190 ZXN0KGRldmljZV9oYW5kbGUsIGlwX3R5cGUsIHJpbmdfaWQpOworCQlhbWRncHVfbWVtY3B5X2Rp c3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRsZSwgaXBfdHlwZSwgcmluZ19pZCwgMCk7CisJfQorfQor CiBzdGF0aWMgaW50IGFtZGdwdV9kcmF3X2xvYWRfcHNfc2hhZGVyKHVpbnQ4X3QgKnB0ciwgaW50 IHBzX3R5cGUpCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvZGVhZGxvY2tf dGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCmluZGV4IDU4ZjkzYjUwLi45 NDlkYzI5OCAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMKKysrIGIv dGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMKQEAgLTExNiw2ICsxMTYsOCBAQCBzdGF0aWMg dm9pZCBhbWRncHVfaWxsZWdhbF9tZW1fYWNjZXNzKCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfZGVh ZGxvY2tfc2RtYSh2b2lkKTsKIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2dmeCh2 b2lkKTsKIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2NvbXB1dGUodm9pZCk7Citz dGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19zbG93X2dmeCh2b2lkKTsKK3N0YXRpYyB2 b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfY29tcHV0ZSh2b2lkKTsKIAogQ1VfQk9PTCBz dWl0ZV9kZWFkbG9ja190ZXN0c19lbmFibGUodm9pZCkKIHsKQEAgLTE4Miw2ICsxODQsOCBAQCBD VV9UZXN0SW5mbyBkZWFkbG9ja190ZXN0c1tdID0gewogCXsgImlsbGVnYWwgbWVtIGFjY2VzcyB0 ZXN0IChzZXQgYW1kZ3B1LnZtX2ZhdWx0X3N0b3A9MikiLCBhbWRncHVfaWxsZWdhbF9tZW1fYWNj ZXNzIH0sCiAJeyAiZ2Z4IHJpbmcgYmFkIGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9ja3Vw X3RpbWVvdXQ9NTApIiwgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfZ2Z4IH0sCiAJeyAiY29tcHV0ZSBy aW5nIGJhZCBkaXNwYXRjaCB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwLDUwKSIs IGFtZGdwdV9kaXNwYXRjaF9oYW5nX2NvbXB1dGUgfSwKKwl7ICJnZnggcmluZyBiYWQgc2xvdyBk aXNwYXRjaCB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIGFtZGdwdV9kaXNw YXRjaF9oYW5nX3Nsb3dfZ2Z4IH0sCisJeyAiY29tcHV0ZSByaW5nIGJhZCBzbG93IGRpc3BhdGNo IHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTAsNTApIiwgYW1kZ3B1X2Rpc3BhdGNo X2hhbmdfc2xvd19jb21wdXRlIH0sCiAJQ1VfVEVTVF9JTkZPX05VTEwsCiB9OwogCkBAIC00OTIs MyArNDk2LDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2NvbXB1dGUodm9p ZCkKIHsKIAlhbWRncHVfZGlzcGF0Y2hfaGFuZ19oZWxwZXIoZGV2aWNlX2hhbmRsZSwgQU1ER1BV X0hXX0lQX0NPTVBVVEUpOwogfQorCitzdGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0Y2hfaGFuZ19z bG93X2dmeCh2b2lkKQoreworCWFtZGdwdV9kaXNwYXRjaF9oYW5nX3Nsb3dfaGVscGVyKGRldmlj ZV9oYW5kbGUsIEFNREdQVV9IV19JUF9HRlgpOworfQorCitzdGF0aWMgdm9pZCBhbWRncHVfZGlz cGF0Y2hfaGFuZ19zbG93X2NvbXB1dGUodm9pZCkKK3sKKwlhbWRncHVfZGlzcGF0Y2hfaGFuZ19z bG93X2hlbHBlcihkZXZpY2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfQ09NUFVURSk7Cit9CmNvbW1p dCBkNzJiOTE4OWM0NWJlZmMwZjY2ZGQ4ZTcxOWU1ZDUzMTc0NmM0YTY1CkF1dGhvcjogRmxvcmEg Q3VpIDxmbG9yYS5jdWlAYW1kLmNvbT4KRGF0ZTogICBNb24gTWFyIDE4IDEwOjU4OjUzIDIwMTkg KzA4MDAKCiAgICB0ZXN0cy9hbWRncHU6IGFkZCBkaXNwYXRjaCBoYW5nIHRlc3QKICAgIAogICAg YWRkIGNvbXB1dGUvZ2Z4IGRpc3BhdGNoIGhhbmcgdGVzdCBmb3IgZ2Z4OQogICAgCiAgICBTaWdu ZWQtb2ZmLWJ5OiBGbG9yYSBDdWkgPGZsb3JhLmN1aUBhbWQuY29tPgogICAgUmV2aWV3ZWQtYnk6 IE1hcmVrIE9sxaHDoWsgPG1hcmVrLm9sc2FrQGFtZC5jb20+CgpkaWZmIC0tZ2l0IGEvdGVzdHMv YW1kZ3B1L2FtZGdwdV90ZXN0LmMgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwppbmRleCA1 YWFkZDdlNi4uMDg2NDIyMDMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5j CisrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCkBAIC00NTIsNiArNDUyLDE4IEBAIHN0 YXRpYyB2b2lkIGFtZGdwdV9kaXNhYmxlX3N1aXRlcygpCiAJCQkJInNkbWEgcmluZyBibG9jayB0 ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIENVX0ZBTFNFKSkKIAkJZnByaW50 ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xuIiwgQ1VfZ2V0X2Vycm9y X21zZygpKTsKIAorCS8qIFRoaXMgdGVzdCB3YXMgcmFuIG9uIEdGWDkgb25seSAqLworCS8vaWYg KGZhbWlseV9pZCA8IEFNREdQVV9GQU1JTFlfQUkgfHwgZmFtaWx5X2lkID4gQU1ER1BVX0ZBTUlM WV9SVikKKwkJaWYgKGFtZGdwdV9zZXRfdGVzdF9hY3RpdmUoREVBRExPQ0tfVEVTVFNfU1RSLAor CQkJCSJnZnggcmluZyBiYWQgZGlzcGF0Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91 dD01MCkiLCBDVV9GQUxTRSkpCisJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9u IGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOworCisJLyogVGhpcyB0ZXN0IHdh cyByYW4gb24gR0ZYOSBvbmx5ICovCisJLy9pZiAoZmFtaWx5X2lkIDwgQU1ER1BVX0ZBTUlMWV9B SSB8fCBmYW1pbHlfaWQgPiBBTURHUFVfRkFNSUxZX1JWKQorCQlpZiAoYW1kZ3B1X3NldF90ZXN0 X2FjdGl2ZShERUFETE9DS19URVNUU19TVFIsCisJCQkJImNvbXB1dGUgcmluZyBiYWQgZGlzcGF0 Y2ggdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBDVV9GQUxTRSkpCisJCQlm cHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4iLCBDVV9nZXRf ZXJyb3JfbXNnKCkpOworCiAJaWYgKGFtZGdwdV9zZXRfdGVzdF9hY3RpdmUoQk9fVEVTVFNfU1RS LCAiTWV0YWRhdGEiLCBDVV9GQUxTRSkpCiAJCWZwcmludGYoc3RkZXJyLCAidGVzdCBkZWFjdGl2 YXRpb24gZmFpbGVkIC0gJXNcbiIsIENVX2dldF9lcnJvcl9tc2coKSk7CiAKZGlmZiAtLWdpdCBh L3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmgK aW5kZXggMzY2NzVlYTMuLmUxZDkwMjUzIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYW1kZ3B1 X3Rlc3QuaAorKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaApAQCAtMjM2LDYgKzIzNiw3 IEBAIENVX0JPT0wgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUodm9pZCk7CiAg Ki8KIGV4dGVybiBDVV9UZXN0SW5mbyBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzW107CiAKK3ZvaWQg YW1kZ3B1X2Rpc3BhdGNoX2hhbmdfaGVscGVyKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9o YW5kbGUsIHVpbnQzMl90IGlwX3R5cGUpOwogCiAvKioKICAqIEhlbHBlciBmdW5jdGlvbnMKZGlm ZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2lj X3Rlc3RzLmMKaW5kZXggYjI0NjgyMTIuLjlkZGU3YWYwIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRn cHUvYmFzaWNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwpAQCAtMzA2 LDcgKzMwNiw4IEBAIHN0YXRpYyAgdWludDMyX3Qgc2hhZGVyX2JpbltdID0gewogCiBlbnVtIGNz X3R5cGUgewogCUNTX0JVRkZFUkNMRUFSLAotCUNTX0JVRkZFUkNPUFkKKwlDU19CVUZGRVJDT1BZ LAorCUNTX0hBTkcKIH07CiAKIHN0YXRpYyBjb25zdCB1aW50MzJfdCBidWZmZXJjbGVhcl9jc19z aGFkZXJfZ2Z4OVtdID0gewpAQCAtNDY4LDYgKzQ2OSwxNCBAQCBzdGF0aWMgY29uc3QgdWludDMy X3QgY2FjaGVkX2NtZF9nZng5W10gPSB7CiAJMHhjMDAyNjkwMCwgMHgyYjAsIDB4MCwgMHgwLCAw eGMwMDE2OTAwLCAweDJmOCwgMHgwCiB9OwogCit1bnNpZ25lZCBpbnQgbWVtY3B5X3BzX2hhbmdb XSA9IHsKKyAgICAgICAgMHhGRkZGRkZGRiwgMHhCRUZFMEE3RSwgMHhCRUZDMDMwNCwgMHhDMEMy MDEwMCwKKyAgICAgICAgMHhDMDgwMDMwMCwgMHhDODA4MDAwMCwgMHhDODBDMDEwMCwgMHhDODA5 MDAwMSwKKyAgICAgICAgMHhDODBEMDEwMSwgMHhCRjhDMDA3RiwgMHhGMDgwMEYwMCwgMHgwMDAx MDAwMiwKKyAgICAgICAgMHhCRUZFMDQwQywgMHhCRjhDMEY3MCwgMHhCRjgwMDAwMCwgMHhCRjgw MDAwMCwKKyAgICAgICAgMHhGODAwMTgwRiwgMHgwMzAyMDEwMCwgMHhCRjgxMDAwMAorfTsKKwog aW50IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwX3JhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYs IHVuc2lnbmVkIHNpemUsCiAJCQl1bnNpZ25lZCBhbGlnbm1lbnQsIHVuc2lnbmVkIGhlYXAsIHVp bnQ2NF90IGFsbG9jX2ZsYWdzLAogCQkJdWludDY0X3QgbWFwcGluZ19mbGFncywgYW1kZ3B1X2Jv X2hhbmRsZSAqYm8sIHZvaWQgKipjcHUsCkBAIC0yMDgwLDYgKzIwODksMTAgQEAgc3RhdGljIGlu dCBhbWRncHVfZGlzcGF0Y2hfbG9hZF9jc19zaGFkZXIodWludDhfdCAqcHRyLAogCQkJc2hhZGVy ID0gYnVmZmVyY29weV9jc19zaGFkZXJfZ2Z4OTsKIAkJCXNoYWRlcl9zaXplID0gc2l6ZW9mKGJ1 ZmZlcmNvcHlfY3Nfc2hhZGVyX2dmeDkpOwogCQkJYnJlYWs7CisJCWNhc2UgQ1NfSEFORzoKKwkJ CXNoYWRlciA9IG1lbWNweV9wc19oYW5nOworCQkJc2hhZGVyX3NpemUgPSBzaXplb2YobWVtY3B5 X3BzX2hhbmcpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gLTE7CiAJCQlicmVh azsKQEAgLTIzMDAsNyArMjMxMyw4IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9tZW1zZXRfZGlzcGF0 Y2hfdGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAogCiBzdGF0aWMgdm9p ZCBhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3QoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNl X2hhbmRsZSwKIAkJCQkJdWludDMyX3QgaXBfdHlwZSwKLQkJCQkJdWludDMyX3QgcmluZykKKwkJ CQkJdWludDMyX3QgcmluZywKKwkJCQkJaW50IGhhbmcpCiB7CiAJYW1kZ3B1X2NvbnRleHRfaGFu ZGxlIGNvbnRleHRfaGFuZGxlOwogCWFtZGdwdV9ib19oYW5kbGUgYm9fc3JjLCBib19kc3QsIGJv X3NoYWRlciwgYm9fY21kLCByZXNvdXJjZXNbNF07CkBAIC0yMzE2LDcgKzIzMzAsOCBAQCBzdGF0 aWMgdm9pZCBhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3QoYW1kZ3B1X2RldmljZV9oYW5kbGUg ZGV2aWNlX2hhbmRsZSwKIAlpbnQgYm9fY21kX3NpemUgPSA0MDk2OwogCXN0cnVjdCBhbWRncHVf Y3NfcmVxdWVzdCBpYnNfcmVxdWVzdCA9IHswfTsKIAlzdHJ1Y3QgYW1kZ3B1X2NzX2liX2luZm8g aWJfaW5mbz0gezB9OwotCXVpbnQzMl90IGV4cGlyZWQ7CisJdWludDMyX3QgZXhwaXJlZCwgaGFu Z19zdGF0ZSwgaGFuZ3M7CisJZW51bSBjc190eXBlIGNzX3R5cGU7CiAJYW1kZ3B1X2JvX2xpc3Rf aGFuZGxlIGJvX2xpc3Q7CiAJc3RydWN0IGFtZGdwdV9jc19mZW5jZSBmZW5jZV9zdGF0dXMgPSB7 MH07CiAKQEAgLTIzMzcsNyArMjM1Miw4IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9tZW1jcHlfZGlz cGF0Y2hfdGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAogCUNVX0FTU0VS VF9FUVVBTChyLCAwKTsKIAltZW1zZXQocHRyX3NoYWRlciwgMCwgYm9fc2hhZGVyX3NpemUpOwog Ci0JciA9IGFtZGdwdV9kaXNwYXRjaF9sb2FkX2NzX3NoYWRlcihwdHJfc2hhZGVyLCBDU19CVUZG RVJDT1BZICk7CisJY3NfdHlwZSA9IGhhbmcgPyBDU19IQU5HIDogQ1NfQlVGRkVSQ09QWTsKKwly ID0gYW1kZ3B1X2Rpc3BhdGNoX2xvYWRfY3Nfc2hhZGVyKHB0cl9zaGFkZXIsIGNzX3R5cGUpOwog CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKIAogCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChk ZXZpY2VfaGFuZGxlLCBib19kc3Rfc2l6ZSwgNDA5NiwKQEAgLTI0MjMsMTQgKzI0MzksMjEgQEAg c3RhdGljIHZvaWQgYW1kZ3B1X21lbWNweV9kaXNwYXRjaF90ZXN0KGFtZGdwdV9kZXZpY2VfaGFu ZGxlIGRldmljZV9oYW5kbGUsCiAJciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoJmZl bmNlX3N0YXR1cywKIAkJCQkJIEFNREdQVV9USU1FT1VUX0lORklOSVRFLAogCQkJCQkgMCwgJmV4 cGlyZWQpOwotCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKLQlDVV9BU1NFUlRfRVFVQUwoZXhwaXJl ZCwgdHJ1ZSk7CiAKLQkvKiB2ZXJpZnkgaWYgbWVtY3B5IHRlc3QgcmVzdWx0IG1lZXRzIHdpdGgg ZXhwZWN0ZWQgKi8KLQlpID0gMDsKLQl3aGlsZShpIDwgYm9fZHN0X3NpemUpIHsKLQkJQ1VfQVNT RVJUX0VRVUFMKHB0cl9kc3RbaV0sIHB0cl9zcmNbaV0pOwotCQlpKys7CisJaWYgKCFoYW5nKSB7 CisJCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwkJQ1VfQVNTRVJUX0VRVUFMKGV4cGlyZWQsIHRy dWUpOworCisJCS8qIHZlcmlmeSBpZiBtZW1jcHkgdGVzdCByZXN1bHQgbWVldHMgd2l0aCBleHBl Y3RlZCAqLworCQlpID0gMDsKKwkJd2hpbGUoaSA8IGJvX2RzdF9zaXplKSB7CisJCQlDVV9BU1NF UlRfRVFVQUwocHRyX2RzdFtpXSwgcHRyX3NyY1tpXSk7CisJCQlpKys7CisJCX0KKwl9IGVsc2Ug eworCQlyID0gYW1kZ3B1X2NzX3F1ZXJ5X3Jlc2V0X3N0YXRlKGNvbnRleHRfaGFuZGxlLCAmaGFu Z19zdGF0ZSwgJmhhbmdzKTsKKwkJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCQlDVV9BU1NFUlRf RVFVQUwoaGFuZ19zdGF0ZSwgQU1ER1BVX0NUWF9VTktOT1dOX1JFU0VUKTsKIAl9CiAKIAlyID0g YW1kZ3B1X2JvX2xpc3RfZGVzdHJveShib19saXN0KTsKQEAgLTI0NjQsNyArMjQ4Nyw3IEBAIHN0 YXRpYyB2b2lkIGFtZGdwdV9jb21wdXRlX2Rpc3BhdGNoX3Rlc3Qodm9pZCkKIAogCWZvciAocmlu Z19pZCA9IDA7ICgxIDw8IHJpbmdfaWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQr KykgewogCQlhbWRncHVfbWVtc2V0X2Rpc3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRsZSwgQU1ER1BV X0hXX0lQX0NPTVBVVEUsIHJpbmdfaWQpOwotCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3Qo ZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0NPTVBVVEUsIHJpbmdfaWQpOworCQlhbWRncHVf bWVtY3B5X2Rpc3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0NPTVBVVEUs IHJpbmdfaWQsIDApOwogCX0KIH0KIApAQCAtMjQ4MSw3ICsyNTA0LDI1IEBAIHN0YXRpYyB2b2lk IGFtZGdwdV9nZnhfZGlzcGF0Y2hfdGVzdCh2b2lkKQogCiAJZm9yIChyaW5nX2lkID0gMDsgKDEg PDwgcmluZ19pZCkgJiBpbmZvLmF2YWlsYWJsZV9yaW5nczsgcmluZ19pZCsrKSB7CiAJCWFtZGdw dV9tZW1zZXRfZGlzcGF0Y2hfdGVzdChkZXZpY2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfR0ZYLCBy aW5nX2lkKTsKLQkJYW1kZ3B1X21lbWNweV9kaXNwYXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIEFN REdQVV9IV19JUF9HRlgsIHJpbmdfaWQpOworCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3Qo ZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0dGWCwgcmluZ19pZCwgMCk7CisJfQorfQorCit2 b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZp Y2VfaGFuZGxlLCB1aW50MzJfdCBpcF90eXBlKQoreworCWludCByOworCXN0cnVjdCBkcm1fYW1k Z3B1X2luZm9faHdfaXAgaW5mbzsKKwl1aW50MzJfdCByaW5nX2lkOworCisJciA9IGFtZGdwdV9x dWVyeV9od19pcF9pbmZvKGRldmljZV9oYW5kbGUsIGlwX3R5cGUsIDAsICZpbmZvKTsKKwlDVV9B U1NFUlRfRVFVQUwociwgMCk7CisJaWYgKCFpbmZvLmF2YWlsYWJsZV9yaW5ncykKKwkJcHJpbnRm KCJTS0lQIC4uLiBhcyB0aGVyZSdzIG5vIHJpbmcgZm9yIGlwICVkXG4iLCBpcF90eXBlKTsKKwor CWZvciAocmluZ19pZCA9IDA7ICgxIDw8IHJpbmdfaWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7 IHJpbmdfaWQrKykgeworCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRs ZSwgaXBfdHlwZSwgcmluZ19pZCwgMCk7CisJCWFtZGdwdV9tZW1jcHlfZGlzcGF0Y2hfdGVzdChk ZXZpY2VfaGFuZGxlLCBpcF90eXBlLCByaW5nX2lkLCAxKTsKKwkJYW1kZ3B1X21lbWNweV9kaXNw YXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIGlwX3R5cGUsIHJpbmdfaWQsIDApOwogCX0KIH0KIApk aWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUv ZGVhZGxvY2tfdGVzdHMuYwppbmRleCA5MTM2OGMxNS4uNThmOTNiNTAgMTAwNjQ0Ci0tLSBhL3Rl c3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCisrKyBiL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190 ZXN0cy5jCkBAIC0xMTQsNiArMTE0LDggQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RlYWRsb2NrX2Nv bXB1dGUodm9pZCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfaWxsZWdhbF9yZWdfYWNjZXNzKCk7CiBz dGF0aWMgdm9pZCBhbWRncHVfaWxsZWdhbF9tZW1fYWNjZXNzKCk7CiBzdGF0aWMgdm9pZCBhbWRn cHVfZGVhZGxvY2tfc2RtYSh2b2lkKTsKK3N0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5n X2dmeCh2b2lkKTsKK3N0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9oYW5nX2NvbXB1dGUodm9p ZCk7CiAKIENVX0JPT0wgc3VpdGVfZGVhZGxvY2tfdGVzdHNfZW5hYmxlKHZvaWQpCiB7CkBAIC0x NzgsNiArMTgwLDggQEAgQ1VfVGVzdEluZm8gZGVhZGxvY2tfdGVzdHNbXSA9IHsKIAl7ICJzZG1h IHJpbmcgYmxvY2sgdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBhbWRncHVf ZGVhZGxvY2tfc2RtYSB9LAogCXsgImlsbGVnYWwgcmVnIGFjY2VzcyB0ZXN0IiwgYW1kZ3B1X2ls bGVnYWxfcmVnX2FjY2VzcyB9LAogCXsgImlsbGVnYWwgbWVtIGFjY2VzcyB0ZXN0IChzZXQgYW1k Z3B1LnZtX2ZhdWx0X3N0b3A9MikiLCBhbWRncHVfaWxsZWdhbF9tZW1fYWNjZXNzIH0sCisJeyAi Z2Z4IHJpbmcgYmFkIGRpc3BhdGNoIHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTAp IiwgYW1kZ3B1X2Rpc3BhdGNoX2hhbmdfZ2Z4IH0sCisJeyAiY29tcHV0ZSByaW5nIGJhZCBkaXNw YXRjaCB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwLDUwKSIsIGFtZGdwdV9kaXNw YXRjaF9oYW5nX2NvbXB1dGUgfSwKIAlDVV9URVNUX0lORk9fTlVMTCwKIH07CiAKQEAgLTQ3OCwz ICs0ODIsMTMgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2lsbGVnYWxfbWVtX2FjY2VzcygpCiB7CiAJ YmFkX2FjY2Vzc19oZWxwZXIoMCk7CiB9CisKK3N0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRjaF9o YW5nX2dmeCh2b2lkKQoreworCWFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihkZXZpY2VfaGFu ZGxlLCBBTURHUFVfSFdfSVBfR0ZYKTsKK30KKworc3RhdGljIHZvaWQgYW1kZ3B1X2Rpc3BhdGNo X2hhbmdfY29tcHV0ZSh2b2lkKQoreworCWFtZGdwdV9kaXNwYXRjaF9oYW5nX2hlbHBlcihkZXZp Y2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfQ09NUFVURSk7Cit9CmNvbW1pdCA2NzAxN2VhMDdlOGYx ZTAyN2NhYzFhZGQ5ODc2ZDZiZTRlMjdiNGI5CkF1dGhvcjogRmxvcmEgQ3VpIDxmbG9yYS5jdWlA YW1kLmNvbT4KRGF0ZTogICBGcmkgTm92IDE1IDE2OjMyOjE0IDIwMTkgKzA4MDAKCiAgICB0ZXN0 cy9hbWRncHU6IHVwZGF0ZSBkcmF3IHRlc3QgZm9yIGdmeDkKICAgIAogICAgU2lnbmVkLW9mZi1i eTogRmxvcmEgQ3VpIDxmbG9yYS5jdWlAYW1kLmNvbT4KICAgIFJldmlld2VkLWJ5OiBNYXJlayBP bMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29tPgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9i YXNpY190ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKaW5kZXggOTc4ZjgxZTgu LmIyNDY4MjEyIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYworKysgYi90 ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwpAQCAtNDYxLDcgKzQ2MSw3IEBAIHN0YXRpYyBjb25z dCB1aW50MzJfdCBjYWNoZWRfY21kX2dmeDlbXSA9IHsKIAkweGMwMDE2OTAwLCAweDAsIDB4MCwg MHhjMDAyNjkwMCwgMHgzLCAweDJhLCAweDAsCiAJMHhjMDA0NjkwMCwgMHhhLCAweDAsIDB4MCwg MHgwLCAweDIwMDAyMCwKIAkweGMwMDE2OTAwLCAweDgzLCAweGZmZmYsIDB4YzAwMjY5MDAsIDB4 OGUsIDB4ZiwgMHhmLAotCTB4YzAwNTY5MDAsIDB4MTA1LCAweDAsIDB4MCwgIDB4MCwgMHgwLCAw eDFhLAorCTB4YzAwNTY5MDAsIDB4MTA1LCAweDAsIDB4MCwgIDB4MCwgMHgwLCAweDEyLAogCTB4 YzAwMjY5MDAsIDB4MTBiLCAweDAsIDB4MCwgMHhjMDAxNjkwMCwgMHgxZTAsIDB4MCwKIAkweGMw MDM2OTAwLCAweDIwMCwgMHgwLCAweDEwMDAwLCAweGNjMDAxMSwKIAkweGMwMDI2OTAwLCAweDI5 MiwgMHgyMCwgMHg2MDIwMWI4LApjb21taXQgZDkzODU2ZmU4MmRiZWZhZTA0NjkyODk3ZmIwOGZj ZGIxY2Q1M2NhYwpBdXRob3I6IGNoYW5nemh1IDxDaGFuZ2ZlbmcuWmh1QGFtZC5jb20+CkRhdGU6 ICAgTW9uIE5vdiA0IDExOjQ4OjE5IDIwMTkgKzA4MDAKCiAgICB0ZXN0cy9hbWRncHU6IGVuYWJs ZSBkaXNwYXRjaC9kcmF3IHRlc3RzIGZvciBSZW5vaXIKICAgIAogICAgSXQgY2FuIHJ1biBkaXNw YXRjaC9kcmF3IHRlc3RzIG9uIG5ldyByZW5vaXIgY2hpcHMuIFNvIGl0IG5lZWRzIHRvCiAgICBl bmFibGUgZGlzcGF0Y2gvZHJhdyB0ZXN0cyBmb3IgUmVub2lyIGFnYWluLgogICAgCiAgICBDaGFu Z2UtSWQ6IEkzYTcyYTRiYmZlMGZjNjYzZWUwZTNlNThkOGU5YzMwNGY1MTNlNTY4CiAgICBTaWdu ZWQtb2ZmLWJ5OiBjaGFuZ3podSA8Q2hhbmdmZW5nLlpodUBhbWQuY29tPgogICAgUmV2aWV3ZWQt Ynk6IEZsb3JhIEN1aSA8ZmxvcmEuY3VpQGFtZC5jb20+CiAgICBSZXZpZXdlZC1ieTogTWFyZWsg T2zFocOhayA8bWFyZWsub2xzYWtAYW1kLmNvbT4KICAgIFJldmlld2VkLWJ5OiBIdWFuZyBSdWkg PHJheS5odWFuZ0BhbWQuY29tPgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0 cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKaW5kZXggMGY0YWE1ZGIuLjk3OGY4MWU4 IDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYworKysgYi90ZXN0cy9hbWRn cHUvYmFzaWNfdGVzdHMuYwpAQCAtMjg2OSw3ICsyODY5LDcgQEAgdm9pZCBhbWRncHVfbWVtc2V0 X2RyYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwKIAlyZXNvdXJjZXNbMV0g PSBib19zaGFkZXJfcHM7CiAJcmVzb3VyY2VzWzJdID0gYm9fc2hhZGVyX3ZzOwogCXJlc291cmNl c1szXSA9IGJvX2NtZDsKLQlyID0gYW1kZ3B1X2JvX2xpc3RfY3JlYXRlKGRldmljZV9oYW5kbGUs IDMsIHJlc291cmNlcywgTlVMTCwgJmJvX2xpc3QpOworCXIgPSBhbWRncHVfYm9fbGlzdF9jcmVh dGUoZGV2aWNlX2hhbmRsZSwgNCwgcmVzb3VyY2VzLCBOVUxMLCAmYm9fbGlzdCk7CiAJQ1VfQVNT RVJUX0VRVUFMKHIsIDApOwogCiAJaWJfaW5mby5pYl9tY19hZGRyZXNzID0gbWNfYWRkcmVzc19j bWQ7CgoKLS0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K RHJpLXBhdGNoZXMgbWFpbGluZyBsaXN0CkRyaS1wYXRjaGVzQGxpc3RzLnNvdXJjZWZvcmdlLm5l dApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9kcmktcGF0Y2hl cwo=