Re: Decreasing seams in scaled windows
Neil Hodgson <[email protected]> Thu, 28 May 2026 21:28:13 +1000
| Newsgroups | gmane.comp.lib.scintilla.devel |
|---|---|
| Message-ID | <CACWkrTi86UH6-jq6bv87-kBQVxyBo59b=W-KfrVfsQtm8tm6QA@mail.gmail.com> |
--000000000000b5c6730652df065e
Content-Type: text/plain; charset="UTF-8"
Attached is a patch that adds a ScintillaEditBase::SetScaled(bool
scaled) API that allows turning scaled mode on.
This change was difficult to make work so is probably fragile, not
minimal and may add new problems.
For Haven, I've been testing with placing the control in the "Wrap"
toggle menu item.
void MainWindow::on_actionWrap_triggered() {
Call(SCI_SETWRAPMODE, Call(SCI_GETWRAPMODE) ? SC_WRAP_NONE : SC_WRAP_WORD);
ui->blok->SetScaled(!ui->blok->Scaled());
}
Neil
--
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/d/msgid/scintilla-interest/CACWkrTi86UH6-jq6bv87-kBQVxyBo59b%3DW-KfrVfsQtm8tm6QA%40mail.gmail.com.
--000000000000b5c6730652df065e
Content-Type: text/plain; charset="US-ASCII"; name="QtScaleE.patch"
Content-Disposition: attachment; filename="QtScaleE.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mpperrkz0>
X-Attachment-Id: f_mpperrkz0
ZGlmZiAtciBjMTA1MjI5MzUyZWEgcXQvU2NpbnRpbGxhRWRpdEJhc2UvUGxhdFF0LmNwcAotLS0g
YS9xdC9TY2ludGlsbGFFZGl0QmFzZS9QbGF0UXQuY3BwCVN1biBNYXkgMjQgMjE6MjQ6NDggMjAy
NiArMTAwMAorKysgYi9xdC9TY2ludGlsbGFFZGl0QmFzZS9QbGF0UXQuY3BwCVRodSBNYXkgMjgg
MTk6MTc6MzIgMjAyNiArMTAwMApAQCAtMTgzLDEzICsxODMsMTQgQEAKIAogU3VyZmFjZUltcGw6
OlN1cmZhY2VJbXBsKCkgPSBkZWZhdWx0OwogCi1TdXJmYWNlSW1wbDo6U3VyZmFjZUltcGwoaW50
IHdpZHRoLCBpbnQgaGVpZ2h0LCBTdXJmYWNlTW9kZSBtb2RlXykKK1N1cmZhY2VJbXBsOjpTdXJm
YWNlSW1wbChpbnQgd2lkdGgsIGludCBoZWlnaHQsIFN1cmZhY2VNb2RlIG1vZGVfLCBxcmVhbCBz
Y2FsZV8pCiB7CiAJaWYgKHdpZHRoIDwgMSkgd2lkdGggPSAxOwogCWlmIChoZWlnaHQgPCAxKSBo
ZWlnaHQgPSAxOwogCWRldmljZU93bmVkID0gdHJ1ZTsKIAlkZXZpY2UgPSBuZXcgUVBpeG1hcCh3
aWR0aCwgaGVpZ2h0KTsKIAltb2RlID0gbW9kZV87CisJc2NhbGUgPSBzY2FsZV87CiB9CiAKIFN1
cmZhY2VJbXBsOjp+U3VyZmFjZUltcGwoKQpAQCAtMjI2LDcgKzIyNywxMiBAQAogCiBzdGQ6OnVu
aXF1ZV9wdHI8U3VyZmFjZT4gU3VyZmFjZUltcGw6OkFsbG9jYXRlUGl4TWFwKGludCB3aWR0aCwg
aW50IGhlaWdodCkKIHsKLQlyZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTdXJmYWNlSW1wbD4od2lk
dGgsIGhlaWdodCwgbW9kZSk7CisJcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U3VyZmFjZUltcGw+
KHdpZHRoLCBoZWlnaHQsIG1vZGUsIHNjYWxlKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFN1cmZh
Y2U+IFN1cmZhY2VJbXBsX0FsbG9jYXRlUGl4TWFwKGludCB3aWR0aCwgaW50IGhlaWdodCwgU3Vy
ZmFjZU1vZGUgbW9kZSwgcXJlYWwgc2NhbGUpCit7CisJcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
U3VyZmFjZUltcGw+KHdpZHRoLCBoZWlnaHQsIG1vZGUsIHNjYWxlKTsKIH0KIAogdm9pZCBTdXJm
YWNlSW1wbDo6U2V0TW9kZShTdXJmYWNlTW9kZSBtb2RlXykKQEAgLTMwOSw3ICszMTUsOCBAQAog
CiBpbnQgU3VyZmFjZUltcGw6OkRldmljZUhlaWdodEZvbnQoaW50IHBvaW50cykKIHsKLQlyZXR1
cm4gcG9pbnRzOworCWNvbnN0IHFyZWFsIHNjYWxlSGVpZ2h0ID0gc2NhbGUgPyBzY2FsZSA6IGRl
dmljZS0+ZGV2aWNlUGl4ZWxSYXRpb0YoKTsKKwlyZXR1cm4gcG9pbnRzICogc2NhbGVIZWlnaHQ7
CiB9CiAKIHZvaWQgU3VyZmFjZUltcGw6OkxpbmVEcmF3KFBvaW50IHN0YXJ0LCBQb2ludCBlbmQs
IFN0cm9rZSBzdHJva2UpCkBAIC03OTYsNiArODAzLDkgQEAKIAkJcGFpbnRlci0+c2V0UmVuZGVy
SGludChRUGFpbnRlcjo6VGV4dEFudGlhbGlhc2luZywgdHJ1ZSk7CiAKIAkJcGFpbnRlci0+c2V0
UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5nLCB0cnVlKTsKKworCQljb25zdCBxcmVh
bCBzY2FsZUZhY3RvciA9IGRldmljZS0+ZGV2aWNlUGl4ZWxSYXRpb0YoKTsKKwkJcGFpbnRlci0+
c2NhbGUoMS4wIC8gc2NhbGVGYWN0b3IsIDEuMCAvIHNjYWxlRmFjdG9yKTsKIAl9CiAKIAlyZXR1
cm4gcGFpbnRlcjsKQEAgLTg1NCw2ICs4NjQsOCBAQAogCiB2b2lkIFdpbmRvdzo6U2V0UG9zaXRp
b25SZWxhdGl2ZShQUmVjdGFuZ2xlIHJjLCBjb25zdCBXaW5kb3cgKnJlbGF0aXZlVG8pCiB7CisJ
Y29uc3QgcXJlYWwgc2NhbGUgPSB3aW5kb3cocmVsYXRpdmVUby0+R2V0SUQoKSktPmRldmljZVBp
eGVsUmF0aW9GKCk7CisJcmMgPSByYyAvIHNjYWxlOwogCVFQb2ludCBvUG9zID0gd2luZG93KHJl
bGF0aXZlVG8tPndpZCktPm1hcFRvR2xvYmFsKFFQb2ludCgwLDApKTsKIAlpbnQgb3ggPSBvUG9z
LngoKTsKIAlpbnQgb3kgPSBvUG9zLnkoKTsKQEAgLTg4NCw3ICs4OTYsOSBAQAogUFJlY3Rhbmds
ZSBXaW5kb3c6OkdldENsaWVudFBvc2l0aW9uKCkgY29uc3QKIHsKIAkvLyBUaGUgY2xpZW50IHBv
c2l0aW9uIGlzIHRoZSB3aW5kb3cgcG9zaXRpb24KLQlyZXR1cm4gR2V0UG9zaXRpb24oKTsKKwlj
b25zdCBxcmVhbCBzY2FsZSA9IHdpZCA/IHdpbmRvdyh3aWQpLT5kZXZpY2VQaXhlbFJhdGlvRigp
IDogMS4wOworCWNvbnN0IFBSZWN0YW5nbGUgcmMgPSBHZXRQb3NpdGlvbigpOworCXJldHVybiBy
YyAqIHNjYWxlOwogfQogCiB2b2lkIFdpbmRvdzo6U2hvdyhib29sIHNob3cpCkBAIC05MDEsOCAr
OTE1LDE1IEBACiAKIHZvaWQgV2luZG93OjpJbnZhbGlkYXRlUmVjdGFuZ2xlKFBSZWN0YW5nbGUg
cmMpCiB7Ci0JaWYgKHdpZCkKLQkJd2luZG93KHdpZCktPnVwZGF0ZShRUmVjdEZyb21QUmVjdChy
YykpOworCWlmICh3aWQpIHsKKwkJLy9jb25zdCBxcmVhbCBzY2FsZSA9IHdpbmRvdyh3aWQpLT5k
ZXZpY2VQaXhlbFJhdGlvRigpOworCQkvLyBBdm9pZHMgYWxpYXNpbmcgbGVhdmluZyBhIHBhcnRp
YWwgYm90dG9tIHBpeGVsCisJCS8vcmMgPSByYyAvIHNjYWxlOworCQkvL3JjLnRvcCAtPSAyMDsK
KwkJLy9yYy5ib3R0b20gKz0gMjsKKwkJLy93aW5kb3cod2lkKS0+dXBkYXRlKFFSZWN0RnJvbVBS
ZWN0KHJjKSk7CisJCXdpbmRvdyh3aWQpLT51cGRhdGUoKTsKKwl9CiB9CiAKIHZvaWQgV2luZG93
OjpTZXRDdXJzb3IoQ3Vyc29yIGN1cnMpCkBAIC05OTksNiArMTAyMCw3IEBACiAJaW50IHZpc2li
bGVSb3dzezV9OwogCVFNYXA8aW50LFFQaXhtYXA+IGltYWdlczsKIAlmbG9hdCBpbWFnZVNjYWxl
ezEuMH07CisJUVdpZGdldCAqb3duZXIgPSBudWxscHRyOwogfTsKIExpc3RCb3hJbXBsOjpMaXN0
Qm94SW1wbCgpIG5vZXhjZXB0ID0gZGVmYXVsdDsKIApAQCAtMTAxMiw2ICsxMDM0LDcgQEAKIAl1
bmljb2RlTW9kZSA9IHVuaWNvZGVNb2RlXzsKIAogCVFXaWRnZXQgKnFwYXJlbnQgPSBzdGF0aWNf
Y2FzdDxRV2lkZ2V0ICo+KHBhcmVudC5HZXRJRCgpKTsKKwlvd25lciA9IHFwYXJlbnQ7CiAJTGlz
dFdpZGdldCAqbGlzdCA9IG5ldyBMaXN0V2lkZ2V0KHFwYXJlbnQpOwogCiAjaWYgZGVmaW5lZChR
X09TX1dJTikKQEAgLTEwNTQsNyArMTA3NywxMSBAQAogCUxpc3RXaWRnZXQgKmxpc3QgPSBHZXRX
aWRnZXQoKTsKIAljb25zdCBGb250QW5kQ2hhcmFjdGVyU2V0ICpwZmFjcyA9IEFzRm9udEFuZENo
YXJhY3RlclNldChmb250KTsKIAlpZiAocGZhY3MgJiYgcGZhY3MtPnBmb250KSB7Ci0JCWxpc3Qt
PnNldEZvbnQoKihwZmFjcy0+cGZvbnQpKTsKKwkJUUZvbnQgZm9udERlU2NhbGVkID0gKihwZmFj
cy0+cGZvbnQpOworCQljb25zdCBxcmVhbCBzY2FsZSA9IHdpbmRvdyhvd25lciktPmRldmljZVBp
eGVsUmF0aW9GKCk7CisJCXFyZWFsIHBvaW50U2l6ZSA9IGZvbnREZVNjYWxlZC5wb2ludFNpemVG
KCkgLyBzY2FsZTsKKwkJZm9udERlU2NhbGVkLnNldFBvaW50U2l6ZUYocG9pbnRTaXplKTsKKwkJ
bGlzdC0+c2V0Rm9udChmb250RGVTY2FsZWQpOwogCX0KIH0KIHZvaWQgTGlzdEJveEltcGw6OlNl
dEF2ZXJhZ2VDaGFyV2lkdGgoaW50IC8qd2lkdGgqLykge30KQEAgLTEwODQsNyArMTExMSw4IEBA
CiAJCXdpZHRoICs9IHN0eWxlLT5waXhlbE1ldHJpYyhRU3R5bGU6OlBNX1Njcm9sbEJhckV4dGVu
dCk7CiAJfQogCi0JcmV0dXJuIFBSZWN0YW5nbGUoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisJY29u
c3QgcXJlYWwgc2NhbGUgPSB3aW5kb3cod2lkKS0+ZGV2aWNlUGl4ZWxSYXRpb0YoKTsKKwlyZXR1
cm4gUFJlY3RhbmdsZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KSAqIHNjYWxlOwogfQogaW50IExpc3RC
b3hJbXBsOjpDYXJldEZyb21FZGdlKCkKIHsKZGlmZiAtciBjMTA1MjI5MzUyZWEgcXQvU2NpbnRp
bGxhRWRpdEJhc2UvUGxhdFF0LmgKLS0tIGEvcXQvU2NpbnRpbGxhRWRpdEJhc2UvUGxhdFF0LmgJ
U3VuIE1heSAyNCAyMToyNDo0OCAyMDI2ICsxMDAwCisrKyBiL3F0L1NjaW50aWxsYUVkaXRCYXNl
L1BsYXRRdC5oCVRodSBNYXkgMjggMTk6MTc6MzIgMjAyNiArMTAwMApAQCAtODEsNiArODEsNyBA
QAogCWJvb2wgZGV2aWNlT3duZWQgPSBmYWxzZTsKIAlib29sIHBhaW50ZXJPd25lZCA9IGZhbHNl
OwogCVN1cmZhY2VNb2RlIG1vZGU7CisJcXJlYWwgc2NhbGUgPSAwLjA7CiAJY29uc3QgY2hhciAq
Y29kZWNOYW1lID0gbnVsbHB0cjsKIAlRVGV4dENvZGVjICpjb2RlYyA9IG51bGxwdHI7CiAKQEAg
LTg4LDcgKzg5LDcgQEAKIAogcHVibGljOgogCVN1cmZhY2VJbXBsKCk7Ci0JU3VyZmFjZUltcGwo
aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBTdXJmYWNlTW9kZSBtb2RlXyk7CisJU3VyZmFjZUltcGwo
aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBTdXJmYWNlTW9kZSBtb2RlXywgcXJlYWwgc2NhbGVfKTsK
IAl2aXJ0dWFsIH5TdXJmYWNlSW1wbCgpIG92ZXJyaWRlOwogCiAJdm9pZCBJbml0KFdpbmRvd0lE
IHdpZCkgb3ZlcnJpZGU7CkBAIC0xNjQsNiArMTY1LDggQEAKIAlRUGFpbnRlciAqR2V0UGFpbnRl
cigpOwogfTsKIAorc3RkOjp1bmlxdWVfcHRyPFN1cmZhY2U+IFN1cmZhY2VJbXBsX0FsbG9jYXRl
UGl4TWFwKGludCB3aWR0aCwgaW50IGhlaWdodCwgU3VyZmFjZU1vZGUgbW9kZSwgcXJlYWwgc2Nh
bGUpOworCiB9CiAKICNlbmRpZgpkaWZmIC1yIGMxMDUyMjkzNTJlYSBxdC9TY2ludGlsbGFFZGl0
QmFzZS9TY2ludGlsbGFFZGl0QmFzZS5jcHAKLS0tIGEvcXQvU2NpbnRpbGxhRWRpdEJhc2UvU2Np
bnRpbGxhRWRpdEJhc2UuY3BwCVN1biBNYXkgMjQgMjE6MjQ6NDggMjAyNiArMTAwMAorKysgYi9x
dC9TY2ludGlsbGFFZGl0QmFzZS9TY2ludGlsbGFFZGl0QmFzZS5jcHAJVGh1IE1heSAyOCAxOTox
NzozMiAyMDI2ICsxMDAwCkBAIC0xMDMsNiArMTAzLDE1IEBACiAJcmV0dXJuIHNxdC0+V25kUHJv
YyhzdGF0aWNfY2FzdDxNZXNzYWdlPihpTWVzc2FnZSksIHdQYXJhbSwgcmVpbnRlcnByZXRfY2Fz
dDxzcHRyX3Q+KHMpKTsKIH0KIAorYm9vbCBTY2ludGlsbGFFZGl0QmFzZTo6U2NhbGVkKCkgY29u
c3QgeworCXJldHVybiBzcXQtPnNjYWxlZDsKK30KKwordm9pZCBTY2ludGlsbGFFZGl0QmFzZTo6
U2V0U2NhbGVkKGJvb2wgc2NhbGVkKSB7CisJc3F0LT5zY2FsZWQgPSBzY2FsZWQ7CisJc3F0LT5J
bnZhbGlkYXRlU3R5bGVSZWRyYXcoKTsKK30KKwogdm9pZCBTY2ludGlsbGFFZGl0QmFzZTo6c2Ny
b2xsSG9yaXpvbnRhbChpbnQgdmFsdWUpCiB7CiAJc3F0LT5Ib3Jpem9udGFsU2Nyb2xsVG8odmFs
dWUpOwpAQCAtMTI3LDYgKzEzNiwxMiBAQAogCX0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBR
RXZlbnQ6OkhpZGUpIHsKIAkJc2V0TW91c2VUcmFja2luZyhmYWxzZSk7CiAJCXJlc3VsdCA9IFFB
YnN0cmFjdFNjcm9sbEFyZWE6OmV2ZW50KGV2ZW50KTsKKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZF
UlNJT05fQ0hFQ0soNiwgNiwgMCkKKwl9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gUUV2ZW50
OjpEZXZpY2VQaXhlbFJhdGlvQ2hhbmdlKSB7CisJCS8vIFJlc2V0IGNhY2hlZCBkYXRhCisJCXNx
dC0+SW52YWxpZGF0ZVN0eWxlUmVkcmF3KCk7CisJCXJlc3VsdCA9IFFBYnN0cmFjdFNjcm9sbEFy
ZWE6OmV2ZW50KGV2ZW50KTsKKyNlbmRpZgogCX0gZWxzZSB7CiAJCXJlc3VsdCA9IFFBYnN0cmFj
dFNjcm9sbEFyZWE6OmV2ZW50KGV2ZW50KTsKIAl9CkBAIC0zMTgsNyArMzMzLDcgQEAKIAogdm9p
ZCBTY2ludGlsbGFFZGl0QmFzZTo6bW91c2VQcmVzc0V2ZW50KFFNb3VzZUV2ZW50ICpldmVudCkK
IHsKLQljb25zdCBQb2ludCBwb3MgPSBQb2ludEZyb21RUG9pbnQoZXZlbnQtPnBvcygpKTsKKwlj
b25zdCBQb2ludCBwb3MgPSBQb2ludEZyb21RUG9pbnQoZXZlbnQtPnBvcygpKSAqIGRldmljZVBp
eGVsUmF0aW9GKCk7CiAKIAllbWl0IGJ1dHRvblByZXNzZWQoZXZlbnQpOwogCkBAIC0zNDcsNyAr
MzYyLDggQEAKIAogdm9pZCBTY2ludGlsbGFFZGl0QmFzZTo6bW91c2VSZWxlYXNlRXZlbnQoUU1v
dXNlRXZlbnQgKmV2ZW50KQogewotCWNvbnN0IFFQb2ludCBwb2ludCA9IGV2ZW50LT5wb3MoKTsK
Kwljb25zdCBRUG9pbnQgcG9pbnQgPSBldmVudC0+cG9zKCkgKiBkZXZpY2VQaXhlbFJhdGlvRigp
OworCiAJaWYgKGV2ZW50LT5idXR0b24oKSA9PSBRdDo6TGVmdEJ1dHRvbikKIAkJc3F0LT5CdXR0
b25VcFdpdGhNb2RpZmllcnMoUG9pbnRGcm9tUVBvaW50KHBvaW50KSwgVGltZU9mRXZlbnQodGlt
ZSksIE1vZGlmaWVyc09mS2V5Ym9hcmQoKSk7CiAKQEAgLTM2Nyw3ICszODMsNyBAQAogCiB2b2lk
IFNjaW50aWxsYUVkaXRCYXNlOjptb3VzZU1vdmVFdmVudChRTW91c2VFdmVudCAqZXZlbnQpCiB7
Ci0JY29uc3QgUG9pbnQgcG9zID0gUG9pbnRGcm9tUVBvaW50KGV2ZW50LT5wb3MoKSk7CisJY29u
c3QgUG9pbnQgcG9zID0gUG9pbnRGcm9tUVBvaW50KGV2ZW50LT5wb3MoKSkgKiBkZXZpY2VQaXhl
bFJhdGlvRigpOwogCiAJY29uc3QgYm9vbCBzaGlmdCA9IFFBcHBsaWNhdGlvbjo6a2V5Ym9hcmRN
b2RpZmllcnMoKSAmIFF0OjpTaGlmdE1vZGlmaWVyOwogCWNvbnN0IGJvb2wgY3RybCAgPSBRQXBw
bGljYXRpb246OmtleWJvYXJkTW9kaWZpZXJzKCkgJiBRdDo6Q29udHJvbE1vZGlmaWVyOwpkaWZm
IC1yIGMxMDUyMjkzNTJlYSBxdC9TY2ludGlsbGFFZGl0QmFzZS9TY2ludGlsbGFFZGl0QmFzZS5o
Ci0tLSBhL3F0L1NjaW50aWxsYUVkaXRCYXNlL1NjaW50aWxsYUVkaXRCYXNlLmgJU3VuIE1heSAy
NCAyMToyNDo0OCAyMDI2ICsxMDAwCisrKyBiL3F0L1NjaW50aWxsYUVkaXRCYXNlL1NjaW50aWxs
YUVkaXRCYXNlLmgJVGh1IE1heSAyOCAxOToxNzozMiAyMDI2ICsxMDAwCkBAIC03MSw2ICs3MSw5
IEBACiAJCXVwdHJfdCB3UGFyYW0gPSAwLAogCQljb25zdCBjaGFyICpzID0gMCkgY29uc3Q7CiAK
KyAgICBib29sIFNjYWxlZCgpIGNvbnN0OworICAgIHZvaWQgU2V0U2NhbGVkKGJvb2wgc2NhbGVk
KTsKKwogcHVibGljIHNsb3RzOgogCS8vIFNjcm9sbCBldmVudHMgY29taW5nIGZyb20gR1VJIHRv
IGJlIHNlbnQgdG8gU2NpbnRpbGxhLgogCXZvaWQgc2Nyb2xsSG9yaXpvbnRhbChpbnQgdmFsdWUp
OwpkaWZmIC1yIGMxMDUyMjkzNTJlYSBxdC9TY2ludGlsbGFFZGl0QmFzZS9TY2ludGlsbGFRdC5j
cHAKLS0tIGEvcXQvU2NpbnRpbGxhRWRpdEJhc2UvU2NpbnRpbGxhUXQuY3BwCVN1biBNYXkgMjQg
MjE6MjQ6NDggMjAyNiArMTAwMAorKysgYi9xdC9TY2ludGlsbGFFZGl0QmFzZS9TY2ludGlsbGFR
dC5jcHAJVGh1IE1heSAyOCAxOToxNzozMiAyMDI2ICsxMDAwCkBAIC04MDksMTYgKzgwOSwyOSBA
QAogCiB2b2lkIFNjaW50aWxsYVF0OjpQYXJ0aWFsUGFpbnQoY29uc3QgUFJlY3RhbmdsZSAmcmVj
dCkKIHsKLQlyY1BhaW50ID0gcmVjdDsKKwlRV2lkZ2V0ICp3aWRnZXQgPSBzdGF0aWNfY2FzdDxR
V2lkZ2V0ICo+KHdNYWluLkdldElEKCkpOworCWNvbnN0IHFyZWFsIHNjYWxlID0gc2NhbGVkID8g
d2lkZ2V0LT5kZXZpY2VQaXhlbFJhdGlvRigpIDogMS4wOworCisJcmNQYWludCA9IHJlY3QgKiB3
aWRnZXQtPmRldmljZVBpeGVsUmF0aW9GKCk7CiAJcGFpbnRTdGF0ZSA9IFBhaW50U3RhdGU6OnBh
aW50aW5nOwogCVBSZWN0YW5nbGUgcmNDbGllbnQgPSBHZXRDbGllbnRSZWN0YW5nbGUoKTsKIAlw
YWludGluZ0FsbFRleHQgPSByY1BhaW50LkNvbnRhaW5zKHJjQ2xpZW50KTsKIAogCUF1dG9TdXJm
YWNlIHN1cmZhY2VQYWludCh0aGlzKTsKLQlQYWludChzdXJmYWNlUGFpbnQsIHJjUGFpbnQpOwor
CWlmICghc2NhbGVkKSB7CisJCVBhaW50KHN1cmZhY2VQYWludCwgcmNQYWludCk7CisJfSBlbHNl
IHsKKwkJLy8gQ3JlYXRlIEJpdG1hcCBvZiBleGFjdGx5IHdpbmRvdyBzaXplIHRoZW4gYmxpdCBh
ZnRlciBQYWludCBjYWxsCisJCWNvbnN0IGludCB3ID0gc3RhdGljX2Nhc3Q8aW50PihyZWN0Lldp
ZHRoKCkgKiBzY2FsZSk7CisJCWNvbnN0IGludCBoID0gc3RhdGljX2Nhc3Q8aW50PihyZWN0Lkhl
aWdodCgpICogc2NhbGUpOworCQlzdGQ6OnVuaXF1ZV9wdHI8U3VyZmFjZT4gc3VyZlBpeCA9IFN1
cmZhY2VJbXBsX0FsbG9jYXRlUGl4TWFwKHcsIGgsIEN1cnJlbnRTdXJmYWNlTW9kZSgpLCBzY2Fs
ZSk7CisJCVBSZWN0YW5nbGUgcmNTY2FsZWQgPSBQUmVjdGFuZ2xlOjpGcm9tSW50cygwLDAsdyxo
KTsKKwkJUGFpbnQoc3VyZlBpeC5nZXQoKSwgcmNTY2FsZWQpOworCQlzdXJmYWNlUGFpbnQtPkNv
cHkocmNTY2FsZWQsIFBvaW50KDAsMCksICpzdXJmUGl4KTsKKwl9CiAJc3VyZmFjZVBhaW50LT5S
ZWxlYXNlKCk7CiAKLQlpZiAocGFpbnRTdGF0ZSA9PSBQYWludFN0YXRlOjphYmFuZG9uZWQpIHsK
KwlpZiAoKHBhaW50U3RhdGUgPT0gUGFpbnRTdGF0ZTo6YWJhbmRvbmVkKSAmJiAhc2NhbGVkKSB7
CiAJCS8vIEZJWE1FOiBGYWlsdXJlIHRvIHBhaW50IHRoZSByZXF1ZXN0ZWQgcmVjdGFuZ2xlIGlu
IGVhY2gKIAkJLy8gcGFpbnQgZXZlbnQgY2F1c2VzIGZsaWNrZXIgb24gc29tZSBwbGF0Zm9ybXMg
KE1hYz8pCiAJCS8vIFBhaW50IHJlY3QgaW1tZWRpYXRlbHkuCmRpZmYgLXIgYzEwNTIyOTM1MmVh
IHF0L1NjaW50aWxsYUVkaXRCYXNlL1NjaW50aWxsYVF0LmgKLS0tIGEvcXQvU2NpbnRpbGxhRWRp
dEJhc2UvU2NpbnRpbGxhUXQuaAlTdW4gTWF5IDI0IDIxOjI0OjQ4IDIwMjYgKzEwMDAKKysrIGIv
cXQvU2NpbnRpbGxhRWRpdEJhc2UvU2NpbnRpbGxhUXQuaAlUaHUgTWF5IDI4IDE5OjE3OjMyIDIw
MjYgKzEwMDAKQEAgLTE3OCw2ICsxNzgsOCBAQAogCWJvb2wgZHJhZ1dhc0Ryb3BwZWQ7CiAJaW50
IHJlY3Rhbmd1bGFyU2VsZWN0aW9uTW9kaWZpZXI7CiAKKwlib29sIHNjYWxlZCA9IGZhbHNlOwor
CiAJZnJpZW5kIGNsYXNzIDo6U2NpbnRpbGxhRWRpdEJhc2U7CiB9OwogCmRpZmYgLXIgYzEwNTIy
OTM1MmVhIHNyYy9HZW9tZXRyeS5oCi0tLSBhL3NyYy9HZW9tZXRyeS5oCVN1biBNYXkgMjQgMjE6
MjQ6NDggMjAyNiArMTAwMAorKysgYi9zcmMvR2VvbWV0cnkuaAlUaHUgTWF5IDI4IDE5OjE3OjMy
IDIwMjYgKzEwMDAKQEAgLTQ1LDYgKzQ1LDEwIEBACiAJCXJldHVybiBQb2ludCh4IC0gb3RoZXIu
eCwgeSAtIG90aGVyLnkpOwogCX0KIAorCWNvbnN0ZXhwciBQb2ludCBvcGVyYXRvciooWFlQT1NJ
VElPTiBtdWx0aXBsaWVyKSBjb25zdCBub2V4Y2VwdCB7CisJCXJldHVybiBQb2ludCh4ICogbXVs
dGlwbGllciwgeSAqIG11bHRpcGxpZXIpOworCX0KKwogCS8vIE90aGVyIGF1dG9tYXRpY2FsbHkg
ZGVmaW5lZCBtZXRob2RzIChhc3NpZ25tZW50LCBjb3B5IGNvbnN0cnVjdG9yLCBkZXN0cnVjdG9y
KSBhcmUgZmluZQogfTsKIApAQCAtMTAxLDYgKzEwNSwxNSBAQAogCQlyZXR1cm4gKHJjLmxlZnQg
PT0gbGVmdCkgJiYgKHJjLnJpZ2h0ID09IHJpZ2h0KSAmJgogCQkJKHJjLnRvcCA9PSB0b3ApICYm
IChyYy5ib3R0b20gPT0gYm90dG9tKTsKIAl9CisJCisJY29uc3RleHByIFBSZWN0YW5nbGUgb3Bl
cmF0b3IqKFhZUE9TSVRJT04gbXVsdGlwbGllcikgY29uc3Qgbm9leGNlcHQgeworCQlyZXR1cm4g
UFJlY3RhbmdsZShsZWZ0ICogbXVsdGlwbGllciwgdG9wICogbXVsdGlwbGllciwgcmlnaHQgKiBt
dWx0aXBsaWVyLCBib3R0b20gKiBtdWx0aXBsaWVyKTsKKwl9CisKKwljb25zdGV4cHIgUFJlY3Rh
bmdsZSBvcGVyYXRvci8oWFlQT1NJVElPTiBkaXZpc29yKSBjb25zdCBub2V4Y2VwdCB7CisJCXJl
dHVybiBQUmVjdGFuZ2xlKGxlZnQgLyBkaXZpc29yLCB0b3AgLyBkaXZpc29yLCByaWdodCAvIGRp
dmlzb3IsIGJvdHRvbSAvIGRpdmlzb3IpOworCX0KKwogCWNvbnN0ZXhwciBib29sIENvbnRhaW5z
KFBvaW50IHB0KSBjb25zdCBub2V4Y2VwdCB7CiAJCXJldHVybiAocHQueCA+PSBsZWZ0KSAmJiAo
cHQueCA8PSByaWdodCkgJiYKIAkJCShwdC55ID49IHRvcCkgJiYgKHB0LnkgPD0gYm90dG9tKTsK
--000000000000b5c6730652df065e--