[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=