From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Rex Dieter To: git-commits@fedoraproject.org Subject: [rpms/amarok] epel10: - amarok-2.1.90 (2.2rc1) Date: Mon, 06 Jul 2026 18:04:18 GMT Message-ID: <178336105841.1.13896146656124071297.rpms-amarok-f3307ac12cb9@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10 X-Git-Rev: f3307ac12cb94bd8398a9593dc166ca497c9cebf QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMApDb21taXQgOiBmMzMwN2FjMTJjYjk0YmQ4Mzk4YTk1OTNkYzE2NmNhNDk3Yzlj ZWJmCkF1dGhvciA6IFJleCBEaWV0ZXIgPHJkaWV0ZXJAZmVkb3JhcHJvamVjdC5vcmc+CkRhdGUg ICA6IDIwMDktMDktMjJUMDI6MDE6MDYrMDA6MDAKU3RhdHMgIDogKzcvLTY4MiBpbiA0IGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9hbWFyb2svYy9m MzMwN2FjMTJjYjk0YmQ4Mzk4YTk1OTNkYzE2NmNhNDk3YzljZWJmP2JyYW5jaD1lcGVsMTAKCkxv ZzoKLSBhbWFyb2stMi4xLjkwICgyLjJyYzEpCgotLS0KZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUg Yi8uY3ZzaWdub3JlCmluZGV4IGIzNDYxMWUuLjA2MTVlZTcgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25v cmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMSArMSBAQAotYW1hcm9rLTIuMS44NS50YXIuYnoyCith bWFyb2stMi4xLjkwLnRhci5iejIKCmRpZmYgLS1naXQgYS9hbWFyb2stdGFnbGliLnBhdGNoIGIv YW1hcm9rLXRhZ2xpYi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU1OTZk NS4uMDAwMDAwMAotLS0gYS9hbWFyb2stdGFnbGliLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs NjczICswLDAgQEAKLSMgZ2l0IGRpZmYgM2VlMGVmNzBjMGM5ZDVkZTk4MjA5MWUzNTM4MDRjOTkw YzM1ZWE0ZQotZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKLWlu ZGV4IDgyMTliYzYuLmU0YjZiOTQgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysrIGIv Q01ha2VMaXN0cy50eHQKLUBAIC0xMywxMCArMTMsMTAgQEAgb3B0aW9uKFdJVEhfSVBPRCAiRW5h YmxlIGlQb2Qgc3VwcG9ydCBpbiBBbWFyb2siIE9OKQotIGluY2x1ZGUoQ2hlY2tMaWJyYXJ5RXhp c3RzKQotIGNoZWNrX2xpYnJhcnlfZXhpc3RzKGRsIGRsb3BlbiAiIiBMSUJETF9GT1VORCkKLSAK LS1zZXQoVEFHTElCX01JTl9WRVJTSU9OICIxLjUiKQotK3NldChUQUdMSUJfTUlOX1ZFUlNJT04g IjEuNiIpCi0gZmluZF9wYWNrYWdlKFRhZ2xpYiBSRVFVSVJFRCkKLSAKLS1maW5kX3BhY2thZ2Uo VGFnbGliLUV4dHJhcyAwLjEgUkVRVUlSRUQpCi0rZmluZF9wYWNrYWdlKFRhZ2xpYi1FeHRyYXMg MS4wIFJFUVVJUkVEKQotIGlmKCBUQUdMSUItRVhUUkFTX0ZPVU5EICkKLSAgICAgYWRkX2RlZmlu aXRpb25zKCAtRFRBR0xJQl9FWFRSQVNfRk9VTkQgKQotIGVuZGlmKCBUQUdMSUItRVhUUkFTX0ZP VU5EICkKLWRpZmYgLS1naXQgYS9zaGFyZWQvTWV0YVJlcGxheUdhaW4uY3BwIGIvc2hhcmVkL01l dGFSZXBsYXlHYWluLmNwcAotaW5kZXggZDZlZGQ5NS4uOTcwNzNkNSAxMDA2NDQKLS0tLSBhL3No YXJlZC9NZXRhUmVwbGF5R2Fpbi5jcHAKLSsrKyBiL3NoYXJlZC9NZXRhUmVwbGF5R2Fpbi5jcHAK LUBAIC0zOCwxMCArMzgsOCBAQAotICNpbmNsdWRlIDx0cnVlYXVkaW9maWxlLmg+Ci0gI2luY2x1 ZGUgPHZvcmJpc2ZpbGUuaD4KLSAjaW5jbHVkZSA8d2F2cGFja2ZpbGUuaD4KLS0jaWZkZWYgVEFH TElCX0VYVFJBU19GT1VORAotICNpbmNsdWRlIDxhc2ZmaWxlLmg+Ci0gI2luY2x1ZGUgPG1wNGZp bGUuaD4KLS0jZW5kaWYKLSAKLSAvLyBjb252ZXJ0cyBhIHBlYWsgdmFsdWUgZnJvbSB0aGUgbm9y bWFsIGRpZ2l0YWwgc2NhbGUgZm9ybSB0byB0aGUgbW9yZSB1c2VmdWwgZGVjaWJlbCBmb3JtCi0g Ly8gZGVjaWJlbHMgYXJlIHJlbGF0aXZlIHRvIHRoZSAvYWRqdXN0ZWQvIHdhdmVmb3JtCi1AQCAt MjI5LDcgKzIyNyw2IEBAIHN0YXRpYyBNZXRhOjpSZXBsYXlHYWluVGFnTWFwIHJlYWRYaXBoVGFn cyggVGFnTGliOjpPZ2c6OlhpcGhDb21tZW50ICp0YWcgKQotICAgICByZXR1cm4gb3V0cHV0TWFw OwotIH0KLSAKLS0jaWZkZWYgVEFHTElCX0VYVFJBU19GT1VORAotIHN0YXRpYyBNZXRhOjpSZXBs YXlHYWluVGFnTWFwIHJlYWRBU0ZUYWdzKCBUYWdMaWI6OkFTRjo6VGFnICp0YWcgKQotIHsKLSAg ICAgY29uc3QgVGFnTGliOjpBU0Y6OkF0dHJpYnV0ZUxpc3RNYXAgJnRhZ01hcCA9IHRhZy0+YXR0 cmlidXRlTGlzdE1hcCgpOwotQEAgLTI1MSw3ICsyNDgsNiBAQCBzdGF0aWMgTWV0YTo6UmVwbGF5 R2FpblRhZ01hcCByZWFkQVNGVGFncyggVGFnTGliOjpBU0Y6OlRhZyAqdGFnICkKLSAKLSAgICAg cmV0dXJuIG91dHB1dE1hcDsKLSB9Ci0tI2VuZGlmCi0gLy8gQmFkIG5ld3M6IFJlcGxheUdhaW4g aW4gTVA0IGlzIG5vdCBhY3R1YWxseSBzdGFuZGFyZGl6ZWQgaW4gYW55IHdheS4gIE1heWJlIHJl aW1wbGVtZW50IGF0IHNvbWUgcG9pbnQuLi5tYXliZS4gIFNlZQotIC8vIGh0dHA6Ly93d3cuaHlk cm9nZW5hdWRpby5vcmcvZm9ydW1zL2xvZml2ZXJzaW9uL2luZGV4LnBocC90MTQzMjIuaHRtbAot ICNpZmRlZiBET19OT1RfVVNFX1RISVNfVU5USUxfRklYRUQKLUBAIC0zMzIsMTMgKzMyOCwxMSBA QCBNZXRhOjpyZWFkUmVwbGF5R2FpblRhZ3MoIFRhZ0xpYjo6RmlsZVJlZiBmaWxlcmVmICkKLSAg ICAgICAgIGlmICggZmlsZS0+QVBFVGFnKCkgKQotICAgICAgICAgICAgIG1hcCA9IHJlYWRBUEVU YWdzKCBmaWxlLT5BUEVUYWcoKSApOwotICAgICB9Ci0tI2lmZGVmIFRBR0xJQl9FWFRSQVNfRk9V TkQKLSAgICAgZWxzZSBpZiAoIFRhZ0xpYjo6QVNGOjpGaWxlICpmaWxlID0gZHluYW1pY19jYXN0 PFRhZ0xpYjo6QVNGOjpGaWxlICo+KCBmaWxlcmVmLmZpbGUoKSApICkKLSAgICAgewotICAgICAg ICAgaWYgKCBmaWxlLT50YWcoKSApCi0gICAgICAgICAgICAgbWFwID0gcmVhZEFTRlRhZ3MoIGZp bGUtPnRhZygpICk7Ci0gICAgIH0KLS0jZW5kaWYKLSAvLyBTZWUgY29tbWVudCBhYm92ZQotICNp ZmRlZiBET19OT1RfVVNFX1RISVNfVU5USUxfRklYRUQKLSAgICAgZWxzZSBpZiAoIFRhZ0xpYjo6 TVA0OjpGaWxlICpmaWxlID0gZHluYW1pY19jYXN0PFRhZ0xpYjo6TVA0OjpGaWxlICo+KCBmaWxl cmVmLmZpbGUoKSApICkKLWRpZmYgLS1naXQgYS9zcmMvQXBwLmNwcCBiL3NyYy9BcHAuY3BwCi1p bmRleCBiZDAxNTE3Li42MzdhMGFkIDEwMDY0NAotLS0tIGEvc3JjL0FwcC5jcHAKLSsrKyBiL3Ny Yy9BcHAuY3BwCi1AQCAtNzAsMTAgKzcwLDcgQEAKLSAKLSAjaWZkZWYgVEFHTElCX0VYVFJBU19G T1VORAotICNpbmNsdWRlIDxhdWRpYmxlZmlsZXR5cGVyZXNvbHZlci5oPgotLSNpbmNsdWRlIDxh c2ZmaWxldHlwZXJlc29sdmVyLmg+Ci0tI2luY2x1ZGUgPHdhdmZpbGV0eXBlcmVzb2x2ZXIuaD4K LSAjaW5jbHVkZSA8cmVhbG1lZGlhZmlsZXR5cGVyZXNvbHZlci5oPgotLSNpbmNsdWRlIDxtcDRm aWxldHlwZXJlc29sdmVyLmg+Ci0gI2VuZGlmCi0gCi0gUU11dGV4IERlYnVnOjptdXRleDsKLUBA IC0xNDMsMTEgKzE0MCw4IEBAIEFwcDo6QXBwKCkKLSAKLSAjaWZkZWYgVEFHTElCX0VYVFJBU19G T1VORAotICAgICBQRVJGX0xPRyggIlJlZ2lzdGVyaW5nIHRhZ2xpYiBwbHVnaW5zIiApCi0tICAg IFRhZ0xpYjo6RmlsZVJlZjo6YWRkRmlsZVR5cGVSZXNvbHZlcihuZXcgTVA0RmlsZVR5cGVSZXNv bHZlcik7Ci0tICAgIFRhZ0xpYjo6RmlsZVJlZjo6YWRkRmlsZVR5cGVSZXNvbHZlcihuZXcgQVNG RmlsZVR5cGVSZXNvbHZlcik7Ci0gICAgIFRhZ0xpYjo6RmlsZVJlZjo6YWRkRmlsZVR5cGVSZXNv bHZlcihuZXcgUmVhbE1lZGlhRmlsZVR5cGVSZXNvbHZlcik7Ci0gICAgIFRhZ0xpYjo6RmlsZVJl Zjo6YWRkRmlsZVR5cGVSZXNvbHZlcihuZXcgQXVkaWJsZUZpbGVUeXBlUmVzb2x2ZXIpOwotLSAg ICBUYWdMaWI6OkZpbGVSZWY6OmFkZEZpbGVUeXBlUmVzb2x2ZXIobmV3IFdhdkZpbGVUeXBlUmVz b2x2ZXIpOwotICAgICBQRVJGX0xPRyggIkRvbmUgUmVnaXN0ZXJpbmcgdGFnbGliIHBsdWdpbnMi ICkKLSAjZW5kaWYKLSAKLWRpZmYgLS1naXQgYS9zcmMvbWV0YS9NZXRhVXRpbGl0eS5jcHAgYi9z cmMvbWV0YS9NZXRhVXRpbGl0eS5jcHAKLWluZGV4IGI3OGVmOTIuLjMxNGRiNTcgMTAwNjQ0Ci0t LS0gYS9zcmMvbWV0YS9NZXRhVXRpbGl0eS5jcHAKLSsrKyBiL3NyYy9tZXRhL01ldGFVdGlsaXR5 LmNwcAotQEAgLTQxLDEyICs0MSwxMCBAQAotICNpbmNsdWRlIDx2b3JiaXNmaWxlLmg+Ci0gI2lu Y2x1ZGUgPHRleHRpZGVudGlmaWNhdGlvbmZyYW1lLmg+Ci0gI2luY2x1ZGUgPHhpcGhjb21tZW50 Lmg+Ci0tI2lmZGVmIFRBR0xJQl9FWFRSQVNfRk9VTkQKLSAjaW5jbHVkZSA8bXA0ZmlsZS5oPgot ICNpbmNsdWRlIDxtcDRpdGVtLmg+Ci0gI2luY2x1ZGUgPG1wNHRhZy5oPgotICNpbmNsdWRlIDxh c2Z0YWcuaD4KLS0jZW5kaWYKLSAKLSAgICAgICAgIHN0YXRpYyBjb25zdCBRU3RyaW5nIFhFU0FN X0FMQlVNICAgICAgICAgID0gImh0dHA6Ly9mcmVlZGVza3RvcC5vcmcvc3RhbmRhcmRzL3hlc2Ft LzEuMC9jb3JlI2FsYnVtIjsKLSAgICAgICAgIHN0YXRpYyBjb25zdCBRU3RyaW5nIFhFU0FNX0FS VElTVCAgICAgICAgID0gImh0dHA6Ly9mcmVlZGVza3RvcC5vcmcvc3RhbmRhcmRzL3hlc2FtLzEu MC9jb3JlI2FydGlzdCI7Ci1AQCAtMzIwLDcgKzMxOCw2IEBAIE1ldGE6OkZpZWxkOjp3cml0ZUZp ZWxkcyggVGFnTGliOjpGaWxlUmVmIGZpbGVyZWYsIGNvbnN0IFFWYXJpYW50TWFwICZjaGFuZ2Vz ICkKLSAgICAgICAgICAgICBmaWxlLT54aXBoQ29tbWVudCgpLT5hZGRGaWVsZCgiRElTQ05VTUJF UiIsIGRpc2MpOwotICAgICAgICAgfQotICAgICB9Ci0tI2lmZGVmIFRBR0xJQl9FWFRSQVNfRk9V TkQKLSAgICAgZWxzZSBpZiAoIFRhZ0xpYjo6TVA0OjpGaWxlICpmaWxlID0gZHluYW1pY19jYXN0 PFRhZ0xpYjo6TVA0OjpGaWxlICo+KCBmaWxlcmVmLmZpbGUoKSApICkKLSAgICAgewotICAgICAg ICAgaWYoIGNoYW5nZXMuY29udGFpbnMoIE1ldGE6OkZpZWxkOjpDT01QT1NFUiApICkKLUBAIC0z MzgsNyArMzM1LDYgQEAgTWV0YTo6RmllbGQ6OndyaXRlRmllbGRzKCBUYWdMaWI6OkZpbGVSZWYg ZmlsZXJlZiwgY29uc3QgUVZhcmlhbnRNYXAgJmNoYW5nZXMgKQotICAgICAgICAgICAgIG1wNHRh Zy0+aXRlbUxpc3RNYXAoKVsiZGlzayJdID0gVGFnTGliOjpNUDQ6Okl0ZW0oIGRpc2NudW1iZXIs IDAgKTsKLSAgICAgICAgIH0KLSAgICAgfQotLSNlbmRpZgotICAgICBpZiggc2hvdWxkU2F2ZSAp Ci0gICAgICAgICBmaWxlcmVmLnNhdmUoKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL21ldGEvZmls ZS9GaWxlX3AuaCBiL3NyYy9tZXRhL2ZpbGUvRmlsZV9wLmgKLWluZGV4IDU3YzUxOTUuLmY5ZTlk YWYgMTAwNjQ0Ci0tLS0gYS9zcmMvbWV0YS9maWxlL0ZpbGVfcC5oCi0rKysgYi9zcmMvbWV0YS9m aWxlL0ZpbGVfcC5oCi1AQCAtNTAsMTAgKzUwLDcgQEAKLSAjaW5jbHVkZSA8dGxpc3QuaD4KLSAj aW5jbHVkZSA8dHN0cmluZy5oPgotICNpbmNsdWRlIDx2b3JiaXNmaWxlLmg+Ci0tCi0tI2lmZGVm IFRBR0xJQl9FWFRSQVNfRk9VTkQKLSAjaW5jbHVkZSA8bXA0ZmlsZS5oPgotLSNlbmRpZgotIAot IG5hbWVzcGFjZSBNZXRhRmlsZQotIHsKLUBAIC0yODMsNyArMjgwLDYgQEAgdm9pZCBUcmFjazo6 UHJpdmF0ZTo6cmVhZE1ldGFEYXRhKCkKLSAgICAgICAgICAgICAgICAgZGlzYyA9IHN0cmlwKCBm bG1bICJESVNDTlVNQkVSIiBdLmZyb250KCkgKTsKLSAgICAgICAgIH0KLSAgICAgfQotLSNpZmRl ZiBUQUdMSUJfRVhUUkFTX0ZPVU5ECi0gICAgIGVsc2UgaWYoIFRhZ0xpYjo6TVA0OjpGaWxlICpm aWxlID0gZHluYW1pY19jYXN0PFRhZ0xpYjo6TVA0OjpGaWxlICo+KCBmaWxlUmVmLmZpbGUoKSAp ICkKLSAgICAgewotICAgICAgICAgVGFnTGliOjpNUDQ6OlRhZyAqbXA0dGFnID0gZHluYW1pY19j YXN0PCBUYWdMaWI6Ok1QNDo6VGFnICo+KCBmaWxlLT50YWcoKSApOwotQEAgLTI5Niw3ICsyOTIs NiBAQCB2b2lkIFRyYWNrOjpQcml2YXRlOjpyZWFkTWV0YURhdGEoKQotICAgICAgICAgICAgICAg ICBkaXNjID0gUVN0cmluZzo6bnVtYmVyKCBtcDR0YWctPml0ZW1MaXN0TWFwKClbImRpc2siXS50 b0ludFBhaXIoKS5maXJzdCApOwotICAgICAgICAgfQotICAgICB9Ci0tI2VuZGlmCi0gICAgIGlm KCAhZGlzYy5pc0VtcHR5KCkgKQotICAgICB7Ci0gICAgICAgICBpbnQgaSA9IGRpc2MuaW5kZXhP ZiggJy8nICk7Ci1kaWZmIC0tZ2l0IGEvc3JjL3BvZGNhc3RzL3NxbC9TcWxQb2RjYXN0TWV0YS5j cHAgYi9zcmMvcG9kY2FzdHMvc3FsL1NxbFBvZGNhc3RNZXRhLmNwcAotaW5kZXggOGI1YTk2Yi4u NGY4MmViMCAxMDA2NDQKLS0tLSBhL3NyYy9wb2RjYXN0cy9zcWwvU3FsUG9kY2FzdE1ldGEuY3Bw Ci0rKysgYi9zcmMvcG9kY2FzdHMvc3FsL1NxbFBvZGNhc3RNZXRhLmNwcAotQEAgLTQyLDEwICs0 Miw3IEBACi0gI2luY2x1ZGUgPHRsaXN0Lmg+Ci0gI2luY2x1ZGUgPHRzdHJpbmcuaD4KLSAjaW5j bHVkZSA8dm9yYmlzZmlsZS5oPgotLQotLSNpZmRlZiBUQUdMSUJfRVhUUkFTX0ZPVU5ECi0gI2lu Y2x1ZGUgPG1wNGZpbGUuaD4KLS0jZW5kaWYKLSAKLSBjbGFzcyBUaW1lY29kZVdyaXRlQ2FwYWJp bGl0eVBvZGNhc3RJbXBsIDogcHVibGljIE1ldGE6OlRpbWVjb2RlV3JpdGVDYXBhYmlsaXR5Ci0g ewotZGlmZiAtLWdpdCBhL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9BRlRVdGlsaXR5LmNw cCBiL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9BRlRVdGlsaXR5LmNwcAotaW5kZXggOTg1 NTJjNS4uM2RjMDA5YiAxMDA2NDQKLS0tLSBhL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9B RlRVdGlsaXR5LmNwcAotKysrIGIvdXRpbGl0aWVzL2NvbGxlY3Rpb25zY2FubmVyL0FGVFV0aWxp dHkuY3BwCi1AQCAtMjYsNiArMjYsOSBAQAotICNpbmNsdWRlIDxpZDN2MnRhZy5oPgotICNpbmNs dWRlIDxtcGNmaWxlLmg+Ci0gI2luY2x1ZGUgPG1wZWdmaWxlLmg+Ci0rI2luY2x1ZGUgPG1wNGl0 ZW0uaD4KLSsjaW5jbHVkZSA8bXA0ZmlsZS5oPgotKyNpbmNsdWRlIDxtcDR0YWcuaD4KLSAjaW5j bHVkZSA8b2dnZmlsZS5oPgotICNpbmNsdWRlIDxvZ2dmbGFjZmlsZS5oPgotICNpbmNsdWRlIDxz cGVleGZpbGUuaD4KLUBAIC0zNSwxNyArMzgsNiBAQAotICNpbmNsdWRlIDx2b3JiaXNmaWxlLmg+ Ci0gI2luY2x1ZGUgPHhpcGhjb21tZW50Lmg+Ci0gCi0tI2lmZGVmIFRBR0xJQl9FWFRSQVNfRk9V TkQKLS0jaW5jbHVkZSA8bXA0ZmlsZS5oPgotLSNpbmNsdWRlIDxtcDR0YWcuaD4KLS0jaW5jbHVk ZSA8bXA0aXRlbS5oPgotLSNpbmNsdWRlIDxhdWRpYmxlZmlsZXR5cGVyZXNvbHZlci5oPgotLSNp bmNsdWRlIDxhc2ZmaWxldHlwZXJlc29sdmVyLmg+Ci0tI2luY2x1ZGUgPHdhdmZpbGV0eXBlcmVz b2x2ZXIuaD4KLS0jaW5jbHVkZSA8cmVhbG1lZGlhZmlsZXR5cGVyZXNvbHZlci5oPgotLSNpbmNs dWRlIDxtcDRmaWxldHlwZXJlc29sdmVyLmg+Ci0tI2VuZGlmCi0tCi0gI2luY2x1ZGUgPFFGaWxl PgotICNpbmNsdWRlIDxRVGltZT4KLSAKLWRpZmYgLS1naXQgYS91dGlsaXRpZXMvY29sbGVjdGlv bnNjYW5uZXIvQ29sbGVjdGlvblNjYW5uZXIuY3BwIGIvdXRpbGl0aWVzL2NvbGxlY3Rpb25zY2Fu bmVyL0NvbGxlY3Rpb25TY2FubmVyLmNwcAotaW5kZXggNjczYmUxYy4uYzNkOTYxZSAxMDA2NDQK LS0tLSBhL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9Db2xsZWN0aW9uU2Nhbm5lci5jcHAK LSsrKyBiL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9Db2xsZWN0aW9uU2Nhbm5lci5jcHAK LUBAIC00OSw2ICs0OSw5IEBACi0gI2luY2x1ZGUgPGZsYWNmaWxlLmg+Ci0gI2luY2x1ZGUgPGlk M3YxdGFnLmg+Ci0gI2luY2x1ZGUgPGlkM3YydGFnLmg+Ci0rI2luY2x1ZGUgPG1wNGZpbGUuaD4K LSsjaW5jbHVkZSA8bXA0dGFnLmg+Ci0rI2luY2x1ZGUgPG1wNGl0ZW0uaD4KLSAjaW5jbHVkZSA8 bXBjZmlsZS5oPgotICNpbmNsdWRlIDxtcGVnZmlsZS5oPgotICNpbmNsdWRlIDxvZ2dmaWxlLmg+ Ci1AQCAtNTksMTQgKzYyLDggQEAKLSAjaW5jbHVkZSA8dm9yYmlzZmlsZS5oPgotIAotICNpZmRl ZiBUQUdMSUJfRVhUUkFTX0ZPVU5ECi0tI2luY2x1ZGUgPG1wNGZpbGUuaD4KLS0jaW5jbHVkZSA8 bXA0dGFnLmg+Ci0tI2luY2x1ZGUgPG1wNGl0ZW0uaD4KLSAjaW5jbHVkZSA8YXVkaWJsZWZpbGV0 eXBlcmVzb2x2ZXIuaD4KLS0jaW5jbHVkZSA8YXNmZmlsZXR5cGVyZXNvbHZlci5oPgotLSNpbmNs dWRlIDx3YXZmaWxldHlwZXJlc29sdmVyLmg+Ci0gI2luY2x1ZGUgPHJlYWxtZWRpYWZpbGV0eXBl cmVzb2x2ZXIuaD4KLS0jaW5jbHVkZSA8bXA0ZmlsZXR5cGVyZXNvbHZlci5oPgotICNlbmRpZgot IAotICNpbmNsdWRlIDx0ZXh0aWRlbnRpZmljYXRpb25mcmFtZS5oPgotQEAgLTEwMSwxMSArOTgs OCBAQCBDb2xsZWN0aW9uU2Nhbm5lcjo6Q29sbGVjdGlvblNjYW5uZXIoIGludCAmYXJnYywgY2hh ciAqKmFyZ3YgKQotICAgICByZWFkQXJncygpOwotIAotICNpZmRlZiBUQUdMSUJfRVhUUkFTX0ZP VU5ECi0tICAgIFRhZ0xpYjo6RmlsZVJlZjo6YWRkRmlsZVR5cGVSZXNvbHZlcihuZXcgTVA0Rmls ZVR5cGVSZXNvbHZlcik7Ci0tICAgIFRhZ0xpYjo6RmlsZVJlZjo6YWRkRmlsZVR5cGVSZXNvbHZl cihuZXcgQVNGRmlsZVR5cGVSZXNvbHZlcik7Ci0gICAgIFRhZ0xpYjo6RmlsZVJlZjo6YWRkRmls ZVR5cGVSZXNvbHZlcihuZXcgUmVhbE1lZGlhRmlsZVR5cGVSZXNvbHZlcik7Ci0gICAgIFRhZ0xp Yjo6RmlsZVJlZjo6YWRkRmlsZVR5cGVSZXNvbHZlcihuZXcgQXVkaWJsZUZpbGVUeXBlUmVzb2x2 ZXIpOwotLSAgICBUYWdMaWI6OkZpbGVSZWY6OmFkZEZpbGVUeXBlUmVzb2x2ZXIobmV3IFdhdkZp bGVUeXBlUmVzb2x2ZXIpOwotICNlbmRpZgotIAotICAgICBtX2xvZ2ZpbGUgPSAoIG1fYmF0Y2gg PyAoIG1faW5jcmVtZW50YWwgPyAiYW1hcm9rY29sbGVjdGlvbnNjYW5uZXJfYmF0Y2hpbmNyZW1l bnRhbHNjYW4ubG9nIiA6ICJhbWFyb2tjb2xsZWN0aW9uc2Nhbm5lcl9iYXRjaGZ1bGxzY2FuLmxv ZyIgKQotQEAgLTY0NCw3ICs2MzgsNiBAQCBDb2xsZWN0aW9uU2Nhbm5lcjo6cmVhZFRhZ3MoIGNv bnN0IFFTdHJpbmcgJnBhdGgsIFRhZ0xpYjo6QXVkaW9Qcm9wZXJ0aWVzOjpSZWFkUwotIC8vICAg ICAgICAgICAgIGlmICggaW1hZ2VzICYmIGZpbGUtPklEM3YyVGFnKCkgKQotIC8vICAgICAgICAg ICAgICAgICBsb2FkSW1hZ2VzRnJvbVRhZyggKmZpbGUtPklEM3YyVGFnKCksICppbWFnZXMgKTsK LSAgICAgICAgIH0KLS0jaWZkZWYgVEFHTElCX0VYVFJBU19GT1VORAotICAgICAgICAgZWxzZSBp ZiAoIFRhZ0xpYjo6TVA0OjpGaWxlICpmaWxlID0gZHluYW1pY19jYXN0PFRhZ0xpYjo6TVA0OjpG aWxlICo+KCBmaWxlcmVmLmZpbGUoKSApICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBmaWxl VHlwZSA9IG1wNDsKLUBAIC02NjcsNyArNjYwLDYgQEAgQ29sbGVjdGlvblNjYW5uZXI6OnJlYWRU YWdzKCBjb25zdCBRU3RyaW5nICZwYXRoLCBUYWdMaWI6OkF1ZGlvUHJvcGVydGllczo6UmVhZFMK LSAvLyAgICAgICAgICAgICAgICAgICAgIGltYWdlcy0+cHVzaF9iYWNrKCBFbWJlZGRlZEltYWdl KCBtcDR0YWctPmNvdmVyKCksICIiICkgKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0t I2VuZGlmCi0gCi0gICAgICAgICBpZiAoICFkaXNjLmlzRW1wdHkoKSApCi0gICAgICAgICB7Ci1k aWZmIC0tZ2l0IGEvdXRpbGl0aWVzL2NvbGxlY3Rpb25zY2FubmVyL01ldGFSZXBsYXlHYWluLmNw cCBiL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9NZXRhUmVwbGF5R2Fpbi5jcHAKLWRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggOGU3ODljZi4uMDAwMDAwMAotLS0tIGEvdXRpbGl0 aWVzL2NvbGxlY3Rpb25zY2FubmVyL01ldGFSZXBsYXlHYWluLmNwcAotKysrIC9kZXYvbnVsbAot QEAgLTEsMzU0ICswLDAgQEAKLS0vKgotLSAgIENvcHlyaWdodCAoQykgMjAwOSBBbGV4IE1lcnJ5 IDxhbGV4Lm1lcnJ5QGtkZW1haWwubmV0PgotLQotLSAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLS0gICBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotLSAgIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy Ci0tICAgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCi0tCi0tICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCi0tICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLS0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0tICAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLS0KLS0gICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotLSAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl Ci0tICAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSwgVVNBCi0tKi8KLS0KLS0vLyBOT1RFOiB0aGlzIGZpbGUg aXMgdXNlZCBieSBhbWFyb2tjb2xsZWN0aW9uc2Nhbm5lciBhbmQgQ0FOTk9UIHVzZSBhbnkgYW1h cm9rbGliCi0tLy8gICAgICAgY29kZSBbdGhpcyBpbmNsdWRlcyBkZWJ1ZygpXQotLQotLSNpbmNs dWRlICJNZXRhUmVwbGF5R2Fpbi5oIgotLQotLSNpbmNsdWRlIDxRU3RyaW5nPgotLSNpbmNsdWRl IDxjbWF0aD4KLS0KLS0vLyBUYWdsaWIKLS0jaW5jbHVkZSA8dGFnLmg+Ci0tI2luY2x1ZGUgPHRs aXN0Lmg+Ci0tI2luY2x1ZGUgPHRzdHJpbmcuaD4KLS0jaW5jbHVkZSA8dGV4dGlkZW50aWZpY2F0 aW9uZnJhbWUuaD4KLS0jaW5jbHVkZSA8YXBldGFnLmg+Ci0tI2luY2x1ZGUgPGZsYWNmaWxlLmg+ Ci0tI2luY2x1ZGUgPGlkM3YydGFnLmg+Ci0tI2luY2x1ZGUgPG1wY2ZpbGUuaD4KLS0jaW5jbHVk ZSA8bXBlZ2ZpbGUuaD4KLS0jaW5jbHVkZSA8b2dnZmlsZS5oPgotLSNpbmNsdWRlIDxvZ2dmbGFj ZmlsZS5oPgotLSNpbmNsdWRlIDxzcGVleGZpbGUuaD4KLS0jaW5jbHVkZSA8dHJ1ZWF1ZGlvZmls ZS5oPgotLSNpbmNsdWRlIDx2b3JiaXNmaWxlLmg+Ci0tI2luY2x1ZGUgPHdhdnBhY2tmaWxlLmg+ Ci0tI2lmZGVmIFRBR0xJQl9FWFRSQVNfRk9VTkQKLS0jaW5jbHVkZSA8YXNmZmlsZS5oPgotLSNp bmNsdWRlIDxtcDRmaWxlLmg+Ci0tI2VuZGlmCi0tCi0tLy8gY29udmVydHMgYSBwZWFrIHZhbHVl IGZyb20gdGhlIG5vcm1hbCBkaWdpdGFsIHNjYWxlIGZvcm0gdG8gdGhlIG1vcmUgdXNlZnVsIGRl Y2liZWwgZm9ybQotLS8vIGRlY2liZWxzIGFyZSByZWxhdGl2ZSB0byB0aGUgL2FkanVzdGVkLyB3 YXZlZm9ybQotLXN0YXRpYyBxcmVhbCBwZWFrVG9EZWNpYmVscyggcXJlYWwgc2NhbGVWYWwgKQot LXsKLS0gICAgaWYgKCBzY2FsZVZhbCA+IDAgKQotLSAgICAgICAgcmV0dXJuIDIwICogbG9nMTAo IHNjYWxlVmFsICk7Ci0tICAgIGVsc2UKLS0gICAgICAgIHJldHVybiAwOwotLX0KLS0KLS0vLyBO T1RFOiByZXByZXNlbnRhdGlvbiBpcyB0YWtlbiB0byBiZSBhIGJpbmFyeSB2YWx1ZSB3aXRoIHVu aXRzIGluIHRoZSBmaXJzdCBjb2x1bW4sCi0tLy8gICAgICAgMS8yIGluIHRoZSBzZWNvbmQgYW5k IHNvIG9uLgotLXN0YXRpYyBxcmVhbCByZWFkUlZBMlBlYWtWYWx1ZSggY29uc3QgVGFnTGliOjpC eXRlVmVjdG9yICZkYXRhLCBpbnQgYml0cywgYm9vbCAqb2sgKQotLXsKLS0gICAgcXJlYWwgcGVh ayA9IDAuMDsKLS0gICAgLy8gZGlzY2FyZGluZyBkaWdpdHMgYXQgdGhlIGVuZCByZWR1Y2VzIHBy ZWNpc2lvbiwgYnV0IGRvZXNuJ3Qgb3RoZXJ3aXNlIGNoYW5nZSB0aGUgdmFsdWUKLS0gICAgaWYg KCBiaXRzID4gMzIgKQotLSAgICAgICAgYml0cyA9IDMyOwotLSAgICAvLyB0aGUgKzcgbWFrZXMg c3VyZSB3ZSByb3VuZCB1cCB3aGVuIHdlIGRpdmlkZSBieSA4Ci0tICAgIHVuc2lnbmVkIGludCBi eXRlcyA9IChiaXRzICsgNykgLyA4OwotLQotLSAgICAvLyBub3JtYWxpemUgYXBwZWFycyBub3Qg dG8gd3JpdGUgYSBwZWFrIGF0IGFsbCwgYW5kIGhlbmNlIHNldHMgYml0cyB0byAwCi0tICAgIGlm ICggYml0cyA9PSAwICkKLS0gICAgewotLSAgICAgICAgaWYgKCBvayApCi0tICAgICAgICAgICAg Km9rID0gdHJ1ZTsKLS0gICAgfQotLSAgICBlbHNlIGlmICggYml0cyA+PSA0ICYmIGRhdGEuc2l6 ZSgpID49IGJ5dGVzICkgLy8gZmV3ZXIgdGhhbiA0IGJpdHMgd291bGQganVzdCBiZSBkYWZ0Ci0t ICAgIHsKLS0gICAgICAgIC8vIGV4Y2Vzc0JpdHMgaXMgdGhlIG51bWJlciBvZiBiaXRzIHdlIGhh dmUgdG8gZGlzY2FyZCBhdCB0aGUgZW5kCi0tICAgICAgICB1bnNpZ25lZCBpbnQgZXhjZXNzQml0 cyA9ICg4ICogYnl0ZXMpIC0gYml0czsKLS0gICAgICAgIC8vIG1hc2sgaGFzIDFzIGV2ZXJ5d2hl cmUgYnV0IHRoZSBsYXN0IC9leGNlc3NCaXRzLyBiaXRzCi0tICAgICAgICBxdWludDMyIG1hc2sg PSAweGZmZmZmZmZmIDw8IGV4Y2Vzc0JpdHM7Ci0tICAgICAgICBxdWludDMyIHJhd1ZhbHVlID0g MDsKLS0gICAgICAgIGZvciAoIHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGJ5dGVzOyArK2kgKQot LSAgICAgICAgewotLSAgICAgICAgICAgIHJhd1ZhbHVlIDw8PSA4OwotLSAgICAgICAgICAgIHJh d1ZhbHVlICs9ICh1bnNpZ25lZCBjaGFyKWRhdGFbaV07Ci0tICAgICAgICB9Ci0tICAgICAgICBy YXdWYWx1ZSAmPSBtYXNrOwotLSAgICAgICAgcGVhayA9IHJhd1ZhbHVlOwotLSAgICAgICAgLy8g YW1vdW50IHdlIG5lZWQgdG8gInNoaWZ0IiB0aGUgdmFsdWUgcmlnaHQgdG8gbWFrZSB0aGUgZmly c3QgZGlnaXQgdGhlIHVuaXQgY29sdW1uCi0tICAgICAgICB1bnNpZ25lZCBpbnQgcmlnaHRTaGlm dCA9ICg4ICogYnl0ZXMpIC0gMTsKLS0gICAgICAgIHBlYWsgLz0gKHFyZWFsKSgxIDw8IHJpZ2h0 U2hpZnQpOwotLSAgICAgICAgaWYgKCBvayApCi0tICAgICAgICAgICAgKm9rID0gdHJ1ZTsKLS0g ICAgfQotLSAgICBlbHNlCi0tICAgIHsKLS0gICAgICAgIGlmICggb2sgKQotLSAgICAgICAgICAg ICpvayA9IGZhbHNlOwotLSAgICB9Ci0tICAgIHJldHVybiBwZWFrOwotLX0KLS0KLS0vLyBhZGRz IHRoZSBjb252ZXJ0ZWQgdmVyc2lvbiBvZiB0aGUgc2NhbGUgdmFsdWUgaWYgaXQgaXMgYSB2YWxp ZCwgbm9uLW5lZ2F0aXZlIGZsb2F0Ci0tc3RhdGljIHZvaWQgbWF5YmVBZGRQZWFrKCBjb25zdCBU YWdMaWI6OlN0cmluZyAmc2NhbGVWYWwsIE1ldGE6OlJlcGxheUdhaW5UYWcga2V5LCBNZXRhOjpS ZXBsYXlHYWluVGFnTWFwICptYXAgKQotLXsKLS0gICAgLy8gc2NhbGUgdmFsdWUgaXMgPj0gMCwg YW5kIHR5cGljYWxseSBub3QgbXVjaCBiaWdnZXIgdGhhbiAxCi0tICAgIFFTdHJpbmcgdmFsdWUg PSBUU3RyaW5nVG9RU3RyaW5nKCBzY2FsZVZhbCApOwotLSAgICBib29sIG9rID0gZmFsc2U7Ci0t ICAgIHFyZWFsIHBlYWsgPSB2YWx1ZS50b0Zsb2F0KCAmb2sgKTsKLS0gICAgaWYgKCBvayAmJiBw ZWFrID49IDAgKQotLSAgICAgICAgKCptYXApW2tleV0gPSBwZWFrVG9EZWNpYmVscyggcGVhayAp OwotLX0KLS0KLS1zdGF0aWMgdm9pZCBtYXliZUFkZEdhaW4oIGNvbnN0IFRhZ0xpYjo6U3RyaW5n ICZpbnB1dCwgTWV0YTo6UmVwbGF5R2FpblRhZyBrZXksIE1ldGE6OlJlcGxheUdhaW5UYWdNYXAg Km1hcCApCi0tewotLSAgICBRU3RyaW5nIHZhbHVlID0gVFN0cmluZ1RvUVN0cmluZyggaW5wdXQg KS5yZW1vdmUoICIgZEIiICk7Ci0tICAgIGJvb2wgb2sgPSBmYWxzZTsKLS0gICAgcXJlYWwgZ2Fp biA9IHZhbHVlLnRvRmxvYXQoICZvayApOwotLSAgICBpZiAob2spCi0tICAgICAgICAoKm1hcClb a2V5XSA9IGdhaW47Ci0tfQotLQotLXN0YXRpYyBNZXRhOjpSZXBsYXlHYWluVGFnTWFwIHJlYWRJ RDN2MlRhZ3MoIFRhZ0xpYjo6SUQzdjI6OlRhZyAqdGFnICkKLS17Ci0tICAgIE1ldGE6OlJlcGxh eUdhaW5UYWdNYXAgbWFwOwotLSAgICB7ICAgLy8gSUQzdjIuNC4wIG5hdGl2ZSByZXBsYXkgZ2Fp biB0YWcgc3VwcG9ydCAoYXMgd3JpdHRlbiBieSBRdW9kIExpYmV0LCBmb3IgZXhhbXBsZSkuCi0t ICAgICAgICBUYWdMaWI6OklEM3YyOjpGcmFtZUxpc3QgZnJhbWVzID0gdGFnLT5mcmFtZUxpc3RN YXAoKVsiUlZBMiJdOwotLSAgICAgICAgZnJhbWVzLmFwcGVuZCh0YWctPmZyYW1lTGlzdE1hcCgp WyJYUlZBIl0pOwotLSAgICAgICAgaWYgKCAhZnJhbWVzLmlzRW1wdHkoKSApCi0tICAgICAgICB7 Ci0tICAgICAgICAgICAgZm9yICggdW5zaWduZWQgaW50IGkgPSAwOyBpIDwgZnJhbWVzLnNpemUo KTsgKytpICkKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8g cGFyc2UgdGhpcyBmcmFtZSBvdXJzZWx2ZXMKLS0gICAgICAgICAgICAgICAgLy8gSUQzdjIgZnJh bWUgaGVhZGVyIGlzIDEwIGJ5dGVzLCBzbyBza2lwIHRoYXQKLS0gICAgICAgICAgICAgICAgVGFn TGliOjpCeXRlVmVjdG9yIGRhdGEgPSBmcmFtZXNbaV0tPnJlbmRlcigpLm1pZCggMTAgKTsKLS0g ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9mZnNldCA9IDA7Ci0tICAgICAgICAgICAgICAg IFFTdHJpbmcgZGVzYyggZGF0YS5kYXRhKCkgKTsKLS0gICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IGRlc2MuY291bnQoKSArIDE7Ci0tICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjaGFubmVs ID0gZGF0YS5taWQoIG9mZnNldCwgMSApLnRvVUludCggdHJ1ZSApOwotLSAgICAgICAgICAgICAg ICAvLyBjaGFubmVsIDEgaXMgdGhlIG1haW4gdm9sdW1lIC0gdGhlIG9ubHkgb25lIHdlIGNhcmUg YWJvdXQKLS0gICAgICAgICAgICAgICAgaWYgKCBjaGFubmVsID09IDEgKQotLSAgICAgICAgICAg ICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICArK29mZnNldDsKLS0gICAgICAgICAgICAgICAg ICAgIHFpbnQxNiBhZGp1c3RtZW50NTEyID0gZGF0YS5taWQoIG9mZnNldCwgMiApLnRvU2hvcnQo IHRydWUgKTsKLS0gICAgICAgICAgICAgICAgICAgIHFyZWFsIGFkanVzdG1lbnQgPSAoIChxcmVh bClhZGp1c3RtZW50NTEyICkgLyA1MTIuMDsKLS0gICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSAyOwotLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBlYWtCaXRzID0gZGF0YS5t aWQoIG9mZnNldCwgMSApLnRvVUludCggdHJ1ZSApOwotLSAgICAgICAgICAgICAgICAgICAgKytv ZmZzZXQ7Ci0tICAgICAgICAgICAgICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0tICAgICAgICAg ICAgICAgICAgICBxcmVhbCBwZWFrID0gcmVhZFJWQTJQZWFrVmFsdWUoIGRhdGEubWlkKCBvZmZz ZXQgKSwgcGVha0JpdHMsICZvayApOwotLSAgICAgICAgICAgICAgICAgICAgaWYgKCBvayApCi0t ICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBkZXNj LnRvTG93ZXIoKSA9PSAiYWxidW0iICkKLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFtNZXRhOjpSZXBsYXlHYWluX0FsYnVtX0dhaW5d ID0gYWRqdXN0bWVudDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwW01ldGE6OlJl cGxheUdhaW5fQWxidW1fUGVha10gPSBwZWFrVG9EZWNpYmVscyggcGVhayApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICggZGVz Yy50b0xvd2VyKCkgPT0gInRyYWNrIiB8fCAhbWFwLmNvbnRhaW5zKCBNZXRhOjpSZXBsYXlHYWlu X1RyYWNrX0dhaW4gKSApCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtYXBbTWV0YTo6UmVwbGF5R2Fpbl9UcmFja19HYWluXSA9IGFkanVz dG1lbnQ7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFtNZXRhOjpSZXBsYXlHYWlu X1RyYWNrX1BlYWtdID0gcGVha1RvRGVjaWJlbHMoIHBlYWsgKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgaWYgKCAhbWFwLmlzRW1wdHkoKSApCi0tICAgICAg ICAgICAgICAgIHJldHVybiBtYXA7Ci0tICAgICAgICB9Ci0tICAgIH0KLS0KLS0gICAgeyAgIC8v IEZvb2JhcjIwMDAtc3R5bGUgSUQzdjIuMy4wIHRhZ3MKLS0gICAgICAgIFRhZ0xpYjo6SUQzdjI6 OkZyYW1lTGlzdCBmcmFtZXMgPSB0YWctPmZyYW1lTGlzdE1hcCgpWyJUWFhYIl07Ci0tICAgICAg ICBmb3IgKCBUYWdMaWI6OklEM3YyOjpGcmFtZUxpc3Q6Okl0ZXJhdG9yIGl0ID0gZnJhbWVzLmJl Z2luKCk7IGl0ICE9IGZyYW1lcy5lbmQoKTsgKytpdCApIHsKLS0gICAgICAgICAgICBUYWdMaWI6 OklEM3YyOjpVc2VyVGV4dElkZW50aWZpY2F0aW9uRnJhbWUqIGZyYW1lID0KLS0gICAgICAgICAg ICAgICAgZHluYW1pY19jYXN0PFRhZ0xpYjo6SUQzdjI6OlVzZXJUZXh0SWRlbnRpZmljYXRpb25G cmFtZSo+KCAqaXQgKTsKLS0gICAgICAgICAgICBpZiAoIGZyYW1lICYmIGZyYW1lLT5maWVsZExp c3QoKS5zaXplKCkgPj0gMiApCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICBRU3Ry aW5nIGRlc2MgPSBUU3RyaW5nVG9RU3RyaW5nKCBmcmFtZS0+ZGVzY3JpcHRpb24oKSApLnRvTG93 ZXIoKTsKLS0gICAgICAgICAgICAgICAgaWYgKCBkZXNjID09ICJyZXBsYXlnYWluX2FsYnVtX2dh aW4iICkKLS0gICAgICAgICAgICAgICAgICAgIG1heWJlQWRkR2FpbiggZnJhbWUtPmZpZWxkTGlz dCgpWzFdLCBNZXRhOjpSZXBsYXlHYWluX0FsYnVtX0dhaW4sICZtYXAgKTsKLS0gICAgICAgICAg ICAgICAgaWYgKCBkZXNjID09ICJyZXBsYXlnYWluX2FsYnVtX3BlYWsiICkKLS0gICAgICAgICAg ICAgICAgICAgIG1heWJlQWRkUGVhayggZnJhbWUtPmZpZWxkTGlzdCgpWzFdLCBNZXRhOjpSZXBs YXlHYWluX0FsYnVtX1BlYWssICZtYXAgKTsKLS0gICAgICAgICAgICAgICAgaWYgKCBkZXNjID09 ICJyZXBsYXlnYWluX3RyYWNrX2dhaW4iICkKLS0gICAgICAgICAgICAgICAgICAgIG1heWJlQWRk R2FpbiggZnJhbWUtPmZpZWxkTGlzdCgpWzFdLCBNZXRhOjpSZXBsYXlHYWluX1RyYWNrX0dhaW4s ICZtYXAgKTsKLS0gICAgICAgICAgICAgICAgaWYgKCBkZXNjID09ICJyZXBsYXlnYWluX3RyYWNr X3BlYWsiICkKLS0gICAgICAgICAgICAgICAgICAgIG1heWJlQWRkUGVhayggZnJhbWUtPmZpZWxk TGlzdCgpWzFdLCBNZXRhOjpSZXBsYXlHYWluX1RyYWNrX1BlYWssICZtYXAgKTsKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0KLS0gICAgcmV0dXJuIG1hcDsKLS19Ci0tCi0tc3Rh dGljIE1ldGE6OlJlcGxheUdhaW5UYWdNYXAgcmVhZEFQRVRhZ3MoIFRhZ0xpYjo6QVBFOjpUYWcg KnRhZyApCi0tewotLSAgICBNZXRhOjpSZXBsYXlHYWluVGFnTWFwIG1hcDsKLS0gICAgY29uc3Qg VGFnTGliOjpBUEU6Okl0ZW1MaXN0TWFwICZpdGVtcyA9IHRhZy0+aXRlbUxpc3RNYXAoKTsKLS0g ICAgaWYgKCBpdGVtcy5jb250YWlucygiUkVQTEFZR0FJTl9UUkFDS19HQUlOIikgKQotLSAgICB7 Ci0tICAgICAgICBtYXliZUFkZEdhaW4oIGl0ZW1zWyJSRVBMQVlHQUlOX1RSQUNLX0dBSU4iXS52 YWx1ZXMoKVswXSwgTWV0YTo6UmVwbGF5R2Fpbl9UcmFja19HYWluLCAmbWFwICk7Ci0tICAgICAg ICBpZiAoIGl0ZW1zLmNvbnRhaW5zKCJSRVBMQVlHQUlOX1RSQUNLX1BFQUsiKSApCi0tICAgICAg ICAgICAgbWF5YmVBZGRQZWFrKCBpdGVtc1siUkVQTEFZR0FJTl9UUkFDS19QRUFLIl0udmFsdWVz KClbMF0sIE1ldGE6OlJlcGxheUdhaW5fVHJhY2tfUGVhaywgJm1hcCApOwotLSAgICB9Ci0tICAg IGlmICggaXRlbXMuY29udGFpbnMoIlJFUExBWUdBSU5fQUxCVU1fR0FJTiIpICkKLS0gICAgewot LSAgICAgICAgbWF5YmVBZGRHYWluKCBpdGVtc1siUkVQTEFZR0FJTl9BTEJVTV9HQUlOIl0udmFs dWVzKClbMF0sIE1ldGE6OlJlcGxheUdhaW5fQWxidW1fR2FpbiwgJm1hcCApOwotLSAgICAgICAg aWYgKCBpdGVtcy5jb250YWlucygiUkVQTEFZR0FJTl9BTEJVTV9QRUFLIikgKQotLSAgICAgICAg ICAgIG1heWJlQWRkUGVhayggaXRlbXNbIlJFUExBWUdBSU5fQUxCVU1fUEVBSyJdLnZhbHVlcygp WzBdLCBNZXRhOjpSZXBsYXlHYWluX0FsYnVtX1BlYWssICZtYXAgKTsKLS0gICAgfQotLSAgICBy ZXR1cm4gbWFwOwotLX0KLS0KLS1zdGF0aWMgTWV0YTo6UmVwbGF5R2FpblRhZ01hcCByZWFkWGlw aFRhZ3MoIFRhZ0xpYjo6T2dnOjpYaXBoQ29tbWVudCAqdGFnICkKLS17Ci0tICAgIGNvbnN0IFRh Z0xpYjo6T2dnOjpGaWVsZExpc3RNYXAgJnRhZ01hcCA9IHRhZy0+ZmllbGRMaXN0TWFwKCk7Ci0t ICAgIE1ldGE6OlJlcGxheUdhaW5UYWdNYXAgb3V0cHV0TWFwOwotLQotLSAgICBpZiAoICF0YWdN YXBbIlJFUExBWUdBSU5fVFJBQ0tfR0FJTiJdLmlzRW1wdHkoKSApCi0tICAgIHsKLS0gICAgICAg IG1heWJlQWRkR2FpbiggdGFnTWFwWyJSRVBMQVlHQUlOX1RSQUNLX0dBSU4iXS5mcm9udCgpLCBN ZXRhOjpSZXBsYXlHYWluX1RyYWNrX0dhaW4sICZvdXRwdXRNYXAgKTsKLS0gICAgICAgIGlmICgg IXRhZ01hcFsiUkVQTEFZR0FJTl9UUkFDS19QRUFLIl0uaXNFbXB0eSgpICkKLS0gICAgICAgICAg ICBtYXliZUFkZFBlYWsoIHRhZ01hcFsiUkVQTEFZR0FJTl9UUkFDS19QRUFLIl0uZnJvbnQoKSwg TWV0YTo6UmVwbGF5R2Fpbl9UcmFja19QZWFrLCAmb3V0cHV0TWFwICk7Ci0tICAgIH0KLS0KLS0g ICAgaWYgKCAhdGFnTWFwWyJSRVBMQVlHQUlOX0FMQlVNX0dBSU4iXS5pc0VtcHR5KCkgKQotLSAg ICB7Ci0tICAgICAgICBtYXliZUFkZEdhaW4oIHRhZ01hcFsiUkVQTEFZR0FJTl9BTEJVTV9HQUlO Il0uZnJvbnQoKSwgTWV0YTo6UmVwbGF5R2Fpbl9BbGJ1bV9HYWluLCAmb3V0cHV0TWFwICk7Ci0t ICAgICAgICBpZiAoICF0YWdNYXBbIlJFUExBWUdBSU5fQUxCVU1fUEVBSyJdLmlzRW1wdHkoKSAp Ci0tICAgICAgICAgICAgbWF5YmVBZGRQZWFrKCB0YWdNYXBbIlJFUExBWUdBSU5fQUxCVU1fUEVB SyJdLmZyb250KCksIE1ldGE6OlJlcGxheUdhaW5fQWxidW1fUGVhaywgJm91dHB1dE1hcCApOwot LSAgICB9Ci0tCi0tICAgIHJldHVybiBvdXRwdXRNYXA7Ci0tfQotLQotLSNpZmRlZiBUQUdMSUJf RVhUUkFTX0ZPVU5ECi0tc3RhdGljIE1ldGE6OlJlcGxheUdhaW5UYWdNYXAgcmVhZEFTRlRhZ3Mo IFRhZ0xpYjo6QVNGOjpUYWcgKnRhZyApCi0tewotLSAgICBjb25zdCBUYWdMaWI6OkFTRjo6QXR0 cmlidXRlTGlzdE1hcCAmdGFnTWFwID0gdGFnLT5hdHRyaWJ1dGVMaXN0TWFwKCk7Ci0tICAgIE1l dGE6OlJlcGxheUdhaW5UYWdNYXAgb3V0cHV0TWFwOwotLQotLSAgICBpZiAoICF0YWdNYXBbIlJF UExBWUdBSU5fVFJBQ0tfR0FJTiJdLmlzRW1wdHkoKSApCi0tICAgIHsKLS0gICAgICAgIG1heWJl QWRkR2FpbiggdGFnTWFwWyJSRVBMQVlHQUlOX1RSQUNLX0dBSU4iXS5mcm9udCgpLnRvU3RyaW5n KCksIE1ldGE6OlJlcGxheUdhaW5fVHJhY2tfR2FpbiwgJm91dHB1dE1hcCApOwotLSAgICAgICAg aWYgKCAhdGFnTWFwWyJSRVBMQVlHQUlOX1RSQUNLX1BFQUsiXS5pc0VtcHR5KCkgKQotLSAgICAg ICAgICAgIG1heWJlQWRkUGVhayggdGFnTWFwWyJSRVBMQVlHQUlOX1RSQUNLX1BFQUsiXS5mcm9u dCgpLnRvU3RyaW5nKCksIE1ldGE6OlJlcGxheUdhaW5fVHJhY2tfUGVhaywgJm91dHB1dE1hcCAp OwotLSAgICB9Ci0tCi0tICAgIGlmICggIXRhZ01hcFsiUkVQTEFZR0FJTl9BTEJVTV9HQUlOIl0u aXNFbXB0eSgpICkKLS0gICAgewotLSAgICAgICAgbWF5YmVBZGRHYWluKCB0YWdNYXBbIlJFUExB WUdBSU5fQUxCVU1fR0FJTiJdLmZyb250KCkudG9TdHJpbmcoKSwgTWV0YTo6UmVwbGF5R2Fpbl9B bGJ1bV9HYWluLCAmb3V0cHV0TWFwICk7Ci0tICAgICAgICBpZiAoICF0YWdNYXBbIlJFUExBWUdB SU5fQUxCVU1fUEVBSyJdLmlzRW1wdHkoKSApCi0tICAgICAgICAgICAgbWF5YmVBZGRQZWFrKCB0 YWdNYXBbIlJFUExBWUdBSU5fQUxCVU1fUEVBSyJdLmZyb250KCkudG9TdHJpbmcoKSwgTWV0YTo6 UmVwbGF5R2Fpbl9BbGJ1bV9QZWFrLCAmb3V0cHV0TWFwICk7Ci0tICAgIH0KLS0KLS0gICAgcmV0 dXJuIG91dHB1dE1hcDsKLS19Ci0tI2VuZGlmCi0tLy8gQmFkIG5ld3M6IFJlcGxheUdhaW4gaW4g TVA0IGlzIG5vdCBhY3R1YWxseSBzdGFuZGFyZGl6ZWQgaW4gYW55IHdheS4gIE1heWJlIHJlaW1w bGVtZW50IGF0IHNvbWUgcG9pbnQuLi5tYXliZS4gIFNlZQotLS8vIGh0dHA6Ly93d3cuaHlkcm9n ZW5hdWRpby5vcmcvZm9ydW1zL2xvZml2ZXJzaW9uL2luZGV4LnBocC90MTQzMjIuaHRtbAotLSNp ZmRlZiBET19OT1RfVVNFX1RISVNfVU5USUxfRklYRUQKLS1zdGF0aWMgTWV0YTo6UmVwbGF5R2Fp blRhZ01hcCByZWFkTVA0VGFncyggVGFnTGliOjpNUDQ6OlRhZyAqdGFnICkKLS17Ci0tICAgIE1l dGE6OlJlcGxheUdhaW5UYWdNYXAgb3V0cHV0TWFwOwotLQotLSAgICBpZiAoICF0YWctPnRyYWNr UmVwbGF5R2FpbigpLmlzTnVsbCgpICkgewotLSAgICAgICAgbWF5YmVBZGRHYWluKCB0YWctPnRy YWNrUmVwbGF5R2FpbigpLCBNZXRhOjpSZXBsYXlHYWluX1RyYWNrX0dhaW4sICZvdXRwdXRNYXAg KTsKLS0gICAgICAgIGlmICggIXRhZy0+dHJhY2tSZXBsYXlHYWluUGVhaygpLmlzTnVsbCgpICkK LS0gICAgICAgICAgICBtYXliZUFkZFBlYWsoIHRhZy0+dHJhY2tSZXBsYXlHYWluUGVhaygpLCBN ZXRhOjpSZXBsYXlHYWluX1RyYWNrX1BlYWssICZvdXRwdXRNYXAgKTsKLS0gICAgfQotLQotLSAg ICBpZiAoICF0YWctPmFsYnVtUmVwbGF5R2FpbigpLmlzTnVsbCgpICkgewotLSAgICAgICAgbWF5 YmVBZGRHYWluKCB0YWctPmFsYnVtUmVwbGF5R2FpbigpLCBNZXRhOjpSZXBsYXlHYWluX0FsYnVt X0dhaW4sICZvdXRwdXRNYXAgKTsKLS0gICAgICAgIGlmICggIXRhZy0+YWxidW1SZXBsYXlHYWlu UGVhaygpLmlzTnVsbCgpICkKLS0gICAgICAgICAgICBtYXliZUFkZFBlYWsoIHRhZy0+YWxidW1S ZXBsYXlHYWluUGVhaygpLCBNZXRhOjpSZXBsYXlHYWluX0FsYnVtX1BlYWssICZvdXRwdXRNYXAg KTsKLS0gICAgfQotLQotLSAgICByZXR1cm4gb3V0cHV0TWFwOwotLX0KLS0jZW5kaWYgCi0tCi0t TWV0YTo6UmVwbGF5R2FpblRhZ01hcAotLU1ldGE6OnJlYWRSZXBsYXlHYWluVGFncyggVGFnTGli OjpGaWxlUmVmIGZpbGVyZWYgKQotLXsKLS0gICAgTWV0YTo6UmVwbGF5R2FpblRhZ01hcCBtYXA7 Ci0tICAgIC8vIE5COiB3ZSBjYW4ndCBnZXQgcmVwbGF5IGdhaW4gaW5mbyBmcm9tIE1QQyBmaWxl cywgc2luY2UgaXQncyBzdG9yZWQgaW4gc29tZSBtYWdpYyBwbGFjZQotLSAgICAvLyAgICAgYW5k IG5vdCBpbiB0aGUgQVBFIHRhZ3MsIGFuZCB0YWdsaWIgZG9lc24ndCBsZXQgdXMgYWNjZXNzIHRo ZSBpbmZvcm1hdGlvbiAodW5sZXNzCi0tICAgIC8vICAgICB3ZSB3YW50IHRvIHBhcnNlIHRoZSBm aWxlIG91cnNlbHZlcykuCi0tICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgdHJ5IGdldHRpbmcgdGhl IGluZm8gZnJvbSB0aGUgTVBDIEFQRSB0YWcganVzdCBpbiBjYXNlPwotLQotLSAgICBpZiAoIFRh Z0xpYjo6TVBFRzo6RmlsZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6Ok1QRUc6OkZpbGUg Kj4oIGZpbGVyZWYuZmlsZSgpICkgKQotLSAgICB7Ci0tICAgICAgICBpZiAoIGZpbGUtPklEM3Yy VGFnKCkgKQotLSAgICAgICAgICAgIG1hcCA9IHJlYWRJRDN2MlRhZ3MoIGZpbGUtPklEM3YyVGFn KCkgKTsKLS0gICAgICAgIGlmICggbWFwLmlzRW1wdHkoKSAmJiBmaWxlLT5BUEVUYWcoKSApCi0t ICAgICAgICAgICAgbWFwID0gcmVhZEFQRVRhZ3MoIGZpbGUtPkFQRVRhZygpICk7Ci0tICAgIH0K LS0gICAgZWxzZSBpZiAoIFRhZ0xpYjo6T2dnOjpWb3JiaXM6OkZpbGUgKmZpbGUgPSBkeW5hbWlj X2Nhc3Q8VGFnTGliOjpPZ2c6OlZvcmJpczo6RmlsZSAqPiggZmlsZXJlZi5maWxlKCkgKSApCi0t ICAgIHsKLS0gICAgICAgIGlmICggZmlsZS0+dGFnKCkgKQotLSAgICAgICAgICAgIG1hcCA9IHJl YWRYaXBoVGFncyggZmlsZS0+dGFnKCkgKTsKLS0gICAgfQotLSAgICBlbHNlIGlmICggVGFnTGli OjpGTEFDOjpGaWxlICpmaWxlID0gZHluYW1pY19jYXN0PFRhZ0xpYjo6RkxBQzo6RmlsZSAqPigg ZmlsZXJlZi5maWxlKCkgKSApCi0tICAgIHsKLS0gICAgICAgIGlmICggZmlsZS0+eGlwaENvbW1l bnQoKSApCi0tICAgICAgICAgICAgbWFwID0gcmVhZFhpcGhUYWdzKCBmaWxlLT54aXBoQ29tbWVu dCgpICk7Ci0tICAgICAgICBpZiAoIG1hcC5pc0VtcHR5KCkgJiYgZmlsZS0+SUQzdjJUYWcoKSAp Ci0tICAgICAgICAgICAgbWFwID0gcmVhZElEM3YyVGFncyggZmlsZS0+SUQzdjJUYWcoKSApOwot LSAgICB9Ci0tICAgIGVsc2UgaWYgKCBUYWdMaWI6Ok9nZzo6RkxBQzo6RmlsZSAqZmlsZSA9IGR5 bmFtaWNfY2FzdDxUYWdMaWI6Ok9nZzo6RkxBQzo6RmlsZSAqPiggZmlsZXJlZi5maWxlKCkgKSAp Ci0tICAgIHsKLS0gICAgICAgIGlmICggZmlsZS0+dGFnKCkgKQotLSAgICAgICAgICAgIG1hcCA9 IHJlYWRYaXBoVGFncyggZmlsZS0+dGFnKCkgKTsKLS0gICAgfQotLSAgICBlbHNlIGlmICggVGFn TGliOjpXYXZQYWNrOjpGaWxlICpmaWxlID0gZHluYW1pY19jYXN0PFRhZ0xpYjo6V2F2UGFjazo6 RmlsZSAqPiggZmlsZXJlZi5maWxlKCkgKSApCi0tICAgIHsKLS0gICAgICAgIGlmICggZmlsZS0+ QVBFVGFnKCkgKQotLSAgICAgICAgICAgIG1hcCA9IHJlYWRBUEVUYWdzKCBmaWxlLT5BUEVUYWco KSApOwotLSAgICB9Ci0tICAgIGVsc2UgaWYgKCBUYWdMaWI6OlRydWVBdWRpbzo6RmlsZSAqZmls ZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6OlRydWVBdWRpbzo6RmlsZSAqPiggZmlsZXJlZi5maWxl KCkgKSApCi0tICAgIHsKLS0gICAgICAgIGlmICggZmlsZS0+SUQzdjJUYWcoKSApCi0tICAgICAg ICAgICAgbWFwID0gcmVhZElEM3YyVGFncyggZmlsZS0+SUQzdjJUYWcoKSApOwotLSAgICB9Ci0t ICAgIGVsc2UgaWYgKCBUYWdMaWI6Ok9nZzo6U3BlZXg6OkZpbGUgKmZpbGUgPSBkeW5hbWljX2Nh c3Q8VGFnTGliOjpPZ2c6OlNwZWV4OjpGaWxlICo+KCBmaWxlcmVmLmZpbGUoKSApICkKLS0gICAg ewotLSAgICAgICAgaWYgKCBmaWxlLT50YWcoKSApCi0tICAgICAgICAgICAgbWFwID0gcmVhZFhp cGhUYWdzKCBmaWxlLT50YWcoKSApOwotLSAgICB9Ci0tICAgIGVsc2UgaWYgKCBUYWdMaWI6Ok1Q Qzo6RmlsZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6Ok1QQzo6RmlsZSAqPiggZmlsZXJl Zi5maWxlKCkgKSApCi0tICAgIHsKLS0gICAgICAgIC8vIFRoaXMgaXMgTk9UIHRoZSBjb3JyZWN0 IHdheSB0byBnZXQgcmVwbGF5IGdhaW4gdGFncyBmcm9tIE1QQyBmaWxlcywgYnV0Ci0tICAgICAg ICAvLyB0YWdsaWIgZG9lc24ndCBhbGxvdyB1cyBhY2Nlc3MgdG8gdGhlIHJlYWwgaW5mb3JtYXRp b24uCi0tICAgICAgICAvLyBUaGlzIGFsbG93cyBwZW9wbGUgdG8gd29yayBhcm91bmQgdGhpcyBp c3N1ZSBieSBjb3B5aW5nIHRoZWlyIHJlcGxheSBnYWluCi0tICAgICAgICAvLyBpbmZvcm1hdGlv biB0byB0aGUgQVBFIHRhZy4KLS0gICAgICAgIGlmICggZmlsZS0+QVBFVGFnKCkgKQotLSAgICAg ICAgICAgIG1hcCA9IHJlYWRBUEVUYWdzKCBmaWxlLT5BUEVUYWcoKSApOwotLSAgICB9Ci0tI2lm ZGVmIFRBR0xJQl9FWFRSQVNfRk9VTkQKLS0gICAgZWxzZSBpZiAoIFRhZ0xpYjo6QVNGOjpGaWxl ICpmaWxlID0gZHluYW1pY19jYXN0PFRhZ0xpYjo6QVNGOjpGaWxlICo+KCBmaWxlcmVmLmZpbGUo KSApICkKLS0gICAgewotLSAgICAgICAgaWYgKCBmaWxlLT50YWcoKSApCi0tICAgICAgICAgICAg bWFwID0gcmVhZEFTRlRhZ3MoIGZpbGUtPnRhZygpICk7Ci0tICAgIH0KLS0jZW5kaWYKLS0vLyBT ZWUgY29tbWVudCBhYm92ZQotLSNpZmRlZiBET19OT1RfVVNFX1RISVNfVU5USUxfRklYRUQKLS0g ICAgZWxzZSBpZiAoIFRhZ0xpYjo6TVA0OjpGaWxlICpmaWxlID0gZHluYW1pY19jYXN0PFRhZ0xp Yjo6TVA0OjpGaWxlICo+KCBmaWxlcmVmLmZpbGUoKSApICkKLS0gICAgewotLSAgICAgICAgaWYg KCBmaWxlLT50YWcoKSApCi0tICAgICAgICAgICAgbWFwID0gcmVhZE1QNFRhZ3MoIGZpbGUtPmdl dE1QNFRhZygpICk7Ci0tICAgIH0KLS0jZW5kaWYKLS0gICAgcmV0dXJuIG1hcDsKLS19Ci0tCi1k aWZmIC0tZ2l0IGEvdXRpbGl0aWVzL2NvbGxlY3Rpb25zY2FubmVyL01ldGFSZXBsYXlHYWluLmgg Yi91dGlsaXRpZXMvY29sbGVjdGlvbnNjYW5uZXIvTWV0YVJlcGxheUdhaW4uaAotZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCBlYmE4NjBhLi4wMDAwMDAwCi0tLS0gYS91dGlsaXRpZXMv Y29sbGVjdGlvbnNjYW5uZXIvTWV0YVJlcGxheUdhaW4uaAotKysrIC9kZXYvbnVsbAotQEAgLTEs NDkgKzAsMCBAQAotLS8qCi0tICAgQ29weXJpZ2h0IChDKSAyMDA5IEFsZXggTWVycnkgPGFsZXgu bWVycnlAa2RlbWFpbC5uZXQ+Ci0tCi0tICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotLSAgIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0tICAgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKLS0gICBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLS0K LS0gICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKLS0gICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgotLSAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLS0gICBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotLQotLSAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0tICAgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLS0gICBG b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s IE1BICAwMjExMC0xMzAxLCBVU0EKLS0qLwotLQotLSNpZm5kZWYgQU1BUk9LX01FVEFSRVBMQVlH QUlOX0gKLS0jZGVmaW5lIEFNQVJPS19NRVRBUkVQTEFZR0FJTl9ICi0tCi0tI2luY2x1ZGUgPFFN YXA+Ci0tCi0tLy8gVGFnbGliCi0tI2luY2x1ZGUgPGZpbGVyZWYuaD4KLS0KLS0vKiBUaGlzIGZp bGUgZXhpc3RzIChyYXRoZXIgdGhhbiBwdXR0aW5nIHRoZSBtZXRob2QgaW4gTWV0YVV0aWxpdHku aCBhbmQKLS0gKiBNZXRhVXRpbGl0eS5jcHApIGJlY2F1c2Ugd2UgbmVlZCB0byBzaGFyZSB0aGUg aW1wbGVtZW50YXRpb24gYmV0d2VlbgotLSAqIGFtYXJva2xpYiBhbmQgYW1hcm9rY29sbGVjdGlv bnNjYW5uZXIgKHdoaWNoIGRvZXNuJ3QgbGluayB0byBhbWFyb2tsaWIpLgotLSAqLwotLW5hbWVz cGFjZSBNZXRhCi0tewotLSAgICBlbnVtIFJlcGxheUdhaW5UYWcKLS0gICAgewotLSAgICAgICAg UmVwbGF5R2Fpbl9UcmFja19HYWluLAotLSAgICAgICAgUmVwbGF5R2Fpbl9UcmFja19QZWFrLAot LSAgICAgICAgUmVwbGF5R2Fpbl9BbGJ1bV9HYWluLAotLSAgICAgICAgUmVwbGF5R2Fpbl9BbGJ1 bV9QZWFrCi0tICAgIH07Ci0tCi0tICAgIHR5cGVkZWYgUU1hcDxSZXBsYXlHYWluVGFnLCBxcmVh bD4gUmVwbGF5R2FpblRhZ01hcDsKLS0KLS0gICAgLyoqCi0tICAgICAqIFJlYWRzIHRoZSByZXBs YXkgZ2FpbiB0YWdzIGZyb20gYSB0YWdsaWIgZmlsZS4KLS0gICAgICovCi0tICAgIFJlcGxheUdh aW5UYWdNYXAgcmVhZFJlcGxheUdhaW5UYWdzKCBUYWdMaWI6OkZpbGVSZWYgZmlsZXJlZiApOwot LX0KLS0KLS0jZW5kaWYgLy8gQU1BUk9LX01FVEFSRVBMQVlHQUlOX0gKCmRpZmYgLS1naXQgYS9h bWFyb2suc3BlYyBiL2FtYXJvay5zcGVjCmluZGV4IDcxNmUxMzQuLmFlZWUzZTMgMTAwNjQ0Ci0t LSBhL2FtYXJvay5zcGVjCisrKyBiL2FtYXJvay5zcGVjCkBAIC0xLDggKzEsOCBAQAogCiBOYW1l OiAgICBhbWFyb2sKIFN1bW1hcnk6IE1lZGlhIHBsYXllcgotVmVyc2lvbjogMi4xLjg1Ci1SZWxl YXNlOiAyJXs/ZGlzdH0KK1ZlcnNpb246IDIuMS45MAorUmVsZWFzZTogMSV7P2Rpc3R9CiAKIEdy b3VwOiAJIEFwcGxpY2F0aW9ucy9NdWx0aW1lZGlhCiBMaWNlbnNlOiBHUEx2MisKQEAgLTEyLDkg KzEyLDYgQEAgQnVpbGRSb290OiAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxl YXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQogCiBQYXRjaDUwOiBhbWFyb2stMi4wLjkwLXF0c2Ny aXB0X25vdF9yZXF1aXJlZC5wYXRjaAogCi0jIyB1cHN0cmVhbSBwYXRjaGVzCi1QYXRjaDEwMDog YW1hcm9rLXRhZ2xpYi5wYXRjaAotCiBCdWlsZFJlcXVpcmVzOiBjdXJsLWRldmVsCiBCdWlsZFJl cXVpcmVzOiBkZXNrdG9wLWZpbGUtdXRpbHMKIEJ1aWxkUmVxdWlyZXM6IGdldHRleHQKQEAgLTc5 LDggKzc2LDYgQEAgT2Jzb2xldGVzOiBhbWFyb2stdXRpbGl0aWVzIDwgMi4wLjk2CiAKICVwYXRj aDUwIC1wMSAtYiAucXRzY3JpcHRfbm90X3JlcXVpcmVkCiAKLSVwYXRjaDEwMCAtcDEgLWIgLnRh Z2xpYgotCiAKICVidWlsZAogbWtkaXIgLXAgJXtfdGFyZ2V0X3BsYXRmb3JtfQpAQCAtMTcxLDYg KzE2Niw5IEBAIGZpCiAKIAogJWNoYW5nZWxvZworKiBNb24gU2VwIDIxIDIwMDkgUmV4IERpZXRl ciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4gMi4xLjkwLTEKKy0gYW1hcm9rLTIuMS45MCAo Mi4ycmMxKQorCiAqIFRodSBTZXAgMTcgMjAwOSBSZXggRGlldGVyIDxyZGlldGVyQGZlZG9yYXBy b2plY3Qub3JnPiAyLjEuODUtMgogLSBCUjogdGFnbGliLWRldmVsID49IDEuNiwgdGFnbGliLWV4 dHJhcy1kZXZlbCA+PSAxLjAKIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4 IDc3ODA4NzcuLjQ1ZDQzZDAgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAt MSArMSBAQAotMzgzMTFhNTU3NjdmYjhkODUyNTRiMjQ4YTQ2NDMzZDggIGFtYXJvay0yLjEuODUu dGFyLmJ6MgorZWM3MjdlZDcyYzVkMzcxZmI2NTljZTBjM2MxZTYxMzYgIGFtYXJvay0yLjEuOTAu dGFyLmJ6Mgo=