[education/gcompris] /: core, initial idea of sequence

Johnny Jazeix <[email protected]> Wed, 8 Apr 2026 09:39:09 +0000 (UTC)
Newsgroups gmane.comp.kde.cvs,gmane.comp.kde.doc
Message-ID <[email protected]>
R2l0IGNvbW1pdCAyYmZjOGY2OTBjN2I1ZTFjYTdhMTE5ZTQ5MGRhZGMxMGM3OTQyOTY5IGJ5IEpv
aG5ueSBKYXplaXguCkNvbW1pdHRlZCBvbiAwNi8wNC8yMDI2IGF0IDE2OjE3LgpQdXNoZWQgYnkg
amphemVpeCBpbnRvIGJyYW5jaCAnbWFzdGVyJy4KCmNvcmUsIGluaXRpYWwgaWRlYSBvZiBzZXF1
ZW5jZQoKTSAgKzQgICAgLTAgICAgZG9jcy9kb2Nib29rL2luZGV4LmRvY2Jvb2sKTSAgKzIwICAg
LTAgICAgc3JjL2FjdGl2aXRpZXMvbWVudS9NZW51LnFtbApNICArMzYgICAtMiAgICBzcmMvY29y
ZS9BY3Rpdml0eUJhc2UucW1sCk0gICs0ICAgIC0wICAgIHNyYy9jb3JlL0FjdGl2aXR5SW5mby5j
cHAKTSAgKzUgICAgLTAgICAgc3JjL2NvcmUvQWN0aXZpdHlJbmZvLmgKTSAgKzMzICAgLTAgICAg
c3JjL2NvcmUvQWN0aXZpdHlJbmZvVHJlZS5jcHAKTSAgKzE0ICAgLTAgICAgc3JjL2NvcmUvQWN0
aXZpdHlJbmZvVHJlZS5oCk0gICsxMiAgIC01ICAgIHNyYy9jb3JlL0Jhci5xbWwKTSAgKzIgICAg
LTAgICAgc3JjL2NvcmUvQ01ha2VMaXN0cy50eHQKTSAgKzIgICAgLTEgICAgc3JjL2NvcmUvQ2hh
bmdlTG9nLnFtbApBICArMzQgICAtMCAgICBzcmMvY29yZS9TZXF1ZW5jZS5jcHAgICAgIFtMaWNl
bnNlOiBHUEwodjMuMCspXQpBICArNTkgICAtMCAgICBzcmMvY29yZS9TZXF1ZW5jZS5oICAgICBb
TGljZW5zZTogR1BMKHYzLjArKV0KTSAgKzE1ICAgLTAgICAgc3JjL2NvcmUvbWFpbi5jcHAKTSAg
KzMgICAgLTAgICAgc3JjL2NvcmUvbWFpbi5xbWwKCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvZWR1
Y2F0aW9uL2djb21wcmlzLy0vY29tbWl0LzJiZmM4ZjY5MGM3YjVlMWNhN2ExMTllNDkwZGFkYzEw
Yzc5NDI5NjkKCmRpZmYgLS1naXQgYS9kb2NzL2RvY2Jvb2svaW5kZXguZG9jYm9vayBiL2RvY3Mv
ZG9jYm9vay9pbmRleC5kb2Nib29rCmluZGV4IDVmMDg3ZjZmYS4uOTU3MDhhZDUzIDEwMDY0NAot
LS0gYS9kb2NzL2RvY2Jvb2svaW5kZXguZG9jYm9vaworKysgYi9kb2NzL2RvY2Jvb2svaW5kZXgu
ZG9jYm9vawpAQCAtMzQwLDYgKzM0MCwxMCBAQCBvciBtYWtlIGl0IHNob3cgcmVhbCBjYXIgaW1h
Z2VzIGluc3RlYWQgb2YgZmlsbGVkIHJlY3RhbmdsZXMgKHRyYWZmaWMpLjwvcGFyYT4KIDxlbnRy
eT4tLWxvY2FsZT1sb2NhbGU8L2VudHJ5PgogPGVudHJ5PlJ1biAmZ2NvbXByaXM7IHdpdGggdGhl
IHNwZWNpZmllZCBsb2NhbGUuPC9lbnRyeT4KIDwvcm93PgorPHJvdz4KKzxlbnRyeT4tLXdpdGgt
c2VxdWVuY2U9c2VxdWVuY2UuanNvbjwvZW50cnk+Cis8ZW50cnk+UnVuICZnY29tcHJpczsgd2l0
aCB0aGUgc3BlY2lmaWMgc2VxdWVuY2UuIEEgc2VxdWVuY2UgaXMgYSBsaXN0IG9mIGFjdGl2aXRp
ZXMgd2l0aCBzcGVjaWZpYyBkYXRhc2V0cywgZm9yY2luZyBHQ29tcHJpcyB0byBydW4gdGhlbSBp
biB0aGUgc3BlY2lmaWVkIG9yZGVyLjwvZW50cnk+Cis8L3Jvdz4KIDwvdGJvZHk+CiA8L3Rncm91
cD4KIDwvaW5mb3JtYWx0YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9hY3Rpdml0aWVzL21lbnUvTWVu
dS5xbWwgYi9zcmMvYWN0aXZpdGllcy9tZW51L01lbnUucW1sCmluZGV4IDAxMTZhOWVkNi4uZTA3
ODU2Yzg1IDEwMDY0NAotLS0gYS9zcmMvYWN0aXZpdGllcy9tZW51L01lbnUucW1sCisrKyBiL3Ny
Yy9hY3Rpdml0aWVzL21lbnUvTWVudS5xbWwKQEAgLTE2OCw2ICsxNjgsOCBAQCBBY3Rpdml0eUJh
c2UgewogCiAgICAgc2lnbmFsIHN0YXJ0QWN0aXZpdHkoc3RyaW5nIGFjdGl2aXR5TmFtZSwgaW50
IGxldmVsKQogCisgICAgc2lnbmFsIHN0YXJ0TmV4dEFjdGl2aXR5SW5TZXF1ZW5jZQorCiAgICAg
cGFnZUNvbXBvbmVudDogSW1hZ2UgewogICAgICAgICBpZDogYWN0aXZpdHlCYWNrZ3JvdW5kCiAg
ICAgICAgIHNvdXJjZTogYWN0aXZpdHkudXJsICsgImJhY2tncm91bmQuc3ZnIgpAQCAtNzQ0LDYg
Kzc0Niw3IEBAIEFjdGl2aXR5QmFzZSB7CiAKICAgICAgICAgICAgICAgICBmdW5jdGlvbiBvblN0
YXJ0QWN0aXZpdHkoYWN0aXZpdHlOYW1lOiBzdHJpbmcsIGxldmVsOiBpbnQpIHsKICAgICAgICAg
ICAgICAgICAgICAgQWN0aXZpdHlJbmZvVHJlZS5zZXRDdXJyZW50QWN0aXZpdHlGcm9tTmFtZShh
Y3Rpdml0eU5hbWUpCisgICAgICAgICAgICAgICAgICAgIHByaW50KGFjdGl2aXR5TmFtZSwgIEFj
dGl2aXR5SW5mb1RyZWUuY3VycmVudEFjdGl2aXR5Lm5hbWUpCiAgICAgICAgICAgICAgICAgICAg
IHZhciBjdXJyZW50TGV2ZWxzID0gQWN0aXZpdHlJbmZvVHJlZS5jdXJyZW50QWN0aXZpdHkuY3Vy
cmVudExldmVscwogICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eUxvYWRlci5zZXRTb3VyY2Uo
InFyYzovZ2NvbXByaXMvc3JjL2FjdGl2aXRpZXMvIiArIEFjdGl2aXR5SW5mb1RyZWUuY3VycmVu
dEFjdGl2aXR5Lm5hbWUsCiAgICAgICAgICAgICAgICAgICAgIHsKQEAgLTc1NSw2ICs3NTgsMjMg
QEAgQWN0aXZpdHlCYXNlIHsKICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGFjdGl2aXR5TG9hZGVyLnN0YXR1cyA9PSBMb2FkZXIuUmVhZHkpIGxvYWRBY3Rp
dml0eSgpCiAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gb25T
dGFydE5leHRBY3Rpdml0eUluU2VxdWVuY2UoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZp
cnN0IGdvIGJhY2sgdG8gdGhlIG1lbnUKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUocGFnZVZp
ZXcuZGVwdGggPiAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBob21lKCkKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwcmludCgibmV4dCBhY3Rpdml0eSBp
biBzZXF1ZW5jZSEiKQorICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgc3RhcnQgYXQgbGV2
ZWwgMCwgd2Ugc2hvdWxkIGxvYWQgZGF0YXNldCBpbiB0aGUgb3JkZXIgb2YgdGhlIHNlcXVlbmNl
IQorICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dEFjdGl2aXR5ID0gQWN0aXZpdHlJbmZvVHJl
ZS5uZXh0QWN0aXZpdHlJblNlcXVlbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmKG5leHRB
Y3Rpdml0eSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHkuc3RhcnRBY3Rpdml0
eShuZXh0QWN0aXZpdHksIDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoImVuZCBvZiBzZXF1
ZW5jZSEiKQorICAgICAgICAgICAgICAgICAgICAgICAgQWN0aXZpdHlJbmZvVHJlZS5yZXNldEFm
dGVyU2VxdWVuY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQ29ubmVjdGlvbnMgewpkaWZmIC0tZ2l0IGEv
c3JjL2NvcmUvQWN0aXZpdHlCYXNlLnFtbCBiL3NyYy9jb3JlL0FjdGl2aXR5QmFzZS5xbWwKaW5k
ZXggMzQyZjIxOGQwLi4xOTJiOGM3NWYgMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlL0FjdGl2aXR5QmFz
ZS5xbWwKKysrIGIvc3JjL2NvcmUvQWN0aXZpdHlCYXNlLnFtbApAQCAtMjA5LDE0ICsyMDksNDgg
QEAgSXRlbSB7CiAgICAgfQogCiAgICAgb25CYWNrOiAodG8pID0+IG1lbnUgPyBtZW51LmJhY2so
dG8pIDogIiIKLSAgICBvbkhvbWU6IG1lbnUgPyBtZW51LmhvbWUoKSA6ICIiCisgICAgb25Ib21l
OiB7CisgICAgICAgIC8vIGlmIHdlIGFyZSBpbiBhIHNlcXVlbmNlIGFuZCBpbiBhbiBhY3Rpdml0
eSAobm90IGluc2lkZSBhIGRpYWxvZykKKyAgICAgICAgLy8gYW5kIG5vdCBpbiB0aGUgbWVudSAo
dGhlIG1lbnUgYWN0aXZpdHkgaXMgdGhlIG9ubHkgb25lIHdoZXJlICdtZW51JworICAgICAgICAv
LyBpcyB1bmRlZmluZWQsIHdlIGRpc3BsYXkgdGhlIGRpYWxvZyB0byBjb25maXJtIGxlYXZpbmcg
dGhlIHNlcXVlbmNlCisgICAgICAgIGlmKEFjdGl2aXR5SW5mb1RyZWUuaXNJblNlcXVlbmNlICYm
IHBhZ2VWaWV3LmRlcHRoID09PSAyICYmIG1lbnUpIHsKKyAgICAgICAgICAgIENvcmUuc2hvd01l
c3NhZ2VEaWFsb2coYWN0aXZpdHkuaXRlbSwKKyAgICAgICAgICAgICAgICBxc1RyKCJZb3UgYXJl
IGN1cnJlbnRseSBpbiBhIHNlcXVlbmNlLCBnb2luZyBiYWNrIHRvIHRoZSBtZW51IHdpbGwgY2Fu
Y2VsIGl0LCBkbyB5b3UgY29uZmlybT8iKSwKKyAgICAgICAgICAgICAgICBxc1RyKCJZZXMiKSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHllcyAtPiBsZWF2ZSBzZXF1ZW5j
ZSBhbmQgZ28gYmFjayB0byBtZW51CisgICAgICAgICAgICAgICAgICAgIEFjdGl2aXR5SW5mb1Ry
ZWUucmVzZXRBZnRlclNlcXVlbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIG1lbnUuaG9tZSgp
OworICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgcXNUcigiTm8iKSwgbnVsbCwK
KyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgcGFnZVZpZXcuZm9jdXMgPSB0cnVlIH0KKyAg
ICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiht
ZW51KSBtZW51LmhvbWUoKQorICAgICAgICB9CisgICAgfQogICAgIG9uRGlzcGxheURpYWxvZzog
KGRpYWxvZykgPT4gbWVudSA/IG1lbnUuZGlzcGxheURpYWxvZyhkaWFsb2cpIDogIiIKICAgICBv
bkRpc3BsYXlEaWFsb2dzOiAoZGlhbG9ncykgPT4gbWVudSA/IG1lbnUuZGlzcGxheURpYWxvZ3Mo
ZGlhbG9ncykgOiAiIgogCiAgICAgc2lnbmFsIGFjdGl2aXR5TmV4dExldmVsCiAgICAgc2lnbmFs
IG5leHRMZXZlbAorCiAgICAgb25OZXh0TGV2ZWw6IHsKLSAgICAgICAgYWN0aXZpdHlOZXh0TGV2
ZWwoKTsKKyAgICAgICAgaWYoQWN0aXZpdHlJbmZvVHJlZS5pc0luU2VxdWVuY2UpIHsKKyAgICAg
ICAgICAgIHByaW50KGFjdGl2aXR5SW5mby5uYW1lLCAiaW4gc2VxdWVuY2UiKTsKKyAgICAgICAg
ICAgIGlmKGN1cnJlbnRMZXZlbCsxID49IG51bWJlck9mTGV2ZWwpIHsKKyAgICAgICAgICAgICAg
ICBtZW51LnN0YXJ0TmV4dEFjdGl2aXR5SW5TZXF1ZW5jZSgpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYWN0aXZpdHlOZXh0TGV2ZWwoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNoZWNrIGlmIGxhc3QgbGV2ZWwgb2Ygc2VxdWVu
Y2UKKyAgICAgICAgICAgIC8vIGlmIHllcywgbWVudS5sb2FkTmV4dCgpCisgICAgICAgICAgICAv
LyBpZiBubywgZ28gdG8gbmV4dCBsZXZlbC4gTWF5YmUgb25seSBsb2FkIHRoZSBkYXRhc2V0cyBp
biB0aGUgc2VxdWVuY2UsIGFuZCBpZ25vcmUgdGhlIG90aGVyLiBUbyBrbm93IGlmIHdlIGFyZSB0
aGUgbGFzdCBvbmUsIGNoZWNrIHRoZSBuZXh0IGxldmVsIG51bWJlciBhbmQgaWYgMCwgdGhlbiBj
aGFuZ2UgYWN0aXZpdHkuIFdlIG1heSBuZWVkIHRvIG1vdmUgdGhlIG51bWJlciBvZiBsZXZlbHMg
aW4gdGhlIEFjdGl2aXR5QmFzZSBpbnN0ZWFkIG9mIGpzCisgICAgICAgIH0KKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICBhY3Rpdml0eU5leHRMZXZlbCgpOworICAgICAgICB9CiAgICAgfQog
CiAgICAgS2V5cy5mb3J3YXJkVG86IGFjdGl2aXR5LmNoaWxkcmVuCmRpZmYgLS1naXQgYS9zcmMv
Y29yZS9BY3Rpdml0eUluZm8uY3BwIGIvc3JjL2NvcmUvQWN0aXZpdHlJbmZvLmNwcAppbmRleCA3
OTUzNWE4ZmUuLjY5ZGFlZDk2MiAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvQWN0aXZpdHlJbmZvLmNw
cAorKysgYi9zcmMvY29yZS9BY3Rpdml0eUluZm8uY3BwCkBAIC00MjEsNCArNDIxLDggQEAgdm9p
ZCBBY3Rpdml0eUluZm86OnJlc2V0TGV2ZWxzKCkKICAgICBlbmFibGVEYXRhc2V0c0JldHdlZW5E
aWZmaWN1bHRpZXMoMSwgNik7CiB9CiAKK3ZvaWQgQWN0aXZpdHlJbmZvOjpyZXN0b3JlSW5pdGlh
bExldmVscygpIHsKKyAgICBzZXRDdXJyZW50TGV2ZWxzKCk7Cit9CisKICNpbmNsdWRlICJtb2Nf
QWN0aXZpdHlJbmZvLmNwcCIKZGlmZiAtLWdpdCBhL3NyYy9jb3JlL0FjdGl2aXR5SW5mby5oIGIv
c3JjL2NvcmUvQWN0aXZpdHlJbmZvLmgKaW5kZXggNDkyODc3ZjYxLi43ZDQyNjExZTUgMTAwNjQ0
Ci0tLSBhL3NyYy9jb3JlL0FjdGl2aXR5SW5mby5oCisrKyBiL3NyYy9jb3JlL0FjdGl2aXR5SW5m
by5oCkBAIC0yMTQsNiArMjE0LDExIEBAIHB1YmxpYzoKICAgICAgKi8KICAgICBRX0lOVk9LQUJM
RSB2b2lkIHJlc2V0TGV2ZWxzKCk7CiAKKyAgICAvKgorICAgICAqIFJlc3RvcmUgdGhlIGluaXRp
YWwgc3RhdGUgb2YgbGV2ZWxzLgorICAgICAqLworICAgIHZvaWQgcmVzdG9yZUluaXRpYWxMZXZl
bHMoKTsKKwogICAgIC8qCiAgICAgICogUmVtb3ZlIHRoZSBkYXRhc2V0IGZyb20gdGhlIGFjdGl2
aXR5CiAgICAgICovCmRpZmYgLS1naXQgYS9zcmMvY29yZS9BY3Rpdml0eUluZm9UcmVlLmNwcCBi
L3NyYy9jb3JlL0FjdGl2aXR5SW5mb1RyZWUuY3BwCmluZGV4IDZjMTFjYzQyZC4uMTYyYjQxMTA0
IDEwMDY0NAotLS0gYS9zcmMvY29yZS9BY3Rpdml0eUluZm9UcmVlLmNwcAorKysgYi9zcmMvY29y
ZS9BY3Rpdml0eUluZm9UcmVlLmNwcApAQCAtNDQ1LDYgKzQ0NSwzOSBAQCBRVmFyaWFudExpc3Qg
QWN0aXZpdHlJbmZvVHJlZTo6YWxsQ2hhcmFjdGVycygpCiAgICAgcmV0dXJuIGtleWJvYXJkQ2hh
cmFjdGVyczsKIH0KIAordm9pZCBBY3Rpdml0eUluZm9UcmVlOjppbml0aWFsaXplU2VxdWVuY2Uo
Y29uc3QgUUJ5dGVBcnJheSAmanNvbkNvbnRlbnQpIHsKKyAgICBtX3Nlc3Npb25TZXF1ZW5jZS5s
b2FkRnJvbUpzb24oanNvbkNvbnRlbnQpOworfQorCitRU3RyaW5nIEFjdGl2aXR5SW5mb1RyZWU6
Om5leHRBY3Rpdml0eUluU2VxdWVuY2UoKSB7CisgICAgUVN0cmluZyBuZXh0QWN0aXZpdHkgPSAi
IjsKKyAgICBpZiAobV9jdXJyZW50QWN0aXZpdHlJblNlcXVlbmNlIDwgbV9zZXNzaW9uU2VxdWVu
Y2Uuc2l6ZSgpKSB7CisgICAgICAgIGNvbnN0IGF1dG8gJlthY3Rpdml0eU5hbWUsIGRhdGFzZXRz
XSA9IG1fc2Vzc2lvblNlcXVlbmNlLmdldE5leHRBY3Rpdml0eSgpOworICAgICAgICAvLyBJbml0
aWFsaXplIHRoZSBkYXRhc2V0cyB0byBvbmx5IGhhdmUgdGhlIG5lZWRlZCBvbmVzIQorICAgICAg
ICBmb3IgKGF1dG8gKmFjdGl2aXR5OiBtX21lbnVUcmVlRnVsbCkgeworICAgICAgICAgICAgaWYg
KGFjdGl2aXR5LT5zaG9ydE5hbWUoKSA9PSBhY3Rpdml0eU5hbWUpIHsKKyAgICAgICAgICAgICAg
ICBhY3Rpdml0eS0+c2V0Q3VycmVudExldmVscyhkYXRhc2V0cyk7CisgICAgICAgICAgICAgICAg
bmV4dEFjdGl2aXR5ID0gYWN0aXZpdHktPm5hbWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbmV4dEFjdGl2aXR5
OworfQorCit2b2lkIEFjdGl2aXR5SW5mb1RyZWU6OnJlc2V0QWZ0ZXJTZXF1ZW5jZSgpIHsKKyAg
ICBmb3IoY29uc3QgYXV0byAmW2FjdGl2aXR5TmFtZSwgZGF0YXNldHNdIDogbV9zZXNzaW9uU2Vx
dWVuY2UpIHsKKyAgICAgICAgZm9yIChhdXRvICphY3Rpdml0eTogbV9tZW51VHJlZUZ1bGwpIHsK
KyAgICAgICAgICAgIGlmIChhY3Rpdml0eS0+c2hvcnROYW1lKCkgPT0gYWN0aXZpdHlOYW1lKSB7
CisgICAgICAgICAgICAgICAgYWN0aXZpdHktPnJlc3RvcmVJbml0aWFsTGV2ZWxzKCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAg
bV9zZXNzaW9uU2VxdWVuY2UuY2xlYXIoKTsKKyAgICBRX0VNSVQgaXNJblNlcXVlbmNlQ2hhbmdl
ZCgpOworfQorCiB2b2lkIEFjdGl2aXR5SW5mb1RyZWU6OmNyZWF0ZURhdGFzZXQoY29uc3QgUUpz
b25PYmplY3QgJmRhdGFzZXQpCiB7CiAgICAgY29uc3QgUVN0cmluZyBkYXRhc2V0TmFtZShkYXRh
c2V0WyJpbnRlcm5hbF9uYW1lIl0udG9TdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9zcmMvY29yZS9B
Y3Rpdml0eUluZm9UcmVlLmggYi9zcmMvY29yZS9BY3Rpdml0eUluZm9UcmVlLmgKaW5kZXggMTM2
MWFmZmM5Li45NGRkNGY4YTEgMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlL0FjdGl2aXR5SW5mb1RyZWUu
aAorKysgYi9zcmMvY29yZS9BY3Rpdml0eUluZm9UcmVlLmgKQEAgLTExLDYgKzExLDcgQEAKICNk
ZWZpbmUgQUNUSVZJVFlJTkZPVFJFRV9ICiAKICNpbmNsdWRlICJBY3Rpdml0eUluZm8uaCIKKyNp
bmNsdWRlICJTZXF1ZW5jZS5oIgogI2luY2x1ZGUgPFFRbWxFbmdpbmU+CiAjaW5jbHVkZSA8UUxp
c3Q+CiAjaW5jbHVkZSA8UURpcj4KQEAgLTM1LDYgKzM2LDggQEAgY2xhc3MgQWN0aXZpdHlJbmZv
VHJlZSA6IHB1YmxpYyBRT2JqZWN0CiAgICAgICovCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHN0
YXJ0aW5nQWN0aXZpdHkgTUVNQkVSIG1fc3RhcnRpbmdBY3Rpdml0eSBOT1RJRlkgc3RhcnRpbmdB
Y3Rpdml0eUNoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShpbnQgc3RhcnRpbmdMZXZlbCBNRU1CRVIg
bV9zdGFydGluZ0xldmVsIE5PVElGWSBzdGFydGluZ0xldmVsQ2hhbmdlZCkKKyAgICBRX1BST1BF
UlRZKGJvb2wgaXNJblNlcXVlbmNlIFJFQUQgaXNJblNlcXVlbmNlIE5PVElGWSBpc0luU2VxdWVu
Y2VDaGFuZ2VkKQorCiBwdWJsaWM6CiAgICAgc3RhdGljIEFjdGl2aXR5SW5mb1RyZWUgKmdldElu
c3RhbmNlKCkKICAgICB7CkBAIC02Niw2ICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1v
dmVEYXRhc2V0KGNvbnN0IFFKc29uT2JqZWN0ICZkYXRhc2V0LCBib29sIGNsZWFyQ2FjaGUgPSB0
cnVlKTsKICAgICB2b2lkIHJlbW92ZUFsbExvY2FsRGF0YXNldHMoKTsKIAorICAgIHZvaWQgaW5p
dGlhbGl6ZVNlcXVlbmNlKGNvbnN0IFFCeXRlQXJyYXkgJmpzb25Db250ZW50KTsKKyAgICBib29s
IGlzSW5TZXF1ZW5jZSgpIHsKKyAgICAgICAgcmV0dXJuICFtX3Nlc3Npb25TZXF1ZW5jZS5lbXB0
eSgpICYmIG1fY3VycmVudEFjdGl2aXR5SW5TZXF1ZW5jZSA8PSBtX3Nlc3Npb25TZXF1ZW5jZS5z
aXplKCk7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIEFjdGl2aXR5SW5mb1RyZWUg
Km1faW5zdGFuY2U7CiAKQEAgLTgyLDYgKzkwLDggQEAgcHJvdGVjdGVkIFFfU0xPVFM6CiAgICAg
UV9JTlZPS0FCTEUgdm9pZCBmaWx0ZXJCeVNlYXJjaChjb25zdCBRU3RyaW5nICZ0ZXh0KTsKICAg
ICBRX0lOVk9LQUJMRSB2b2lkIGZpbHRlckJ5RGlmZmljdWx0eShxdWludDMyIGxldmVsTWluLCBx
dWludDMyIGxldmVsTWF4KTsKICAgICBRX0lOVk9LQUJMRSB2b2lkIHNldEN1cnJlbnRBY3Rpdml0
eUZyb21OYW1lKGNvbnN0IFFTdHJpbmcgJm5hbWUpOworICAgIFFfSU5WT0tBQkxFIHZvaWQgcmVz
ZXRBZnRlclNlcXVlbmNlKCk7CisgICAgUV9JTlZPS0FCTEUgUVN0cmluZyBuZXh0QWN0aXZpdHlJ
blNlcXVlbmNlKCk7CiAKIFFfU0lHTkFMUzoKICAgICB2b2lkIG1lbnVUcmVlQ2hhbmdlZCgpOwpA
QCAtOTAsNiArMTAwLDcgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgc3RhcnRpbmdBY3Rpdml0eUNo
YW5nZWQoKTsKICAgICB2b2lkIHN0YXJ0aW5nTGV2ZWxDaGFuZ2VkKCk7CiAgICAgdm9pZCBhY3Rp
dml0aWVzV2l0aG91dERhdGFzZXRzKFFMaXN0PEFjdGl2aXR5SW5mbyAqPiBhY3Rpdml0aWVzV2l0
aG91dEFjdGl2ZURhdGFzZXRzKTsKKyAgICB2b2lkIGlzSW5TZXF1ZW5jZUNoYW5nZWQoKTsKIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBBY3Rpdml0eUluZm9UcmVlKFFPYmplY3QgKnBhcmVudCA9
IG51bGxwdHIpOwpAQCAtMTExLDYgKzEyMiw5IEBAIHByaXZhdGU6CiAKICAgICBRU3RyaW5nTGlz
dCBnZXRBY3Rpdml0eUxpc3QoKTsKIAorICAgIGludCBtX2N1cnJlbnRBY3Rpdml0eUluU2VxdWVu
Y2UgPSAwOworICAgIFNlcXVlbmNlIG1fc2Vzc2lvblNlcXVlbmNlOworCiBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJSZXNvdXJjZXMoKTsKICAgICBzdGF0aWMgQWN0aXZpdHlJbmZv
VHJlZSAqY3JlYXRlKFFRbWxFbmdpbmUgKmVuZ2luZSwgUUpTRW5naW5lICpzY3JpcHRFbmdpbmUp
OwpkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvQmFyLnFtbCBiL3NyYy9jb3JlL0Jhci5xbWwKaW5kZXgg
ZDlmMDU3NTIxLi5jYjg4YmU2Y2MgMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlL0Jhci5xbWwKKysrIGIv
c3JjL2NvcmUvQmFyLnFtbApAQCAtMzcsNiArMzcsNyBAQCBpbXBvcnQgInFyYzovZ2NvbXByaXMv
c3JjL2NvcmUvY29yZS5qcyIgYXMgQ29yZQogICovCiBJdGVtIHsKICAgICBpZDogYmFyCisKICAg
ICAvKioKICAgICAgICogdHlwZTogcmVhbAogICAgICAgKiBLZWVwcyB0cmFjayBvZiB0aGUgbnVt
YmVyIG9mIGJ1dHRvbnMgdGhhdCBhcmUgZGlzcGxheWVkCkBAIC0xODAsMTcgKzE4MSwxNyBAQCBJ
dGVtIHsKICAgICAgICAgewogICAgICAgICAgICAgJ2JpZCc6IHByZXZpb3VzLAogICAgICAgICAg
ICAgJ2NvbnRlbnRJZCc6IGNvbnRlbnQubGV2ZWwsCi0gICAgICAgICAgICAnYWxsb3dlZCc6IHRy
dWUKKyAgICAgICAgICAgICdhbGxvd2VkJzogIUFjdGl2aXR5SW5mb1RyZWUuaXNJblNlcXVlbmNl
CiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICdiaWQnOiBsZXZlbFRleHQsCiAg
ICAgICAgICAgICAnY29udGVudElkJzogY29udGVudC5sZXZlbCwKLSAgICAgICAgICAgICdhbGxv
d2VkJzogdHJ1ZQorICAgICAgICAgICAgJ2FsbG93ZWQnOiAhQWN0aXZpdHlJbmZvVHJlZS5pc0lu
U2VxdWVuY2UKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgJ2JpZCc6IG5leHQs
CiAgICAgICAgICAgICAnY29udGVudElkJzogY29udGVudC5sZXZlbCwKLSAgICAgICAgICAgICdh
bGxvd2VkJzogdHJ1ZQorICAgICAgICAgICAgJ2FsbG93ZWQnOiAhQWN0aXZpdHlJbmZvVHJlZS5p
c0luU2VxdWVuY2UKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgJ2JpZCc6IHJl
cGVhdCwKQEAgLTIwNSw3ICsyMDYsNyBAQCBJdGVtIHsKICAgICAgICAgewogICAgICAgICAgICAg
J2JpZCc6IGNvbmZpZywKICAgICAgICAgICAgICdjb250ZW50SWQnOiBjb250ZW50LmNvbmZpZywK
LSAgICAgICAgICAgICdhbGxvd2VkJzogIUFwcGxpY2F0aW9uU2V0dGluZ3MuaXNLaW9za01vZGUK
KyAgICAgICAgICAgICdhbGxvd2VkJzogIUFwcGxpY2F0aW9uU2V0dGluZ3MuaXNLaW9za01vZGUg
JiYgIUFjdGl2aXR5SW5mb1RyZWUuaXNJblNlcXVlbmNlCiAgICAgICAgIH0sCiAgICAgICAgIHsK
ICAgICAgICAgICAgICdiaWQnOiBoaW50LApAQCAtMjE1LDcgKzIxNiw3IEBAIEl0ZW0gewogICAg
ICAgICB7CiAgICAgICAgICAgICAnYmlkJzogYWN0aXZpdHlDb25maWdJbWFnZSwKICAgICAgICAg
ICAgICdjb250ZW50SWQnOiBjb250ZW50LmFjdGl2aXR5Q29uZmlnLAotICAgICAgICAgICAgJ2Fs
bG93ZWQnOiAhQXBwbGljYXRpb25TZXR0aW5ncy5pc0tpb3NrTW9kZQorICAgICAgICAgICAgJ2Fs
bG93ZWQnOiAhQXBwbGljYXRpb25TZXR0aW5ncy5pc0tpb3NrTW9kZSAmJiAhQWN0aXZpdHlJbmZv
VHJlZS5pc0luU2VxdWVuY2UKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgJ2Jp
ZCc6IGRvd25sb2FkSW1hZ2UsCkBAIC0yOTAsNiArMjkxLDEyIEBAIEl0ZW0gewogICAgICAgICBi
dXR0b25Nb2RlbCA9IG5ld0J1dHRvbk1vZGVsOwogICAgIH0KIAorICAgIENvbm5lY3Rpb25zIHsK
KyAgICAgICAgdGFyZ2V0OiBBY3Rpdml0eUluZm9UcmVlCisgICAgICAgIGZ1bmN0aW9uIG9uSXNJ
blNlcXVlbmNlQ2hhbmdlZCgpIHsKKyAgICAgICAgICAgIGJhci51cGRhdGVDb250ZW50KCk7Cisg
ICAgICAgIH0KKyAgICB9CiAgICAgQ29ubmVjdGlvbnMgewogICAgICAgICB0YXJnZXQ6IGJhci5j
b250ZW50CiAgICAgICAgIGZ1bmN0aW9uIG9uVmFsdWVDaGFuZ2VkKCkgewpkaWZmIC0tZ2l0IGEv
c3JjL2NvcmUvQ01ha2VMaXN0cy50eHQgYi9zcmMvY29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBi
ZjI2NTVjNTguLmQwYmU4ZjZlMSAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvc3JjL2NvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM4LDYgKzM4LDggQEAgc2V0KGdjb21w
cmlzX1NSQ1MKICAgQ2xpZW50TmV0d29ya01lc3NhZ2VzLmNwcAogICBDbGllbnROZXR3b3JrTWVz
c2FnZXMuaAogICBuZXRjb25zdC5oCisgIFNlcXVlbmNlLmNwcAorICBTZXF1ZW5jZS5oCiAgIHN5
bnRoL0FEU1JlbnZlbG9wZS5jcHAKICAgc3ludGgvQURTUmVudmVsb3BlLmgKICAgR1N5bnRoLmNw
cApkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvQ2hhbmdlTG9nLnFtbCBiL3NyYy9jb3JlL0NoYW5nZUxv
Zy5xbWwKaW5kZXggOTZhYmM4OGY0Li43MGY5YWVkMzYgMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlL0No
YW5nZUxvZy5xbWwKKysrIGIvc3JjL2NvcmUvQ2hhbmdlTG9nLnFtbApAQCAtMjYsNyArMjYsOCBA
QCBRdE9iamVjdCB7CiAgICAgICoKICAgICAgKi8KICAgICBwcm9wZXJ0eSB2YXIgY2hhbmdlbG9n
OiBbCi0gICAgICAgICAgICB7ICJ2ZXJzaW9uQ29kZSI6IDI3MDAwMCwgImNvbnRlbnQiOiBbIC8v
IHZlcnNpb25Db2RlIFRCRC4uLgorICAgICAgICAgICAgeyAidmVyc2lvbkNvZGUiOiAyNzAwMDAs
ICJjb250ZW50IjogWworICAgICAgICAgICAgICAgIHFzVHIoIk5ldyBjb21tYW5kLWxpbmUgb3B0
aW9uIHRvIHJ1biBhIGxpc3Qgb2YgYWN0aXZpdGllcyB3aXRoIHNwZWNpZmljIGRhdGFzZXRzIGlu
IHNlcXVlbmNlICgtLXdpdGgtc2VxdWVuY2Ugc2VxdWVuY2UuanNvbikiKSwKICAgICAgICAgICAg
ICAgICBxc1RyKCJNYW55IHVzYWJpbGl0eSBpbXByb3ZlbWVudHMiKSwKICAgICAgICAgICAgICAg
ICBxc1RyKCJNYW55IGJ1ZyBmaXhlcyIpCiAgICAgICAgICAgICAgICAgXSwKZGlmZiAtLWdpdCBh
L3NyYy9jb3JlL1NlcXVlbmNlLmNwcCBiL3NyYy9jb3JlL1NlcXVlbmNlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjljMzUyZmQ0ZQotLS0gL2Rldi9udWxsCisrKyBi
L3NyYy9jb3JlL1NlcXVlbmNlLmNwcApAQCAtMCwwICsxLDM0IEBACisvKiBHQ29tcHJpcyAtIFNl
cXVlbmNlLmNwcAorICoKKyAqIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjYgSm9obm55IEph
emVpeCA8amF6ZWl4QGdtYWlsLmNvbT4KKyAqCisgKiBBdXRob3JzOgorICogICBKb2hubnkgSmF6
ZWl4IDxqYXplaXhAZ21haWwuY29tPgorICoKKyAqICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6
IEdQTC0zLjAtb3ItbGF0ZXIKKyAqLworI2luY2x1ZGUgIlNlcXVlbmNlLmgiCisjaW5jbHVkZSA8
UUpzb25Eb2N1bWVudD4KKyNpbmNsdWRlIDxRSnNvblZhbHVlPgorI2luY2x1ZGUgPFFKc29uQXJy
YXk+CisjaW5jbHVkZSA8UUpzb25PYmplY3Q+CisKK3ZvaWQgU2VxdWVuY2U6OmxvYWRGcm9tSnNv
bihjb25zdCBRQnl0ZUFycmF5ICZqc29uQ29udGVudCkgeworICAgIG1fY3VycmVudEFjdGl2aXR5
SW5kZXggPSAwOworICAgIG1fc2VxdWVuY2VzLmNsZWFyKCk7CisgICAgUUpzb25QYXJzZUVycm9y
IGVycm9yOworICAgIFFKc29uRG9jdW1lbnQganNvbkRvY3VtZW50ID0gUUpzb25Eb2N1bWVudDo6
ZnJvbUpzb24oanNvbkNvbnRlbnQsICZlcnJvcik7CisKKyAgICBpZihqc29uRG9jdW1lbnQuaXNF
bXB0eSgpKSB7CisgICAgICAgIHFXYXJuaW5nKCkgPDwgIkVycm9yIHBhcnNpbmcgdGhlIHNlcXVl
bmNlIiA8PCBlcnJvci5lcnJvclN0cmluZygpOworICAgIH0KKyAgICBpZiAoY29uc3QgUUpzb25W
YWx1ZSB2ID0ganNvbkRvY3VtZW50WyJzZXF1ZW5jZSJdOyB2LmlzQXJyYXkoKSkgeworICAgICAg
ICBjb25zdCBRSnNvbkFycmF5IHNlcXVlbmNlcyA9IHYudG9BcnJheSgpOworICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IHNlcXVlbmNlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgY29u
c3QgUUpzb25PYmplY3Qgc2VxdWVuY2UgPSBzZXF1ZW5jZXNbaV0udG9PYmplY3QoKTsKKyAgICAg
ICAgICAgIGNvbnN0IFFTdHJpbmcgYWN0aXZpdHkgPSBzZXF1ZW5jZVsiYWN0aXZpdHkiXS50b1N0
cmluZygpOworICAgICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QgZGF0YXNldHMgPSBzZXF1ZW5j
ZVsiZGF0YXNldHMiXS50b1ZhcmlhbnQoKS50b1N0cmluZ0xpc3QoKTsKKyAgICAgICAgICAgIG1f
c2VxdWVuY2VzLnB1c2hfYmFjayh7YWN0aXZpdHksIGRhdGFzZXRzfSk7CisgICAgICAgIH0KKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29yZS9TZXF1ZW5jZS5oIGIvc3JjL2NvcmUvU2VxdWVu
Y2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmJiY2QyZWNhMQotLS0g
L2Rldi9udWxsCisrKyBiL3NyYy9jb3JlL1NlcXVlbmNlLmgKQEAgLTAsMCArMSw1OSBAQAorLyog
R0NvbXByaXMgLSBTZXF1ZW5jZS5oCisgKgorICogU1BEWC1GaWxlQ29weXJpZ2h0VGV4dDogMjAy
NiBKb2hubnkgSmF6ZWl4IDxqYXplaXhAZ21haWwuY29tPgorICoKKyAqIEF1dGhvcnM6CisgKiAg
IEpvaG5ueSBKYXplaXggPGphemVpeEBnbWFpbC5jb20+CisgKgorICogICBTUERYLUxpY2Vuc2Ut
SWRlbnRpZmllcjogR1BMLTMuMC1vci1sYXRlcgorICovCisjaWZuZGVmIFNFUVVFTkNFX0gKKyNk
ZWZpbmUgU0VRVUVOQ0VfSAorCisjaW5jbHVkZSA8UUxpc3Q+CisjaW5jbHVkZSA8UVN0cmluZz4K
KyNpbmNsdWRlIDx1dGlsaXR5PgorCisvLyBhY3Rpdml0eSBuYW1lLCBkYXRhc2V0IG5hbWVzCit1
c2luZyBTZXF1ZW5jZUVsZW1lbnQgPSBzdGQ6OnBhaXI8UVN0cmluZywgUVN0cmluZ0xpc3Q+Owor
CitjbGFzcyBTZXF1ZW5jZQoreworcHVibGljOgorICAgIGNvbnN0IGludCBjdXJyZW50QWN0aXZp
dHlJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIG1fY3VycmVudEFjdGl2aXR5SW5kZXg7CisgICAg
fQorCisgICAgY29uc3QgU2VxdWVuY2VFbGVtZW50JiBnZXROZXh0QWN0aXZpdHkoKSB7CisgICAg
ICAgIHJldHVybiBtX3NlcXVlbmNlc1ttX2N1cnJlbnRBY3Rpdml0eUluZGV4KytdOworICAgIH0K
KworICAgIGNvbnN0IHFzaXpldHlwZSBzaXplKCkgeworICAgICAgICByZXR1cm4gbV9zZXF1ZW5j
ZXMuc2l6ZSgpOworICAgIH0KKyAgICBjb25zdCBTZXF1ZW5jZUVsZW1lbnQgJm9wZXJhdG9yW10o
cXNpemV0eXBlIGluZGV4KSBjb25zdCB7CisgICAgICAgIHJldHVybiBtX3NlcXVlbmNlc1tpbmRl
eF07CisgICAgfQorICAgIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIG1fc2VxdWVuY2VzLmNsZWFy
KCk7CisgICAgfQorICAgIGJvb2wgZW1wdHkoKSBjb25zdCB7CisgICAgICAgIHJldHVybiBtX3Nl
cXVlbmNlcy5lbXB0eSgpOworICAgIH0KKworICAgIC8vIEZvciBjKysxNyBmb3IgcmFuZ2UgbG9v
cAorICAgIFFMaXN0PFNlcXVlbmNlRWxlbWVudD46OmNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29u
c3QgeworICAgICAgICByZXR1cm4gbV9zZXF1ZW5jZXMuYmVnaW4oKTsKKyAgICB9CisgICAgUUxp
c3Q8U2VxdWVuY2VFbGVtZW50Pjo6Y29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3QgeworICAgICAg
ICByZXR1cm4gbV9zZXF1ZW5jZXMuZW5kKCk7CisgICAgfQorCisgICAgdm9pZCBsb2FkRnJvbUpz
b24oY29uc3QgUUJ5dGVBcnJheSAmanNvbkNvbnRlbnQpOworCitwcml2YXRlOgorICAgIGludCBt
X2N1cnJlbnRBY3Rpdml0eUluZGV4OworICAgIFFMaXN0PFNlcXVlbmNlRWxlbWVudD4gbV9zZXF1
ZW5jZXM7Cit9OworCisjZW5kaWYgLy8gU0VRVUVOQ0VfSApkaWZmIC0tZ2l0IGEvc3JjL2NvcmUv
bWFpbi5jcHAgYi9zcmMvY29yZS9tYWluLmNwcAppbmRleCA3YjZiMjVhYzMuLmY3NmFjNDRhYyAx
MDA2NDQKLS0tIGEvc3JjL2NvcmUvbWFpbi5jcHAKKysrIGIvc3JjL2NvcmUvbWFpbi5jcHAKQEAg
LTE0NSw2ICsxNDUsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUU9iamVjdDo6dHIoIlNwZWNpZnkgb24g
d2hpY2ggbGV2ZWwgdG8gc3RhcnQgdGhlIGFjdGl2aXR5LiBPbmx5IHVzZWQgd2hlbiAtLWxhdW5j
aCBvcHRpb24gaXMgdXNlZC4iKSwgInN0YXJ0TGV2ZWwiKTsKICAgICBwYXJzZXIuYWRkT3B0aW9u
KGNsU3RhcnRPbkxldmVsKTsKIAorICAgIFFDb21tYW5kTGluZU9wdGlvbiBjbFdpdGhTZXF1ZW5j
ZSgid2l0aC1zZXF1ZW5jZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFFPYmplY3Q6OnRyKCJTdGFydCB0aGUgc2VxdWVuY2Ugb2YgYWN0aXZpdGllcyBwYXNzZWQgaW4g
dGhlIGpzb24gZmlsZS4iKSwgImpzb25TZXF1ZW5jZSIpOworICAgIHBhcnNlci5hZGRPcHRpb24o
Y2xXaXRoU2VxdWVuY2UpOworCiAgICAgUUNvbW1hbmRMaW5lT3B0aW9uIGNsTG9jYWxlKCJsb2Nh
bGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUU9iamVjdDo6dHIoIlNwZWNpZnkg
dGhlIGxvY2FsZSB3aGVuIHN0YXJ0aW5nIEdDb21wcmlzLiIpLCAibG9jYWxlIik7CiAgICAgcGFy
c2VyLmFkZE9wdGlvbihjbExvY2FsZSk7CkBAIC0yMzgsNiArMjQyLDE3IEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgICAgICBBcHBsaWNhdGlvblNldHRpbmdzOjpn
ZXRJbnN0YW5jZSgpLT5zZXRMb2NhbGUobG9jYWxlKTsKICAgICAgICAgfQogICAgIH0KKyAgICBp
ZiAocGFyc2VyLmlzU2V0KGNsV2l0aFNlcXVlbmNlKSkgeworICAgICAgICBRU3RyaW5nIHNlcXVl
bmNlRmlsZW5hbWUgPSBwYXJzZXIudmFsdWUoY2xXaXRoU2VxdWVuY2UpOworICAgICAgICBRRmls
ZSBzZXF1ZW5jZUZpbGUoc2VxdWVuY2VGaWxlbmFtZSk7CisgICAgICAgIGlmKCFzZXF1ZW5jZUZp
bGUub3BlbihRSU9EZXZpY2U6OlJlYWRPbmx5IHwgUUlPRGV2aWNlOjpUZXh0KSkgeworICAgICAg
ICAgICAgcVdhcm5pbmcoKSA8PCBRU3RyaW5nKCJFcnJvcjogVW5hYmxlIHRvIG9wZW4gdGhlIHNl
cXVlbmNlIGZpbGUgJTEuIikuYXJnKHNlcXVlbmNlRmlsZW5hbWUpOworICAgICAgICB9CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgUUJ5dGVBcnJheSBqc29uQ29udGVudCA9IHNlcXVlbmNl
RmlsZS5yZWFkQWxsKCk7CisgICAgICAgICAgICBBY3Rpdml0eUluZm9UcmVlOjpnZXRJbnN0YW5j
ZSgpLT5pbml0aWFsaXplU2VxdWVuY2UoanNvbkNvbnRlbnQpOworICAgICAgICB9CisgICAgfQog
ICAgIC8vIFRoaXMgd2lsbCBiZSByZW1vdmVkIGxhdGVyLCBmb3Igbm93LCBpdCBpcyBpZ25vcmVk
IGlmIC0tcmVuZGVyZXIgb3B0aW9uIGlzIHNldAogICAgIGlmIChwYXJzZXIuaXNTZXQoY2xTb2Z0
d2FyZVJlbmRlcmVyKSkgewogICAgICAgICBBcHBsaWNhdGlvblNldHRpbmdzOjpnZXRJbnN0YW5j
ZSgpLT5zZXRSZW5kZXJlcihRU3RyaW5nTGl0ZXJhbCgic29mdHdhcmUiKSk7CmRpZmYgLS1naXQg
YS9zcmMvY29yZS9tYWluLnFtbCBiL3NyYy9jb3JlL21haW4ucW1sCmluZGV4IGI2YjQ0YjI5NS4u
MTNmMDI1MWM0IDEwMDY0NAotLS0gYS9zcmMvY29yZS9tYWluLnFtbAorKysgYi9zcmMvY29yZS9t
YWluLnFtbApAQCAtNDQzLDYgKzQ0Myw5IEBAIFdpbmRvdyB7CiAgICAgICAgICAgICAgICAgd2Vs
Y29tZVBsYXllZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgc3RhcnRBcHBsaWNhdGlvblRpbWVy
LnN0YXJ0KCk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmKEFjdGl2aXR5SW5m
b1RyZWUuaXNJblNlcXVlbmNlKSB7CisgICAgICAgICAgICAgICAgcGFnZVZpZXcuY3VycmVudEl0
ZW0uc3RhcnROZXh0QWN0aXZpdHlJblNlcXVlbmNlKCk7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBlbHNlIGlmIChEb3dubG9hZE1hbmFnZXIuYXJlVm9pY2VzUmVnaXN0ZXJlZChBcHBsaWNh
dGlvblNldHRpbmdzLmxvY2FsZSkpIHsKICAgICAgICAgICAgICAgICBkZWxheWVkV2VsY29tZVRp
bWVyLnBsYXlXZWxjb21lKCk7CiAgICAgICAgICAgICB9Cgo=