[LyX/master] Support for front/main/backmatter (#12424)
Juergen Spitzmueller <[email protected]> Mon, 03 Aug 2026 09:30:41 +0000
| Newsgroups | gmane.editors.lyx.cvs |
|---|---|
| Message-ID | <[email protected]> |
Y29tbWl0IGU1Njk0MjZiMTU4M2RmM2I3ZGQ2YzYwNmNjMGZlYWRjMzdlNTcyM2IKQXV0aG9yOiBK dWVyZ2VuIFNwaXR6bXVlbGxlciA8c3BpdHpAbHl4Lm9yZz4KRGF0ZTogICBNb24gQXVnIDMgMTE6 Mjk6MTIgMjAyNiArMDIwMAoKICAgIFN1cHBvcnQgZm9yIGZyb250L21haW4vYmFja21hdHRlciAo IzEyNDI0KQogICAgCiAgICBCYXNlZCBvbiBhIHBhdGNoIGJ5IERhbmllbCBSYW3DtmxsZXIKICAg IAogICAgRmlsZSBhbmQgbGF5b3V0IGZvcm1hdCBjaGFuZ2UKLS0tCiBkZXZlbG9wbWVudC9GT1JN QVQgICAgICAgICAgICB8ICAgNSArKwogbGliL2RvYy9DdXN0b21pemF0aW9uLmx5eCAgICAgfCAx MjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvZG9jL1Vz ZXJHdWlkZS5seXggICAgICAgICB8ICA3MiArKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIv ZG9jL2RlL0N1c3RvbWl6YXRpb24ubHl4ICB8ICA3NiArKysrKysrKysrKysrKysrKysrKysrKysr KwogbGliL2RvYy9kZS9Vc2VyR3VpZGUubHl4ICAgICAgfCAgNzYgKysrKysrKysrKysrKysrKysr KysrKysrKysKIGxpYi9sYXlvdXRzL2Ftc2Jvb2subGF5b3V0ICAgIHwgICAxICsKIGxpYi9sYXlv dXRzL2Jvb2subGF5b3V0ICAgICAgIHwgICA0ICstCiBsaWIvbGF5b3V0cy9tZW1vaXIubGF5b3V0 ICAgICB8ICAgMSArCiBsaWIvbGF5b3V0cy9yZWNpcGVib29rLmxheW91dCB8ICAgMSArCiBsaWIv bGF5b3V0cy9zY3Jib29rLmxheW91dCAgICB8ICAgMSArCiBsaWIvbGF5b3V0cy90dWZ0ZS1ib29r LmxheW91dCB8ICAgMSArCiBsaWIvbHl4Mmx5eC9seXhfMl82LnB5ICAgICAgICB8ICAzMyArKysr KysrKysrKy0KIGxpYi9seXgybHl4L3BhcnNlcl90b29scy5weSAgIHwgICAxICsKIGxpYi9zY3Jp cHRzL2xheW91dDJsYXlvdXQucHkgIHwgICA3ICsrLQogbGliL3VpL3N0ZG1lbnVzLmluYyAgICAg ICAgICAgfCAgIDcgKysrCiBzcmMvQnVmZmVyLmNwcCAgICAgICAgICAgICAgICB8ICAxMSArKyst CiBzcmMvQ291bnRlcnMuY3BwICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL0NvdW50ZXJzLmgg ICAgICAgICAgICAgICAgfCAgIDkgKysrKwogc3JjL0Z1bmNDb2RlLmggICAgICAgICAgICAgICAg fCAgIDEgKwogc3JjL0xheW91dEVudW1zLmggICAgICAgICAgICAgfCAgMTIgKysrKysKIHNyYy9M eVhBY3Rpb24uY3BwICAgICAgICAgICAgIHwgIDEwICsrKysKIHNyYy9QYXJhZ3JhcGhQYXJhbWV0 ZXJzLmNwcCAgIHwgIDQ2ICsrKysrKysrKysrKysrKysKIHNyYy9QYXJhZ3JhcGhQYXJhbWV0ZXJz LmggICAgIHwgIDEyICsrKysrCiBzcmMvUm93UGFpbnRlci5jcHAgICAgICAgICAgICB8ICA0NyAr KysrKysrKysrKystLS0tCiBzcmMvUm93UGFpbnRlci5oICAgICAgICAgICAgICB8ICAgMiArLQog c3JjL1RleHQuY3BwICAgICAgICAgICAgICAgICAgfCAgNDQgKysrKysrKysrKysrKysrCiBzcmMv VGV4dENsYXNzLmNwcCAgICAgICAgICAgICB8ICAxMSArKystCiBzcmMvVGV4dENsYXNzLmggICAg ICAgICAgICAgICB8ICAgNCArKwogc3JjL1RleHRNZXRyaWNzLmNwcCAgICAgICAgICAgfCAgIDcg Ky0tCiBzcmMvb3V0cHV0X2xhdGV4LmNwcCAgICAgICAgICB8ICAxNSArKysrKysKIHNyYy90ZXgy bHl4L3RleHQuY3BwICAgICAgICAgIHwgIDcyICsrKysrKysrKysrKysrKysrKysrKysrKysKIHNy Yy92ZXJzaW9uLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiAzMiBmaWxlcyBjaGFuZ2VkLCA2 OTIgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZGV2ZWxvcG1l bnQvRk9STUFUIGIvZGV2ZWxvcG1lbnQvRk9STUFUCmluZGV4IDIxYmFkNTc5ZWQuLmZhZTk2OGM3 NjEgMTAwNjQ0Ci0tLSBhL2RldmVsb3BtZW50L0ZPUk1BVAorKysgYi9kZXZlbG9wbWVudC9GT1JN QVQKQEAgLTcsNiArNywxMSBAQCBjaGFuZ2VzIGhhcHBlbmVkIGluIHBhcnRpY3VsYXIgaWYgcG9z c2libGUuIEEgZ29vZCBleGFtcGxlIHdvdWxkIGJlCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAKKzIwMjYtMDgtMDMgSsO8cmdlbiBTcGl0em3DvGxsZXIgPHNwaXR6QGx5eC5vcmc+CisJKiBG b3JtYXQgaW5jcmVtZW50ZWQgdG8gNjU3OiBTdXBwb3J0IGZvciBcZnJvbm1hdHRlciwgXG1haW5t YXR0ZXIsCisJICBhbmQgXGJhY2ttYXR0ZXIgdmlhIHBhcmFncmFwaCBwYXJhbWV0ZXIKKwkgIFxz dGFydF9vZl9tYXR0ZXIge2Zyb250LG1haW4sYmFja30KKwogMjAyNi0wOC0wMiBKw7xyZ2VuIFNw aXR6bcO8bGxlciA8c3BpdHpAbHl4Lm9yZz4KIAkqIEZvcm1hdCBpbmNyZW1lbnRlZCB0byA2NTY6 IFN1cHBvcnQgZm9yIHBhcmZpbGxza2lwCiAJICBOZXcgYnVmZmVyIHBhcmFtIFxwYXJmaWxsc2tp cCAiPHR5cGU+IiAiPGdsdWUgbGVuZ3RoPiIKZGlmZiAtLWdpdCBhL2xpYi9kb2MvQ3VzdG9taXph dGlvbi5seXggYi9saWIvZG9jL0N1c3RvbWl6YXRpb24ubHl4CmluZGV4IGM0ZTM5NmIzOGYuLmZh ZDM3NDMyNWQgMTAwNjQ0Ci0tLSBhL2xpYi9kb2MvQ3VzdG9taXphdGlvbi5seXgKKysrIGIvbGli L2RvYy9DdXN0b21pemF0aW9uLmx5eApAQCAtMTE1MjQsNiArMTE1MjQsMTA3IEBAIG5vbGluayAi ZmFsc2UiCiBcZW5kX2luc2V0CiAKICBmb3IgdGhlIGxpc3Qgb2YgZmVhdHVyZXMuCitcY2hhbmdl X2luc2VydGVkIC03MTI2OTgzMjEgMTc4NTc0NzE3MAorCitcZW5kX2xheW91dAorCitcYmVnaW5f bGF5b3V0IERlc2NyaXB0aW9uCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgLTcxMjY5ODMyMSAxNzg1NzQ3 MjMxCitcYmVnaW5faW5zZXQgRmxleCBDb2RlCitzdGF0dXMgY29sbGFwc2VkCisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgLTcxMjY5ODMyMSAxNzg1NzQ3 MTc4CitQcm92aWRlc01hdHRlcnMKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKworIFsKK1xi ZWdpbl9pbnNldCBGbGV4IENvZGUKK3N0YXR1cyBjb2xsYXBzZWQKKworXGJlZ2luX2xheW91dCBQ bGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAtNzEyNjk4MzIxIDE3ODU3NDcxNzEKKwor XGVtcGggb24KKzAKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKworCitcYmVnaW5faW5zZXQg c3BhY2UgXHRoaW5zcGFjZXt9CitcZW5kX2luc2V0CisKKworXGJlZ2luX2luc2V0IEZsZXggQ29k ZQorc3RhdHVzIGNvbGxhcHNlZAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hh bmdlX2luc2VydGVkIC03MTI2OTgzMjEgMTc4NTc0NzE3MQorMQorXGVuZF9sYXlvdXQKKworXGVu ZF9pbnNldAorCitdIGluZGljYXRlcyB3aGV0aGVyIHRoZSB0ZXh0IGNsYXNzIHByb3ZpZGVzIGZv ciAKK1xiZWdpbl9pbnNldCBGbGV4IENvZGUKK3N0YXR1cyBjb2xsYXBzZWQKKworXGJlZ2luX2xh eW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAtNzEyNjk4MzIxIDE3ODU3NDcy MTcKKworXGJhY2tzbGFzaAorZnJvbnRtYXR0ZXIKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRf bGF5b3V0CisKK1xlbmRfaW5zZXQKKworLAorIAorXGJlZ2luX2luc2V0IEZsZXggQ29kZQorc3Rh dHVzIGNvbGxhcHNlZAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2lu c2VydGVkIC03MTI2OTgzMjEgMTc4NTc0NzIyNAorCitcYmFja3NsYXNoCittYWlubWF0dGVyCitc Y2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0CisKKywKKyBhbmQg CitcYmVnaW5faW5zZXQgRmxleCBDb2RlCitzdGF0dXMgY29sbGFwc2VkCisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgLTcxMjY5ODMyMSAxNzg1NzQ3MjMx CisKK1xiYWNrc2xhc2gKK2JhY2ttYXR0ZXIKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKworIGRvY3VtZW50IGRpdmlzaW9uLgorXGNoYW5nZV91bmNoYW5n ZWQKKwogXGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBEZXNjcmlwdGlvbgpAQCAtMTI2MDcs NiArMTI3MDgsOCBAQCBzdGF0dXMgY29sbGFwc2VkCiAKIFxjaGFuZ2VfaW5zZXJ0ZWQgLTcxMjY5 ODMyMSAxNzg1NjY0MzE3CiBQYXJmaWxsc2tpcE5vbmUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKIFxl bmRfbGF5b3V0CiAKIFxlbmRfaW5zZXQKQEAgLTEyNjE5LDYgKzEyNzIyLDggQEAgc3RhdHVzIGNv bGxhcHNlZAogCiBcY2hhbmdlX2luc2VydGVkIC03MTI2OTgzMjEgMTc4NTY2NDI5Nwogc3RyaW5n CitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5kX2xheW91dAogCiBcZW5kX2luc2V0CkBAIC0xMjY0 Nyw2ICsxMjc1Miw4IEBAIHN0YXR1cyBjb2xsYXBzZWQKIAogXGNoYW5nZV9pbnNlcnRlZCAtNzEy Njk4MzIxIDE3ODU2NjQzODcKIHBhcmZ1bGxza2lwPW5vbmUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisK IFxlbmRfbGF5b3V0CiAKIFxlbmRfaW5zZXQKQEAgLTEyNzA5LDYgKzEyODE2LDggQEAgc3RhdHVz IGNvbGxhcHNlZAogCiBcY2hhbmdlX2luc2VydGVkIC03MTI2OTgzMjEgMTc4NTY2NDUwNwogUGFy c2tpcEZ1bGwgcGFyc2tpcD1mdWxsCitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5kX2xheW91dAog CiBcZW5kX2luc2V0CkBAIC0xMjcyOCw2ICsxMjgzNyw4IEBAIHN0YXR1cyBjb2xsYXBzZWQKIAog XGNoYW5nZV9pbnNlcnRlZCAtNzEyNjk4MzIxIDE3ODU2NjQzMjYKIFBhcmZpbGxza2lwUXVhcnRl cgorXGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQKIAogXGVuZF9pbnNldApAQCAtMTI3 NDAsNiArMTI4NTEsOCBAQCBzdGF0dXMgY29sbGFwc2VkCiAKIFxjaGFuZ2VfaW5zZXJ0ZWQgLTcx MjY5ODMyMSAxNzg1NjY0Mjk3CiBzdHJpbmcKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKIFxlbmRfbGF5 b3V0CiAKIFxlbmRfaW5zZXQKQEAgLTEyNzUyLDYgKzEyODY1LDggQEAgc3RhdHVzIGNvbGxhcHNl ZAogCiBcY2hhbmdlX2luc2VydGVkIC03MTI2OTgzMjEgMTc4NTY2NDU3NAogUGFyZmlsbHNraXBO b25lCitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5kX2xheW91dAogCiBcZW5kX2luc2V0CkBAIC0x Mjc4NCw2ICsxMjg5OSw4IEBAIHN0YXR1cyBjb2xsYXBzZWQKIAogXGNoYW5nZV9pbnNlcnRlZCAt NzEyNjk4MzIxIDE3ODU2NjQzMzcKIFBhcmZpbGxza2lwVGhpcmQKK1xjaGFuZ2VfdW5jaGFuZ2Vk CisKIFxlbmRfbGF5b3V0CiAKIFxlbmRfaW5zZXQKQEAgLTEyNzk2LDYgKzEyOTEzLDggQEAgc3Rh dHVzIGNvbGxhcHNlZAogCiBcY2hhbmdlX2luc2VydGVkIC03MTI2OTgzMjEgMTc4NTY2NDMzMQog c3RyaW5nCitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5kX2xheW91dAogCiBcZW5kX2luc2V0CkBA IC0xMjgwOCw2ICsxMjkyNyw4IEBAIHN0YXR1cyBjb2xsYXBzZWQKIAogXGNoYW5nZV9pbnNlcnRl ZCAtNzEyNjk4MzIxIDE3ODU2NjQ2MDIKIFBhcmZpbGxza2lwTm9uZQorXGNoYW5nZV91bmNoYW5n ZWQKKwogXGVuZF9sYXlvdXQKIAogXGVuZF9pbnNldApkaWZmIC0tZ2l0IGEvbGliL2RvYy9Vc2Vy R3VpZGUubHl4IGIvbGliL2RvYy9Vc2VyR3VpZGUubHl4CmluZGV4IDIyN2JjMDRiNzguLjNmOTZh MjYwNjggMTAwNjQ0Ci0tLSBhL2xpYi9kb2MvVXNlckd1aWRlLmx5eAorKysgYi9saWIvZG9jL1Vz ZXJHdWlkZS5seXgKQEAgLTMzNjY0LDYgKzMzNjY0LDc4IEBAIFJlc3RvcmUgdmFsdWUgb2YgY291 bnRlcjoKIFRoZSBkaWFsb2cgYWxsb3dzIHlvdSB0byBjaG9vc2Ugd2hpY2ggY291bnRlciB5b3Ug d2lzaCB0byBtb2RpZnkgZnJvbSBhbGwgdGhvc2UgdGhhdCBhcmUgYXZhaWxhYmxlIGluIHRoZSBj dXJyZW50IGRvY3VtZW50IGNsYXNzLgogXGVuZF9sYXlvdXQKIAorXGJlZ2luX2xheW91dCBTZWN0 aW9uCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgLTcxMjY5ODMyMSAxNzg1NzQ3Njk0CitTdHJ1Y3R1cmFs IFVuaXRzCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2Vf aW5zZXJ0ZWQgLTcxMjY5ODMyMSAxNzg1NzQ3OTM3CitTb21lIGRvY3VtZW50IGNsYXNzZXMsCisg cGFydGljdWxhcmx5IGJvb2sgY2xhc3NlcywKKyBzdXBwb3J0IHRoZSBkaXZpc2lvbiBvZiBkb2N1 bWVudHMgaW4gc3RydWN0dXJhbCB1bml0cywKKyBuYW1lZCAKK1xiZWdpbl9pbnNldCBRdW90ZXMg ZWxkCitcZW5kX2luc2V0CisKK2Zyb250IG1hdHRlcgorXGJlZ2luX2luc2V0IFF1b3RlcyBlcmQK K1xlbmRfaW5zZXQKKworIChmb3IgdGhlIHByZWxpbWluYXJ5IHBhcnRzIG9mIHRoZSBib29rIHN1 Y2ggYXMgdGl0bGluZywKKyB0YWJsZSBvZiBjb250ZW50cywKKyBwcmVmYWNlKSwKKyAKK1xiZWdp bl9pbnNldCBRdW90ZXMgZWxkCitcZW5kX2luc2V0CisKK21haW4gbWF0dGVyCitcYmVnaW5faW5z ZXQgUXVvdGVzIGVyZAorXGVuZF9pbnNldAorCisgKGZvciB0aGUgbWFpbiBwYXJ0KSwKKyBhbmQg CitcYmVnaW5faW5zZXQgUXVvdGVzIGVsZAorXGVuZF9pbnNldAorCitiYWNrIG1hdHRlcgorXGJl Z2luX2luc2V0IFF1b3RlcyBlcmQKK1xlbmRfaW5zZXQKKworIChmb3IgYXBwZW5kaWNlcyBhbmQg dGhlIGxpa2UpLgorIFVzdWFsbHksCisgZnJvbnQgbWF0dGVycyBhcmUgZGlmZmVyZW50bHkgcGFn aW5hdGVkIChlLmcuLAorIHVzaW5nIHJvbWFuIG51bWJlcmluZyksCisgd2hlcmVhcyBtYWluIG1h dHRlcnMgc3RhcnQgd2l0aCBwYWdlIDEuCisgQmFjayBtYXR0ZXJzIG9mdGVuIGRvIG5vdCB1c2Ug c2VjdGlvbiBudW1iZXJpbmcuCisgVGhlIGRldGFpbHMgaG93IHRoZSB0aHJlZSB1bml0cyBhcmUg c3VwcG9zZWQgdG8gbG9vayBhcmUgZGVmaW5lZCBpbiB0aGUgY2xhc3MuCitcZW5kX2xheW91dAor CitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgLTcxMjY5ODMyMSAx Nzg1NzQ4MDA3CitJbiBcU3BlY2lhbENoYXIgTHlYCissCisgeW91IGNhbiBzdGFydCB0aGVzZSB1 bml0cyB2aWEgCitcZmFtaWx5IHNhbnMKK0RvY3VtZW50XFNwZWNpYWxDaGFyIG1lbnVzZXBhcmF0 b3IKK1N0YXJ0CitcYmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9pbnNldAorCitTdHJ1Y3R1cmFs IFVuaXQKK1xiZWdpbl9pbnNldCBzcGFjZSB+CitcZW5kX2luc2V0CisKK0hlcmUKK1xmYW1pbHkg ZGVmYXVsdAorIHdpdGggdGhlIGNsYXNzZXMgdGhhdCBzdXBwb3J0IHRoZXNlIGRpdmlzaW9ucy4K K1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKIFxiZWdpbl9sYXlvdXQgU2VjdGlv bgogQXBwZW5kaWNlcwogXGJlZ2luX2luc2V0IEluZGV4IGlkeApkaWZmIC0tZ2l0IGEvbGliL2Rv Yy9kZS9DdXN0b21pemF0aW9uLmx5eCBiL2xpYi9kb2MvZGUvQ3VzdG9taXphdGlvbi5seXgKaW5k ZXggNWVmZWQyZjIwZS4uNGVjMDAwMDMzNiAxMDA2NDQKLS0tIGEvbGliL2RvYy9kZS9DdXN0b21p emF0aW9uLmx5eAorKysgYi9saWIvZG9jL2RlL0N1c3RvbWl6YXRpb24ubHl4CkBAIC05OTY2LDYg Kzk5NjYsODIgQEAgbm9saW5rICJmYWxzZSIKIFxiZWdpbl9pbnNldCBGbGV4IENvZGUKIHN0YXR1 cyBjb2xsYXBzZWQKIAorXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKK1Byb3ZpZGVzTWF0dGVy cworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorCisgWworXGJlZ2luX2luc2V0IEZsZXggQ29k ZQorc3RhdHVzIGNvbGxhcHNlZAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW1w aCBvbgorMAorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorCisKK1xiZWdpbl9pbnNldCBzcGFj ZSBcdGhpbnNwYWNle30KK1xlbmRfaW5zZXQKKworCitcYmVnaW5faW5zZXQgRmxleCBDb2RlCitz dGF0dXMgY29sbGFwc2VkCisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisxCitcZW5kX2xh eW91dAorCitcZW5kX2luc2V0CisKK10gemVpZ3QgYW4gb2IgZGllIEtsYXNzZSBkaWUgU3RydWt0 dXJpZXJ1bmcgZGVzIERva3VtZW50cyBtaXR0ZWxzIAorXGJlZ2luX2luc2V0IEZsZXggQ29kZQor c3RhdHVzIGNvbGxhcHNlZAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcYmFja3Ns YXNoCitmcm9udG1hdHRlcgorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorCissCisgCitcYmVn aW5faW5zZXQgRmxleCBDb2RlCitzdGF0dXMgY29sbGFwc2VkCisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xiYWNrc2xhc2gKK21haW5tYXR0ZXIKK1xlbmRfbGF5b3V0CisKK1xlbmRf aW5zZXQKKworIHVuZCAKK1xiZWdpbl9pbnNldCBGbGV4IENvZGUKK3N0YXR1cyBjb2xsYXBzZWQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGJhY2tzbGFzaAorYmFja21hdHRlcgor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorCisgdW50ZXJzdMO8dHp0LgorXGVuZF9sYXlvdXQK KworXGJlZ2luX2xheW91dCBEZXNjcmlwdGlvbgorXGJlZ2luX2luc2V0IEZsZXggQ29kZQorc3Rh dHVzIGNvbGxhcHNlZAorCiBcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAogUHJvdmlkZXNNb2R1 bGUKIFxlbmRfbGF5b3V0CmRpZmYgLS1naXQgYS9saWIvZG9jL2RlL1VzZXJHdWlkZS5seXggYi9s aWIvZG9jL2RlL1VzZXJHdWlkZS5seXgKaW5kZXggZTVhYjM1NmM5Mi4uNjBlMGE5ZWUwYSAxMDA2 NDQKLS0tIGEvbGliL2RvYy9kZS9Vc2VyR3VpZGUubHl4CisrKyBiL2xpYi9kb2MvZGUvVXNlckd1 aWRlLmx5eApAQCAtMzI4NTAsNiArMzI4NTAsODIgQEAgSW4gZGllc2VtIERpYWxvZyBrw7ZubmVu IFNpZSBhdXMgYWxsZW4gWsOkaGxlcm4sCiAgZGVuIFNpZSDDpG5kZXJuIG3DtmNodGVuLgogXGVu ZF9sYXlvdXQKIAorXGJlZ2luX2xheW91dCBTZWN0aW9uCitTdHJ1a3R1cmVsbGUgRWluaGVpdGVu CitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCitNYW5jaGUgRG9rdW1lbnRr bGFzc2VuLAorIGJlc29uZGVycyBkaWUgZsO8ciBCw7xjaGVyLAorIHVudGVyc3TDvHR6ZW4gZGll IEVpbnRlaWx1bmcgdm9uIERva3VtZW50ZW4gaW4gc3RydWt0dXJlbGxlIEVpbmhlaXRlbiwKKyBu w6RtbGljaCBWb3JzcGFubiAoZW5nbC4KKyAKK1xiZWdpbl9pbnNldCBRdW90ZXMgZ2xkCitcZW5k X2luc2V0CisKKworXGxhbmcgZW5nbGlzaAorZnJvbnQgbWF0dGVyCitcbGFuZyBuZ2VybWFuCisK K1xiZWdpbl9pbnNldCBRdW90ZXMgZ3JkCitcZW5kX2luc2V0CisKKywKKyBmw7xyIGRpZSBUaXRl bGVpLAorIGRhcyBJbmhhbHRzdmVyemVpY2huaXMsCisgVm9yd29ydGUgdXN3LiksCisgSGF1cHR0 ZWlsIChlbmdsLgorIAorXGJlZ2luX2luc2V0IFF1b3RlcyBnbGQKK1xlbmRfaW5zZXQKKworCitc bGFuZyBlbmdsaXNoCittYWluIG1hdHRlcgorXGxhbmcgbmdlcm1hbgorCitcYmVnaW5faW5zZXQg UXVvdGVzIGdyZAorXGVuZF9pbnNldAorCispIHVuZCBOYWNoc3Bhbm4gKGVuZ2wuCisgCitcYmVn aW5faW5zZXQgUXVvdGVzIGdsZAorXGVuZF9pbnNldAorCisKK1xsYW5nIGVuZ2xpc2gKK2JhY2sg bWF0dGVyCitcbGFuZyBuZ2VybWFuCisKK1xiZWdpbl9pbnNldCBRdW90ZXMgZ3JkCitcZW5kX2lu c2V0CisKKywKKyBmw7xyIEFuaMOkbmdlIHVuZCDDhGhubGljaGVzKS4KKyBNZWlzdGVucyBpc3Qg ZGVyIFZvcnNwYW5uIGFuZGVycyBwYWdpbmllcnQgKGJzcHcuCisgbWl0IHLDtm1pc2NoZW4gU2Vp dGVuemFobGVuKSwKKyB3b2JlaSBkZXIgSGF1cHR0ZWlsIGRhbm4gbWl0IFNlaXRlCitcYmVnaW5f aW5zZXQgc3BhY2UgfgorXGVuZF9pbnNldAorCisxIGJlZ2lubnQuCisgRGVyIE5hY2hzcGFubiB2 ZXJ3ZW5kZXQgb2Z0IGtlaW5lIEFic2Nobml0dHNudW1tZXJpZXJ1bmcuCisgV2llIGVzIGdlbmF1 IGF1c3NjaGF1dCBkZWZpbmllcnQgYWJlciBkaWUgamV3ZWlsaWdlIEtsYXNzZS4KK1xlbmRfbGF5 b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKK0luIFxTcGVjaWFsQ2hhciBMeVgKKyBrw7Zu bmVuIFNpZSBkaWVzZSBFaW5oZWl0ZW4gw7xiZXIgCitcZmFtaWx5IHNhbnMKK0Rva3VtZW50XFNw ZWNpYWxDaGFyIG1lbnVzZXBhcmF0b3IKK1N0cnVrdHVyZWxsZSBFaW5oZWl0IGhpZXIgYmVnaW5u ZW4gCitcZmFtaWx5IGRlZmF1bHQKK2ltIEZhbGwgZGVyIEtsYXNzZW4sCisgZGllIHNvbGNoZSBV bnRlcnRlaWx1bmdlbiB1bnRlcnN0w7x0emVuLAorIG1hcmtpZXJlbi4KK1xlbmRfbGF5b3V0CisK IFxiZWdpbl9sYXlvdXQgU2VjdGlvbgogQW5ow6RuZ2UKIFxiZWdpbl9pbnNldCBDb21tYW5kSW5z ZXQgbGFiZWwKZGlmZiAtLWdpdCBhL2xpYi9sYXlvdXRzL2Ftc2Jvb2subGF5b3V0IGIvbGliL2xh eW91dHMvYW1zYm9vay5sYXlvdXQKaW5kZXggNTU0NmM5ZGMzYi4uYzgyYzM3MjUyOCAxMDA2NDQK LS0tIGEvbGliL2xheW91dHMvYW1zYm9vay5sYXlvdXQKKysrIGIvbGliL2xheW91dHMvYW1zYm9v ay5sYXlvdXQKQEAgLTE3LDYgKzE3LDcgQEAgRm9ybWF0IDExOQogQ29sdW1ucyAgICAgICAgICAg ICAgICAgMQogU2lkZXMgICAgICAgICAgICAgICAgICAgMgogUGFnZVN0eWxlICAgICAgICAgICAg ICAgSGVhZGVycworUHJvdmlkZXNNYXR0ZXJzICAgICAgICAgMQogRG9jQm9va1Jvb3QgICAgICAg ICAgICAgYm9vawogCiBQcm92aWRlcyBhbXNtYXRoICAgICAgICAgMQpkaWZmIC0tZ2l0IGEvbGli L2xheW91dHMvYm9vay5sYXlvdXQgYi9saWIvbGF5b3V0cy9ib29rLmxheW91dAppbmRleCAzZTU2 YTZjZGMyLi5lMTM4OTRkNmJlIDEwMDY0NAotLS0gYS9saWIvbGF5b3V0cy9ib29rLmxheW91dAor KysgYi9saWIvbGF5b3V0cy9ib29rLmxheW91dApAQCAtMTEsMTAgKzExLDEwIEBAIEZvcm1hdCAx MTkKIElucHV0IHN0ZGNsYXNzLmluYwogSW5wdXQgbnVtcmVwb3J0LmluYwogCi0KIFNpZGVzICAg ICAgICAgICAgICAgICAyCiBQYWdlU3R5bGUgICAgICAgICAgICAgSGVhZGluZ3MKLURvY0Jvb2tS b290CQkgICAgICBib29rCitQcm92aWRlc01hdHRlcnMgICAgICAgMQorRG9jQm9va1Jvb3QJICAg ICAgYm9vawogRG9jQm9va0ZvcmNlQWJzdHJhY3QgIHRydWUKIAogCmRpZmYgLS1naXQgYS9saWIv bGF5b3V0cy9tZW1vaXIubGF5b3V0IGIvbGliL2xheW91dHMvbWVtb2lyLmxheW91dAppbmRleCA4 ZDUyYTAzZTU5Li45ZjM1MDJjYmUwIDEwMDY0NAotLS0gYS9saWIvbGF5b3V0cy9tZW1vaXIubGF5 b3V0CisrKyBiL2xpYi9sYXlvdXRzL21lbW9pci5sYXlvdXQKQEAgLTEyLDYgKzEyLDcgQEAgQ29s dW1ucyAgICAgICAgICAgIDEKIFNpZGVzICAgICAgICAgICAgICAyCiBTZWNOdW1EZXB0aCAgICAg ICAgMQogVG9jRGVwdGggICAgICAgICAgIDEKK1Byb3ZpZGVzTWF0dGVycyAgICAxCiBEZWZhdWx0 U3R5bGUgICAgICAgU3RhbmRhcmQKIFBhZ2VTdHlsZSAgICAgICAgICBIZWFkaW5ncwogUGFnZVNp emUgICAgICAgICAgIGxldHRlcgpkaWZmIC0tZ2l0IGEvbGliL2xheW91dHMvcmVjaXBlYm9vay5s YXlvdXQgYi9saWIvbGF5b3V0cy9yZWNpcGVib29rLmxheW91dAppbmRleCAwOGNlZDI1ZThlLi44 Mjk1OTk0YzUxIDEwMDY0NAotLS0gYS9saWIvbGF5b3V0cy9yZWNpcGVib29rLmxheW91dAorKysg Yi9saWIvbGF5b3V0cy9yZWNpcGVib29rLmxheW91dApAQCAtMzUsNiArMzUsNyBAQCBJbnB1dCBu dW1yZXBvcnQuaW5jCiBTZWNOdW1EZXB0aAkJMgogVG9jRGVwdGgJCTMKIFBhZ2VTdHlsZQkJSGVh ZGluZ3MKK1Byb3ZpZGVzTWF0dGVycyAgICAgICAgIDEKIERvY0Jvb2tSb290CQlib29rCiAKICMg VGhlcmUgaXMgbm8gYWJzdHJhY3QgZW52aXJvbm1lbnQgaW4gc2NyYm9vay5jbHMKZGlmZiAtLWdp dCBhL2xpYi9sYXlvdXRzL3NjcmJvb2subGF5b3V0IGIvbGliL2xheW91dHMvc2NyYm9vay5sYXlv dXQKaW5kZXggNGU1ODYwYzQwOS4uNmJhMDM2ZmE3MCAxMDA2NDQKLS0tIGEvbGliL2xheW91dHMv c2NyYm9vay5sYXlvdXQKKysrIGIvbGliL2xheW91dHMvc2NyYm9vay5sYXlvdXQKQEAgLTEwLDYg KzEwLDcgQEAgSW5wdXQgbnVtcmVwb3J0LmluYwogCiBTaWRlcwkJCTIKIFBhZ2VTdHlsZQkJSGVh ZGluZ3MKK1Byb3ZpZGVzTWF0dGVycyAgICAgICAgIDEKIERvY0Jvb2tSb290CQlib29rCiAKIE5v U3R5bGUgQWJzdHJhY3QKZGlmZiAtLWdpdCBhL2xpYi9sYXlvdXRzL3R1ZnRlLWJvb2subGF5b3V0 IGIvbGliL2xheW91dHMvdHVmdGUtYm9vay5sYXlvdXQKaW5kZXggZmI2ODNlNGZmNC4uYzkxMTky ZjA0YyAxMDA2NDQKLS0tIGEvbGliL2xheW91dHMvdHVmdGUtYm9vay5sYXlvdXQKKysrIGIvbGli L2xheW91dHMvdHVmdGUtYm9vay5sYXlvdXQKQEAgLTEyLDYgKzEyLDcgQEAgUHJvdmlkZXMgbmF0 YmliLWludGVybmFsIDEKIAogU2lkZXMJCTIKIFBhZ2VTdHlsZQlIZWFkaW5ncworUHJvdmlkZXNN YXR0ZXJzIDEKIERvY0Jvb2tSb290CWJvb2sKIAogQ2xhc3NPcHRpb25zCmRpZmYgLS1naXQgYS9s aWIvbHl4Mmx5eC9seXhfMl82LnB5IGIvbGliL2x5eDJseXgvbHl4XzJfNi5weQppbmRleCA1ZWVk NWNiZTA1Li5jMTIzZDFmYjY0IDEwMDY0NAotLS0gYS9saWIvbHl4Mmx5eC9seXhfMl82LnB5Cisr KyBiL2xpYi9seXgybHl4L2x5eF8yXzYucHkKQEAgLTE2MDAsNiArMTYwMCwzNSBAQCBkZWYgcmV2 ZXJ0X3BhcmZpbGxza2lwKGRvY3VtZW50KToKICAgICBpZiBwcmVhbWJsZSAhPSAiIjoKICAgICAg ICAgYWRkX3RvX3ByZWFtYmxlKGRvY3VtZW50LCBwcmVhbWJsZSkKIAorCitkZWYgcmV2ZXJ0X21h dHRlcnMoZG9jdW1lbnQpOgorICAgICIiIlJldmVydCBcXGZyb250bWF0dGVyLCBcXG1haW5tYXR0 ZXIgYW5kIFxcYmFja21hdHRlciB0byBFUlQiIiIKKworICAgIGZvciBtYXR0ZXIgaW4gWyJmcm9u dCIsICJtYWluIiwgImJhY2siXToKKyAgICAgICAgaSA9IDAKKyAgICAgICAgd2hpbGUgVHJ1ZToK KyAgICAgICAgICAgIGkgPSBmaW5kX3Rva2VuKGRvY3VtZW50LmJvZHksICJcXHN0YXJ0X29mX21h dHRlciAiICsgbWF0dGVyLCBpKQorICAgICAgICAgICAgaWYgaSA9PSAtMToKKyAgICAgICAgICAg ICAgICBicmVhaworICAgICAgICAgICAgCisgICAgICAgICAgICAjIEFkZCBFUlQKKyAgICAgICAg ICAgIGxheSA9IGdldF9jb250YWluaW5nX2xheW91dChkb2N1bWVudC5ib2R5LCBpKQorICAgICAg ICAgICAgaWYgbGF5ID09IEZhbHNlOgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lndhcm5pbmco Ik1hdHRlciBoYXMgbm8gbGF5b3V0ISIpCisgICAgICAgICAgICAgICAgaSArPSAxCisgICAgICAg ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGJlZ2xheSA9IGxheVsxXQorICAgICAgICAg ICAgZW5kbGF5ID0gZmluZF9lbmRfb2ZfbGF5b3V0KGRvY3VtZW50LmJvZHksIGJlZ2xheSkKKyAg ICAgICAgICAgIGlmIGVuZGxheSA9PSBGYWxzZToKKyAgICAgICAgICAgICAgICBkb2N1bWVudC53 YXJuaW5nKCJNYXR0ZXIgaGFzIG5vIGVuZGxheW91dCEiKQorICAgICAgICAgICAgICAgIGkgKz0g MQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxh eWIgPSBkb2N1bWVudC5ib2R5W2JlZ2xheV0KKyAgICAgICAgICAgIGxheWUgPSBkb2N1bWVudC5i b2R5W2VuZGxheV0KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHlbaSA6IGkgKyAxXSA9IHB1dF9j bWRfaW5fZXJ0KFsiXFwiICsgbWF0dGVyICsgIm1hdHRlciJdKSArIFsiIiwgbGF5ZSwgIiIsIGxh eWJdCisgICAgICAgICAgICBpICs9IDEKKwogIyMKICMgQ29udmVyc2lvbiBodWIKICMKQEAgLTE2 MTgsMTEgKzE2NDcsMTMgQEAgY29udmVydCA9IFsKICAgICBbNjUzLCBbXV0sCiAgICAgWzY1NCwg W11dLAogICAgIFs2NTUsIFtdXSwKLSAgICBbNjU2LCBbXV0KKyAgICBbNjU2LCBbXV0sCisgICAg WzY1NywgW11dCiBdCiAKIAogcmV2ZXJ0ID0gWworICAgIFs2NTYsIFtyZXZlcnRfbWF0dGVyc11d LAogICAgIFs2NTUsIFtyZXZlcnRfcGFyZmlsbHNraXBdXSwKICAgICBbNjU0LCBbcmV2ZXJ0X2hl eDMyY29sb3JzXV0sCiAgICAgWzY1MywgW3JldmVydF9taW50ZWRsYW5nc11dLApkaWZmIC0tZ2l0 IGEvbGliL2x5eDJseXgvcGFyc2VyX3Rvb2xzLnB5IGIvbGliL2x5eDJseXgvcGFyc2VyX3Rvb2xz LnB5CmluZGV4IDgzOWI5MjIyNzguLjNlM2RlOTkxMjUgMTAwNjQ0Ci0tLSBhL2xpYi9seXgybHl4 L3BhcnNlcl90b29scy5weQorKysgYi9saWIvbHl4Mmx5eC9wYXJzZXJfdG9vbHMucHkKQEAgLTY4 NCw2ICs2ODQsNyBAQCBkZWYgZ2V0X2NvbnRhaW5pbmdfbGF5b3V0KGxpbmVzLCBpKToKICAgICAg ICAgIlxcaW5kZW50LXRvZ2dsZSIsCiAgICAgICAgICJcXGxlZnRpbmRlbnQiLAogICAgICAgICAi XFxzdGFydF9vZl9hcHBlbmRpeCIsCisgICAgICAgICJcXHN0YXJ0X29mX21hdHRlciIsCiAgICAg ICAgICJcXHBhcmFncmFwaF9zcGFjaW5nIiwKICAgICAgICAgIlxcYWxpZ24iLAogICAgICAgICAi XFxsYWJlbHdpZHRoc3RyaW5nIiwKZGlmZiAtLWdpdCBhL2xpYi9zY3JpcHRzL2xheW91dDJsYXlv dXQucHkgYi9saWIvc2NyaXB0cy9sYXlvdXQybGF5b3V0LnB5CmluZGV4IGY1MDZiNWRlYjUuLmNi YWEwODkwNGIgMTAwNjQ0Ci0tLSBhL2xpYi9zY3JpcHRzL2xheW91dDJsYXlvdXQucHkKKysrIGIv bGliL3NjcmlwdHMvbGF5b3V0MmxheW91dC5weQpAQCAtOSw3ICs5LDcgQEAKICMgVGhpcyBzY3Jp cHQgd2lsbCB1cGRhdGUgYSAubGF5b3V0IGZpbGUgdG8gY3VycmVudCBmb3JtYXQKIAogIyBUaGUg bGF0ZXN0IGxheW91dCBmb3JtYXQgaXMgYWxzbyBkZWZpbmVkIGluIHNyYy9UZXh0Q2xhc3MuY3Bw Ci1jdXJyZW50Rm9ybWF0ID0gMTE5CitjdXJyZW50Rm9ybWF0ID0gMTIwCiAKIAogIyBJbmNyZW1l bnRlZCB0byBmb3JtYXQgNCwgNiBBcHJpbCAyMDA3LCBsYXNnb3V0dGVzCkBAIC00MDQsNiArNDA0 LDkgQEAgY3VycmVudEZvcm1hdCA9IDExOQogIyBOZXcgY2xhc3MgdGFncyBQYXJmaWxsc2tpcE5v bmUsIFBhcmZpbGxza2lwUXVhcnRlcgogIyBhbmQgUGFyZmlsbHNraXBUaGlyZAogCisjIEluY3Jl bWVudGVkIHRvIGZvcm1hdCAxMjAsIDMgQXVndXN0IDIwMjYgYnkgc3BpdHoKKyMgTmV3IGNsYXNz IHRhZyBQcm92aWRlc01hdHRlcnMKKwogIyBEbyBub3QgZm9yZ2V0IHRvIGRvY3VtZW50IGZvcm1h dCBjaGFuZ2UgaW4gQ3VzdG9taXphdGlvbgogIyBNYW51YWwgKHNlY3Rpb24gIkRlY2xhcmluZyBh IG5ldyB0ZXh0IGNsYXNzIikuCiAKQEAgLTc0Myw3ICs3NDYsNyBAQCBkZWYgY29udmVydChsaW5l cywgZW5kX2Zvcm1hdCk6CiAgICAgICAgICAgICAgICAgaSArPSAxCiAgICAgICAgICAgICBjb250 aW51ZQogCi0gICAgICAgIGlmIDEwMSA8PSBmb3JtYXQgPD0gMTE5OgorICAgICAgICBpZiAxMDEg PD0gZm9ybWF0IDw9IDEyMDoKICAgICAgICAgICAgICMgbm90aGluZyB0byBkby4KICAgICAgICAg ICAgIGkgKz0gMQogICAgICAgICAgICAgY29udGludWUKZGlmZiAtLWdpdCBhL2xpYi91aS9zdGRt ZW51cy5pbmMgYi9saWIvdWkvc3RkbWVudXMuaW5jCmluZGV4IGNlY2Y0NjE2YzMuLmVkYzczNmE2 MmEgMTAwNjQ0Ci0tLSBhL2xpYi91aS9zdGRtZW51cy5pbmMKKysrIGIvbGliL3VpL3N0ZG1lbnVz LmluYwpAQCAtNTY5LDYgKzU2OSw3IEBAIE1lbnVzZXQKIAkJSXRlbSAiTGFUZVggTG9nfEwiICJk aWFsb2ctc2hvdyBsYXRleGxvZyIKIAkJSXRlbSAiUHJvY2Vzc2luZyBFcnJvcnN8ciIgImVycm9y cy1zaG93IgogCQlJdGVtICJTdGFydCBBcHBlbmRpeCBIZXJlfHgiICJhcHBlbmRpeCIKKwkJT3B0 U3VibWVudSAiU3RhcnQgU3RydWN0dXJhbCBVbml0IEhlcmUiICJtYXR0ZXIiCiAJCVNlcGFyYXRv cgogCQlWaWV3Rm9ybWF0cwogCQlVcGRhdGVGb3JtYXRzCkBAIC01OTIsNiArNTkzLDEyIEBAIE1l bnVzZXQKIAkJSXRlbSAiU2hvdyBDaGFuZ2VzIGluIE91dHB1dHxTIiAiY2hhbmdlcy1vdXRwdXQi CiAJRW5kCiAKKwlNZW51ICJtYXR0ZXIiCisJCU9wdEl0ZW0gIkZyb250IE1hdHRlciIgIm1hdHRl ciBmcm9udCIKKwkJT3B0SXRlbSAiTWFpbiBNYXR0ZXIiICJtYXR0ZXIgbWFpbiIKKwkJT3B0SXRl bSAiQmFjayBNYXR0ZXIiICJtYXR0ZXIgYmFjayIKKwlFbmQKKwogIwogIyBOQVZJR0FURSBNRU5V CiAjCmRpZmYgLS1naXQgYS9zcmMvQnVmZmVyLmNwcCBiL3NyYy9CdWZmZXIuY3BwCmluZGV4IDg1 MTI0ZDBmMWYuLmUwZGJiMDY1OWIgMTAwNjQ0Ci0tLSBhL3NyYy9CdWZmZXIuY3BwCisrKyBiL3Ny Yy9CdWZmZXIuY3BwCkBAIC01NDA1LDYgKzU0MDUsMTEgQEAgdm9pZCBCdWZmZXI6OkltcGw6OnNl dExhYmVsKFBhckl0ZXJhdG9yICYgaXQsIFVwZGF0ZVR5cGUgdXR5cGUpIGNvbnN0CiAJfQogCXBh ci5wYXJhbXMoKS5hcHBlbmRpeChjb3VudGVycy5hcHBlbmRpeCgpKTsKIAorCWlmIChwYXIucGFy YW1zKCkuc3RhcnRPZk1hdHRlcigpICE9IE1BVFRFUl9OT05FKSB7CisJCWNvdW50ZXJzLm1haW5N YXR0ZXIocGFyLnBhcmFtcygpLnN0YXJ0T2ZNYXR0ZXIoKSA9PSBNQVRURVJfTUFJTik7CisJfQor CXBhci5wYXJhbXMoKS5tYWluTWF0dGVyKGNvdW50ZXJzLm1haW5NYXR0ZXIoKSk7CisKIAkvLyBD b21wdXRlIHRoZSBpdGVtIGRlcHRoIG9mIHRoZSBwYXJhZ3JhcGgKIAlwYXIuaXRlbWRlcHRoID0g Z2V0SXRlbURlcHRoKGl0KTsKIApAQCAtNTQ5NCw4ICs1NDk5LDEwIEBAIHZvaWQgQnVmZmVyOjpJ bXBsOjpzZXRMYWJlbChQYXJJdGVyYXRvciAmIGl0LCBVcGRhdGVUeXBlIHV0eXBlKSBjb25zdAog CQlkb2NzdHJpbmcgY29uc3QgJiBsY291bnRlciA9IGxheW91dC5jb3VudGVyOwogCQlpZiAoIWxj b3VudGVyLmVtcHR5KCkpIHsKIAkJCWlmIChsYXlvdXQudG9jbGV2ZWwgPD0gYnAuc2VjbnVtZGVw dGgKLQkJCQkJCSYmIChsYXlvdXQubGF0ZXh0eXBlICE9IExBVEVYX0VOVklST05NRU5UCi0JCQkJ CXx8IGl0LnRleHQoKS0+aXNGaXJzdEluU2VxdWVuY2UoaXQucGl0KCkpKSkgeworCQkJCQkmJiAo bGF5b3V0LmxhdGV4dHlwZSAhPSBMQVRFWF9FTlZJUk9OTUVOVAorCQkJCQkJfHwgaXQudGV4dCgp LT5pc0ZpcnN0SW5TZXF1ZW5jZShpdC5waXQoKSkpCisJCQkJCS8vIE5vIG51bWJlcmluZyBmb3Ig Y2hhcHRlcnMgb3V0c2lkZSBvZiBtYWluIG1hdHRlci4KKwkJCQkJJiYgKGxheW91dC50b2NsZXZl bCAhPSAwIHx8IHBhci5wYXJhbXMoKS5tYWluTWF0dGVyKCkpKSB7CiAJCQkJaWYgKGNvdW50ZXJz Lmhhc0NvdW50ZXIobGNvdW50ZXIpKQogCQkJCQljb3VudGVycy5zdGVwKGxjb3VudGVyLCB1dHlw ZSk7CiAJCQkJcGFyLnBhcmFtcygpLmxhYmVsU3RyaW5nKHBhci5leHBhbmRMYWJlbChsYXlvdXQs IGJwKSk7CmRpZmYgLS1naXQgYS9zcmMvQ291bnRlcnMuY3BwIGIvc3JjL0NvdW50ZXJzLmNwcApp bmRleCBhOTMyNzQ1NThhLi4xMmU2ODY3MTg3IDEwMDY0NAotLS0gYS9zcmMvQ291bnRlcnMuY3Bw CisrKyBiL3NyYy9Db3VudGVycy5jcHAKQEAgLTI1MCw3ICsyNTAsOCBAQCBDb3VudGVyOjpTdHJp bmdNYXAgJiBDb3VudGVyOjpmbGF0TGFiZWxTdHJpbmdzKGJvb2wgaW5fYXBwZW5kaXgpIGNvbnN0 CiB9CiAKIAotQ291bnRlcnM6OkNvdW50ZXJzKCkgOiBhcHBlbmRpeF8oZmFsc2UpLCBzdWJmbG9h dF8oZmFsc2UpLCBsb25ndGFibGVfKGZhbHNlKQorQ291bnRlcnM6OkNvdW50ZXJzKCkgOiBhcHBl bmRpeF8oZmFsc2UpLCBtYWluX21hdHRlcl8odHJ1ZSksIHN1YmZsb2F0XyhmYWxzZSksCisJbG9u Z3RhYmxlXyhmYWxzZSkKIHsKIAlsYXlvdXRfc3RhY2tfLnB1c2hfYmFjayhudWxscHRyKTsKIAlj b3VudGVyX3N0YWNrXy5wdXNoX2JhY2soZnJvbV9hc2NpaSgiIikpOwpAQCAtNDQ0LDYgKzQ0NSw3 IEBAIGRvY3N0cmluZyBjb25zdCAmIENvdW50ZXJzOjpsYXRleE5hbWUoZG9jc3RyaW5nIGNvbnN0 ICYgY250cikgY29uc3QKIHZvaWQgQ291bnRlcnM6OnJlc2V0KCkKIHsKIAlhcHBlbmRpeF8gPSBm YWxzZTsKKwltYWluX21hdHRlcl8gPSB0cnVlOwogCXN1YmZsb2F0XyA9IGZhbHNlOwogCWN1cnJl bnRfZmxvYXRfLmVyYXNlKCk7CiAJZm9yIChhdXRvICYgY3RyIDogY291bnRlckxpc3RfKQpkaWZm IC0tZ2l0IGEvc3JjL0NvdW50ZXJzLmggYi9zcmMvQ291bnRlcnMuaAppbmRleCBkNTIyYTdiNzU3 Li5lMTI2NWI4Y2NiIDEwMDY0NAotLS0gYS9zcmMvQ291bnRlcnMuaAorKysgYi9zcmMvQ291bnRl cnMuaApAQCAtMTYsNiArMTYsNyBAQAogI2RlZmluZSBDT1VOVEVSU19ICiAKICNpbmNsdWRlICJP dXRwdXRFbnVtcy5oIgorI2luY2x1ZGUgIkxheW91dEVudW1zLmgiCiAKICNpbmNsdWRlICJzdXBw b3J0L2RvY3N0cmluZy5oIgogCkBAIC0xNDksNiArMTUwLDggQEAgcHVibGljOgogCS8vLyBccmV0 dXJuIHRydWUgb24gc3VjY2VzcwogCWJvb2wgcmVhZChzdXBwb3J0OjpMZXhlciAmIGxleCwgZG9j c3RyaW5nIGNvbnN0ICYgbmFtZSwgYm9vbCBtYWtlbmV3KTsKIAkvLy8KKwl2b2lkIHNldEVuYWJs ZWQoZG9jc3RyaW5nIGNvbnN0ICYgY3RyLCBib29sIGNvbnN0IGVuYWJsZWQpOworCS8vLwogCXZv aWQgc2V0KGRvY3N0cmluZyBjb25zdCAmIGN0ciwgaW50IHZhbCk7CiAJLy8vCiAJdm9pZCBhZGR0 byhkb2NzdHJpbmcgY29uc3QgJiBjdHIsIGludCB2YWwpOwpAQCAtMjEwLDYgKzIxMywxMCBAQCBw dWJsaWM6CiAJYm9vbCBhcHBlbmRpeCgpIGNvbnN0IHsgcmV0dXJuIGFwcGVuZGl4XzsgfQogCS8v LyBTZXQgdGhlIHN0YXRlIHZhcmlhYmxlIGluZGljYXRpbmcgd2hldGhlciB3ZSBhcmUgaW4gYXBw ZW5kaXguCiAJdm9pZCBhcHBlbmRpeChib29sIGEpIHsgYXBwZW5kaXhfID0gYTsgfQorCS8vLyBB cmUgd2UgaW4gbWFpbiBtYXR0ZXI/CisJYm9vbCBtYWluTWF0dGVyKCkgY29uc3QgeyByZXR1cm4g bWFpbl9tYXR0ZXJfOyB9CisJLy8vIFNldCB0aGUgc3RhdGUgdmFyaWFibGUgaW5kaWNhdGluZyB3 aGV0aGVyIHdoaWNoIG1hdHRlciB3ZSBhcmUgaW4uCisJdm9pZCBtYWluTWF0dGVyKGJvb2wgbSkg eyBtYWluX21hdHRlcl8gPSBtOyB9CiAJLy8vIFJldHVybnMgdGhlIGN1cnJlbnQgZW5jbG9zaW5n IGZsb2F0LgogCXN0ZDo6c3RyaW5nIGNvbnN0ICYgY3VycmVudF9mbG9hdCgpIGNvbnN0IHsgcmV0 dXJuIGN1cnJlbnRfZmxvYXRfOyB9CiAJLy8vIFNldHMgdGhlIGN1cnJlbnQgZW5jbG9zaW5nIGZs b2F0LgpAQCAtMjc1LDYgKzI4Miw4IEBAIHByaXZhdGU6CiAJQ291bnRlckxpc3QgY291bnRlckxp c3RfOwogCS8vLyBBcmUgd2UgaW4gYW4gYXBwZW5kaXg/CiAJYm9vbCBhcHBlbmRpeF87CisJLy8v IEFyZSB3ZSBpbiB0aGUgbWFpbiBtYXR0ZXI/CisJYm9vbCBtYWluX21hdHRlcl87CiAJLy8vIFRo ZSBjdXJyZW50IGVuY2xvc2luZyBmbG9hdC4KIAlzdGQ6OnN0cmluZyBjdXJyZW50X2Zsb2F0XzsK IAkvLy8gQXJlIHdlIGluIGEgc3ViZmxvYXQ/CmRpZmYgLS1naXQgYS9zcmMvRnVuY0NvZGUuaCBi L3NyYy9GdW5jQ29kZS5oCmluZGV4IDRmNzg1OTZiOWMuLmQ4YWQ2OWU2N2IgMTAwNjQ0Ci0tLSBh L3NyYy9GdW5jQ29kZS5oCisrKyBiL3NyYy9GdW5jQ29kZS5oCkBAIC01MTYsNiArNTE2LDcgQEAg ZW51bSBGdW5jQ29kZQogCUxGVU5fRVJST1JfTkVYVCwgICAgICAgICAgICAgICAgLy8gc3BpdHog MjAyMDAxMDEsCiAJLy8vIDQwNQogCUxGVU5fQlVGRkVSX1VQREFURV9FWFRFUk5BTCwgICAgLy8g c3BpdHogMjAyNTA0MDYsCisJTEZVTl9NQVRURVIsICAgICAgICAgICAgICAgICAgICAvLyBzcGl0 ei9kYW5pZWwsIDIwMjYwODA1CiAJTEZVTl9MQVNUQUNUSU9OICAgICAgICAgICAgICAgICAvLyBl bmQgb2YgdGhlIHRhYmxlCiB9OwogCmRpZmYgLS1naXQgYS9zcmMvTGF5b3V0RW51bXMuaCBiL3Ny Yy9MYXlvdXRFbnVtcy5oCmluZGV4IDQ4ZTg0OWYxYTQuLjMyMTUzMTE4MDYgMTAwNjQ0Ci0tLSBh L3NyYy9MYXlvdXRFbnVtcy5oCisrKyBiL3NyYy9MYXlvdXRFbnVtcy5oCkBAIC0xNTgsNiArMTU4 LDE4IEBAIGVudW0gQXJnUGFzc1RocnUgewogCVBUX1RSVUUKIH07CiAKKy8vLworZW51bSBNYXR0 ZXIgeworCS8vLworCU1BVFRFUl9OT05FLAorCS8vLworCU1BVFRFUl9GUk9OVCwKKwkvLy8KKwlN QVRURVJfTUFJTiwKKwkvLy8KKwlNQVRURVJfQkFDSworfTsKKwogfSAvLyBuYW1lc3BhY2UgbHl4 CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL0x5WEFjdGlvbi5jcHAgYi9zcmMvTHlYQWN0aW9u LmNwcAppbmRleCBiZDljOWRmMDU0Li5mN2UxNzRlMWJmIDEwMDY0NAotLS0gYS9zcmMvTHlYQWN0 aW9uLmNwcAorKysgYi9zcmMvTHlYQWN0aW9uLmNwcApAQCAtMjk4LDYgKzI5OCwxNiBAQCB2b2lk IEx5WEFjdGlvbjo6aW5pdCgpCiAgKi8KIAkJeyBMRlVOX0FQUEVORElYLCAiYXBwZW5kaXgiLCBO b29wLCBFZGl0IH0sCiAKKy8qIQorICogXHZhciBseXg6OkZ1bmNDb2RlIGx5eDo6TEZVTl9NQVRU RVIKKyAqIFxsaSBBY3Rpb246IFN0YXJ0IChvciB1bnN0YXJ0KSBtYXR0ZXIgb24gdGhlIGdpdmVu IGN1cnNvciBwb3NpdGlvbi4KKyAqIFxsaSBTeW50YXg6IG1hdHRlciA8dHlwZT4KKyAqIFxsaSBQ YXJhbXM6IDx0eXBlPjogZnJvbnQsIG1haW4sIGJhY2suCisgKiBcbGkgT3JpZ2luOiBkYW5pZWwv c3BpdHosIDMgQXVnIDIwMjYKKyAqIFxlbmR2YXIKKyAqLworCQl7IExGVU5fTUFUVEVSLCAibWF0 dGVyIiwgTm9vcCwgRWRpdCB9LAorCiAKIC8qIQogICogXHZhciBseXg6OkZ1bmNDb2RlIGx5eDo6 TEZVTl9BUkdVTUVOVF9JTlNFUlQKZGlmZiAtLWdpdCBhL3NyYy9QYXJhZ3JhcGhQYXJhbWV0ZXJz LmNwcCBiL3NyYy9QYXJhZ3JhcGhQYXJhbWV0ZXJzLmNwcAppbmRleCAzMmRjNDQ5MDBiLi5lYzUw ZmFhZmRmIDEwMDY0NAotLS0gYS9zcmMvUGFyYWdyYXBoUGFyYW1ldGVycy5jcHAKKysrIGIvc3Jj L1BhcmFncmFwaFBhcmFtZXRlcnMuY3BwCkBAIC00MSw2ICs0MSw3IEBAIHN0YXRpYyBjaGFyIGNv bnN0ICogY29uc3Qgc3RyaW5nX2FsaWduW10gPSB7CiBQYXJhZ3JhcGhQYXJhbWV0ZXJzOjpQYXJh Z3JhcGhQYXJhbWV0ZXJzKCkKIAk6IG5vaW5kZW50XyhmYWxzZSksCiAJCXN0YXJ0X29mX2FwcGVu ZGl4XyhmYWxzZSksIGFwcGVuZGl4XyhmYWxzZSksCisJCXN0YXJ0X29mX21hdHRlcl8oTUFUVEVS X05PTkUpLCBtYWluX21hdHRlcl8odHJ1ZSksCiAJICBhbGlnbl8oTFlYX0FMSUdOX0xBWU9VVCks IGRlcHRoXygwKQoge30KIApAQCAtMTMyLDYgKzEzMywzMCBAQCB2b2lkIFBhcmFncmFwaFBhcmFt ZXRlcnM6OmFwcGVuZGl4KGJvb2wgYSkKIH0KIAogCitNYXR0ZXIgUGFyYWdyYXBoUGFyYW1ldGVy czo6c3RhcnRPZk1hdHRlcigpIGNvbnN0Cit7CisJcmV0dXJuIHN0YXJ0X29mX21hdHRlcl87Cit9 CisKKwordm9pZCBQYXJhZ3JhcGhQYXJhbWV0ZXJzOjpzdGFydE9mTWF0dGVyKE1hdHRlciBzb20p Cit7CisJc3RhcnRfb2ZfbWF0dGVyXyA9IHNvbTsKK30KKworCitib29sIFBhcmFncmFwaFBhcmFt ZXRlcnM6Om1haW5NYXR0ZXIoKSBjb25zdAoreworCXJldHVybiBtYWluX21hdHRlcl87Cit9CisK Kwordm9pZCBQYXJhZ3JhcGhQYXJhbWV0ZXJzOjptYWluTWF0dGVyKGJvb2wgbSkKK3sKKwltYWlu X21hdHRlcl8gPSBtOworfQorCisKIGRvY3N0cmluZyBjb25zdCAmIFBhcmFncmFwaFBhcmFtZXRl cnM6OmxhYmVsU3RyaW5nKCkgY29uc3QKIHsKIAlyZXR1cm4gbGFiZWxzdHJpbmdfOwpAQCAtMjA3 LDYgKzIzMiwxNSBAQCB2b2lkIFBhcmFncmFwaFBhcmFtZXRlcnM6OnJlYWQoTGV4ZXIgJiBsZXgs IGJvb2wgbWVyZ2UpCiAJCQlsZWZ0SW5kZW50KHZhbHVlKTsKIAkJfSBlbHNlIGlmICh0b2tlbiA9 PSAiXFxzdGFydF9vZl9hcHBlbmRpeCIpIHsKIAkJCXN0YXJ0T2ZBcHBlbmRpeCh0cnVlKTsKKwkJ fSBlbHNlIGlmICh0b2tlbiA9PSAiXFxzdGFydF9vZl9tYXR0ZXIiKSB7CisJCQlsZXgubmV4dCgp OworCQkJc3RyaW5nIGNvbnN0IHRtcCA9IHJ0cmltKGxleC5nZXRTdHJpbmcoKSk7CisJCQlpZiAo dG1wID09ICJmcm9udCIpCisJCQkJc3RhcnRPZk1hdHRlcihNQVRURVJfRlJPTlQpOworCQkJZWxz ZSBpZiAodG1wID09ICJtYWluIikKKwkJCQlzdGFydE9mTWF0dGVyKE1BVFRFUl9NQUlOKTsKKwkJ CWVsc2UgaWYgKHRtcCA9PSAiYmFjayIpCisJCQkJc3RhcnRPZk1hdHRlcihNQVRURVJfQkFDSyk7 CiAJCX0gZWxzZSBpZiAodG9rZW4gPT0gIlxccGFyYWdyYXBoX3NwYWNpbmciKSB7CiAJCQlsZXgu bmV4dCgpOwogCQkJc3RyaW5nIGNvbnN0IHRtcCA9IHJ0cmltKGxleC5nZXRTdHJpbmcoKSk7CkBA IC0yNjksNiArMzAzLDE4IEBAIHZvaWQgUGFyYWdyYXBoUGFyYW1ldGVyczo6d3JpdGUob3N0cmVh bSAmIG9zKSBjb25zdAogCWlmIChzdGFydE9mQXBwZW5kaXgoKSkKIAkJb3MgPDwgIlxcc3RhcnRf b2ZfYXBwZW5kaXhcbiI7CiAKKwkvLyBTdGFydCBvZiBmcm9udCBtYXR0ZXI/CisJaWYgKHN0YXJ0 T2ZNYXR0ZXIoKSAhPSBNQVRURVJfTk9ORSkgeworCQlzdHJpbmcgdG1wOworCQlpZiAoc3RhcnRP Zk1hdHRlcigpID09IE1BVFRFUl9GUk9OVCkKKwkJCXRtcCA9ICJmcm9udCI7CisJCWVsc2UgaWYg KHN0YXJ0T2ZNYXR0ZXIoKSA9PSBNQVRURVJfTUFJTikKKwkJCXRtcCA9ICJtYWluIjsKKwkJZWxz ZSBpZiAoc3RhcnRPZk1hdHRlcigpID09IE1BVFRFUl9CQUNLKQorCQkJdG1wID0gImJhY2siOwor CQlvcyA8PCAiXFxzdGFydF9vZl9tYXR0ZXIgIiA8PCB0bXAgPDwgIlxuIjsKKwl9CisKIAkvLyBO b2luZGVudD8KIAlpZiAobm9pbmRlbnQoKSkKIAkJb3MgPDwgIlxcbm9pbmRlbnRcbiI7CmRpZmYg LS1naXQgYS9zcmMvUGFyYWdyYXBoUGFyYW1ldGVycy5oIGIvc3JjL1BhcmFncmFwaFBhcmFtZXRl cnMuaAppbmRleCA1NDBlYTk1Njc5Li45ZmY0MmIwY2YyIDEwMDY0NAotLS0gYS9zcmMvUGFyYWdy YXBoUGFyYW1ldGVycy5oCisrKyBiL3NyYy9QYXJhZ3JhcGhQYXJhbWV0ZXJzLmgKQEAgLTYzLDYg KzYzLDE0IEBAIHB1YmxpYzoKIAkvLy8KIAl2b2lkIGFwcGVuZGl4KGJvb2wpOwogCS8vLworCU1h dHRlciBzdGFydE9mTWF0dGVyKCkgY29uc3Q7CisJLy8vCisJdm9pZCBzdGFydE9mTWF0dGVyKE1h dHRlcik7CisJLy8vCisJYm9vbCBtYWluTWF0dGVyKCkgY29uc3Q7CisJLy8vCisJdm9pZCBtYWlu TWF0dGVyKGJvb2wpOworCS8vLwogCWRvY3N0cmluZyBjb25zdCAmIGxhYmVsU3RyaW5nKCkgY29u c3Q7CiAJLy8vCiAJdm9pZCBsYWJlbFN0cmluZyhkb2NzdHJpbmcgY29uc3QgJik7CkBAIC0xMDIs NiArMTEwLDEwIEBAIHByaXZhdGU6CiAJLy8vCiAJYm9vbCBhcHBlbmRpeF87CiAJLy8vCisJTWF0 dGVyIHN0YXJ0X29mX21hdHRlcl87CisJLy8vCisJYm9vbCBtYWluX21hdHRlcl87CisJLy8vCiAJ THlYQWxpZ25tZW50IGFsaWduXzsKIAkvLy8KIAlkZXB0aF90eXBlIGRlcHRoXzsKZGlmZiAtLWdp dCBhL3NyYy9Sb3dQYWludGVyLmNwcCBiL3NyYy9Sb3dQYWludGVyLmNwcAppbmRleCA2ZDJkZDVl YzY1Li44YTZhNWE2ODAwIDEwMDY0NAotLS0gYS9zcmMvUm93UGFpbnRlci5jcHAKKysrIGIvc3Jj L1Jvd1BhaW50ZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUGFyYWdyYXBoTGlz dC5oIgogI2luY2x1ZGUgIlBhcmFncmFwaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJUZXh0Lmgi CisjaW5jbHVkZSAiVGV4dENsYXNzLmgiCiAjaW5jbHVkZSAiVGV4dE1ldHJpY3MuaCIKIAogI2lu Y2x1ZGUgImZyb250ZW5kcy9Gb250TWV0cmljcy5oIgpAQCAtMzI0LDEyICszMjUsMTQgQEAgdm9p ZCBSb3dQYWludGVyOjpwYWludENoYW5nZUJhcigpIGNvbnN0CiB2b2lkIFJvd1BhaW50ZXI6OnBh aW50QXBwZW5kaXgoKSBjb25zdAogewogCS8vIG9ubHkgZHJhdyB0aGUgYXBwZW5kaXggZnJhbWUg b25jZSAoZm9yIHRoZSBtYWluIHRleHQpCi0JaWYgKCFwYXJfLnBhcmFtcygpLmFwcGVuZGl4KCkg fHwgIXRleHRfLmlzTWFpblRleHQoKSkKKwlpZiAoKCFwYXJfLnBhcmFtcygpLmFwcGVuZGl4KCkg JiYgcGFyXy5wYXJhbXMoKS5tYWluTWF0dGVyKCkpCisJICAgIHx8ICF0ZXh0Xy5pc01haW5UZXh0 KCkpCiAJCXJldHVybjsKIAogCWludCB5ID0geW9fIC0gcm93Xy5hc2NlbnQoKTsKIAotCWlmIChw YXJfLnBhcmFtcygpLnN0YXJ0T2ZBcHBlbmRpeCgpKQorCWlmIChwYXJfLnBhcmFtcygpLnN0YXJ0 T2ZBcHBlbmRpeCgpCisJICAgIHx8IHBhcl8ucGFyYW1zKCkuc3RhcnRPZk1hdHRlcigpICE9IE1B VFRFUl9OT05FKQogCQl5ICs9IDIgKiBkZWZhdWx0Um93SGVpZ2h0KCk7CiAKIAlwaV8ucGFpbi5s aW5lKDEsIHksIDEsIHlvXyArIHJvd18uZGVzY2VudCgpLCBDb2xvcl9hcHBlbmRpeCk7CkBAIC0z ODEsNyArMzg0LDcgQEAgdm9pZCBSb3dQYWludGVyOjpwYWludERlcHRoQmFyKCkgY29uc3QKIH0K IAogCi12b2lkIFJvd1BhaW50ZXI6OnBhaW50QXBwZW5kaXhTdGFydChpbnQgeSkgY29uc3QKK3Zv aWQgUm93UGFpbnRlcjo6cGFpbnRNYXR0ZXJTdGFydChpbnQgeSwgZG9jc3RyaW5nIGNvbnN0ICYg bGFiZWwpIGNvbnN0CiB7CiAJRm9udEluZm8gcGJfZm9udCA9IHNhbmVfZm9udDsKIAlwYl9mb250 LnNldENvbG9yKENvbG9yX2FwcGVuZGl4KTsKQEAgLTM5MSw3ICszOTQsNiBAQCB2b2lkIFJvd1Bh aW50ZXI6OnBhaW50QXBwZW5kaXhTdGFydChpbnQgeSkgY29uc3QKIAlpbnQgYSA9IDA7CiAJaW50 IGQgPSAwOwogCi0JZG9jc3RyaW5nIGNvbnN0IGxhYmVsID0gXygiQXBwZW5kaXgiKTsKIAl0aGVG b250TWV0cmljcyhwYl9mb250KS5yZWN0VGV4dChsYWJlbCwgdywgYSwgZCk7CiAKIAlpbnQgY29u c3QgdGV4dF9zdGFydCA9IGludCh4b18gKyAodG1fLndpZHRoKCkgLSB3KSAvIDIpOwpAQCAtNDIz LDIxICs0MjUsNDYgQEAgdm9pZCBSb3dQYWludGVyOjpwYWludFRvb0xhcmdlTWFya3MoYm9vbCBj b25zdCBsZWZ0LCBib29sIGNvbnN0IHJpZ2h0KSBjb25zdAogCiB2b2lkIFJvd1BhaW50ZXI6OnBh aW50Rmlyc3QoKSBjb25zdAogeworCUxheW91dCBjb25zdCAmIFRPQ0xheW91dCA9IHBpXy5iYXNl LmJ2LT5idWZmZXIoKS5wYXJhbXMoKS5kb2N1bWVudENsYXNzKCkuZ2V0VE9DTGF5b3V0KCk7CiAJ TGF5b3V0IGNvbnN0ICYgbGF5b3V0ID0gcGFyXy5sYXlvdXQoKTsKIAorCWRvY3N0cmluZyBsYWJl bDsKIAkvLyBzdGFydCBvZiBhcHBlbmRpeD8KIAlpZiAocGFyXy5wYXJhbXMoKS5zdGFydE9mQXBw ZW5kaXgoKSkKLQkgICAgcGFpbnRBcHBlbmRpeFN0YXJ0KHlvXyAtIHJvd18uYXNjZW50KCkgKyAy ICogZGVmYXVsdFJvd0hlaWdodCgpKTsKKwkJbGFiZWwgPSBfKCJBcHBlbmRpeCIpOworCS8vIHN0 YXJ0IG9mIG1hdHRlcj8KKwlpZiAocGFyXy5wYXJhbXMoKS5zdGFydE9mTWF0dGVyKCkgIT0gTUFU VEVSX05PTkUpIHsKKwkJaWYgKCFsYWJlbC5lbXB0eSgpKQorCQkJbGFiZWwgKz0gIiAmICI7CisJ CXN3aXRjaCAocGFyXy5wYXJhbXMoKS5zdGFydE9mTWF0dGVyKCkpIHsKKwkJCWNhc2UgTUFUVEVS X0ZST05UOgorCQkJCWxhYmVsICs9IF8oIkZyb250IE1hdHRlciIpOworCQkJCWJyZWFrOworCQkJ Y2FzZSBNQVRURVJfTUFJTjoKKwkJCQlsYWJlbCArPSBfKCJNYWluIE1hdHRlciIpOworCQkJCWJy ZWFrOworCQkJY2FzZSBNQVRURVJfQkFDSzoKKwkJCQlsYWJlbCArPSBfKCJCYWNrIE1hdHRlciIp OworCQkJCWJyZWFrOworCQl9CisJCS8vIE1hdHRlcnMgYXJlIHN1cHBvcnRlZCBvbmx5IGJ5IGJv b2sgKHNlY3Rpb25pbmcgdG9wbGV2ZWwgMCkKKwkJaWYgKFRPQ0xheW91dC50b2NsZXZlbCAhPSAw KQorCQkJbGFiZWwgKz0gXygiIChTZW5zZWxlc3MhISEpIik7CisJfQorCWlmICghbGFiZWwuZW1w dHkoKSkKKwkJcGFpbnRNYXR0ZXJTdGFydCh5b18gLSByb3dfLmFzY2VudCgpICsgMiAqIGRlZmF1 bHRSb3dIZWlnaHQoKSwgbGFiZWwpOwogCiAJYm9vbCBjb25zdCBpc19maXJzdCA9CiAJCXRleHRf LmlzRmlyc3RJblNlcXVlbmNlKHJvd18ucGl0KCkpIHx8ICFsYXlvdXQuaXNQYXJhZ3JhcGhHcm91 cCgpOwogCS8vbHl4ZXJyIDw8ICJwYWludEZpcnN0OiAiIDw8IHBhcl8uaWQoKSA8PCAiIGlzX3Nl cTogIiA8PCBpc19zZXEgPDwgZW5kbDsKIAotCWlmIChsYXlvdXQubGFiZWxJc0lubGluZSgpCi0J ICAgICYmIChsYXlvdXQubGFiZWx0eXBlICE9IExBQkVMX1NUQVRJQyB8fCBpc19maXJzdCkpCi0J CXBhaW50TGFiZWwoKTsKLQllbHNlIGlmIChpc19maXJzdCAmJiBsYXlvdXQubGFiZWxJc0Fib3Zl KCkpCi0JCXBhaW50VG9wTGV2ZWxMYWJlbCgpOworCWlmIChwYXJfLmxheW91dCgpLnRvY2xldmVs ICE9IDAgfHwgcGFyXy5wYXJhbXMoKS5tYWluTWF0dGVyKCkpIHsKKwkJaWYgKGxheW91dC5sYWJl bElzSW5saW5lKCkKKwkJCSYmIChsYXlvdXQubGFiZWx0eXBlICE9IExBQkVMX1NUQVRJQyB8fCBp c19maXJzdCkpCisJCQlwYWludExhYmVsKCk7CisJCWVsc2UgaWYgKGlzX2ZpcnN0ICYmIGxheW91 dC5sYWJlbElzQWJvdmUoKSkKKwkJCXBhaW50VG9wTGV2ZWxMYWJlbCgpOworCX0KIH0KIAogCmRp ZmYgLS1naXQgYS9zcmMvUm93UGFpbnRlci5oIGIvc3JjL1Jvd1BhaW50ZXIuaAppbmRleCA5MThm YzlmOTg5Li5jZTc3NTU0YWM1IDEwMDY0NAotLS0gYS9zcmMvUm93UGFpbnRlci5oCisrKyBiL3Ny Yy9Sb3dQYWludGVyLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIAl2b2lkIHBhaW50VGV4 dERlY29yYXRpb24oUm93OjpFbGVtZW50IGNvbnN0ICYgZSkgY29uc3Q7CiAJdm9pZCBwYWludE1p c3NwZWxsZWRNYXJrKFJvdzo6RWxlbWVudCBjb25zdCAmIGUpIGNvbnN0OwogCXZvaWQgcGFpbnRD aGFuZ2UoUm93OjpFbGVtZW50IGNvbnN0ICYgZSkgY29uc3Q7Ci0Jdm9pZCBwYWludEFwcGVuZGl4 U3RhcnQoaW50IHkpIGNvbnN0OworCXZvaWQgcGFpbnRNYXR0ZXJTdGFydChpbnQgeSwgZG9jc3Ry aW5nIGNvbnN0ICYgbGFiZWwpIGNvbnN0OwogCXZvaWQgcGFpbnRJbnNldChSb3c6OkVsZW1lbnQg Y29uc3QgJiBlKSBjb25zdDsKIAogCS8vLyByZXR1cm4gdGhlIGxhYmVsIGZvbnQgZm9yIHRoaXMg cm93IChlbmQgbGFiZWwgd2hlbiBcYyBlbmQgaXMgdHJ1ZSkKZGlmZiAtLWdpdCBhL3NyYy9UZXh0 LmNwcCBiL3NyYy9UZXh0LmNwcAppbmRleCAyMmUxYzJjODdiLi4wYThiZTgzNGZlIDEwMDY0NAot LS0gYS9zcmMvVGV4dC5jcHAKKysrIGIvc3JjL1RleHQuY3BwCkBAIC03OTgsOSArNzk4LDExIEBA IHN0YXRpYyB2b2lkIGJyZWFrUGFyYWdyYXBoKFRleHQgJiB0ZXh0LCBwaXRfdHlwZSBwYXJfb2Zm c2V0LCBwb3NfdHlwZSBwb3MsCiAKIAlpZiAoIWlzZW1wdHkpIHsKIAkJYm9vbCBjb25zdCBzb2Eg PSBwYXIucGFyYW1zKCkuc3RhcnRPZkFwcGVuZGl4KCk7CisJCU1hdHRlciBjb25zdCBzb20gPSBw YXIucGFyYW1zKCkuc3RhcnRPZk1hdHRlcigpOwogCQlwYXIucGFyYW1zKCkuY2xlYXIoKTsKIAkJ Ly8gZG8gbm90IGxvc2Ugc3RhcnQgb2YgYXBwZW5kaXggbWFya2VyIChidWcgNDIxMikKIAkJcGFy LnBhcmFtcygpLnN0YXJ0T2ZBcHBlbmRpeChzb2EpOworCQlwYXIucGFyYW1zKCkuc3RhcnRPZk1h dHRlcihzb20pOwogCQlwYXIuc2V0UGxhaW5PckRlZmF1bHRMYXlvdXQoYnBhcmFtcy5kb2N1bWVu dENsYXNzKCkpOwogCX0KIApAQCAtMzI5NCwxMCArMzI5NiwxMyBAQCBib29sIFRleHQ6OmRlbGV0 ZUVtcHR5UGFyYWdyYXBoTWVjaGFuaXNtKEN1cnNvciAmIGN1ciwKIAkgICAgICAgICAgICAgICBt aW4ob2xkLnBpdCgpICsgMSwgb2xkLmxhc3RwaXQoKSkpOwogCVBhcmFncmFwaExpc3QgJiBwbGlz dCA9IG9sZC50ZXh0KCktPnBhcmFncmFwaHMoKTsKIAlib29sIGNvbnN0IHNvYSA9IG9sZHBhci5w YXJhbXMoKS5zdGFydE9mQXBwZW5kaXgoKTsKKwlNYXR0ZXIgY29uc3Qgc29tID0gb2xkcGFyLnBh cmFtcygpLnN0YXJ0T2ZNYXR0ZXIoKTsKIAlwbGlzdC5lcmFzZShwbGlzdC5pdGVyYXRvcl9hdChv bGQucGl0KCkpKTsKIAkvLyBkbyBub3QgbG9zZSBzdGFydCBvZiBhcHBlbmRpeCBtYXJrZXIgKGJ1 ZyA0MjEyKQogCWlmIChzb2EgJiYgb2xkLnBpdCgpIDwgcGl0X3R5cGUocGxpc3Quc2l6ZSgpKSkK IAkJcGxpc3Rbb2xkLnBpdCgpXS5wYXJhbXMoKS5zdGFydE9mQXBwZW5kaXgodHJ1ZSk7CisJaWYg KHNvbSAhPSBNQVRURVJfTk9ORSAmJiBvbGQucGl0KCkgPCBwaXRfdHlwZShwbGlzdC5zaXplKCkp KQorCQlwbGlzdFtvbGQucGl0KCldLnBhcmFtcygpLnN0YXJ0T2ZNYXR0ZXIoc29tKTsKIAogCS8v IHNlZSAjd2FybmluZyAoRklYTUU/KSBhYm92ZQogCWlmIChjdXIuZGVwdGgoKSA+PSBvbGQuZGVw dGgoKSkgewpAQCAtNDEzNSw2ICs0MTQwLDI3IEBAIHZvaWQgVGV4dDo6ZGlzcGF0Y2goQ3Vyc29y ICYgY3VyLCBGdW5jUmVxdWVzdCAmIGNtZCkKIAkJYnJlYWs7CiAJfQogCisJY2FzZSBMRlVOX01B VFRFUjogeworCQlQYXJhZ3JhcGggJiBwYXIgPSBjdXIucGFyYWdyYXBoKCk7CisJCWRvY3N0cmlu ZyBjb25zdCAmIGFyZyA9IGNtZC5hcmd1bWVudCgpOworCQlNYXR0ZXIgc3RhcnQgPSBNQVRURVJf Tk9ORTsKKwkJaWYgKGFyZyA9PSAiZnJvbnQiKSB7CisJCQlzdGFydCA9IHBhci5wYXJhbXMoKS5z dGFydE9mTWF0dGVyKCkgPT0gTUFUVEVSX0ZST05UCisJCQkJCQkgICA/IE1BVFRFUl9OT05FIDog TUFUVEVSX0ZST05UOworCQl9IGVsc2UgaWYgKGFyZyA9PSAibWFpbiIpIHsKKwkJCXN0YXJ0ID0g cGFyLnBhcmFtcygpLnN0YXJ0T2ZNYXR0ZXIoKSA9PSBNQVRURVJfTUFJTgorCQkJCQkJICAgPyBN QVRURVJfTk9ORSA6IE1BVFRFUl9NQUlOOworCQl9IGVsc2UgaWYgKGFyZyA9PSAiYmFjayIpIHsK KwkJCXN0YXJ0ID0gcGFyLnBhcmFtcygpLnN0YXJ0T2ZNYXR0ZXIoKSA9PSBNQVRURVJfQkFDSwor CQkJCQkJICAgPyBNQVRURVJfTk9ORSA6IE1BVFRFUl9CQUNLOworCQl9CisJCWN1ci5yZWNvcmRV bmRvKCk7CisJCXBhci5wYXJhbXMoKS5zdGFydE9mTWF0dGVyKHN0YXJ0KTsKKwkJLy8gd2UgY2Fu IHNldCB0aGUgcmVmcmVzaGluZyBwYXJhbWV0ZXJzIG5vdworCQljdXIuZm9yY2VCdWZmZXJVcGRh dGUoKTsKKwkJYnJlYWs7CisJfQorCiAJY2FzZSBMRlVOX1dPUkRfREVMRVRFX0ZPUldBUkQ6CiAJ CWlmIChjdXIuc2VsZWN0aW9uKCkpCiAJCQljdXRTZWxlY3Rpb24oY3VyLCBmYWxzZSk7CkBAIC02 Mzk2LDYgKzY0MjIsMjQgQEAgYm9vbCBUZXh0OjpnZXRTdGF0dXMoQ3Vyc29yICYgY3VyLCBGdW5j UmVxdWVzdCBjb25zdCAmIGNtZCwKIAkJc3RhdHVzLnNldE9uT2ZmKGN1ci5wYXJhZ3JhcGgoKS5w YXJhbXMoKS5zdGFydE9mQXBwZW5kaXgoKSk7CiAJCWJyZWFrOwogCisJY2FzZSBMRlVOX01BVFRF UjoKKwkJaWYgKCFjdXIuYnVmZmVyKCktPnBhcmFtcygpLmRvY3VtZW50Q2xhc3MoKS5oYXNNYXR0 ZXJzKCkpIHsKKwkJCWVuYWJsZSA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKwkJLy8gRklYTUUg V2UgcmVhbGx5IHNob3VsZCBub3QgYWxsb3cgdGhpcyB0byBiZSBwdXQsIGUuZy4sCisJCS8vIGlu IGEgZm9vdG5vdGUsIG9yIGluIEVSVC4gQnV0IGl0IHdvdWxkIG1ha2Ugc2Vuc2UgaW4gYQorCQkv LyBicmFuY2gsIHNvIEknbSBub3Qgc3VyZSB3aGF0IHRvIGRvLgorCQlpZiAoY21kLmFyZ3VtZW50 KCkgPT0gImZyb250IikKKwkJCXN0YXR1cy5zZXRPbk9mZihjdXIucGFyYWdyYXBoKCkucGFyYW1z KCkuc3RhcnRPZk1hdHRlcigpID09IE1BVFRFUl9GUk9OVCk7CisJCWVsc2UgaWYgKGNtZC5hcmd1 bWVudCgpID09ICJtYWluIikKKwkJCXN0YXR1cy5zZXRPbk9mZihjdXIucGFyYWdyYXBoKCkucGFy YW1zKCkuc3RhcnRPZk1hdHRlcigpID09IE1BVFRFUl9NQUlOKTsKKwkJZWxzZSBpZiAoY21kLmFy Z3VtZW50KCkgPT0gImJhY2siKQorCQkJc3RhdHVzLnNldE9uT2ZmKGN1ci5wYXJhZ3JhcGgoKS5w YXJhbXMoKS5zdGFydE9mTWF0dGVyKCkgPT0gTUFUVEVSX0JBQ0spOworCQllbHNlCisJCQllbmFi bGUgPSBmYWxzZTsKKwkJYnJlYWs7CisKIAljYXNlIExGVU5fRElBTE9HX1NIT1dfTkVXX0lOU0VU OgogCQlpZiAoY21kLmFyZ3VtZW50KCkgPT0gImJpYml0ZW0iKQogCQkJY29kZSA9IEJJQklURU1f Q09ERTsKZGlmZiAtLWdpdCBhL3NyYy9UZXh0Q2xhc3MuY3BwIGIvc3JjL1RleHRDbGFzcy5jcHAK aW5kZXggZDkwODQ3M2FmZi4uYzA0Nzc1MzNlMyAxMDA2NDQKLS0tIGEvc3JjL1RleHRDbGFzcy5j cHAKKysrIGIvc3JjL1RleHRDbGFzcy5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIGx5 eCB7CiAvLyBZb3Ugc2hvdWxkIGFsc28gcnVuIHRoZSBkZXZlbG9wbWVudC90b29scy91cGRhdGVs YXlvdXRzLnB5IHNjcmlwdCwKIC8vIHRvIHVwZGF0ZSB0aGUgZm9ybWF0IG9mIGFsbCBvZiBvdXIg bGF5b3V0IGZpbGVzLgogLy8KLWludCBjb25zdCBMQVlPVVRfRk9STUFUID0gMTE5OyAvLyBzcGl0 ejogUGFyZmlsbFNraXAKK2ludCBjb25zdCBMQVlPVVRfRk9STUFUID0gMTIwOyAvLyBzcGl0ejog UHJvdmlkZXNNYXR0ZXJzCiAKIAogLy8gTGF5b3V0IGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgbHl4 IGZpbGUgZm9ybWF0LiBDb250cm9scyB3aGljaCBmb3JtYXQgaXMKQEAgLTE0Miw3ICsxNDIsNyBA QCBUZXh0Q2xhc3M6OlRleHRDbGFzcygpCiAJICBjb2x1bW5zXygxKSwgc2lkZXNfKE9uZVNpZGUp LCBzZWNudW1kZXB0aF8oMyksIHRvY2RlcHRoXygzKSwgb3V0cHV0VHlwZV8oTEFURVgpLAogCSAg b3V0cHV0Rm9ybWF0XygibGF0ZXgiKSwgaGFzX291dHB1dF9mb3JtYXRfKGZhbHNlKSwgZGVmYXVs dGZvbnRfKHNhbmVfZm9udCksIAogCSAgdGl0bGV0eXBlXyhUSVRMRV9DT01NQU5EX0FGVEVSKSwg dGl0bGVuYW1lXygibWFrZXRpdGxlIiksCi0JICBtaW5fdG9jbGV2ZWxfKDApLCBtYXhfdG9jbGV2 ZWxfKDApLCBtYXhjaXRlbmFtZXNfKDIpLAorCSAgbWluX3RvY2xldmVsXygwKSwgbWF4X3RvY2xl dmVsXygwKSwgaGFzX21hdHRlcnNfKGZhbHNlKSwgbWF4Y2l0ZW5hbWVzXygyKSwKIAkgIGNpdGVf ZnVsbF9hdXRob3JfbGlzdF8odHJ1ZSksIGJpYmludG9jXyhmYWxzZSkKIHt9CiAKQEAgLTE4NSw2 ICsxODUsNyBAQCBlbnVtIFRleHRDbGFzc1RhZ3MgewogCVRDX0RFRkFVTFRGT05ULAogCVRDX1NF Q05VTURFUFRILAogCVRDX1RPQ0RFUFRILAorCVRDX1BST1ZJREVTTUFUVEVSUywKIAlUQ19DTEFT U09QVElPTlMsCiAJVENfU1BFQ0lBTENIQVJTLAogCVRDX1BSRUFNQkxFLApAQCAtMjc4LDYgKzI3 OSw3IEBAIExleGVyS2V5d29yZCB0ZXh0Q2xhc3NUYWdzW10gPSB7CiAJeyAicHJlYW1ibGUiLCAg ICAgICAgICBUQ19QUkVBTUJMRSB9LAogCXsgInByb3ZpZGVpbnNldGxheW91dCIsIFRDX1BST1ZJ REVJTlNFVExBWU9VVCB9LAogCXsgInByb3ZpZGVzIiwgICAgICAgICAgVENfUFJPVklERVMgfSwK Kwl7ICJwcm92aWRlc21hdHRlcnMiLCAgIFRDX1BST1ZJREVTTUFUVEVSUyB9LAogCXsgInByb3Zp ZGVzbW9kdWxlIiwgICAgVENfUFJPVklERVNNT0RVTEUgfSwKIAl7ICJwcm92aWRlc3R5bGUiLCAg ICAgIFRDX1BST1ZJREVTVFlMRSB9LAogCXsgInJlcXVpcmVzIiwgICAgICAgICAgVENfUkVRVUlS RVMgfSwKQEAgLTY2MSw2ICs2NjMsMTEgQEAgVGV4dENsYXNzOjpSZXR1cm5WYWx1ZXMgVGV4dENs YXNzOjpyZWFkKExleGVyICYgbGV4cmMsIFJlYWRUeXBlIHJ0KQogCQkJdG9jZGVwdGhfID0gbGV4 cmMuZ2V0SW50ZWdlcigpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUQ19QUk9WSURFU01BVFRFUlM6 CisJCQlpZiAobGV4cmMubmV4dCgpKQorCQkJCWhhc19tYXR0ZXJzXyA9IGxleHJjLmdldEJvb2wo KTsKKwkJCWJyZWFrOworCiAJCS8vIEZpcnN0IHN0ZXAgdG8gc3VwcG9ydCBvcHRpb25zCiAJCWNh c2UgVENfQ0xBU1NPUFRJT05TOgogCQkJcmVhZENsYXNzT3B0aW9ucyhsZXhyYyk7CmRpZmYgLS1n aXQgYS9zcmMvVGV4dENsYXNzLmggYi9zcmMvVGV4dENsYXNzLmgKaW5kZXggZjc2NzNiMTBkOC4u ZThiZjBkNzY4ZSAxMDA2NDQKLS0tIGEvc3JjL1RleHRDbGFzcy5oCisrKyBiL3NyYy9UZXh0Q2xh c3MuaApAQCAtMjA5LDYgKzIwOSw4IEBAIHB1YmxpYzoKIAlzdGQ6OnN0cmluZyBjb25zdCAmIG91 dHB1dEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG91dHB1dEZvcm1hdF87IH0KIAkvLy8gRG9lcyB0 aGlzIGNsYXNzIHJlZGVmaW5lIHRoZSBvdXRwdXQgZm9ybWF0PwogCWJvb2wgaGFzT3V0cHV0Rm9y bWF0KCkgY29uc3QgeyByZXR1cm4gaGFzX291dHB1dF9mb3JtYXRfOyB9CisJLy8vIERvZXMgdGhp cyBjbGFzcyBwcm92aWRlIFxmb3JudG1hdHRlciwgXG1haW5tYXR0ZXIsIGFuZCBcYmFja21hdHRl cj8KKwlib29sIGhhc01hdHRlcnMoKSBjb25zdCB7IHJldHVybiBoYXNfbWF0dGVyc187IH0KIAkv Ly8gUmV0dXJuIHRoZSBub24tbG9jYWxpc2VkIG5hbWVzIGZvciB0aGUgdG9jIHR5cGVzLgogCXN0 ZDo6bWFwPHN0ZDo6c3RyaW5nLCBkb2NzdHJpbmc+IGNvbnN0ICYKIAkJb3V0bGluZXJOYW1lcygp IGNvbnN0IHsgcmV0dXJuIG91dGxpbmVyX25hbWVzXzsgfQpAQCAtMzY4LDYgKzM3MCw4IEBAIHBy b3RlY3RlZDoKIAlpbnQgbWluX3RvY2xldmVsXzsKIAkvLy8gVGhlIG1heGltYWwgVG9jTGV2ZWwg b2Ygc2VjdGlvbmluZyBsYXlvdXRzCiAJaW50IG1heF90b2NsZXZlbF87CisJLy8vIERvZXMgdGhp cyBjbGFzcyBwcm92aWRlIFxmcm9udG1hdHRlciwgXG1haW5tYXR0ZXIsIGFuZCBcYmFja21hdHRl cj8KKwlib29sIGhhc19tYXR0ZXJzXzsKIAkvLy8gQ2l0YXRpb24gZm9ybWF0dGluZyBpbmZvcm1h dGlvbgogCXN0ZDo6bWFwPENpdGVFbmdpbmVUeXBlLCBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3Rk OjpzdHJpbmc+ID4gY2l0ZV9mb3JtYXRzXzsKIAkvLy8gQ2l0YXRpb24gbWFjcm9zCmRpZmYgLS1n aXQgYS9zcmMvVGV4dE1ldHJpY3MuY3BwIGIvc3JjL1RleHRNZXRyaWNzLmNwcAppbmRleCBmZTRm Nzc1ODA5Li4wNmUzZmNlMmRiIDEwMDY0NAotLS0gYS9zcmMvVGV4dE1ldHJpY3MuY3BwCisrKyBi L3NyYy9UZXh0TWV0cmljcy5jcHAKQEAgLTEzMDksMTQgKzEzMDksMTUgQEAgaW50IFRleHRNZXRy aWNzOjpwYXJUb3BTcGFjaW5nKHBpdF90eXBlIGNvbnN0IHBpdCkgY29uc3QKIAkJICAgICAgICAm JiBwYXJzW3BpdCAtIDFdLmdldERlcHRoKCkgPT0gMCkpKSB7CiAJCWFzYyArPSBicGFyYW1zLmdl dERlZlNraXAoKS5pblBpeGVscygqYnZfKTsKIAl9Ci0KLQlpZiAocGFyLnBhcmFtcygpLnN0YXJ0 T2ZBcHBlbmRpeCgpKQorCS8vIGV4dHJhIHJvdyBoZWlnaHQgZm9yIHN0YXJ0IG9mIGFwcGVuZGl4 IGFuZCBtYXR0ZXJzCisJaWYgKHBhci5wYXJhbXMoKS5zdGFydE9mQXBwZW5kaXgoKSB8fCBwYXIu cGFyYW1zKCkuc3RhcnRPZk1hdHRlcigpICE9IE1BVFRFUl9OT05FKQogCQlhc2MgKz0gaW50KDMg KiBkaCk7CiAKIAkvLyBzcGVjaWFsIGNvZGUgZm9yIHRoZSB0b3AgbGFiZWwKIAlpZiAobGF5b3V0 LmxhYmVsSXNBYm92ZSgpCiAJICAgICYmICghbGF5b3V0LmlzUGFyYWdyYXBoR3JvdXAoKSB8fCB0 ZXh0Xy0+aXNGaXJzdEluU2VxdWVuY2UocGl0KSkKLQkgICAgJiYgIXBhci5sYWJlbFN0cmluZygp LmVtcHR5KCkpIHsKKwkgICAgJiYgIXBhci5sYWJlbFN0cmluZygpLmVtcHR5KCkKKwkJJiYgKGxh eW91dC50b2NsZXZlbCAhPSAwIHx8IHBhci5wYXJhbXMoKS5tYWluTWF0dGVyKCkpKSB7CiAJCUZv bnRJbmZvIGxhYmVsZm9udCA9IHRleHRfLT5sYWJlbEZvbnQocGFyKTsKIAkJRm9udE1ldHJpY3Mg Y29uc3QgJiBsZm0gPSB0aGVGb250TWV0cmljcyhsYWJlbGZvbnQpOwogCQlhc2MgKz0gaW50KGxm bS5tYXhIZWlnaHQoKSAqIGxheW91dC5zcGFjaW5nLmdldFZhbHVlKCkKZGlmZiAtLWdpdCBhL3Ny Yy9vdXRwdXRfbGF0ZXguY3BwIGIvc3JjL291dHB1dF9sYXRleC5jcHAKaW5kZXggOTRlZDM2YjNm My4uOGFlZjhjNzVkMCAxMDA2NDQKLS0tIGEvc3JjL291dHB1dF9sYXRleC5jcHAKKysrIGIvc3Jj L291dHB1dF9sYXRleC5jcHAKQEAgLTEyMzcsNiArMTIzNywyMSBAQCB2b2lkIFRlWE9uZVBhcihC dWZmZXIgY29uc3QgJiBidWYsCiAJCWlmIChwYXIucGFyYW1zKCkuc3RhcnRPZkFwcGVuZGl4KCkp IHsKIAkJCW9zIDw8ICJcblxcYXBwZW5kaXhcbiI7CiAJCX0KKwkJaWYgKGJwYXJhbXMuZG9jdW1l bnRDbGFzcygpLmhhc01hdHRlcnMoKSkgeworCQkJc3dpdGNoIChwYXIucGFyYW1zKCkuc3RhcnRP Zk1hdHRlcigpKSB7CisJCQkJY2FzZSBNQVRURVJfRlJPTlQ6CisJCQkJCW9zIDw8ICJcblxcZnJv bnRtYXR0ZXJcbiI7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgTUFUVEVSX01BSU46CisJCQkJCW9z IDw8ICJcblxcbWFpbm1hdHRlclxuIjsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBNQVRURVJfQkFD SzoKKwkJCQkJb3MgPDwgIlxuXFxiYWNrbWF0dGVyXG4iOworCQkJCQlicmVhazsKKwkJCQlkZWZh dWx0OgorCQkJCQlicmVhazsKKwkJCX0KKwkJfQogCiAJCS8vIEluVGl0bGUgY29tbWFuZHMgbXVz dCB1c2Ugc3dpdGNoZXMgKG5vdCBlbnZpcm9ubWVudHMpCiAJCS8vIGluc2lkZSB0aGUgY29tbWFu ZHMgKHNlZSAjOTMzMikKZGlmZiAtLWdpdCBhL3NyYy90ZXgybHl4L3RleHQuY3BwIGIvc3JjL3Rl eDJseXgvdGV4dC5jcHAKaW5kZXggYThlYmJmOTM2NC4uMzFiNTA5ZmZjYyAxMDA2NDQKLS0tIGEv c3JjL3RleDJseXgvdGV4dC5jcHAKKysrIGIvc3JjL3RleDJseXgvdGV4dC5jcHAKQEAgLTM5NDUs NiArMzk0NSw3OCBAQCB2b2lkIHBhcnNlX3RleHQoUGFyc2VyICYgcCwgb3N0cmVhbSAmIG9zLCB1 bnNpZ25lZCBmbGFncywgYm9vbCBvdXRlciwKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJaWYgKHQu Y3MoKSA9PSAiZnJvbnRtYXR0ZXIiKSB7CisJCQljb250ZXh0LmFkZF9wYXJfZXh0cmFfc3R1ZmYo Ilxcc3RhcnRfb2ZfbWF0dGVyIGZyb250XG4iKTsKKwkJCS8vIFdlIG5lZWQgdG8gc3RhcnQgYSBu ZXcgcGFyYWdyYXBoLiBPdGhlcndpc2UgdGhlCisJCQkvLyBmcm9udG1hdHRlciBpbiAnYmxhXGZy b250bWF0dGVyXGNoYXB0ZXJ7JyB3b3VsZCBzdGFydAorCQkJLy8gdG9vIGxhdGUuCisJCQljb250 ZXh0Lm5ld19wYXJhZ3JhcGgob3MpOworCQkJLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0 aGUgcGFyYWdyYXBoIGlzCisJCQkvLyBnZW5lcmF0ZWQgZXZlbiBpZiBpdCBpcyBlbXB0eS4gT3Ro ZXJ3aXNlIHRoZQorCQkJLy8gZnJvbnRtYXR0ZXIgaW4gJ1xwYXJcZnJvbnRtYXR0ZXJccGFyXGNo YXB0ZXJ7JyB3b3VsZAorCQkJLy8gc3RhcnQgdG9vIGxhdGUuCisJCQljb250ZXh0LmNoZWNrX2xh eW91dChvcyk7CisJCQkvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgdG8gcHJldmVudCBwYXJhZ3Jh cGgKKwkJCS8vIGRlbGV0aW9uIGlmIGl0IGlzIGVtcHR5LiBIYW5kbGUgdGhpcyBiZXR0ZXIhCisJ CQlvdXRwdXRfY29tbWVudChwLCBvcywKKwkJCQkiZHVtbXkgY29tbWVudCBpbnNlcnRlZCBieSB0 ZXgybHl4IHRvICIKKwkJCQkiZW5zdXJlIHRoYXQgdGhpcyBwYXJhZ3JhcGggaXMgbm90IGVtcHR5 IiwKKwkJCQljb250ZXh0KTsKKwkJCS8vIEJvdGggbWVhc3VyZXMgYWJvdmUgbWF5IGdlbmVyYXRl IGFuIGFkZGl0aW9uYWwKKwkJCS8vIGVtcHR5IHBhcmFncmFwaCwgYnV0IHRoYXQgZG9lcyBub3Qg aHVydCwgYmVjYXVzZQorCQkJLy8gd2hpdGVzcGFjZSBkb2VzIG5vdCBtYXR0ZXIgaGVyZS4KKwkJ CWVhdF93aGl0ZXNwYWNlKHAsIG9zLCBjb250ZXh0LCB0cnVlKTsKKwkJCWNvbnRpbnVlOworCQl9 CisKKwkJaWYgKHQuY3MoKSA9PSAibWFpbm1hdHRlciIpIHsKKwkJCWNvbnRleHQuYWRkX3Bhcl9l eHRyYV9zdHVmZigiXFxzdGFydF9vZl9tYXR0ZXIgbWFpblxuIik7CisJCQkvLyBXZSBuZWVkIHRv IHN0YXJ0IGEgbmV3IHBhcmFncmFwaC4gT3RoZXJ3aXNlIHRoZQorCQkJLy8gbWFpbm1hdHRlciBp biAnYmxhXG1haW5tYXR0ZXJcY2hhcHRlcnsnIHdvdWxkIHN0YXJ0CisJCQkvLyB0b28gbGF0ZS4K KwkJCWNvbnRleHQubmV3X3BhcmFncmFwaChvcyk7CisJCQkvLyBXZSBuZWVkIHRvIG1ha2Ugc3Vy ZSB0aGF0IHRoZSBwYXJhZ3JhcGggaXMKKwkJCS8vIGdlbmVyYXRlZCBldmVuIGlmIGl0IGlzIGVt cHR5LiBPdGhlcndpc2UgdGhlCisJCQkvLyBtYWlubWF0dGVyIGluICdccGFyXG1haW5tYXR0ZXJc cGFyXGNoYXB0ZXJ7JyB3b3VsZAorCQkJLy8gc3RhcnQgdG9vIGxhdGUuCisJCQljb250ZXh0LmNo ZWNrX2xheW91dChvcyk7CisJCQkvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgdG8gcHJldmVudCBw YXJhZ3JhcGgKKwkJCS8vIGRlbGV0aW9uIGlmIGl0IGlzIGVtcHR5LiBIYW5kbGUgdGhpcyBiZXR0 ZXIhCisJCQlvdXRwdXRfY29tbWVudChwLCBvcywKKwkJCQkiZHVtbXkgY29tbWVudCBpbnNlcnRl ZCBieSB0ZXgybHl4IHRvICIKKwkJCQkiZW5zdXJlIHRoYXQgdGhpcyBwYXJhZ3JhcGggaXMgbm90 IGVtcHR5IiwKKwkJCQljb250ZXh0KTsKKwkJCS8vIEJvdGggbWVhc3VyZXMgYWJvdmUgbWF5IGdl bmVyYXRlIGFuIGFkZGl0aW9uYWwKKwkJCS8vIGVtcHR5IHBhcmFncmFwaCwgYnV0IHRoYXQgZG9l cyBub3QgaHVydCwgYmVjYXVzZQorCQkJLy8gd2hpdGVzcGFjZSBkb2VzIG5vdCBtYXR0ZXIgaGVy ZS4KKwkJCWVhdF93aGl0ZXNwYWNlKHAsIG9zLCBjb250ZXh0LCB0cnVlKTsKKwkJCWNvbnRpbnVl OworCQl9CisKKwkJaWYgKHQuY3MoKSA9PSAiYmFja21hdHRlciIpIHsKKwkJCWNvbnRleHQuYWRk X3Bhcl9leHRyYV9zdHVmZigiXFxzdGFydF9vZl9tYXR0ZXIgYmFja1xuIik7CisJCQkvLyBXZSBu ZWVkIHRvIHN0YXJ0IGEgbmV3IHBhcmFncmFwaC4gT3RoZXJ3aXNlIHRoZQorCQkJLy8gbWFpbm1h dHRlciBpbiAnYmxhXG1haW5tYXR0ZXJcY2hhcHRlcnsnIHdvdWxkIHN0YXJ0CisJCQkvLyB0b28g bGF0ZS4KKwkJCWNvbnRleHQubmV3X3BhcmFncmFwaChvcyk7CisJCQkvLyBXZSBuZWVkIHRvIG1h a2Ugc3VyZSB0aGF0IHRoZSBwYXJhZ3JhcGggaXMKKwkJCS8vIGdlbmVyYXRlZCBldmVuIGlmIGl0 IGlzIGVtcHR5LiBPdGhlcndpc2UgdGhlCisJCQkvLyBtYWlubWF0dGVyIGluICdccGFyXG1haW5t YXR0ZXJccGFyXGNoYXB0ZXJ7JyB3b3VsZAorCQkJLy8gc3RhcnQgdG9vIGxhdGUuCisJCQljb250 ZXh0LmNoZWNrX2xheW91dChvcyk7CisJCQkvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgdG8gcHJl dmVudCBwYXJhZ3JhcGgKKwkJCS8vIGRlbGV0aW9uIGlmIGl0IGlzIGVtcHR5LiBIYW5kbGUgdGhp cyBiZXR0ZXIhCisJCQlvdXRwdXRfY29tbWVudChwLCBvcywKKwkJCQkiZHVtbXkgY29tbWVudCBp bnNlcnRlZCBieSB0ZXgybHl4IHRvICIKKwkJCQkiZW5zdXJlIHRoYXQgdGhpcyBwYXJhZ3JhcGgg aXMgbm90IGVtcHR5IiwKKwkJCQljb250ZXh0KTsKKwkJCS8vIEJvdGggbWVhc3VyZXMgYWJvdmUg bWF5IGdlbmVyYXRlIGFuIGFkZGl0aW9uYWwKKwkJCS8vIGVtcHR5IHBhcmFncmFwaCwgYnV0IHRo YXQgZG9lcyBub3QgaHVydCwgYmVjYXVzZQorCQkJLy8gd2hpdGVzcGFjZSBkb2VzIG5vdCBtYXR0 ZXIgaGVyZS4KKwkJCWVhdF93aGl0ZXNwYWNlKHAsIG9zLCBjb250ZXh0LCB0cnVlKTsKKwkJCWNv bnRpbnVlOworCQl9CisKIAkJLy8gTXVzdCBjYXRjaCBlbXB0eSBkYXRlcyBiZWZvcmUgZmluZExh eW91dCBpcyBjYWxsZWQgYmVsb3cKIAkJaWYgKHQuY3MoKSA9PSAiZGF0ZSIpIHsKIAkJCWVhdF93 aGl0ZXNwYWNlKHAsIG9zLCBjb250ZXh0LCBmYWxzZSk7CmRpZmYgLS1naXQgYS9zcmMvdmVyc2lv bi5oIGIvc3JjL3ZlcnNpb24uaAppbmRleCBjZDQ3YjYyNjhkLi45M2VlZmYwNGE2IDEwMDY0NAot LS0gYS9zcmMvdmVyc2lvbi5oCisrKyBiL3NyYy92ZXJzaW9uLmgKQEAgLTMyLDggKzMyLDggQEAg ZXh0ZXJuIGNoYXIgY29uc3QgKiBjb25zdCBseXhfdmVyc2lvbl9pbmZvOwogCiAvLyBEbyBub3Qg cmVtb3ZlIHRoZSBjb21tZW50IGJlbG93LCBzbyB3ZSBnZXQgbWVyZ2UgY29uZmxpY3QgaW4KIC8v IGluZGVwZW5kZW50IGJyYW5jaGVzLiBJbnN0ZWFkIGFkZCB5b3VyIG93bi4KLSNkZWZpbmUgTFlY X0ZPUk1BVF9MWVggNjU2IC8vIHNwaXR6OiBwYXJmaWxsc2tpcAotI2RlZmluZSBMWVhfRk9STUFU X1RFWDJMWVggNjU2CisjZGVmaW5lIExZWF9GT1JNQVRfTFlYIDY1NyAvLyBzcGl0ejogbWF0dGVy cworI2RlZmluZSBMWVhfRk9STUFUX1RFWDJMWVggNjU3CiAKICNpZiBMWVhfRk9STUFUX1RFWDJM WVggIT0gTFlYX0ZPUk1BVF9MWVgKICNpZm5kZWYgX01TQ19WRVIKLS0gCmx5eC1jdnMgbWFpbGlu ZyBsaXN0Cmx5eC1jdnNAbGlzdHMubHl4Lm9yZwpodHRwczovL2xpc3RzLmx5eC5vcmcvbWFpbG1h bi9saXN0aW5mby9seXgtY3ZzCg==