ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE2NzUyaHMuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE2NzUyaHMuYwppbmRleCA0MmMyYjU2Li5kMTQxNThiIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNjc1MmhzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTY3NTJocy5jCkBAIC0yMiw2ICsyMiw3IEBACiAKIC8qIEFkZHJlc3NlcyB0byBzY2FuICovCiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0gezB4MjAsIEkyQ19DTElFTlRfRU5EfTsKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjX3JhbmdlW10gPSB7STJDX0NMSUVOVF9FTkR9OwogSTJDX0NMSUVOVF9JTlNNT0Q7CiAKIE1PRFVMRV9ERVNDUklQVElPTigiZGV2aWNlIGRyaXZlciBmb3Igc2FhNjc1MmhzIE1QRUcyIGVuY29kZXIiKTsKQEAgLTQxLDE2ICs0MiwxNiBAQAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfZm9ybWF0IHY0bDJfZm9ybWF0X3RhYmxlW10gPQogewotCVtTQUE2NzUySFNfVkZfRDFdID0gewotCQkuZm10ID0geyAucGl4ID0geyAud2lkdGggPSA3MjAsIC5oZWlnaHQgPSA1NzYgfSwgfSwgfSwKLQlbU0FBNjc1MkhTX1ZGXzJfM19EMV0gPSB7Ci0JCS5mbXQgPSB7IC5waXggPSB7IC53aWR0aCA9IDQ4MCwgLmhlaWdodCA9IDU3NiB9LCB9LCB9LAotCVtTQUE2NzUySFNfVkZfMV8yX0QxXSA9IHsKLQkJLmZtdCA9IHsgLnBpeCA9IHsgLndpZHRoID0gMzUyLCAuaGVpZ2h0ID0gNTc2IH0sIH0sIH0sCi0JW1NBQTY3NTJIU19WRl9TSUZdID0gewotCQkuZm10ID0geyAucGl4ID0geyAud2lkdGggPSAzNTIsIC5oZWlnaHQgPSAyODggfSwgfSwgfSwKLQlbU0FBNjc1MkhTX1ZGX1VOS05PV05dID0gewotCQkuZm10ID0geyAucGl4ID0geyAud2lkdGggPSAwLCAuaGVpZ2h0ID0gMCB9LCB9LCB9LAorCVtTQUE2NzUySFNfVkZfRDFdID0KKwkJeyAuZm10ID0geyAucGl4ID0geyAud2lkdGggPSA3MjAsIC5oZWlnaHQgPSA1NzYgfX19LAorCVtTQUE2NzUySFNfVkZfMl8zX0QxXSA9CisJCXsgLmZtdCA9IHsgLnBpeCA9IHsgLndpZHRoID0gNDgwLCAuaGVpZ2h0ID0gNTc2IH19fSwKKwlbU0FBNjc1MkhTX1ZGXzFfMl9EMV0gPQorCQl7IC5mbXQgPSB7IC5waXggPSB7IC53aWR0aCA9IDM1MiwgLmhlaWdodCA9IDU3NiB9fX0sCisJW1NBQTY3NTJIU19WRl9TSUZdID0KKwkJeyAuZm10ID0geyAucGl4ID0geyAud2lkdGggPSAzNTIsIC5oZWlnaHQgPSAyODggfX19LAorCVtTQUE2NzUySFNfVkZfVU5LTk9XTl0gPQorCQl7IC5mbXQgPSB7IC5waXggPSB7IC53aWR0aCA9IDAsIC5oZWlnaHQgPSAwfX19LAogfTsKIAogc3RydWN0IHNhYTY3NTJoc19zdGF0ZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1jYXJkcy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtY2FyZHMuYwppbmRleCBjNTFlYjdmLi4wYzc4MWUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1jYXJkcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWNhcmRzLmMKQEAgLTEsNiArMSw2IEBACiAKIC8qCi0gKiAkSWQ6IHNhYTcxMzQtY2FyZHMuYyx2IDEuNTQgMjAwNS8wMy8wNyAxMjowMTo1MSBrcmF4ZWwgRXhwICQKKyAqICRJZDogc2FhNzEzNC1jYXJkcy5jLHYgMS41OCAyMDA1LzA2LzA3IDE4OjA1OjAwIG5zaCBFeHAgJAogICoKICAqIGRldmljZSBkcml2ZXIgZm9yIHBoaWxpcHMgc2FhNzEzNCBiYXNlZCBUViBjYXJkcwogICogY2FyZC1zcGVjaWZpYyBzdHVmZi4KQEAgLTE2NSw3ICsxNjUsNyBAQAogCQkuaW5wdXRzICAgICAgICAgPSB7ewogCQkJLm5hbWUgPSBuYW1lX3R2LAogCQkJLnZtdXggPSAxLAotCQkJLmFtdXggPSBMSU5FMiwKKwkJCS5hbXV4ID0gVFYsCiAJCQkudHYgICA9IDEsCiAJCX0sewogCQkJLm5hbWUgPSBuYW1lX2NvbXAxLApAQCAtODc4LDcgKzg3OCw3IEBACiAgICAgICAgIH0sCiAJW1NBQTcxMzRfQk9BUkRfTUFOTElfTVRWMDAyXSA9IHsKIAkJLyogT2duamVuIE5hc3RpYyA8b2duamVuQGxvZ29zb2Z0LmJhPiAqLwotCQkubmFtZSAgICAgICAgICAgPSAiTWFubGkgTXVjaFRWIE0tVFYwMDIiLAorCQkubmFtZSAgICAgICAgICAgPSAiTWFubGkgTXVjaFRWIE0tVFYwMDIvQmVob2xkIFRWIDQwMyBGTSIsCiAJCS5hdWRpb19jbG9jayAgICA9IDB4MDAyMDAwMDAsCiAJCS50dW5lcl90eXBlICAgICA9IFRVTkVSX1BISUxJUFNfUEFMLAogCQkuaW5wdXRzICAgICAgICAgPSB7ewpAQCAtODk5LDE0ICs4OTksMTAgQEAKIAkJCS5uYW1lID0gbmFtZV9yYWRpbywKIAkJCS5hbXV4ID0gTElORTIsCiAJCX0sCi0JCS5tdXRlID0gewotCQkJLm5hbWUgPSBuYW1lX211dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAuYW11eCA9IExJTkUxLAotCQl9LAogCX0sCiAJW1NBQTcxMzRfQk9BUkRfTUFOTElfTVRWMDAxXSA9IHsKIAkJLyogT2duamVuIE5hc3RpYyA8b2duamVuQGxvZ29zb2Z0LmJhPiBVTlRFU1RFRCAqLwotCQkubmFtZSAgICAgICAgICAgPSAiTWFubGkgTXVjaFRWIE0tVFYwMDEiLAorCQkubmFtZSAgICAgICAgICAgPSAiTWFubGkgTXVjaFRWIE0tVFYwMDEvQmVob2xkIFRWIDQwMSIsCiAJCS5hdWRpb19jbG9jayAgICA9IDB4MDAyMDAwMDAsCiAJCS50dW5lcl90eXBlICAgICA9IFRVTkVSX1BISUxJUFNfUEFMLAogCQkuaW5wdXRzICAgICAgICAgPSB7ewpAQCAtOTIzLDYgKzkxOSwxMCBAQAogCQkJLmFtdXggPSBMSU5FMiwKIAkJCS50diAgID0gMSwKIAkJfX0sCisJCS5tdXRlID0geworCQkJLm5hbWUgPSBuYW1lX211dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAuYW11eCA9IExJTkUxLAorCQl9LAogICAgICAgICB9LAogCVtTQUE3MTM0X0JPQVJEX1RHMzAwMFRWXSA9IHsKIAkJLyogVHJhbnNHZWFyIDMwMDBUViAqLwpAQCAtMTA3OCw3ICsxMDc4LDYgQEAKIAkJLmF1ZGlvX2Nsb2NrICAgID0gMHgwMDE4N2RlNywKIAkJLnR1bmVyX3R5cGUgICAgID0gVFVORVJfUEhJTElQU19GTTEyNTZfSUgzLAogCQkudGRhOTg4N19jb25mICAgPSBUREE5ODg3X1BSRVNFTlQsCi0JCS5ncGlvbWFzayA9IDB4MywKIAkJLmlucHV0cyAgICAgICAgID0ge3sKIAkJCS5uYW1lID0gbmFtZV90diwKIAkJCS52bXV4ID0gMSwKQEAgLTEyODUsNyArMTI4NCw3IEBACiAJCQkgLmdwaW8gPTB4ODAwMCwKIAkJIH0KIAl9LAotICAgICAgICBbU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfMzA3XSA9IHsKKyAgICAgICAgW1NBQTcxMzRfQk9BUkRfQVZFUk1FRElBX1NUVURJT18zMDddID0gewogCQkvKgogCQlOaWNrb2xheSBWLiBTaG15cmV2IDxuc2hteXJldkB5YW5kZXgucnU+CiAJCUxvdHMgb2YgdGhhbmtzIHRvIEFuZHJleSBab2xvdGFyZXYgPHpvbG90YXJldl9hbmRyZXlAbWFpbC5ydT4KQEAgLTEzMjMsNiArMTMyMiwzNSBAQAogCQkJLmdwaW8gPSAweDAxLAogCQl9LAogICAgICAgICB9LAorICAgICAgICBbU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfR09fMDA3X0ZNXSA9IHsKKwkJLm5hbWUgICAgICAgICAgID0gIkF2ZXJtZWRpYSBBVmVyVFYgR08gMDA3IEZNIiwKKwkJLmF1ZGlvX2Nsb2NrICAgID0gMHgwMDE4N2RlNywKKwkJLnR1bmVyX3R5cGUgICAgID0gVFVORVJfUEhJTElQU19UREE4MjkwLAorCQkuZ3Bpb21hc2sgICAgICAgPSAweDAwMzAwMDAzLAorLy8JCS5ncGlvbWFzayAgICAgICA9IDB4OGMyNDAwMDMsCisJCS5pbnB1dHMgICAgICAgICA9IHt7CisJCQkubmFtZSA9IG5hbWVfdHYsCisJCQkudm11eCA9IDEsCisJCQkuYW11eCA9IFRWLAorCQkJLnR2ICAgPSAxLAorCQkJLmdwaW8gPSAweDAxLAorCQl9LHsKKwkJCS5uYW1lID0gbmFtZV9jb21wMSwKKwkJCS52bXV4ID0gMCwKKwkJCS5hbXV4ID0gTElORTIsCisJCQkuZ3BpbyA9IDB4MDIsCisJCX0seworCQkJLm5hbWUgPSBuYW1lX3N2aWRlbywKKwkJCS52bXV4ID0gNiwKKwkJCS5hbXV4ID0gTElORTIsCisJCQkuZ3BpbyA9IDB4MDIsCisJCX19LAorCQkucmFkaW8gPSB7CisJCQkubmFtZSA9IG5hbWVfcmFkaW8sCisJCQkuYW11eCA9IExJTkUxLAorCQkJLmdwaW8gPSAweDAwMzAwMDAxLAorCQl9LAorICAgICAgICB9LAogCVtTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9DQVJEQlVTXSA9IHsKIAkJLyogSm9uIFdlc3RnYXRlIDxvcnluQG9yeW4uZnNjay50dj4gKi8KIAkJLm5hbWUgICAgICAgICAgID0gIkFWZXJNZWRpYSBDYXJkYnVzIFRWL1JhZGlvIiwKQEAgLTE0OTIsNyArMTUyMCw2IEBACiAJCS5hdWRpb19jbG9jayAgICA9IDB4MDAxODdkZTcsCiAJCS50dW5lcl90eXBlICAgICA9IFRVTkVSX1BISUxJUFNfRlExMjE2TUUsCiAJCS50ZGE5ODg3X2NvbmYgICA9IFREQTk4ODdfUFJFU0VOVCwKLQkJLmdwaW9tYXNrID0gMHgzLAogCQkuaW5wdXRzICAgICAgICAgPSB7ewogCQkJLm5hbWUgPSBuYW1lX3R2LAogCQkJLnZtdXggPSAxLApAQCAtMTU0Niw3ICsxNTczLDgyIEBACiAvLwkJCS5ncGlvID0gMHg0MDAwLAogCQl9fSwKIAl9LAotfTsKKyAgICAgICAgW1NBQTcxMzRfQk9BUkRfQVZFUk1FRElBXzMwN10gPSB7CisgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICBEYXZ5ZG92IFZsYWRpbWlyIDx2bGFkaW1pckBpcW1lZGlhLmNvbT4KKyAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAubmFtZSAgICAgICAgICAgPSAiQXZlcm1lZGlhIEFWZXJUViAzMDciLAorICAgICAgICAgICAgICAgLmF1ZGlvX2Nsb2NrICAgID0gMHgwMDE4N2RlNywKKyAgICAgICAgICAgICAgIC50dW5lcl90eXBlICAgICA9IFRVTkVSX1BISUxJUFNfRlExMjE2TUUsCisgICAgICAgICAgICAgICAudGRhOTg4N19jb25mICAgPSBUREE5ODg3X1BSRVNFTlQsCisgICAgICAgICAgICAgICAuaW5wdXRzICAgICAgICAgPSB7eworICAgICAgICAgICAgICAgICAgICAgICAubmFtZSA9IG5hbWVfdHYsCisgICAgICAgICAgICAgICAgICAgICAgIC52bXV4ID0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgLmFtdXggPSBUViwKKyAgICAgICAgICAgICAgICAgICAgICAgLnR2ICAgPSAxLAorICAgICAgICAgICAgICAgfSx7CisgICAgICAgICAgICAgICAgICAgICAgIC5uYW1lID0gbmFtZV9jb21wMSwKKyAgICAgICAgICAgICAgICAgICAgICAgLnZtdXggPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAuYW11eCA9IExJTkUxLAorICAgICAgICAgICAgICAgfSx7CisgICAgICAgICAgICAgICAgICAgICAgIC5uYW1lID0gbmFtZV9jb21wMiwKKyAgICAgICAgICAgICAgICAgICAgICAgLnZtdXggPSAzLAorICAgICAgICAgICAgICAgICAgICAgICAuYW11eCA9IExJTkUxLAorICAgICAgICAgICAgICAgfSx7CisgICAgICAgICAgICAgICAgICAgICAgIC5uYW1lID0gbmFtZV9zdmlkZW8sCisgICAgICAgICAgICAgICAgICAgICAgIC52bXV4ID0gOCwKKyAgICAgICAgICAgICAgICAgICAgICAgLmFtdXggPSBMSU5FMSwKKyAgICAgICAgICAgICAgIH19LAorICAgICAgICB9LAorCVtTQUE3MTM0X0JPQVJEX0FEU19JTlNUQU5UX1RWXSA9IHsKKyAgICAgICAgICAgICAgICAubmFtZSAgICAgICAgICAgPSAiQURTIFRlY2ggSW5zdGFudCBUViAoc2FhNzEzNSkiLAorCQkuYXVkaW9fY2xvY2sgICAgPSAweDAwMTg3ZGU3LAorICAgICAgICAgICAgICAgIC50dW5lcl90eXBlICAgICA9IFRVTkVSX1BISUxJUFNfVERBODI5MCwKKyAgICAgICAgICAgICAgICAuaW5wdXRzICAgICAgICAgPSB7eworICAgICAgICAgICAgICAgICAgICAgICAgLm5hbWUgPSBuYW1lX3R2LAorICAgICAgICAgICAgICAgICAgICAgICAgLnZtdXggPSAxLAorICAgICAgICAgICAgICAgICAgICAgICAgLmFtdXggPSBUViwKKyAgICAgICAgICAgICAgICAgICAgICAgIC50diAgID0gMSwKKyAgICAgICAgICAgICAgICB9LHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC5uYW1lID0gbmFtZV9jb21wMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIC52bXV4ID0gMywKKyAgICAgICAgICAgICAgICAgICAgICAgIC5hbXV4ID0gTElORTIsCisgICAgICAgICAgICAgICAgfSx7CisgICAgICAgICAgICAgICAgICAgICAgICAubmFtZSA9IG5hbWVfc3ZpZGVvLAorICAgICAgICAgICAgICAgICAgICAgICAgLnZtdXggPSA4LAorICAgICAgICAgICAgICAgICAgICAgICAgLmFtdXggPSBMSU5FMiwKKyAgICAgICAgICAgICAgICB9fSwKKwl9LAorIAlbU0FBNzEzNF9CT0FSRF9LV09STERfVlNUUkVBTV9YUEVSVF0gPSB7CisgCQkubmFtZSAgICAgICAgICAgPSAiS3dvcmxkL1RldmlvbiBWLVN0cmVhbSBYcGVydCBUViBQVlI3MTM0IiwKKyAJCS5hdWRpb19jbG9jayAgICA9IDB4MDAxODdkZTcsCisgCQkudHVuZXJfdHlwZSAgICAgPSBUVU5FUl9QSElMSVBTX1BBTF9JLAorIAkJLmdwaW9tYXNrCT0gMHgwNzAwLAorIAkJLmlucHV0cyA9IHt7CisgCQkJLm5hbWUgICA9IG5hbWVfdHYsCisgCQkJLnZtdXggICA9IDEsCisgCQkJLmFtdXggICA9IFRWLAorIAkJCS50diAgICAgPSAxLAorIAkJCS5ncGlvICAgPSAweDAwMCwKKyAJCX0seworIAkJCS5uYW1lICAgPSBuYW1lX2NvbXAxLAorIAkJCS52bXV4ICAgPSAzLAorIAkJCS5hbXV4ICAgPSBMSU5FMSwKKyAJCQkuZ3BpbyAgID0gMHgyMDAsCQkvL2dwaW8gYnkgRFNjYWxlcgorIAkJfSx7CisgCQkJLm5hbWUgICA9IG5hbWVfc3ZpZGVvLAorIAkJCS52bXV4ICAgPSAwLAorIAkJCS5hbXV4ICAgPSBMSU5FMSwKKyAJCQkuZ3BpbyAgID0gMHgyMDAsCisgCQl9fSwKKyAJCS5yYWRpbyA9IHsKKyAJCQkubmFtZSAgID0gbmFtZV9yYWRpbywKKyAJCQkuYW11eCAgID0gTElORTEsCisgCQkJLmdwaW8gICA9IDB4MTAwLAorIAkJfSwKKyAJfSwKKyB9OworCiBjb25zdCB1bnNpZ25lZCBpbnQgc2FhNzEzNF9iY291bnQgPSBBUlJBWV9TSVpFKHNhYTcxMzRfYm9hcmRzKTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC0xNjYzLDcgKzE3NjUsNyBAQAogICAgICAgICAgICAgICAgIC5kcml2ZXJfZGF0YSAgPSBTQUE3MTM0X0JPQVJEX0FTVVNUZUtfVFZGTTcxMzQsCiAJfSx7CiAgICAgICAgICAgICAgICAgLnZlbmRvciAgICAgICA9IFBDSV9WRU5ET1JfSURfUEhJTElQUywKLSAgICAgICAgICAgICAgICAuZGV2aWNlICAgICAgID0gUENJX0RFVklDRV9JRF9QSElMSVBTX1NBQTcxMzMsCisgICAgICAgICAgICAgICAgLmRldmljZSAgICAgICA9IFBDSV9ERVZJQ0VfSURfUEhJTElQU19TQUE3MTM1LAogICAgICAgICAgICAgICAgIC5zdWJ2ZW5kb3IgICAgPSBQQ0lfVkVORE9SX0lEX0FTVVNURUssCiAgICAgICAgICAgICAgICAgLnN1YmRldmljZSAgICA9IDB4NDg0NSwKICAgICAgICAgICAgICAgICAuZHJpdmVyX2RhdGEgID0gU0FBNzEzNV9CT0FSRF9BU1VTVGVLX1RWRk03MTM1LApAQCAtMTgyNCw2ICsxOTI2LDEyIEBACiAJCS5kZXZpY2UgICAgICAgPSBQQ0lfREVWSUNFX0lEX1BISUxJUFNfU0FBNzEzNCwKIAkJLnN1YnZlbmRvciAgICA9IDB4MTQ2MSwgLyogQXZlcm1lZGlhIFRlY2hub2xvZ2llcyBJbmMgKi8KIAkJLnN1YmRldmljZSAgICA9IDB4OTcxNSwKKwkJLmRyaXZlcl9kYXRhICA9IFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX1NUVURJT18zMDcsCisJfSx7CisJCS52ZW5kb3IgICAgICAgPSBQQ0lfVkVORE9SX0lEX1BISUxJUFMsCisJCS5kZXZpY2UgICAgICAgPSBQQ0lfREVWSUNFX0lEX1BISUxJUFNfU0FBNzEzNCwKKwkJLnN1YnZlbmRvciAgICA9IDB4MTQ2MSwgLyogQXZlcm1lZGlhIFRlY2hub2xvZ2llcyBJbmMgKi8KKwkJLnN1YmRldmljZSAgICA9IDB4YTcwYSwKIAkJLmRyaXZlcl9kYXRhICA9IFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBXzMwNywKIAl9LHsKIAkJLnZlbmRvciAgICAgICA9IFBDSV9WRU5ET1JfSURfUEhJTElQUywKQEAgLTE4NDQsNiArMTk1MiwyNiBAQAogCQkuc3VidmVuZG9yICAgID0gMHg1MTY4LAogCQkuc3ViZGV2aWNlICAgID0gMHgwMzA2LAogCQkuZHJpdmVyX2RhdGEgID0gU0FBNzEzNF9CT0FSRF9GTFlEVkJURFVPLAorCX0seworCQkudmVuZG9yICAgICAgID0gUENJX1ZFTkRPUl9JRF9QSElMSVBTLAorCQkuZGV2aWNlICAgICAgID0gUENJX0RFVklDRV9JRF9QSElMSVBTX1NBQTcxMzMsCisJCS5zdWJ2ZW5kb3IgICAgPSAweDE0NjEsIC8qIEF2ZXJtZWRpYSBUZWNobm9sb2dpZXMgSW5jICovCisJCS5zdWJkZXZpY2UgICAgPSAweGYzMWYsCisJCS5kcml2ZXJfZGF0YSAgPSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9HT18wMDdfRk0sCisKKyAJfSx7CisJCS52ZW5kb3IgICAgICAgPSBQQ0lfVkVORE9SX0lEX1BISUxJUFMsCisJCS5kZXZpY2UgICAgICAgPSBQQ0lfREVWSUNFX0lEX1BISUxJUFNfU0FBNzEzNSwKKwkJLnN1YnZlbmRvciAgICA9IDB4MTQyMSwKKwkJLnN1YmRldmljZSAgICA9IDB4MDM1MCwJCS8qIFBDSSB2ZXJzaW9uICovCisJCS5kcml2ZXJfZGF0YSAgPSBTQUE3MTM0X0JPQVJEX0FEU19JTlNUQU5UX1RWLAorCisgCX0seworCQkudmVuZG9yICAgICAgID0gUENJX1ZFTkRPUl9JRF9QSElMSVBTLAorCQkuZGV2aWNlICAgICAgID0gUENJX0RFVklDRV9JRF9QSElMSVBTX1NBQTcxMzUsCisJCS5zdWJ2ZW5kb3IgICAgPSAweDE0MjEsCisJCS5zdWJkZXZpY2UgICAgPSAweDAzNzAsCQkvKiBjYXJkYnVzIHZlcnNpb24gKi8KKwkJLmRyaXZlcl9kYXRhICA9IFNBQTcxMzRfQk9BUkRfQURTX0lOU1RBTlRfVFYsCiAKICAJfSx7CiAJCS8qIC0tLSBib2FyZHMgd2l0aG91dCBlZXByb20gKyBzdWJzeXN0ZW0gSUQgLS0tICovCkBAIC0xOTU0LDIwICsyMDgyLDIzIEBACiAJCWRldi0+aGFzX3JlbW90ZSA9IDE7CiAJCWJvYXJkX2ZseXZpZGVvKGRldik7CiAJCWJyZWFrOwotCWNhc2UgU0FBNzEzNF9CT0FSRF9GTFlUVlBMQVRJTlVNX0ZNOgorICAgICAgICBjYXNlIFNBQTcxMzRfQk9BUkRfRkxZVFZQTEFUSU5VTV9GTToKIAljYXNlIFNBQTcxMzRfQk9BUkRfQ0lORVJHWTQwMDoKIAljYXNlIFNBQTcxMzRfQk9BUkRfQ0lORVJHWTYwMDoKIAljYXNlIFNBQTcxMzRfQk9BUkRfQ0lORVJHWTYwMF9NSzM6CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0VDU19UVlAzWFA6CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0VDU19UVlAzWFBfNENCNToKIAljYXNlIFNBQTcxMzRfQk9BUkRfTUQyODE5OgorCWNhc2UgU0FBNzEzNF9CT0FSRF9LV09STERfVlNUUkVBTV9YUEVSVDoKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX1NUVURJT18zMDU6CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV8zMDU6CisJY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9TVFVESU9fMzA3OgogCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfMzA3OgorCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfR09fMDA3X0ZNOgogLy8JY2FzZSBTQUE3MTM0X0JPQVJEX1NBQlJFTlRfU0JUVFZGTTogIC8qIG5vdCBmaW5pc2hlZCB5ZXQgKi8KIAljYXNlIFNBQTcxMzRfQk9BUkRfVklERU9NQVRFX1RWX1BWUjoKLQkJZGV2LT5oYXNfcmVtb3RlID0gMTsKLQkJYnJlYWs7CisgCWNhc2UgU0FBNzEzNF9CT0FSRF9NQU5MSV9NVFYwMDE6CisgCWNhc2UgU0FBNzEzNF9CT0FSRF9NQU5MSV9NVFYwMDI6CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0FWQUNTU01BUlRUVjoKIAkJZGV2LT5oYXNfcmVtb3RlID0gMTsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1jb3JlLmMKaW5kZXggNjM0YTJkMi4uZjYxZWQxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtY29yZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWNvcmUuYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAkSWQ6IHNhYTcxMzQtY29yZS5jLHYgMS4yOCAyMDA1LzAyLzIyIDA5OjU2OjI5IGtyYXhlbCBFeHAgJAorICogJElkOiBzYWE3MTM0LWNvcmUuYyx2IDEuMzAgMjAwNS8wNS8yMiAxOToyMzozOSBuc2ggRXhwICQKICAqCiAgKiBkZXZpY2UgZHJpdmVyIGZvciBwaGlsaXBzIHNhYTcxMzQgYmFzZWQgVFYgY2FyZHMKICAqIGRyaXZlciBjb3JlCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1kdmIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWR2Yi5jCmluZGV4IGMyODczYWUuLmFhOGUyY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWR2Yi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWR2Yi5jCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICRJZDogc2FhNzEzNC1kdmIuYyx2IDEuMTIgMjAwNS8wMi8xOCAxMjoyODoyOSBrcmF4ZWwgRXhwICQKKyAqICRJZDogc2FhNzEzNC1kdmIuYyx2IDEuMTMgMjAwNS8wNi8xMiAwNDoxOToxOSBtY2hlaGFiIEV4cCAkCiAgKgogICogKGMpIDIwMDQgR2VyZCBLbm9yciA8a3JheGVsQGJ5dGVzZXgub3JnPiBbU3VTRSBMYWJzXQogICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWVtcHJlc3MuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWVtcHJlc3MuYwppbmRleCBmYTEzNTczLi5jODUzNDhkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtZW1wcmVzcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWVtcHJlc3MuYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAkSWQ6IHNhYTcxMzQtZW1wcmVzcy5jLHYgMS4xMCAyMDA1LzAyLzAzIDEwOjI0OjMzIGtyYXhlbCBFeHAgJAorICogJElkOiBzYWE3MTM0LWVtcHJlc3MuYyx2IDEuMTEgMjAwNS8wNS8yMiAxOToyMzozOSBuc2ggRXhwICQKICAqCiAgKiAoYykgMjAwNCBHZXJkIEtub3JyIDxrcmF4ZWxAYnl0ZXNleC5vcmc+IFtTdVNFIExhYnNdCiAgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtaTJjLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pMmMuYwppbmRleCA3MDJiYjYzLi5iNmYwMDJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pMmMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pMmMuYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAkSWQ6IHNhYTcxMzQtaTJjLmMsdiAxLjEwIDIwMDUvMDEvMjQgMTc6Mzc6MjMga3JheGVsIEV4cCAkCisgKiAkSWQ6IHNhYTcxMzQtaTJjLmMsdiAxLjExIDIwMDUvMDYvMTIgMDE6MzY6MTQgbWNoZWhhYiBFeHAgJAogICoKICAqIGRldmljZSBkcml2ZXIgZm9yIHBoaWxpcHMgc2FhNzEzNCBiYXNlZCBUViBjYXJkcwogICogaTJjIGludGVyZmFjZSBzdXBwb3J0CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pbnB1dC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtaW5wdXQuYwppbmRleCBjYTUwY2Y1Li5hYmEyYjlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pbnB1dC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWlucHV0LmMKQEAgLTEsNSArMSw1IEBACiAvKgotICogJElkOiBzYWE3MTM0LWlucHV0LmMsdiAxLjE2IDIwMDQvMTIvMTAgMTI6MzM6Mzkga3JheGVsIEV4cCAkCisgKiAkSWQ6IHNhYTcxMzQtaW5wdXQuYyx2IDEuMTkgMjAwNS8wNi8wNyAxODowMjoyNiBuc2ggRXhwICQKICAqCiAgKiBoYW5kbGUgc2FhNzEzNCBJUiByZW1vdGVzIHZpYSBsaW51eCBrZXJuZWwgaW5wdXQgbGF5ZXIuCiAgKgpAQCAtMzA4LDYgKzMwOCwxMDIgQEAKIAlbIDMyIF0gPSBLRVlfTEFOR1VBR0UsCiAJWyAzMyBdID0gS0VZX1NMRUVQLAogfTsKKworLyogTWljaGFlbCBUb2thcmV2IDxtanRAdGxzLm1zay5ydT4KKyAgIGh0dHA6Ly93d3cuY29ycGl0LnJ1L21qdC9iZWhvbGRUVi9yZW1vdGVfY29udHJvbC5qcGcKKyAgIGtleXRhYmxlIGlzIHVzZWQgYnkgTUFOTEkgTVRWMDBbMTJdIGFuZCBCZWhvbGRUViA0MFsxM10gYXQKKyAgIGxlYXN0LCBhbmQgcHJvYmFibHkgb3RoZXIgY2FyZHMgdG9vLgorICAgVGhlICJhc2NpaS1hcnQgcGljdHVyZSIgYmVsb3cgKGluIGNvbW1lbnRzLCBmaXJzdCByb3cKKyAgIGlzIHRoZSBrZXljb2RlIGluIGhleCwgYW5kIHN1YnNlcXVlbnQgcm93KHMpIHNob3dzCisgICB0aGUgYnV0dG9uIGxhYmVscyAoc2V2ZXJhbCB2YXJpYW50cyB3aGVuIGFwcHJvcHJpYXRlKQorICAgaGVscHMgdG8gZGVzY2lkZSB3aGljaCBrZXljb2RlcyB0byBhc3NpZ24gdG8gdGhlIGJ1dHRvbnMuCisgKi8KK3N0YXRpYyBJUl9LRVlUQUJfVFlQRSBtYW5saV9jb2Rlc1tJUl9LRVlUQUJfU0laRV0gPSB7CisKKwkvKiAgMHgxYyAgICAgICAgICAgIDB4MTIgICoKKwkgKiBGVU5DVElPTiAgICAgICAgIFBPV0VSICoKKwkgKiAgIEZNICAgICAgICAgICAgICAofCkgICoKKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICovCisJWyAweDFjIF0gPSBLRVlfUkFESU8sCS8qWFhYKi8KKwlbIDB4MTIgXSA9IEtFWV9QT1dFUiwKKworCS8qICAweDAxICAgIDB4MDIgICAgMHgwMyAgKgorCSAqICAgMSAgICAgICAyICAgICAgIDMgICAgKgorCSAqICAgICAgICAgICAgICAgICAgICAgICAgKgorCSAqICAweDA0ICAgIDB4MDUgICAgMHgwNiAgKgorCSAqICAgNCAgICAgICA1ICAgICAgIDYgICAgKgorCSAqICAgICAgICAgICAgICAgICAgICAgICAgKgorCSAqICAweDA3ICAgIDB4MDggICAgMHgwOSAgKgorCSAqICAgNyAgICAgICA4ICAgICAgIDkgICAgKgorCSAqICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlbIDB4MDEgXSA9IEtFWV9LUDEsCisJWyAweDAyIF0gPSBLRVlfS1AyLAorCVsgMHgwMyBdID0gS0VZX0tQMywKKwlbIDB4MDQgXSA9IEtFWV9LUDQsCisJWyAweDA1IF0gPSBLRVlfS1A1LAorCVsgMHgwNiBdID0gS0VZX0tQNiwKKwlbIDB4MDcgXSA9IEtFWV9LUDcsCisJWyAweDA4IF0gPSBLRVlfS1A4LAorCVsgMHgwOSBdID0gS0VZX0tQOSwKKworCS8qICAweDBhICAgIDB4MDAgICAgMHgxNyAgKgorCSAqIFJFQ0FMTCAgICAwICAgICAgKzEwMCAgKgorCSAqICAgICAgICAgICAgICAgICAgUExVUyAgKgorCSAqICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlbIDB4MGEgXSA9IEtFWV9BR0FJTiwJLypYWFggS0VZX1JFV0lORD8gKi8KKwlbIDB4MDAgXSA9IEtFWV9LUDAsCisJWyAweDE3IF0gPSBLRVlfRElHSVRTLAkvKlhYWCovCisKKwkvKiAgMHgxNCAgICAgICAgICAgIDB4MTAgICoKKwkgKiAgTUVOVSAgICAgICAgICAgIElORk8gICoKKwkgKiAgT1NEICAgICAgICAgICAgICAgICAgICovCisJWyAweDE0IF0gPSBLRVlfTUVOVSwKKwlbIDB4MTAgXSA9IEtFWV9JTkZPLAorCisJLyogICAgICAgICAgMHgwYiAgICAgICAgICAqCisJICogICAgICAgICAgIFVwICAgICAgICAgICAqCisJICogICAgICAgICAgICAgICAgICAgICAgICAqCisJICogIDB4MTggICAgMHgxNiAgICAweDBjICAqCisJICogIExlZnQgICAgIE9rICAgICBSaWdodCAqCisJICogICAgICAgICAgICAgICAgICAgICAgICAqCisJICogICAgICAgICAweDAxNSAgICAgICAgICAqCisJICogICAgICAgICBEb3duICAgICAgICAgICAqCisJICogICAgICAgICAgICAgICAgICAgICAgICAqLworCVsgMHgwYiBdID0gS0VZX1VQLAkvKlhYWCBLRVlfU0NST0xMVVA/ICovCisJWyAweDE4IF0gPSBLRVlfTEVGVCwJLypYWFggS0VZX0JBQ0s/ICovCisJWyAweDE2IF0gPSBLRVlfT0ssCS8qWFhYIEtFWV9TRUxFQ1Q/IEtFWV9FTlRFUj8gKi8KKwlbIDB4MGMgXSA9IEtFWV9SSUdIVCwJLypYWFggS0VZX0ZPUldBUkQ/ICovCisJWyAweDE1IF0gPSBLRVlfRE9XTiwJLypYWFggS0VZX1NDUk9MTERPV04/ICovCisKKwkvKiAgMHgxMSAgICAgICAgICAgIDB4MGQgICoKKwkgKiAgVFYvQVYgICAgICAgICAgIE1PREUgICoKKwkgKiAgU09VUkNFICAgICAgICAgU1RFUkVPICoKKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICovCisJWyAweDExIF0gPSBLRVlfVFYsCS8qWFhYKi8KKwlbIDB4MGQgXSA9IEtFWV9NT0RFLAkvKlhYWCB0aGVyZSdzIG5vIEtFWV9TVEVSRU8gKi8KKworCS8qICAweDBmICAgIDB4MWIgICAgMHgxYSAgKgorCSAqICBBVURJTyAgIFZvbCsgICAgQ2hhbisgKgorCSAqICAgICAgICBUSU1FU0hJRlQ/Pz8gICAgKgorCSAqICAgICAgICAgICAgICAgICAgICAgICAgKgorCSAqICAweDBlICAgIDB4MWYgICAgMHgxZSAgKgorCSAqICBTTEVFUCAgIFZvbC0gICAgQ2hhbi0gKgorCSAqICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlbIDB4MGYgXSA9IEtFWV9BVURJTywKKwlbIDB4MWIgXSA9IEtFWV9WT0xVTUVVUCwKKwlbIDB4MWEgXSA9IEtFWV9DSEFOTkVMVVAsCisJWyAweDBlIF0gPSBLRVlfU0xFRVAsCS8qWFhYIG1heWJlIEtFWV9QQVVTRSAqLworCVsgMHgxZiBdID0gS0VZX1ZPTFVNRURPV04sCisJWyAweDFlIF0gPSBLRVlfQ0hBTk5FTERPV04sCisKKwkvKiAgICAgICAgIDB4MTMgICAgIDB4MTkgICoKKwkgKiAgICAgICAgIE1VVEUgICBTTkFQU0hPVCoKKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICovCisJWyAweDEzIF0gPSBLRVlfTVVURSwKKwlbIDB4MTkgXSA9IEtFWV9SRUNPUkQsCS8qWFhYKi8KKworCS8vIDB4MWQgdW51c2VkID8KK307CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIHN0YXRpYyBpbnQgYnVpbGRfa2V5KHN0cnVjdCBzYWE3MTM0X2RldiAqZGV2KQpAQCAtMzc5LDcgKzQ3NSw3IEBACiAJc3dpdGNoIChkZXYtPmJvYXJkKSB7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0ZMWVZJREVPMjAwMDoKIAljYXNlIFNBQTcxMzRfQk9BUkRfRkxZVklERU8zMDAwOgotCWNhc2UgU0FBNzEzNF9CT0FSRF9GTFlUVlBMQVRJTlVNX0ZNOgorICAgICAgICBjYXNlIFNBQTcxMzRfQk9BUkRfRkxZVFZQTEFUSU5VTV9GTToKIAkJaXJfY29kZXMgICAgID0gZmx5dmlkZW9fY29kZXM7CiAJCW1hc2tfa2V5Y29kZSA9IDB4RUMwMDAwMDsKIAkJbWFza19rZXlkb3duID0gMHgwMDQwMDAwOwpAQCAtNDA1LDggKzUwMSwxMiBAQAogCQlwb2xsaW5nICAgICAgPSA1MDsgLy8gbXMKIAkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX01EMjgxOToKKwljYXNlIFNBQTcxMzRfQk9BUkRfS1dPUkxEX1ZTVFJFQU1fWFBFUlQ6CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV8zMDU6CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV8zMDc6CisJY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9TVFVESU9fMzA1OgorCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfU1RVRElPXzMwNzoKKwljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0dPXzAwN19GTToKIAkJaXJfY29kZXMgICAgID0gbWQyODE5X2NvZGVzOwogCQltYXNrX2tleWNvZGUgPSAweDAwMDdDODsKIAkJbWFza19rZXlkb3duID0gMHgwMDAwMTA7CkBAIC00MTUsNiArNTE1LDE0IEBACiAJCXNhYV9zZXRiKFNBQTcxMzRfR1BJT19HUE1PREUwLCAweDQpOwogCQlzYWFfc2V0YihTQUE3MTM0X0dQSU9fR1BTVEFUVVMwLCAweDQpOwogCQlicmVhazsKKwljYXNlIFNBQTcxMzRfQk9BUkRfTUFOTElfTVRWMDAxOgorCWNhc2UgU0FBNzEzNF9CT0FSRF9NQU5MSV9NVFYwMDI6CisJCWlyX2NvZGVzICAgICA9IG1hbmxpX2NvZGVzOworCQltYXNrX2tleWNvZGUgPSAweDAwMWYwMDsKKwkJbWFza19rZXl1cCAgID0gMHgwMDQwMDA7CisJCW1hc2tfa2V5ZG93biA9IDB4MDAyMDAwOworCQlwb2xsaW5nICAgICAgPSA1MDsgLy8gbXMKKwkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX1ZJREVPTUFURV9UVl9QVlI6CiAJCWlyX2NvZGVzICAgICA9IHZpZGVvbWF0ZV90dl9wdnJfY29kZXM7CiAJCW1hc2tfa2V5Y29kZSA9IDB4MDAwMDNGOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtb3NzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1vc3MuYwppbmRleCA2YjZhNjQzLi44MTczMjkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1vc3MuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1vc3MuYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAkSWQ6IHNhYTcxMzQtb3NzLmMsdiAxLjEzIDIwMDQvMTIvMTAgMTI6MzM6Mzkga3JheGVsIEV4cCAkCisgKiAkSWQ6IHNhYTcxMzQtb3NzLmMsdiAxLjE0IDIwMDUvMDUvMTggMjI6NDU6MTYgaGhhY2ttYW5uIEV4cCAkCiAgKgogICogZGV2aWNlIGRyaXZlciBmb3IgcGhpbGlwcyBzYWE3MTM0IGJhc2VkIFRWIGNhcmRzCiAgKiBvc3MgZHNwIGludGVyZmFjZQpAQCAtNDksNyArNDksNiBAQAogCiBzdGF0aWMgaW50IGRzcF9idWZmZXJfY29uZihzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiwgaW50IGJsa3NpemUsIGludCBibG9ja3MpCiB7Ci0JYmxrc2l6ZSAmPSB+MHhmZjsKIAlpZiAoYmxrc2l6ZSA8IDB4MTAwKQogCQlibGtzaXplID0gMHgxMDA7CiAJaWYgKGJsa3NpemUgPiAweDEwMDAwKQpAQCAtNTcsOCArNTYsNiBAQAogCiAJaWYgKGJsb2NrcyA8IDIpCiAJCWJsb2NrcyA9IDI7Ci0gICAgICAgIHdoaWxlICgoYmxrc2l6ZSAqIGJsb2NrcykgJiB+UEFHRV9NQVNLKQotCQlibG9ja3MrKzsKIAlpZiAoKGJsa3NpemUgKiBibG9ja3MpID4gMTAyNCoxMDI0KQogCQlibG9ja3MgPSAxMDI0KjEwMjQgLyBibGtzaXplOwogCkBAIC03OSw3ICs3Niw3IEBACiAJCUJVRygpOwogCXZpZGVvYnVmX2RtYV9pbml0KCZkZXYtPm9zcy5kbWEpOwogCWVyciA9IHZpZGVvYnVmX2RtYV9pbml0X2tlcm5lbCgmZGV2LT5vc3MuZG1hLCBQQ0lfRE1BX0ZST01ERVZJQ0UsCi0JCQkJICAgICAgIGRldi0+b3NzLmJ1ZnNpemUgPj4gUEFHRV9TSElGVCk7CisJCQkJICAgICAgIChkZXYtPm9zcy5idWZzaXplICsgUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZUKTsKIAlpZiAoMCAhPSBlcnIpCiAJCXJldHVybiBlcnI7CiAJcmV0dXJuIDA7CkBAIC0xNjMsMTAgKzE2MCwxMSBAQAogCQkJZm10IHw9IDB4MDQ7CiAJCWZtdCB8PSAoVFYgPT0gZGV2LT5vc3MuaW5wdXQpID8gMHhjMCA6IDB4ODA7CiAKLQkJc2FhX3dyaXRlYihTQUE3MTM0X05VTV9TQU1QTEVTMCwgKGRldi0+b3NzLmJsa3NpemUgJiAweDAwMDBmZikpOwotCQlzYWFfd3JpdGViKFNBQTcxMzRfTlVNX1NBTVBMRVMxLCAoZGV2LT5vc3MuYmxrc2l6ZSAmIDB4MDBmZjAwKSA+PiAgOCk7Ci0JCXNhYV93cml0ZWIoU0FBNzEzNF9OVU1fU0FNUExFUzIsIChkZXYtPm9zcy5ibGtzaXplICYgMHhmZjAwMDApID4+IDE2KTsKKwkJc2FhX3dyaXRlYihTQUE3MTM0X05VTV9TQU1QTEVTMCwgKChkZXYtPm9zcy5ibGtzaXplIC0gMSkgJiAweDAwMDBmZikpOworCQlzYWFfd3JpdGViKFNBQTcxMzRfTlVNX1NBTVBMRVMxLCAoKGRldi0+b3NzLmJsa3NpemUgLSAxKSAmIDB4MDBmZjAwKSA+PiAgOCk7CisJCXNhYV93cml0ZWIoU0FBNzEzNF9OVU1fU0FNUExFUzIsICgoZGV2LT5vc3MuYmxrc2l6ZSAtIDEpICYgMHhmZjAwMDApID4+IDE2KTsKIAkJc2FhX3dyaXRlYihTQUE3MTM0X0FVRElPX0ZPUk1BVF9DVFJMLCBmbXQpOworCiAJCWJyZWFrOwogCWNhc2UgUENJX0RFVklDRV9JRF9QSElMSVBTX1NBQTcxMzM6CiAJY2FzZSBQQ0lfREVWSUNFX0lEX1BISUxJUFNfU0FBNzEzNToKQEAgLTgxNyw3ICs4MTUsNyBAQAogCQkJcmVnID0gU0FBNzEzNF9SU19CQTEoNik7CiAJfSBlbHNlIHsKIAkJLyogZXZlbiAqLwotCQlpZiAoMCA9PSAoZGV2LT5vc3MuZG1hX2JsayAmIDB4MDApKQorCQlpZiAoMSA9PSAoZGV2LT5vc3MuZG1hX2JsayAmIDB4MDEpKQogCQkJcmVnID0gU0FBNzEzNF9SU19CQTIoNik7CiAJfQogCWlmICgwID09IHJlZykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtdHZhdWRpby5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtdHZhdWRpby5jCmluZGV4IGVjYWMxM2MuLjM2MTdlN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LXR2YXVkaW8uYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC10dmF1ZGlvLmMKQEAgLTEsNSArMSw1IEBACiAvKgotICogJElkOiBzYWE3MTM0LXR2YXVkaW8uYyx2IDEuMjIgMjAwNS8wMS8wNyAxMzoxMToxOSBrcmF4ZWwgRXhwICQKKyAqICRJZDogc2FhNzEzNC10dmF1ZGlvLmMsdiAxLjI1IDIwMDUvMDYvMDcgMTk6MDA6MzggbnNoIEV4cCAkCiAgKgogICogZGV2aWNlIGRyaXZlciBmb3IgcGhpbGlwcyBzYWE3MTM0IGJhc2VkIFRWIGNhcmRzCiAgKiB0diBhdWRpbyBkZWNvZGVyIChmbSBzdGVyZW8sIG5pY2FtLCAuLi4pCkBAIC0xODEsNyArMTgxLDggQEAKIAlzYWFfd3JpdGViKFNBQTcxMzRfQVVESU9fQ0xPQ0swLCAgICAgIGNsb2NrICAgICAgICAmIDB4ZmYpOwogCXNhYV93cml0ZWIoU0FBNzEzNF9BVURJT19DTE9DSzEsICAgICAoY2xvY2sgPj4gIDgpICYgMHhmZik7CiAJc2FhX3dyaXRlYihTQUE3MTM0X0FVRElPX0NMT0NLMiwgICAgIChjbG9jayA+PiAxNikgJiAweGZmKTsKLQlzYWFfd3JpdGViKFNBQTcxMzRfQVVESU9fUExMX0NUUkwsICAgMHgwMSk7CisJLy8gZnJhbWUgbG9ja2VkIGF1ZGlvIHdhcyByZXBvcnRlZCBub3QgdG8gYmUgcmVsaWFibGUKKwlzYWFfd3JpdGViKFNBQTcxMzRfQVVESU9fUExMX0NUUkwsICAgMHgwMik7CiAKIAlzYWFfd3JpdGViKFNBQTcxMzRfTklDQU1fRVJST1JfTE9XLCAgMHgxNCk7CiAJc2FhX3dyaXRlYihTQUE3MTM0X05JQ0FNX0VSUk9SX0hJR0gsIDB4NTApOwpAQCAtMjUwLDYgKzI1MSwxMSBAQAogCXNhYV9hbmRvcmIoU0FBNzEzNF9BVURJT19GT1JNQVRfQ1RSTCwgMHhjMCwgYXVzZWwpOwogCXNhYV9hbmRvcmIoU0FBNzEzNF9BTkFMT0dfSU9fU0VMRUNULCAweDA4LCBpY3MpOwogCXNhYV9hbmRvcmIoU0FBNzEzNF9BTkFMT0dfSU9fU0VMRUNULCAweDA3LCBvY3MpOworCS8vIGZvciBvc3MsIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSBjbG9jayBjb25maWd1cmF0aW9uCisJaWYgKGluLT5hbXV4ID09IFRWKQorCQlzYWFfYW5kb3JiKFNBQTcxMzRfU0lGX1NBTVBMRV9GUkVRLCAgIDB4MDMsIDB4MDApOworCWVsc2UKKwkJc2FhX2FuZG9yYihTQUE3MTM0X1NJRl9TQU1QTEVfRlJFUSwgICAweDAzLCAweDAxKTsKIAogCS8qIHN3aXRjaCBncGlvLWNvbm5lY3RlZCBleHRlcm5hbCBhdWRpbyBtdXggKi8KIAlpZiAoMCA9PSBjYXJkKGRldikuZ3Bpb21hc2spCkBAIC00MzksMTYgKzQ0NSwxNSBAQAogCQluaWNhbSA9IHNhYV9yZWFkYihTQUE3MTM0X05JQ0FNX1NUQVRVUyk7CiAJCWRwcmludGsoImdldHN0ZXJlbzogbmljYW09MHgleFxuIixuaWNhbSk7CiAJCXN3aXRjaCAobmljYW0gJiAweDBiKSB7CisJCWNhc2UgMHgwODoKKwkJCXJldHZhbCA9IFY0TDJfVFVORVJfU1VCX01PTk87CisJCQlicmVhazsKIAkJY2FzZSAweDA5OgogCQkJcmV0dmFsID0gVjRMMl9UVU5FUl9TVUJfTEFORzEgfCBWNEwyX1RVTkVSX1NVQl9MQU5HMjsKIAkJCWJyZWFrOwogCQljYXNlIDB4MGE6CiAJCQlyZXR2YWwgPSBWNEwyX1RVTkVSX1NVQl9NT05PIHwgVjRMMl9UVU5FUl9TVUJfU1RFUkVPOwogCQkJYnJlYWs7Ci0JCWNhc2UgMHgwODoKLQkJZGVmYXVsdDoKLQkJCXJldHZhbCA9IFY0TDJfVFVORVJfU1VCX01PTk87Ci0JCQlicmVhazsKIAkJfQogCQlicmVhazsKIAl9CkBAIC01NzIsMTQgKzU3NywxNCBAQAogCQl9IGVsc2UgaWYgKDAgIT0gZGV2LT5sYXN0X2NhcnJpZXIpIHsKIAkJCS8qIG5vIGNhcnJpZXIgLS0gdHJ5IGxhc3QgZGV0ZWN0ZWQgb25lIGFzIGZhbGxiYWNrICovCiAJCQljYXJyaWVyID0gZGV2LT5sYXN0X2NhcnJpZXI7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICIlcy9hdWRpbzogYXVkaW8gY2FycmllciBzY2FuIGZhaWxlZCwgIgorCQkJZHByaW50ayhLRVJOX1dBUk5JTkcgIiVzL2F1ZGlvOiBhdWRpbyBjYXJyaWVyIHNjYW4gZmFpbGVkLCAiCiAJCQkgICAgICAgInVzaW5nICVkLiUwM2QgTUh6IFtsYXN0IGRldGVjdGVkXVxuIiwKIAkJCSAgICAgICBkZXYtPm5hbWUsIGNhcnJpZXIvMTAwMCwgY2FycmllciUxMDAwKTsKIAogCQl9IGVsc2UgewogCQkJLyogbm8gY2FycmllciArIG5vIGZhbGxiYWNrIC0tIHVzZSBkZWZhdWx0ICovCiAJCQljYXJyaWVyID0gZGVmYXVsdF9jYXJyaWVyOwotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXMvYXVkaW86IGF1ZGlvIGNhcnJpZXIgc2NhbiBmYWlsZWQsICIKKwkJCWRwcmludGsoS0VSTl9XQVJOSU5HICIlcy9hdWRpbzogYXVkaW8gY2FycmllciBzY2FuIGZhaWxlZCwgIgogCQkJICAgICAgICJ1c2luZyAlZC4lMDNkIE1IeiBbZGVmYXVsdF1cbiIsCiAJCQkgICAgICAgZGV2LT5uYW1lLCBjYXJyaWVyLzEwMDAsIGNhcnJpZXIlMTAwMCk7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LXZiaS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtdmJpLmMKaW5kZXggMDNjMzUwZi4uM2MzM2M1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtdmJpLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtdmJpLmMKQEAgLTEsNSArMSw1IEBACiAvKgotICogJElkOiBzYWE3MTM0LXZiaS5jLHYgMS42IDIwMDQvMTIvMTAgMTI6MzM6Mzkga3JheGVsIEV4cCAkCisgKiAkSWQ6IHNhYTcxMzQtdmJpLmMsdiAxLjcgMjAwNS8wNS8yNCAyMzoxMzowNiBuc2ggRXhwICQKICAqCiAgKiBkZXZpY2UgZHJpdmVyIGZvciBwaGlsaXBzIHNhYTcxMzQgYmFzZWQgVFYgY2FyZHMKICAqIHZpZGVvNGxpbnV4IHZpZGVvIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtdmlkZW8uYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LXZpZGVvLmMKaW5kZXggNzJmODY3My4uYzBhMmVlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtdmlkZW8uYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC12aWRlby5jCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICRJZDogc2FhNzEzNC12aWRlby5jLHYgMS4yOCAyMDA1LzAyLzE1IDE1OjU5OjM1IGtyYXhlbCBFeHAgJAorICogJElkOiBzYWE3MTM0LXZpZGVvLmMsdiAxLjMwIDIwMDUvMDYvMDcgMTk6MDA6MzggbnNoIEV4cCAkCiAgKgogICogZGV2aWNlIGRyaXZlciBmb3IgcGhpbGlwcyBzYWE3MTM0IGJhc2VkIFRWIGNhcmRzCiAgKiB2aWRlbzRsaW51eCB2aWRlbyBpbnRlcmZhY2UKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlICJzYWE3MTM0LXJlZy5oIgogI2luY2x1ZGUgInNhYTcxMzQuaCIKIAotI2RlZmluZSBWNEwyX0kyQ19DTElFTlRTIDEKLQogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgdmlkZW9fZGVidWcgICA9IDA7CkBAIC0yNzYsMTIgKzI3NCwxMiBAQAogCiAJCS5oX3N0YXJ0ICAgICAgID0gMCwKIAkJLmhfc3RvcCAgICAgICAgPSA3MTksCi0gCQkudmlkZW9fdl9zdGFydCA9IDIzLAotIAkJLnZpZGVvX3Zfc3RvcCAgPSAyNjIsCi0gCQkudmJpX3Zfc3RhcnRfMCA9IDEwLAotIAkJLnZiaV92X3N0b3BfMCAgPSAyMSwKLSAJCS52Ymlfdl9zdGFydF8xID0gMjczLAotIAkJLnNyY190aW1pbmcgICAgPSA3LAorCQkudmlkZW9fdl9zdGFydCA9IDIzLAorICAJCS52aWRlb192X3N0b3AgID0gMjYyLAorICAJCS52Ymlfdl9zdGFydF8wID0gMTAsCisgIAkJLnZiaV92X3N0b3BfMCAgPSAyMSwKKyAgCQkudmJpX3Zfc3RhcnRfMSA9IDI3MywKKyAgCQkuc3JjX3RpbWluZyAgICA9IDcsCiAKIAkJLnN5bmNfY29udHJvbCAgPSAweDE4LAogCQkubHVtYV9jb250cm9sICA9IDB4NDAsCkBAIC01MjQsMjIgKzUyMiw3IEBACiAJc2FhX3dyaXRlYihTQUE3MTM0X1JBV19EQVRBX0dBSU4sICAgICAgICAgMHg0MCk7CiAJc2FhX3dyaXRlYihTQUE3MTM0X1JBV19EQVRBX09GRlNFVCwgICAgICAgMHg4MCk7CiAKLSNpZmRlZiBWNEwyX0kyQ19DTElFTlRTCiAJc2FhNzEzNF9pMmNfY2FsbF9jbGllbnRzKGRldixWSURJT0NfU19TVEQsJm5vcm0tPmlkKTsKLSNlbHNlCi0JewotCQkvKiBwYXNzIGRvd24gaW5mbyB0byB0aGUgaTJjIGNoaXBzICh2NGwxKSAqLwotCQlzdHJ1Y3QgdmlkZW9fY2hhbm5lbCBjOwotCQltZW1zZXQoJmMsMCxzaXplb2YoYykpOwotCQljLmNoYW5uZWwgPSBkZXYtPmN0bF9pbnB1dDsKLQkJYy5ub3JtID0gVklERU9fTU9ERV9QQUw7Ci0JCWlmIChub3JtLT5pZCAmIFY0TDJfU1REX05UU0MpCi0JCQljLm5vcm0gPSBWSURFT19NT0RFX05UU0M7Ci0JCWlmIChub3JtLT5pZCAmIFY0TDJfU1REX1NFQ0FNKQotCQkJYy5ub3JtID0gVklERU9fTU9ERV9TRUNBTTsKLQkJc2FhNzEzNF9pMmNfY2FsbF9jbGllbnRzKGRldixWSURJT0NTQ0hBTiwmYyk7Ci0JfQotI2VuZGlmCiB9CiAKIHN0YXRpYyB2b2lkIHZpZGVvX211eChzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiwgaW50IGlucHV0KQpAQCAtMTg4MywxMSArMTg2Niw5IEBACiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJZG93bigmZGV2LT5sb2NrKTsKIAkJZGV2LT5jdGxfZnJlcSA9IGYtPmZyZXF1ZW5jeTsKLSNpZmRlZiBWNEwyX0kyQ19DTElFTlRTCisKIAkJc2FhNzEzNF9pMmNfY2FsbF9jbGllbnRzKGRldixWSURJT0NfU19GUkVRVUVOQ1ksZik7Ci0jZWxzZQotCQlzYWE3MTM0X2kyY19jYWxsX2NsaWVudHMoZGV2LFZJRElPQ1NGUkVRLCZkZXYtPmN0bF9mcmVxKTsKLSNlbmRpZgorCiAJCXNhYTcxMzRfdHZhdWRpb19kb19zY2FuKGRldik7CiAJCXVwKCZkZXYtPmxvY2spOwogCQlyZXR1cm4gMDsKQEAgLTIxNDIsMTYgKzIxMjMsMTkgQEAKICAgICAgICAgICAgICAgICB0LT5yYW5nZWxvdyAgPSAoaW50KSg2NSoxNik7CiAgICAgICAgICAgICAgICAgdC0+cmFuZ2VoaWdoID0gKGludCkoMTA4KjE2KTsKIAotI2lmZGVmIFY0TDJfSTJDX0NMSUVOVFMKLQkJc2FhNzEzNF9pMmNfY2FsbF9jbGllbnRzKGRldixWSURJT0NfR19UVU5FUix0KTsKLSNlbHNlCi0JCXsKLQkJCXN0cnVjdCB2aWRlb190dW5lciB2dDsKLQkJCW1lbXNldCgmdnQsMCxzaXplb2YodnQpKTsKLQkJCXNhYTcxMzRfaTJjX2NhbGxfY2xpZW50cyhkZXYsVklESU9DR1RVTkVSLCZ2dCk7Ci0JCQl0LT5zaWduYWwgPSB2dC5zaWduYWw7Ci0JCX0KLSNlbmRpZgorCQlzYWE3MTM0X2kyY19jYWxsX2NsaWVudHMoZGV2LCBWSURJT0NfR19UVU5FUiwgdCk7CisKKwkJcmV0dXJuIDA7CisJfQorCWNhc2UgVklESU9DX1NfVFVORVI6CisJeworCQlzdHJ1Y3QgdjRsMl90dW5lciAqdCA9IGFyZzsKKworCQlpZiAoMCAhPSB0LT5pbmRleCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCXNhYTcxMzRfaTJjX2NhbGxfY2xpZW50cyhkZXYsVklESU9DX1NfVFVORVIsdCk7CisKIAkJcmV0dXJuIDA7CiAJfQogCWNhc2UgVklESU9DX0VOVU1JTlBVVDoKQEAgLTIxODUsNyArMjE2OSw2IEBACiAJCXJldHVybiAwOwogCX0KIAljYXNlIFZJRElPQ19TX0FVRElPOgotCWNhc2UgVklESU9DX1NfVFVORVI6CiAJY2FzZSBWSURJT0NfU19JTlBVVDoKIAljYXNlIFZJRElPQ19TX1NURDoKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQuaAppbmRleCBiODA4ZjE4Li5kNmIxYzBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC5oCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogJElkOiBzYWE3MTM0LmgsdiAxLjM4IDIwMDUvMDMvMDcgMTI6MDE6NTEga3JheGVsIEV4cCAkCisgKiAkSWQ6IHNhYTcxMzQuaCx2IDEuNDEgMjAwNS8wNi8wNyAxODowMjoyNiBuc2ggRXhwICQKICAqCiAgKiB2NGwyIGRldmljZSBkcml2ZXIgZm9yIHBoaWxpcHMgc2FhNzEzNCBiYXNlZCBUViBjYXJkcwogICoKQEAgLTE2OCw3ICsxNjgsNyBAQAogI2RlZmluZSBTQUE3MTM0X0JPQVJEX1NBQlJFTlRfU0JUVFZGTSAgNDIKICNkZWZpbmUgU0FBNzEzNF9CT0FSRF9aT0xJRF9YUEVSVF9UVjcxMzQgNDMKICNkZWZpbmUgU0FBNzEzNF9CT0FSRF9FTVBJUkVfUENJX1RWX1JBRElPX0xFIDQ0Ci0jZGVmaW5lIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBXzMwNyAgICA0NQorI2RlZmluZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9TVFVESU9fMzA3ICAgIDQ1CiAjZGVmaW5lIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0NBUkRCVVMgNDYKICNkZWZpbmUgU0FBNzEzNF9CT0FSRF9DSU5FUkdZNDAwX0NBUkRCVVMgNDcKICNkZWZpbmUgU0FBNzEzNF9CT0FSRF9DSU5FUkdZNjAwX01LMyAgIDQ4CkBAIC0xNzksNiArMTc5LDEwIEBACiAjZGVmaW5lIFNBQTcxMzVfQk9BUkRfQVNVU1RlS19UVkZNNzEzNSA1MwogI2RlZmluZSBTQUE3MTM0X0JPQVJEX0ZMWVRWUExBVElOVU1fRk0gNTQKICNkZWZpbmUgU0FBNzEzNF9CT0FSRF9GTFlEVkJURFVPIDU1CisjZGVmaW5lIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBXzMwNyAgICA1NgorI2RlZmluZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9HT18wMDdfRk0gNTcKKyNkZWZpbmUgU0FBNzEzNF9CT0FSRF9BRFNfSU5TVEFOVF9UViA1OAorI2RlZmluZSBTQUE3MTM0X0JPQVJEX0tXT1JMRF9WU1RSRUFNX1hQRVJUIDU5CiAKICNkZWZpbmUgU0FBNzEzNF9NQVhCT0FSRFMgOAogI2RlZmluZSBTQUE3MTM0X0lOUFVUX01BWCA4CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3R2ZWVwcm9tLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3R2ZWVwcm9tLmMKaW5kZXggM2QyMTY5Ny4uY2YwNjliZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby90dmVlcHJvbS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdHZlZXByb20uYwpAQCAtNzUsNyArNzUsNyBAQAogCXsgMHgwMDAwMDAwNywgIlBBTChCL0cpIiB9LAogCXsgMHgwMDAwMTAwMCwgIk5UU0MoTSkiIH0sCiAJeyAweDAwMDAwMDEwLCAiUEFMKEkpIiB9LAotCXsgMHgwMDQwMDAwMCwgIlNFQ0FNKEwvTO+/vSkiIH0sCisJeyAweDAwNDAwMDAwLCAiU0VDQU0oTC9MtCkiIH0sCiAJeyAweDAwMDAwZTAwLCAiUEFMKEQvSykiIH0sCiAJeyAweDAzMDAwMDAwLCAiQVRTQyBEaWdpdGFsIiB9LAogfTsKQEAgLTQ4Miw2ICs0ODIsNyBAQAogCTB4YTAgPj4gMSwKIAlJMkNfQ0xJRU5UX0VORCwKIH07CitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY19yYW5nZVtdID0geyBJMkNfQ0xJRU5UX0VORCB9OwogSTJDX0NMSUVOVF9JTlNNT0Q7CiAKIHN0cnVjdCBpMmNfZHJpdmVyIGkyY19kcml2ZXJfdHZlZXByb207CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3Y0bDEtY29tcGF0LmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3Y0bDEtY29tcGF0LmMKaW5kZXggYjBkNGJjYi4uNzBlY2JkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby92NGwxLWNvbXBhdC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdjRsMS1jb21wYXQuYwpAQCAtMSw0ICsxLDYgQEAKIC8qCisgKiAkSWQ6IHY0bDEtY29tcGF0LmMsdiAxLjkgMjAwNS8wNi8xMiAwNDoxOToxOSBtY2hlaGFiIEV4cCAkCisgKgogICoJVmlkZW8gZm9yIExpbnV4IFR3bwogICoJQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBMYXllcgogICoKQEAgLTE1LDE0ICsxNywxMSBAQAogICoKICAqLwogCi0jaWZuZGVmIF9fS0VSTkVMX18KLSNkZWZpbmUgX19LRVJORUxfXwotI2VuZGlmCi0KICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KQEAgLTc4NywxMiArNzg2LDE1IEBACiAJCSAgICAhKHFjdHJsMi5mbGFncyAmIFY0TDJfQ1RSTF9GTEFHX0RJU0FCTEVEKSkKIAkJCWF1ZC0+c3RlcCA9IHFjdHJsMi5zdGVwOwogCQlhdWQtPm1vZGUgPSAwOworCisJCW1lbXNldCgmdHVuMiwwLHNpemVvZih0dW4yKSk7CiAJCWVyciA9IGRydihpbm9kZSwgZmlsZSwgVklESU9DX0dfVFVORVIsICZ0dW4yKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCWRwcmludGsoIlZJRElPQ0dBVURJTyAvIFZJRElPQ19HX1RVTkVSOiAlZFxuIixlcnIpOwogCQkJZXJyID0gMDsKIAkJCWJyZWFrOwogCQl9CisKIAkJaWYgKHR1bjIucnhzdWJjaGFucyAmIFY0TDJfVFVORVJfU1VCX0xBTkcyKQogCQkJYXVkLT5tb2RlID0gVklERU9fU09VTkRfTEFORzEgfCBWSURFT19TT1VORF9MQU5HMjsKIAkJZWxzZSBpZiAodHVuMi5yeHN1YmNoYW5zICYgVjRMMl9UVU5FUl9TVUJfU1RFUkVPKQo=