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.2: - amarok-2.1.90 (2.2rc1) Date: Mon, 06 Jul 2026 18:30:54 GMT Message-ID: <178336265483.1.6990053798859223093.rpms-amarok-f3307ac12cb9@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10.2 X-Git-Rev: f3307ac12cb94bd8398a9593dc166ca497c9cebf QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMC4yCkNvbW1pdCA6IGYzMzA3YWMxMmNiOTRiZDgzOThhOTU5M2RjMTY2Y2E0OTdj OWNlYmYKQXV0aG9yIDogUmV4IERpZXRlciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4KRGF0 ZSAgIDogMjAwOS0wOS0yMlQwMjowMTowNiswMDowMApTdGF0cyAgOiArNy8tNjgyIGluIDQgZmls ZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2FtYXJvay9j L2YzMzA3YWMxMmNiOTRiZDgzOThhOTU5M2RjMTY2Y2E0OTdjOWNlYmY/YnJhbmNoPWVwZWwxMC4y CgpMb2c6Ci0gYW1hcm9rLTIuMS45MCAoMi4ycmMxKQoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdu b3JlIGIvLmN2c2lnbm9yZQppbmRleCBiMzQ2MTFlLi4wNjE1ZWU3IDEwMDY0NAotLS0gYS8uY3Zz aWdub3JlCisrKyBiLy5jdnNpZ25vcmUKQEAgLTEgKzEgQEAKLWFtYXJvay0yLjEuODUudGFyLmJ6 MgorYW1hcm9rLTIuMS45MC50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvYW1hcm9rLXRhZ2xpYi5wYXRj aCBiL2FtYXJvay10YWdsaWIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1 NTk2ZDUuLjAwMDAwMDAKLS0tIGEvYW1hcm9rLXRhZ2xpYi5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDY3MyArMCwwIEBACi0jIGdpdCBkaWZmIDNlZTBlZjcwYzBjOWQ1ZGU5ODIwOTFlMzUzODA0 Yzk5MGMzNWVhNGUKLWRpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0 Ci1pbmRleCA4MjE5YmM2Li5lNGI2Yjk0IDEwMDY0NAotLS0tIGEvQ01ha2VMaXN0cy50eHQKLSsr KyBiL0NNYWtlTGlzdHMudHh0Ci1AQCAtMTMsMTAgKzEzLDEwIEBAIG9wdGlvbihXSVRIX0lQT0Qg IkVuYWJsZSBpUG9kIHN1cHBvcnQgaW4gQW1hcm9rIiBPTikKLSBpbmNsdWRlKENoZWNrTGlicmFy eUV4aXN0cykKLSBjaGVja19saWJyYXJ5X2V4aXN0cyhkbCBkbG9wZW4gIiIgTElCRExfRk9VTkQp Ci0gCi0tc2V0KFRBR0xJQl9NSU5fVkVSU0lPTiAiMS41IikKLStzZXQoVEFHTElCX01JTl9WRVJT SU9OICIxLjYiKQotIGZpbmRfcGFja2FnZShUYWdsaWIgUkVRVUlSRUQpCi0gCi0tZmluZF9wYWNr YWdlKFRhZ2xpYi1FeHRyYXMgMC4xIFJFUVVJUkVEKQotK2ZpbmRfcGFja2FnZShUYWdsaWItRXh0 cmFzIDEuMCBSRVFVSVJFRCkKLSBpZiggVEFHTElCLUVYVFJBU19GT1VORCApCi0gICAgIGFkZF9k ZWZpbml0aW9ucyggLURUQUdMSUJfRVhUUkFTX0ZPVU5EICkKLSBlbmRpZiggVEFHTElCLUVYVFJB U19GT1VORCApCi1kaWZmIC0tZ2l0IGEvc2hhcmVkL01ldGFSZXBsYXlHYWluLmNwcCBiL3NoYXJl ZC9NZXRhUmVwbGF5R2Fpbi5jcHAKLWluZGV4IGQ2ZWRkOTUuLjk3MDczZDUgMTAwNjQ0Ci0tLS0g YS9zaGFyZWQvTWV0YVJlcGxheUdhaW4uY3BwCi0rKysgYi9zaGFyZWQvTWV0YVJlcGxheUdhaW4u Y3BwCi1AQCAtMzgsMTAgKzM4LDggQEAKLSAjaW5jbHVkZSA8dHJ1ZWF1ZGlvZmlsZS5oPgotICNp bmNsdWRlIDx2b3JiaXNmaWxlLmg+Ci0gI2luY2x1ZGUgPHdhdnBhY2tmaWxlLmg+Ci0tI2lmZGVm IFRBR0xJQl9FWFRSQVNfRk9VTkQKLSAjaW5jbHVkZSA8YXNmZmlsZS5oPgotICNpbmNsdWRlIDxt cDRmaWxlLmg+Ci0tI2VuZGlmCi0gCi0gLy8gY29udmVydHMgYSBwZWFrIHZhbHVlIGZyb20gdGhl IG5vcm1hbCBkaWdpdGFsIHNjYWxlIGZvcm0gdG8gdGhlIG1vcmUgdXNlZnVsIGRlY2liZWwgZm9y bQotIC8vIGRlY2liZWxzIGFyZSByZWxhdGl2ZSB0byB0aGUgL2FkanVzdGVkLyB3YXZlZm9ybQot QEAgLTIyOSw3ICsyMjcsNiBAQCBzdGF0aWMgTWV0YTo6UmVwbGF5R2FpblRhZ01hcCByZWFkWGlw aFRhZ3MoIFRhZ0xpYjo6T2dnOjpYaXBoQ29tbWVudCAqdGFnICkKLSAgICAgcmV0dXJuIG91dHB1 dE1hcDsKLSB9Ci0gCi0tI2lmZGVmIFRBR0xJQl9FWFRSQVNfRk9VTkQKLSBzdGF0aWMgTWV0YTo6 UmVwbGF5R2FpblRhZ01hcCByZWFkQVNGVGFncyggVGFnTGliOjpBU0Y6OlRhZyAqdGFnICkKLSB7 Ci0gICAgIGNvbnN0IFRhZ0xpYjo6QVNGOjpBdHRyaWJ1dGVMaXN0TWFwICZ0YWdNYXAgPSB0YWct PmF0dHJpYnV0ZUxpc3RNYXAoKTsKLUBAIC0yNTEsNyArMjQ4LDYgQEAgc3RhdGljIE1ldGE6OlJl cGxheUdhaW5UYWdNYXAgcmVhZEFTRlRhZ3MoIFRhZ0xpYjo6QVNGOjpUYWcgKnRhZyApCi0gCi0g ICAgIHJldHVybiBvdXRwdXRNYXA7Ci0gfQotLSNlbmRpZgotIC8vIEJhZCBuZXdzOiBSZXBsYXlH YWluIGluIE1QNCBpcyBub3QgYWN0dWFsbHkgc3RhbmRhcmRpemVkIGluIGFueSB3YXkuICBNYXli ZSByZWltcGxlbWVudCBhdCBzb21lIHBvaW50Li4ubWF5YmUuICBTZWUKLSAvLyBodHRwOi8vd3d3 Lmh5ZHJvZ2VuYXVkaW8ub3JnL2ZvcnVtcy9sb2ZpdmVyc2lvbi9pbmRleC5waHAvdDE0MzIyLmh0 bWwKLSAjaWZkZWYgRE9fTk9UX1VTRV9USElTX1VOVElMX0ZJWEVECi1AQCAtMzMyLDEzICszMjgs MTEgQEAgTWV0YTo6cmVhZFJlcGxheUdhaW5UYWdzKCBUYWdMaWI6OkZpbGVSZWYgZmlsZXJlZiAp Ci0gICAgICAgICBpZiAoIGZpbGUtPkFQRVRhZygpICkKLSAgICAgICAgICAgICBtYXAgPSByZWFk QVBFVGFncyggZmlsZS0+QVBFVGFnKCkgKTsKLSAgICAgfQotLSNpZmRlZiBUQUdMSUJfRVhUUkFT X0ZPVU5ECi0gICAgIGVsc2UgaWYgKCBUYWdMaWI6OkFTRjo6RmlsZSAqZmlsZSA9IGR5bmFtaWNf Y2FzdDxUYWdMaWI6OkFTRjo6RmlsZSAqPiggZmlsZXJlZi5maWxlKCkgKSApCi0gICAgIHsKLSAg ICAgICAgIGlmICggZmlsZS0+dGFnKCkgKQotICAgICAgICAgICAgIG1hcCA9IHJlYWRBU0ZUYWdz KCBmaWxlLT50YWcoKSApOwotICAgICB9Ci0tI2VuZGlmCi0gLy8gU2VlIGNvbW1lbnQgYWJvdmUK LSAjaWZkZWYgRE9fTk9UX1VTRV9USElTX1VOVElMX0ZJWEVECi0gICAgIGVsc2UgaWYgKCBUYWdM aWI6Ok1QNDo6RmlsZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6Ok1QNDo6RmlsZSAqPigg ZmlsZXJlZi5maWxlKCkgKSApCi1kaWZmIC0tZ2l0IGEvc3JjL0FwcC5jcHAgYi9zcmMvQXBwLmNw cAotaW5kZXggYmQwMTUxNy4uNjM3YTBhZCAxMDA2NDQKLS0tLSBhL3NyYy9BcHAuY3BwCi0rKysg Yi9zcmMvQXBwLmNwcAotQEAgLTcwLDEwICs3MCw3IEBACi0gCi0gI2lmZGVmIFRBR0xJQl9FWFRS QVNfRk9VTkQKLSAjaW5jbHVkZSA8YXVkaWJsZWZpbGV0eXBlcmVzb2x2ZXIuaD4KLS0jaW5jbHVk ZSA8YXNmZmlsZXR5cGVyZXNvbHZlci5oPgotLSNpbmNsdWRlIDx3YXZmaWxldHlwZXJlc29sdmVy Lmg+Ci0gI2luY2x1ZGUgPHJlYWxtZWRpYWZpbGV0eXBlcmVzb2x2ZXIuaD4KLS0jaW5jbHVkZSA8 bXA0ZmlsZXR5cGVyZXNvbHZlci5oPgotICNlbmRpZgotIAotIFFNdXRleCBEZWJ1Zzo6bXV0ZXg7 Ci1AQCAtMTQzLDExICsxNDAsOCBAQCBBcHA6OkFwcCgpCi0gCi0gI2lmZGVmIFRBR0xJQl9FWFRS QVNfRk9VTkQKLSAgICAgUEVSRl9MT0coICJSZWdpc3RlcmluZyB0YWdsaWIgcGx1Z2lucyIgKQot LSAgICBUYWdMaWI6OkZpbGVSZWY6OmFkZEZpbGVUeXBlUmVzb2x2ZXIobmV3IE1QNEZpbGVUeXBl UmVzb2x2ZXIpOwotLSAgICBUYWdMaWI6OkZpbGVSZWY6OmFkZEZpbGVUeXBlUmVzb2x2ZXIobmV3 IEFTRkZpbGVUeXBlUmVzb2x2ZXIpOwotICAgICBUYWdMaWI6OkZpbGVSZWY6OmFkZEZpbGVUeXBl UmVzb2x2ZXIobmV3IFJlYWxNZWRpYUZpbGVUeXBlUmVzb2x2ZXIpOwotICAgICBUYWdMaWI6OkZp bGVSZWY6OmFkZEZpbGVUeXBlUmVzb2x2ZXIobmV3IEF1ZGlibGVGaWxlVHlwZVJlc29sdmVyKTsK LS0gICAgVGFnTGliOjpGaWxlUmVmOjphZGRGaWxlVHlwZVJlc29sdmVyKG5ldyBXYXZGaWxlVHlw ZVJlc29sdmVyKTsKLSAgICAgUEVSRl9MT0coICJEb25lIFJlZ2lzdGVyaW5nIHRhZ2xpYiBwbHVn aW5zIiApCi0gI2VuZGlmCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL21ldGEvTWV0YVV0aWxpdHkuY3Bw IGIvc3JjL21ldGEvTWV0YVV0aWxpdHkuY3BwCi1pbmRleCBiNzhlZjkyLi4zMTRkYjU3IDEwMDY0 NAotLS0tIGEvc3JjL21ldGEvTWV0YVV0aWxpdHkuY3BwCi0rKysgYi9zcmMvbWV0YS9NZXRhVXRp bGl0eS5jcHAKLUBAIC00MSwxMiArNDEsMTAgQEAKLSAjaW5jbHVkZSA8dm9yYmlzZmlsZS5oPgot ICNpbmNsdWRlIDx0ZXh0aWRlbnRpZmljYXRpb25mcmFtZS5oPgotICNpbmNsdWRlIDx4aXBoY29t bWVudC5oPgotLSNpZmRlZiBUQUdMSUJfRVhUUkFTX0ZPVU5ECi0gI2luY2x1ZGUgPG1wNGZpbGUu aD4KLSAjaW5jbHVkZSA8bXA0aXRlbS5oPgotICNpbmNsdWRlIDxtcDR0YWcuaD4KLSAjaW5jbHVk ZSA8YXNmdGFnLmg+Ci0tI2VuZGlmCi0gCi0gICAgICAgICBzdGF0aWMgY29uc3QgUVN0cmluZyBY RVNBTV9BTEJVTSAgICAgICAgICA9ICJodHRwOi8vZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJkcy94 ZXNhbS8xLjAvY29yZSNhbGJ1bSI7Ci0gICAgICAgICBzdGF0aWMgY29uc3QgUVN0cmluZyBYRVNB TV9BUlRJU1QgICAgICAgICA9ICJodHRwOi8vZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJkcy94ZXNh bS8xLjAvY29yZSNhcnRpc3QiOwotQEAgLTMyMCw3ICszMTgsNiBAQCBNZXRhOjpGaWVsZDo6d3Jp dGVGaWVsZHMoIFRhZ0xpYjo6RmlsZVJlZiBmaWxlcmVmLCBjb25zdCBRVmFyaWFudE1hcCAmY2hh bmdlcyApCi0gICAgICAgICAgICAgZmlsZS0+eGlwaENvbW1lbnQoKS0+YWRkRmllbGQoIkRJU0NO VU1CRVIiLCBkaXNjKTsKLSAgICAgICAgIH0KLSAgICAgfQotLSNpZmRlZiBUQUdMSUJfRVhUUkFT X0ZPVU5ECi0gICAgIGVsc2UgaWYgKCBUYWdMaWI6Ok1QNDo6RmlsZSAqZmlsZSA9IGR5bmFtaWNf Y2FzdDxUYWdMaWI6Ok1QNDo6RmlsZSAqPiggZmlsZXJlZi5maWxlKCkgKSApCi0gICAgIHsKLSAg ICAgICAgIGlmKCBjaGFuZ2VzLmNvbnRhaW5zKCBNZXRhOjpGaWVsZDo6Q09NUE9TRVIgKSApCi1A QCAtMzM4LDcgKzMzNSw2IEBAIE1ldGE6OkZpZWxkOjp3cml0ZUZpZWxkcyggVGFnTGliOjpGaWxl UmVmIGZpbGVyZWYsIGNvbnN0IFFWYXJpYW50TWFwICZjaGFuZ2VzICkKLSAgICAgICAgICAgICBt cDR0YWctPml0ZW1MaXN0TWFwKClbImRpc2siXSA9IFRhZ0xpYjo6TVA0OjpJdGVtKCBkaXNjbnVt YmVyLCAwICk7Ci0gICAgICAgICB9Ci0gICAgIH0KLS0jZW5kaWYKLSAgICAgaWYoIHNob3VsZFNh dmUgKQotICAgICAgICAgZmlsZXJlZi5zYXZlKCk7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9tZXRh L2ZpbGUvRmlsZV9wLmggYi9zcmMvbWV0YS9maWxlL0ZpbGVfcC5oCi1pbmRleCA1N2M1MTk1Li5m OWU5ZGFmIDEwMDY0NAotLS0tIGEvc3JjL21ldGEvZmlsZS9GaWxlX3AuaAotKysrIGIvc3JjL21l dGEvZmlsZS9GaWxlX3AuaAotQEAgLTUwLDEwICs1MCw3IEBACi0gI2luY2x1ZGUgPHRsaXN0Lmg+ Ci0gI2luY2x1ZGUgPHRzdHJpbmcuaD4KLSAjaW5jbHVkZSA8dm9yYmlzZmlsZS5oPgotLQotLSNp ZmRlZiBUQUdMSUJfRVhUUkFTX0ZPVU5ECi0gI2luY2x1ZGUgPG1wNGZpbGUuaD4KLS0jZW5kaWYK LSAKLSBuYW1lc3BhY2UgTWV0YUZpbGUKLSB7Ci1AQCAtMjgzLDcgKzI4MCw2IEBAIHZvaWQgVHJh Y2s6OlByaXZhdGU6OnJlYWRNZXRhRGF0YSgpCi0gICAgICAgICAgICAgICAgIGRpc2MgPSBzdHJp cCggZmxtWyAiRElTQ05VTUJFUiIgXS5mcm9udCgpICk7Ci0gICAgICAgICB9Ci0gICAgIH0KLS0j aWZkZWYgVEFHTElCX0VYVFJBU19GT1VORAotICAgICBlbHNlIGlmKCBUYWdMaWI6Ok1QNDo6Rmls ZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6Ok1QNDo6RmlsZSAqPiggZmlsZVJlZi5maWxl KCkgKSApCi0gICAgIHsKLSAgICAgICAgIFRhZ0xpYjo6TVA0OjpUYWcgKm1wNHRhZyA9IGR5bmFt aWNfY2FzdDwgVGFnTGliOjpNUDQ6OlRhZyAqPiggZmlsZS0+dGFnKCkgKTsKLUBAIC0yOTYsNyAr MjkyLDYgQEAgdm9pZCBUcmFjazo6UHJpdmF0ZTo6cmVhZE1ldGFEYXRhKCkKLSAgICAgICAgICAg ICAgICAgZGlzYyA9IFFTdHJpbmc6Om51bWJlciggbXA0dGFnLT5pdGVtTGlzdE1hcCgpWyJkaXNr Il0udG9JbnRQYWlyKCkuZmlyc3QgKTsKLSAgICAgICAgIH0KLSAgICAgfQotLSNlbmRpZgotICAg ICBpZiggIWRpc2MuaXNFbXB0eSgpICkKLSAgICAgewotICAgICAgICAgaW50IGkgPSBkaXNjLmlu ZGV4T2YoICcvJyApOwotZGlmZiAtLWdpdCBhL3NyYy9wb2RjYXN0cy9zcWwvU3FsUG9kY2FzdE1l dGEuY3BwIGIvc3JjL3BvZGNhc3RzL3NxbC9TcWxQb2RjYXN0TWV0YS5jcHAKLWluZGV4IDhiNWE5 NmIuLjRmODJlYjAgMTAwNjQ0Ci0tLS0gYS9zcmMvcG9kY2FzdHMvc3FsL1NxbFBvZGNhc3RNZXRh LmNwcAotKysrIGIvc3JjL3BvZGNhc3RzL3NxbC9TcWxQb2RjYXN0TWV0YS5jcHAKLUBAIC00Miwx MCArNDIsNyBAQAotICNpbmNsdWRlIDx0bGlzdC5oPgotICNpbmNsdWRlIDx0c3RyaW5nLmg+Ci0g I2luY2x1ZGUgPHZvcmJpc2ZpbGUuaD4KLS0KLS0jaWZkZWYgVEFHTElCX0VYVFJBU19GT1VORAot ICNpbmNsdWRlIDxtcDRmaWxlLmg+Ci0tI2VuZGlmCi0gCi0gY2xhc3MgVGltZWNvZGVXcml0ZUNh cGFiaWxpdHlQb2RjYXN0SW1wbCA6IHB1YmxpYyBNZXRhOjpUaW1lY29kZVdyaXRlQ2FwYWJpbGl0 eQotIHsKLWRpZmYgLS1naXQgYS91dGlsaXRpZXMvY29sbGVjdGlvbnNjYW5uZXIvQUZUVXRpbGl0 eS5jcHAgYi91dGlsaXRpZXMvY29sbGVjdGlvbnNjYW5uZXIvQUZUVXRpbGl0eS5jcHAKLWluZGV4 IDk4NTUyYzUuLjNkYzAwOWIgMTAwNjQ0Ci0tLS0gYS91dGlsaXRpZXMvY29sbGVjdGlvbnNjYW5u ZXIvQUZUVXRpbGl0eS5jcHAKLSsrKyBiL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9BRlRV dGlsaXR5LmNwcAotQEAgLTI2LDYgKzI2LDkgQEAKLSAjaW5jbHVkZSA8aWQzdjJ0YWcuaD4KLSAj aW5jbHVkZSA8bXBjZmlsZS5oPgotICNpbmNsdWRlIDxtcGVnZmlsZS5oPgotKyNpbmNsdWRlIDxt cDRpdGVtLmg+Ci0rI2luY2x1ZGUgPG1wNGZpbGUuaD4KLSsjaW5jbHVkZSA8bXA0dGFnLmg+Ci0g I2luY2x1ZGUgPG9nZ2ZpbGUuaD4KLSAjaW5jbHVkZSA8b2dnZmxhY2ZpbGUuaD4KLSAjaW5jbHVk ZSA8c3BlZXhmaWxlLmg+Ci1AQCAtMzUsMTcgKzM4LDYgQEAKLSAjaW5jbHVkZSA8dm9yYmlzZmls ZS5oPgotICNpbmNsdWRlIDx4aXBoY29tbWVudC5oPgotIAotLSNpZmRlZiBUQUdMSUJfRVhUUkFT X0ZPVU5ECi0tI2luY2x1ZGUgPG1wNGZpbGUuaD4KLS0jaW5jbHVkZSA8bXA0dGFnLmg+Ci0tI2lu Y2x1ZGUgPG1wNGl0ZW0uaD4KLS0jaW5jbHVkZSA8YXVkaWJsZWZpbGV0eXBlcmVzb2x2ZXIuaD4K LS0jaW5jbHVkZSA8YXNmZmlsZXR5cGVyZXNvbHZlci5oPgotLSNpbmNsdWRlIDx3YXZmaWxldHlw ZXJlc29sdmVyLmg+Ci0tI2luY2x1ZGUgPHJlYWxtZWRpYWZpbGV0eXBlcmVzb2x2ZXIuaD4KLS0j aW5jbHVkZSA8bXA0ZmlsZXR5cGVyZXNvbHZlci5oPgotLSNlbmRpZgotLQotICNpbmNsdWRlIDxR RmlsZT4KLSAjaW5jbHVkZSA8UVRpbWU+Ci0gCi1kaWZmIC0tZ2l0IGEvdXRpbGl0aWVzL2NvbGxl Y3Rpb25zY2FubmVyL0NvbGxlY3Rpb25TY2FubmVyLmNwcCBiL3V0aWxpdGllcy9jb2xsZWN0aW9u c2Nhbm5lci9Db2xsZWN0aW9uU2Nhbm5lci5jcHAKLWluZGV4IDY3M2JlMWMuLmMzZDk2MWUgMTAw NjQ0Ci0tLS0gYS91dGlsaXRpZXMvY29sbGVjdGlvbnNjYW5uZXIvQ29sbGVjdGlvblNjYW5uZXIu Y3BwCi0rKysgYi91dGlsaXRpZXMvY29sbGVjdGlvbnNjYW5uZXIvQ29sbGVjdGlvblNjYW5uZXIu Y3BwCi1AQCAtNDksNiArNDksOSBAQAotICNpbmNsdWRlIDxmbGFjZmlsZS5oPgotICNpbmNsdWRl IDxpZDN2MXRhZy5oPgotICNpbmNsdWRlIDxpZDN2MnRhZy5oPgotKyNpbmNsdWRlIDxtcDRmaWxl Lmg+Ci0rI2luY2x1ZGUgPG1wNHRhZy5oPgotKyNpbmNsdWRlIDxtcDRpdGVtLmg+Ci0gI2luY2x1 ZGUgPG1wY2ZpbGUuaD4KLSAjaW5jbHVkZSA8bXBlZ2ZpbGUuaD4KLSAjaW5jbHVkZSA8b2dnZmls ZS5oPgotQEAgLTU5LDE0ICs2Miw4IEBACi0gI2luY2x1ZGUgPHZvcmJpc2ZpbGUuaD4KLSAKLSAj aWZkZWYgVEFHTElCX0VYVFJBU19GT1VORAotLSNpbmNsdWRlIDxtcDRmaWxlLmg+Ci0tI2luY2x1 ZGUgPG1wNHRhZy5oPgotLSNpbmNsdWRlIDxtcDRpdGVtLmg+Ci0gI2luY2x1ZGUgPGF1ZGlibGVm aWxldHlwZXJlc29sdmVyLmg+Ci0tI2luY2x1ZGUgPGFzZmZpbGV0eXBlcmVzb2x2ZXIuaD4KLS0j aW5jbHVkZSA8d2F2ZmlsZXR5cGVyZXNvbHZlci5oPgotICNpbmNsdWRlIDxyZWFsbWVkaWFmaWxl dHlwZXJlc29sdmVyLmg+Ci0tI2luY2x1ZGUgPG1wNGZpbGV0eXBlcmVzb2x2ZXIuaD4KLSAjZW5k aWYKLSAKLSAjaW5jbHVkZSA8dGV4dGlkZW50aWZpY2F0aW9uZnJhbWUuaD4KLUBAIC0xMDEsMTEg Kzk4LDggQEAgQ29sbGVjdGlvblNjYW5uZXI6OkNvbGxlY3Rpb25TY2FubmVyKCBpbnQgJmFyZ2Ms IGNoYXIgKiphcmd2ICkKLSAgICAgcmVhZEFyZ3MoKTsKLSAKLSAjaWZkZWYgVEFHTElCX0VYVFJB U19GT1VORAotLSAgICBUYWdMaWI6OkZpbGVSZWY6OmFkZEZpbGVUeXBlUmVzb2x2ZXIobmV3IE1Q NEZpbGVUeXBlUmVzb2x2ZXIpOwotLSAgICBUYWdMaWI6OkZpbGVSZWY6OmFkZEZpbGVUeXBlUmVz b2x2ZXIobmV3IEFTRkZpbGVUeXBlUmVzb2x2ZXIpOwotICAgICBUYWdMaWI6OkZpbGVSZWY6OmFk ZEZpbGVUeXBlUmVzb2x2ZXIobmV3IFJlYWxNZWRpYUZpbGVUeXBlUmVzb2x2ZXIpOwotICAgICBU YWdMaWI6OkZpbGVSZWY6OmFkZEZpbGVUeXBlUmVzb2x2ZXIobmV3IEF1ZGlibGVGaWxlVHlwZVJl c29sdmVyKTsKLS0gICAgVGFnTGliOjpGaWxlUmVmOjphZGRGaWxlVHlwZVJlc29sdmVyKG5ldyBX YXZGaWxlVHlwZVJlc29sdmVyKTsKLSAjZW5kaWYKLSAKLSAgICAgbV9sb2dmaWxlID0gKCBtX2Jh dGNoID8gKCBtX2luY3JlbWVudGFsID8gImFtYXJva2NvbGxlY3Rpb25zY2FubmVyX2JhdGNoaW5j cmVtZW50YWxzY2FuLmxvZyIgOiAiYW1hcm9rY29sbGVjdGlvbnNjYW5uZXJfYmF0Y2hmdWxsc2Nh bi5sb2ciICkKLUBAIC02NDQsNyArNjM4LDYgQEAgQ29sbGVjdGlvblNjYW5uZXI6OnJlYWRUYWdz KCBjb25zdCBRU3RyaW5nICZwYXRoLCBUYWdMaWI6OkF1ZGlvUHJvcGVydGllczo6UmVhZFMKLSAv LyAgICAgICAgICAgICBpZiAoIGltYWdlcyAmJiBmaWxlLT5JRDN2MlRhZygpICkKLSAvLyAgICAg ICAgICAgICAgICAgbG9hZEltYWdlc0Zyb21UYWcoICpmaWxlLT5JRDN2MlRhZygpLCAqaW1hZ2Vz ICk7Ci0gICAgICAgICB9Ci0tI2lmZGVmIFRBR0xJQl9FWFRSQVNfRk9VTkQKLSAgICAgICAgIGVs c2UgaWYgKCBUYWdMaWI6Ok1QNDo6RmlsZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6Ok1Q NDo6RmlsZSAqPiggZmlsZXJlZi5maWxlKCkgKSApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAg ZmlsZVR5cGUgPSBtcDQ7Ci1AQCAtNjY3LDcgKzY2MCw2IEBAIENvbGxlY3Rpb25TY2FubmVyOjpy ZWFkVGFncyggY29uc3QgUVN0cmluZyAmcGF0aCwgVGFnTGliOjpBdWRpb1Byb3BlcnRpZXM6OlJl YWRTCi0gLy8gICAgICAgICAgICAgICAgICAgICBpbWFnZXMtPnB1c2hfYmFjayggRW1iZWRkZWRJ bWFnZSggbXA0dGFnLT5jb3ZlcigpLCAiIiApICk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAg fQotLSNlbmRpZgotIAotICAgICAgICAgaWYgKCAhZGlzYy5pc0VtcHR5KCkgKQotICAgICAgICAg ewotZGlmZiAtLWdpdCBhL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9NZXRhUmVwbGF5R2Fp bi5jcHAgYi91dGlsaXRpZXMvY29sbGVjdGlvbnNjYW5uZXIvTWV0YVJlcGxheUdhaW4uY3BwCi1k ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDhlNzg5Y2YuLjAwMDAwMDAKLS0tLSBhL3V0 aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9NZXRhUmVwbGF5R2Fpbi5jcHAKLSsrKyAvZGV2L251 bGwKLUBAIC0xLDM1NCArMCwwIEBACi0tLyoKLS0gICBDb3B5cmlnaHQgKEMpIDIwMDkgQWxleCBN ZXJyeSA8YWxleC5tZXJyeUBrZGVtYWlsLm5ldD4KLS0KLS0gICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0tICAgbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLS0gICBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMgotLSAgIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotLQotLSAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotLSAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0tICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotLSAgIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0tCi0tICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLS0g ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQotLSAgIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQQotLSovCi0tCi0tLy8gTk9URTogdGhpcyBm aWxlIGlzIHVzZWQgYnkgYW1hcm9rY29sbGVjdGlvbnNjYW5uZXIgYW5kIENBTk5PVCB1c2UgYW55 IGFtYXJva2xpYgotLS8vICAgICAgIGNvZGUgW3RoaXMgaW5jbHVkZXMgZGVidWcoKV0KLS0KLS0j aW5jbHVkZSAiTWV0YVJlcGxheUdhaW4uaCIKLS0KLS0jaW5jbHVkZSA8UVN0cmluZz4KLS0jaW5j bHVkZSA8Y21hdGg+Ci0tCi0tLy8gVGFnbGliCi0tI2luY2x1ZGUgPHRhZy5oPgotLSNpbmNsdWRl IDx0bGlzdC5oPgotLSNpbmNsdWRlIDx0c3RyaW5nLmg+Ci0tI2luY2x1ZGUgPHRleHRpZGVudGlm aWNhdGlvbmZyYW1lLmg+Ci0tI2luY2x1ZGUgPGFwZXRhZy5oPgotLSNpbmNsdWRlIDxmbGFjZmls ZS5oPgotLSNpbmNsdWRlIDxpZDN2MnRhZy5oPgotLSNpbmNsdWRlIDxtcGNmaWxlLmg+Ci0tI2lu Y2x1ZGUgPG1wZWdmaWxlLmg+Ci0tI2luY2x1ZGUgPG9nZ2ZpbGUuaD4KLS0jaW5jbHVkZSA8b2dn ZmxhY2ZpbGUuaD4KLS0jaW5jbHVkZSA8c3BlZXhmaWxlLmg+Ci0tI2luY2x1ZGUgPHRydWVhdWRp b2ZpbGUuaD4KLS0jaW5jbHVkZSA8dm9yYmlzZmlsZS5oPgotLSNpbmNsdWRlIDx3YXZwYWNrZmls ZS5oPgotLSNpZmRlZiBUQUdMSUJfRVhUUkFTX0ZPVU5ECi0tI2luY2x1ZGUgPGFzZmZpbGUuaD4K LS0jaW5jbHVkZSA8bXA0ZmlsZS5oPgotLSNlbmRpZgotLQotLS8vIGNvbnZlcnRzIGEgcGVhayB2 YWx1ZSBmcm9tIHRoZSBub3JtYWwgZGlnaXRhbCBzY2FsZSBmb3JtIHRvIHRoZSBtb3JlIHVzZWZ1 bCBkZWNpYmVsIGZvcm0KLS0vLyBkZWNpYmVscyBhcmUgcmVsYXRpdmUgdG8gdGhlIC9hZGp1c3Rl ZC8gd2F2ZWZvcm0KLS1zdGF0aWMgcXJlYWwgcGVha1RvRGVjaWJlbHMoIHFyZWFsIHNjYWxlVmFs ICkKLS17Ci0tICAgIGlmICggc2NhbGVWYWwgPiAwICkKLS0gICAgICAgIHJldHVybiAyMCAqIGxv ZzEwKCBzY2FsZVZhbCApOwotLSAgICBlbHNlCi0tICAgICAgICByZXR1cm4gMDsKLS19Ci0tCi0t Ly8gTk9URTogcmVwcmVzZW50YXRpb24gaXMgdGFrZW4gdG8gYmUgYSBiaW5hcnkgdmFsdWUgd2l0 aCB1bml0cyBpbiB0aGUgZmlyc3QgY29sdW1uLAotLS8vICAgICAgIDEvMiBpbiB0aGUgc2Vjb25k IGFuZCBzbyBvbi4KLS1zdGF0aWMgcXJlYWwgcmVhZFJWQTJQZWFrVmFsdWUoIGNvbnN0IFRhZ0xp Yjo6Qnl0ZVZlY3RvciAmZGF0YSwgaW50IGJpdHMsIGJvb2wgKm9rICkKLS17Ci0tICAgIHFyZWFs IHBlYWsgPSAwLjA7Ci0tICAgIC8vIGRpc2NhcmRpbmcgZGlnaXRzIGF0IHRoZSBlbmQgcmVkdWNl cyBwcmVjaXNpb24sIGJ1dCBkb2Vzbid0IG90aGVyd2lzZSBjaGFuZ2UgdGhlIHZhbHVlCi0tICAg IGlmICggYml0cyA+IDMyICkKLS0gICAgICAgIGJpdHMgPSAzMjsKLS0gICAgLy8gdGhlICs3IG1h a2VzIHN1cmUgd2Ugcm91bmQgdXAgd2hlbiB3ZSBkaXZpZGUgYnkgOAotLSAgICB1bnNpZ25lZCBp bnQgYnl0ZXMgPSAoYml0cyArIDcpIC8gODsKLS0KLS0gICAgLy8gbm9ybWFsaXplIGFwcGVhcnMg bm90IHRvIHdyaXRlIGEgcGVhayBhdCBhbGwsIGFuZCBoZW5jZSBzZXRzIGJpdHMgdG8gMAotLSAg ICBpZiAoIGJpdHMgPT0gMCApCi0tICAgIHsKLS0gICAgICAgIGlmICggb2sgKQotLSAgICAgICAg ICAgICpvayA9IHRydWU7Ci0tICAgIH0KLS0gICAgZWxzZSBpZiAoIGJpdHMgPj0gNCAmJiBkYXRh LnNpemUoKSA+PSBieXRlcyApIC8vIGZld2VyIHRoYW4gNCBiaXRzIHdvdWxkIGp1c3QgYmUgZGFm dAotLSAgICB7Ci0tICAgICAgICAvLyBleGNlc3NCaXRzIGlzIHRoZSBudW1iZXIgb2YgYml0cyB3 ZSBoYXZlIHRvIGRpc2NhcmQgYXQgdGhlIGVuZAotLSAgICAgICAgdW5zaWduZWQgaW50IGV4Y2Vz c0JpdHMgPSAoOCAqIGJ5dGVzKSAtIGJpdHM7Ci0tICAgICAgICAvLyBtYXNrIGhhcyAxcyBldmVy eXdoZXJlIGJ1dCB0aGUgbGFzdCAvZXhjZXNzQml0cy8gYml0cwotLSAgICAgICAgcXVpbnQzMiBt YXNrID0gMHhmZmZmZmZmZiA8PCBleGNlc3NCaXRzOwotLSAgICAgICAgcXVpbnQzMiByYXdWYWx1 ZSA9IDA7Ci0tICAgICAgICBmb3IgKCB1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBieXRlczsgKytp ICkKLS0gICAgICAgIHsKLS0gICAgICAgICAgICByYXdWYWx1ZSA8PD0gODsKLS0gICAgICAgICAg ICByYXdWYWx1ZSArPSAodW5zaWduZWQgY2hhcilkYXRhW2ldOwotLSAgICAgICAgfQotLSAgICAg ICAgcmF3VmFsdWUgJj0gbWFzazsKLS0gICAgICAgIHBlYWsgPSByYXdWYWx1ZTsKLS0gICAgICAg IC8vIGFtb3VudCB3ZSBuZWVkIHRvICJzaGlmdCIgdGhlIHZhbHVlIHJpZ2h0IHRvIG1ha2UgdGhl IGZpcnN0IGRpZ2l0IHRoZSB1bml0IGNvbHVtbgotLSAgICAgICAgdW5zaWduZWQgaW50IHJpZ2h0 U2hpZnQgPSAoOCAqIGJ5dGVzKSAtIDE7Ci0tICAgICAgICBwZWFrIC89IChxcmVhbCkoMSA8PCBy aWdodFNoaWZ0KTsKLS0gICAgICAgIGlmICggb2sgKQotLSAgICAgICAgICAgICpvayA9IHRydWU7 Ci0tICAgIH0KLS0gICAgZWxzZQotLSAgICB7Ci0tICAgICAgICBpZiAoIG9rICkKLS0gICAgICAg ICAgICAqb2sgPSBmYWxzZTsKLS0gICAgfQotLSAgICByZXR1cm4gcGVhazsKLS19Ci0tCi0tLy8g YWRkcyB0aGUgY29udmVydGVkIHZlcnNpb24gb2YgdGhlIHNjYWxlIHZhbHVlIGlmIGl0IGlzIGEg dmFsaWQsIG5vbi1uZWdhdGl2ZSBmbG9hdAotLXN0YXRpYyB2b2lkIG1heWJlQWRkUGVhayggY29u c3QgVGFnTGliOjpTdHJpbmcgJnNjYWxlVmFsLCBNZXRhOjpSZXBsYXlHYWluVGFnIGtleSwgTWV0 YTo6UmVwbGF5R2FpblRhZ01hcCAqbWFwICkKLS17Ci0tICAgIC8vIHNjYWxlIHZhbHVlIGlzID49 IDAsIGFuZCB0eXBpY2FsbHkgbm90IG11Y2ggYmlnZ2VyIHRoYW4gMQotLSAgICBRU3RyaW5nIHZh bHVlID0gVFN0cmluZ1RvUVN0cmluZyggc2NhbGVWYWwgKTsKLS0gICAgYm9vbCBvayA9IGZhbHNl OwotLSAgICBxcmVhbCBwZWFrID0gdmFsdWUudG9GbG9hdCggJm9rICk7Ci0tICAgIGlmICggb2sg JiYgcGVhayA+PSAwICkKLS0gICAgICAgICgqbWFwKVtrZXldID0gcGVha1RvRGVjaWJlbHMoIHBl YWsgKTsKLS19Ci0tCi0tc3RhdGljIHZvaWQgbWF5YmVBZGRHYWluKCBjb25zdCBUYWdMaWI6OlN0 cmluZyAmaW5wdXQsIE1ldGE6OlJlcGxheUdhaW5UYWcga2V5LCBNZXRhOjpSZXBsYXlHYWluVGFn TWFwICptYXAgKQotLXsKLS0gICAgUVN0cmluZyB2YWx1ZSA9IFRTdHJpbmdUb1FTdHJpbmcoIGlu cHV0ICkucmVtb3ZlKCAiIGRCIiApOwotLSAgICBib29sIG9rID0gZmFsc2U7Ci0tICAgIHFyZWFs IGdhaW4gPSB2YWx1ZS50b0Zsb2F0KCAmb2sgKTsKLS0gICAgaWYgKG9rKQotLSAgICAgICAgKCpt YXApW2tleV0gPSBnYWluOwotLX0KLS0KLS1zdGF0aWMgTWV0YTo6UmVwbGF5R2FpblRhZ01hcCBy ZWFkSUQzdjJUYWdzKCBUYWdMaWI6OklEM3YyOjpUYWcgKnRhZyApCi0tewotLSAgICBNZXRhOjpS ZXBsYXlHYWluVGFnTWFwIG1hcDsKLS0gICAgeyAgIC8vIElEM3YyLjQuMCBuYXRpdmUgcmVwbGF5 IGdhaW4gdGFnIHN1cHBvcnQgKGFzIHdyaXR0ZW4gYnkgUXVvZCBMaWJldCwgZm9yIGV4YW1wbGUp LgotLSAgICAgICAgVGFnTGliOjpJRDN2Mjo6RnJhbWVMaXN0IGZyYW1lcyA9IHRhZy0+ZnJhbWVM aXN0TWFwKClbIlJWQTIiXTsKLS0gICAgICAgIGZyYW1lcy5hcHBlbmQodGFnLT5mcmFtZUxpc3RN YXAoKVsiWFJWQSJdKTsKLS0gICAgICAgIGlmICggIWZyYW1lcy5pc0VtcHR5KCkgKQotLSAgICAg ICAgewotLSAgICAgICAgICAgIGZvciAoIHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGZyYW1lcy5z aXplKCk7ICsraSApCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAvLyB3ZSBoYXZl IHRvIHBhcnNlIHRoaXMgZnJhbWUgb3Vyc2VsdmVzCi0tICAgICAgICAgICAgICAgIC8vIElEM3Yy IGZyYW1lIGhlYWRlciBpcyAxMCBieXRlcywgc28gc2tpcCB0aGF0Ci0tICAgICAgICAgICAgICAg IFRhZ0xpYjo6Qnl0ZVZlY3RvciBkYXRhID0gZnJhbWVzW2ldLT5yZW5kZXIoKS5taWQoIDEwICk7 Ci0tICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQgPSAwOwotLSAgICAgICAgICAg ICAgICBRU3RyaW5nIGRlc2MoIGRhdGEuZGF0YSgpICk7Ci0tICAgICAgICAgICAgICAgIG9mZnNl dCArPSBkZXNjLmNvdW50KCkgKyAxOwotLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY2hh bm5lbCA9IGRhdGEubWlkKCBvZmZzZXQsIDEgKS50b1VJbnQoIHRydWUgKTsKLS0gICAgICAgICAg ICAgICAgLy8gY2hhbm5lbCAxIGlzIHRoZSBtYWluIHZvbHVtZSAtIHRoZSBvbmx5IG9uZSB3ZSBj YXJlIGFib3V0Ci0tICAgICAgICAgICAgICAgIGlmICggY2hhbm5lbCA9PSAxICkKLS0gICAgICAg ICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgKytvZmZzZXQ7Ci0tICAgICAgICAgICAg ICAgICAgICBxaW50MTYgYWRqdXN0bWVudDUxMiA9IGRhdGEubWlkKCBvZmZzZXQsIDIgKS50b1No b3J0KCB0cnVlICk7Ci0tICAgICAgICAgICAgICAgICAgICBxcmVhbCBhZGp1c3RtZW50ID0gKCAo cXJlYWwpYWRqdXN0bWVudDUxMiApIC8gNTEyLjA7Ci0tICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gMjsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwZWFrQml0cyA9IGRh dGEubWlkKCBvZmZzZXQsIDEgKS50b1VJbnQoIHRydWUgKTsKLS0gICAgICAgICAgICAgICAgICAg ICsrb2Zmc2V0OwotLSAgICAgICAgICAgICAgICAgICAgYm9vbCBvayA9IGZhbHNlOwotLSAgICAg ICAgICAgICAgICAgICAgcXJlYWwgcGVhayA9IHJlYWRSVkEyUGVha1ZhbHVlKCBkYXRhLm1pZCgg b2Zmc2V0ICksIHBlYWtCaXRzLCAmb2sgKTsKLS0gICAgICAgICAgICAgICAgICAgIGlmICggb2sg KQotLSAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgg ZGVzYy50b0xvd2VyKCkgPT0gImFsYnVtIiApCi0tICAgICAgICAgICAgICAgICAgICAgICAgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBbTWV0YTo6UmVwbGF5R2Fpbl9BbGJ1bV9H YWluXSA9IGFkanVzdG1lbnQ7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFtNZXRh OjpSZXBsYXlHYWluX0FsYnVtX1BlYWtdID0gcGVha1RvRGVjaWJlbHMoIHBlYWsgKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAo IGRlc2MudG9Mb3dlcigpID09ICJ0cmFjayIgfHwgIW1hcC5jb250YWlucyggTWV0YTo6UmVwbGF5 R2Fpbl9UcmFja19HYWluICkgKQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWFwW01ldGE6OlJlcGxheUdhaW5fVHJhY2tfR2Fpbl0gPSBh ZGp1c3RtZW50OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBbTWV0YTo6UmVwbGF5 R2Fpbl9UcmFja19QZWFrXSA9IHBlYWtUb0RlY2liZWxzKCBwZWFrICk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgIGlmICggIW1hcC5pc0VtcHR5KCkgKQotLSAg ICAgICAgICAgICAgICByZXR1cm4gbWFwOwotLSAgICAgICAgfQotLSAgICB9Ci0tCi0tICAgIHsg ICAvLyBGb29iYXIyMDAwLXN0eWxlIElEM3YyLjMuMCB0YWdzCi0tICAgICAgICBUYWdMaWI6OklE M3YyOjpGcmFtZUxpc3QgZnJhbWVzID0gdGFnLT5mcmFtZUxpc3RNYXAoKVsiVFhYWCJdOwotLSAg ICAgICAgZm9yICggVGFnTGliOjpJRDN2Mjo6RnJhbWVMaXN0OjpJdGVyYXRvciBpdCA9IGZyYW1l cy5iZWdpbigpOyBpdCAhPSBmcmFtZXMuZW5kKCk7ICsraXQgKSB7Ci0tICAgICAgICAgICAgVGFn TGliOjpJRDN2Mjo6VXNlclRleHRJZGVudGlmaWNhdGlvbkZyYW1lKiBmcmFtZSA9Ci0tICAgICAg ICAgICAgICAgIGR5bmFtaWNfY2FzdDxUYWdMaWI6OklEM3YyOjpVc2VyVGV4dElkZW50aWZpY2F0 aW9uRnJhbWUqPiggKml0ICk7Ci0tICAgICAgICAgICAgaWYgKCBmcmFtZSAmJiBmcmFtZS0+Zmll bGRMaXN0KCkuc2l6ZSgpID49IDIgKQotLSAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg UVN0cmluZyBkZXNjID0gVFN0cmluZ1RvUVN0cmluZyggZnJhbWUtPmRlc2NyaXB0aW9uKCkgKS50 b0xvd2VyKCk7Ci0tICAgICAgICAgICAgICAgIGlmICggZGVzYyA9PSAicmVwbGF5Z2Fpbl9hbGJ1 bV9nYWluIiApCi0tICAgICAgICAgICAgICAgICAgICBtYXliZUFkZEdhaW4oIGZyYW1lLT5maWVs ZExpc3QoKVsxXSwgTWV0YTo6UmVwbGF5R2Fpbl9BbGJ1bV9HYWluLCAmbWFwICk7Ci0tICAgICAg ICAgICAgICAgIGlmICggZGVzYyA9PSAicmVwbGF5Z2Fpbl9hbGJ1bV9wZWFrIiApCi0tICAgICAg ICAgICAgICAgICAgICBtYXliZUFkZFBlYWsoIGZyYW1lLT5maWVsZExpc3QoKVsxXSwgTWV0YTo6 UmVwbGF5R2Fpbl9BbGJ1bV9QZWFrLCAmbWFwICk7Ci0tICAgICAgICAgICAgICAgIGlmICggZGVz YyA9PSAicmVwbGF5Z2Fpbl90cmFja19nYWluIiApCi0tICAgICAgICAgICAgICAgICAgICBtYXli ZUFkZEdhaW4oIGZyYW1lLT5maWVsZExpc3QoKVsxXSwgTWV0YTo6UmVwbGF5R2Fpbl9UcmFja19H YWluLCAmbWFwICk7Ci0tICAgICAgICAgICAgICAgIGlmICggZGVzYyA9PSAicmVwbGF5Z2Fpbl90 cmFja19wZWFrIiApCi0tICAgICAgICAgICAgICAgICAgICBtYXliZUFkZFBlYWsoIGZyYW1lLT5m aWVsZExpc3QoKVsxXSwgTWV0YTo6UmVwbGF5R2Fpbl9UcmFja19QZWFrLCAmbWFwICk7Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9Ci0tICAgIHJldHVybiBtYXA7Ci0tfQotLQot LXN0YXRpYyBNZXRhOjpSZXBsYXlHYWluVGFnTWFwIHJlYWRBUEVUYWdzKCBUYWdMaWI6OkFQRTo6 VGFnICp0YWcgKQotLXsKLS0gICAgTWV0YTo6UmVwbGF5R2FpblRhZ01hcCBtYXA7Ci0tICAgIGNv bnN0IFRhZ0xpYjo6QVBFOjpJdGVtTGlzdE1hcCAmaXRlbXMgPSB0YWctPml0ZW1MaXN0TWFwKCk7 Ci0tICAgIGlmICggaXRlbXMuY29udGFpbnMoIlJFUExBWUdBSU5fVFJBQ0tfR0FJTiIpICkKLS0g ICAgewotLSAgICAgICAgbWF5YmVBZGRHYWluKCBpdGVtc1siUkVQTEFZR0FJTl9UUkFDS19HQUlO Il0udmFsdWVzKClbMF0sIE1ldGE6OlJlcGxheUdhaW5fVHJhY2tfR2FpbiwgJm1hcCApOwotLSAg ICAgICAgaWYgKCBpdGVtcy5jb250YWlucygiUkVQTEFZR0FJTl9UUkFDS19QRUFLIikgKQotLSAg ICAgICAgICAgIG1heWJlQWRkUGVhayggaXRlbXNbIlJFUExBWUdBSU5fVFJBQ0tfUEVBSyJdLnZh bHVlcygpWzBdLCBNZXRhOjpSZXBsYXlHYWluX1RyYWNrX1BlYWssICZtYXAgKTsKLS0gICAgfQot LSAgICBpZiAoIGl0ZW1zLmNvbnRhaW5zKCJSRVBMQVlHQUlOX0FMQlVNX0dBSU4iKSApCi0tICAg IHsKLS0gICAgICAgIG1heWJlQWRkR2FpbiggaXRlbXNbIlJFUExBWUdBSU5fQUxCVU1fR0FJTiJd LnZhbHVlcygpWzBdLCBNZXRhOjpSZXBsYXlHYWluX0FsYnVtX0dhaW4sICZtYXAgKTsKLS0gICAg ICAgIGlmICggaXRlbXMuY29udGFpbnMoIlJFUExBWUdBSU5fQUxCVU1fUEVBSyIpICkKLS0gICAg ICAgICAgICBtYXliZUFkZFBlYWsoIGl0ZW1zWyJSRVBMQVlHQUlOX0FMQlVNX1BFQUsiXS52YWx1 ZXMoKVswXSwgTWV0YTo6UmVwbGF5R2Fpbl9BbGJ1bV9QZWFrLCAmbWFwICk7Ci0tICAgIH0KLS0g ICAgcmV0dXJuIG1hcDsKLS19Ci0tCi0tc3RhdGljIE1ldGE6OlJlcGxheUdhaW5UYWdNYXAgcmVh ZFhpcGhUYWdzKCBUYWdMaWI6Ok9nZzo6WGlwaENvbW1lbnQgKnRhZyApCi0tewotLSAgICBjb25z dCBUYWdMaWI6Ok9nZzo6RmllbGRMaXN0TWFwICZ0YWdNYXAgPSB0YWctPmZpZWxkTGlzdE1hcCgp OwotLSAgICBNZXRhOjpSZXBsYXlHYWluVGFnTWFwIG91dHB1dE1hcDsKLS0KLS0gICAgaWYgKCAh dGFnTWFwWyJSRVBMQVlHQUlOX1RSQUNLX0dBSU4iXS5pc0VtcHR5KCkgKQotLSAgICB7Ci0tICAg ICAgICBtYXliZUFkZEdhaW4oIHRhZ01hcFsiUkVQTEFZR0FJTl9UUkFDS19HQUlOIl0uZnJvbnQo KSwgTWV0YTo6UmVwbGF5R2Fpbl9UcmFja19HYWluLCAmb3V0cHV0TWFwICk7Ci0tICAgICAgICBp ZiAoICF0YWdNYXBbIlJFUExBWUdBSU5fVFJBQ0tfUEVBSyJdLmlzRW1wdHkoKSApCi0tICAgICAg ICAgICAgbWF5YmVBZGRQZWFrKCB0YWdNYXBbIlJFUExBWUdBSU5fVFJBQ0tfUEVBSyJdLmZyb250 KCksIE1ldGE6OlJlcGxheUdhaW5fVHJhY2tfUGVhaywgJm91dHB1dE1hcCApOwotLSAgICB9Ci0t Ci0tICAgIGlmICggIXRhZ01hcFsiUkVQTEFZR0FJTl9BTEJVTV9HQUlOIl0uaXNFbXB0eSgpICkK LS0gICAgewotLSAgICAgICAgbWF5YmVBZGRHYWluKCB0YWdNYXBbIlJFUExBWUdBSU5fQUxCVU1f R0FJTiJdLmZyb250KCksIE1ldGE6OlJlcGxheUdhaW5fQWxidW1fR2FpbiwgJm91dHB1dE1hcCAp OwotLSAgICAgICAgaWYgKCAhdGFnTWFwWyJSRVBMQVlHQUlOX0FMQlVNX1BFQUsiXS5pc0VtcHR5 KCkgKQotLSAgICAgICAgICAgIG1heWJlQWRkUGVhayggdGFnTWFwWyJSRVBMQVlHQUlOX0FMQlVN X1BFQUsiXS5mcm9udCgpLCBNZXRhOjpSZXBsYXlHYWluX0FsYnVtX1BlYWssICZvdXRwdXRNYXAg KTsKLS0gICAgfQotLQotLSAgICByZXR1cm4gb3V0cHV0TWFwOwotLX0KLS0KLS0jaWZkZWYgVEFH TElCX0VYVFJBU19GT1VORAotLXN0YXRpYyBNZXRhOjpSZXBsYXlHYWluVGFnTWFwIHJlYWRBU0ZU YWdzKCBUYWdMaWI6OkFTRjo6VGFnICp0YWcgKQotLXsKLS0gICAgY29uc3QgVGFnTGliOjpBU0Y6 OkF0dHJpYnV0ZUxpc3RNYXAgJnRhZ01hcCA9IHRhZy0+YXR0cmlidXRlTGlzdE1hcCgpOwotLSAg ICBNZXRhOjpSZXBsYXlHYWluVGFnTWFwIG91dHB1dE1hcDsKLS0KLS0gICAgaWYgKCAhdGFnTWFw WyJSRVBMQVlHQUlOX1RSQUNLX0dBSU4iXS5pc0VtcHR5KCkgKQotLSAgICB7Ci0tICAgICAgICBt YXliZUFkZEdhaW4oIHRhZ01hcFsiUkVQTEFZR0FJTl9UUkFDS19HQUlOIl0uZnJvbnQoKS50b1N0 cmluZygpLCBNZXRhOjpSZXBsYXlHYWluX1RyYWNrX0dhaW4sICZvdXRwdXRNYXAgKTsKLS0gICAg ICAgIGlmICggIXRhZ01hcFsiUkVQTEFZR0FJTl9UUkFDS19QRUFLIl0uaXNFbXB0eSgpICkKLS0g ICAgICAgICAgICBtYXliZUFkZFBlYWsoIHRhZ01hcFsiUkVQTEFZR0FJTl9UUkFDS19QRUFLIl0u ZnJvbnQoKS50b1N0cmluZygpLCBNZXRhOjpSZXBsYXlHYWluX1RyYWNrX1BlYWssICZvdXRwdXRN YXAgKTsKLS0gICAgfQotLQotLSAgICBpZiAoICF0YWdNYXBbIlJFUExBWUdBSU5fQUxCVU1fR0FJ TiJdLmlzRW1wdHkoKSApCi0tICAgIHsKLS0gICAgICAgIG1heWJlQWRkR2FpbiggdGFnTWFwWyJS RVBMQVlHQUlOX0FMQlVNX0dBSU4iXS5mcm9udCgpLnRvU3RyaW5nKCksIE1ldGE6OlJlcGxheUdh aW5fQWxidW1fR2FpbiwgJm91dHB1dE1hcCApOwotLSAgICAgICAgaWYgKCAhdGFnTWFwWyJSRVBM QVlHQUlOX0FMQlVNX1BFQUsiXS5pc0VtcHR5KCkgKQotLSAgICAgICAgICAgIG1heWJlQWRkUGVh ayggdGFnTWFwWyJSRVBMQVlHQUlOX0FMQlVNX1BFQUsiXS5mcm9udCgpLnRvU3RyaW5nKCksIE1l dGE6OlJlcGxheUdhaW5fQWxidW1fUGVhaywgJm91dHB1dE1hcCApOwotLSAgICB9Ci0tCi0tICAg IHJldHVybiBvdXRwdXRNYXA7Ci0tfQotLSNlbmRpZgotLS8vIEJhZCBuZXdzOiBSZXBsYXlHYWlu IGluIE1QNCBpcyBub3QgYWN0dWFsbHkgc3RhbmRhcmRpemVkIGluIGFueSB3YXkuICBNYXliZSBy ZWltcGxlbWVudCBhdCBzb21lIHBvaW50Li4ubWF5YmUuICBTZWUKLS0vLyBodHRwOi8vd3d3Lmh5 ZHJvZ2VuYXVkaW8ub3JnL2ZvcnVtcy9sb2ZpdmVyc2lvbi9pbmRleC5waHAvdDE0MzIyLmh0bWwK LS0jaWZkZWYgRE9fTk9UX1VTRV9USElTX1VOVElMX0ZJWEVECi0tc3RhdGljIE1ldGE6OlJlcGxh eUdhaW5UYWdNYXAgcmVhZE1QNFRhZ3MoIFRhZ0xpYjo6TVA0OjpUYWcgKnRhZyApCi0tewotLSAg ICBNZXRhOjpSZXBsYXlHYWluVGFnTWFwIG91dHB1dE1hcDsKLS0KLS0gICAgaWYgKCAhdGFnLT50 cmFja1JlcGxheUdhaW4oKS5pc051bGwoKSApIHsKLS0gICAgICAgIG1heWJlQWRkR2FpbiggdGFn LT50cmFja1JlcGxheUdhaW4oKSwgTWV0YTo6UmVwbGF5R2Fpbl9UcmFja19HYWluLCAmb3V0cHV0 TWFwICk7Ci0tICAgICAgICBpZiAoICF0YWctPnRyYWNrUmVwbGF5R2FpblBlYWsoKS5pc051bGwo KSApCi0tICAgICAgICAgICAgbWF5YmVBZGRQZWFrKCB0YWctPnRyYWNrUmVwbGF5R2FpblBlYWso KSwgTWV0YTo6UmVwbGF5R2Fpbl9UcmFja19QZWFrLCAmb3V0cHV0TWFwICk7Ci0tICAgIH0KLS0K LS0gICAgaWYgKCAhdGFnLT5hbGJ1bVJlcGxheUdhaW4oKS5pc051bGwoKSApIHsKLS0gICAgICAg IG1heWJlQWRkR2FpbiggdGFnLT5hbGJ1bVJlcGxheUdhaW4oKSwgTWV0YTo6UmVwbGF5R2Fpbl9B bGJ1bV9HYWluLCAmb3V0cHV0TWFwICk7Ci0tICAgICAgICBpZiAoICF0YWctPmFsYnVtUmVwbGF5 R2FpblBlYWsoKS5pc051bGwoKSApCi0tICAgICAgICAgICAgbWF5YmVBZGRQZWFrKCB0YWctPmFs YnVtUmVwbGF5R2FpblBlYWsoKSwgTWV0YTo6UmVwbGF5R2Fpbl9BbGJ1bV9QZWFrLCAmb3V0cHV0 TWFwICk7Ci0tICAgIH0KLS0KLS0gICAgcmV0dXJuIG91dHB1dE1hcDsKLS19Ci0tI2VuZGlmIAot LQotLU1ldGE6OlJlcGxheUdhaW5UYWdNYXAKLS1NZXRhOjpyZWFkUmVwbGF5R2FpblRhZ3MoIFRh Z0xpYjo6RmlsZVJlZiBmaWxlcmVmICkKLS17Ci0tICAgIE1ldGE6OlJlcGxheUdhaW5UYWdNYXAg bWFwOwotLSAgICAvLyBOQjogd2UgY2FuJ3QgZ2V0IHJlcGxheSBnYWluIGluZm8gZnJvbSBNUEMg ZmlsZXMsIHNpbmNlIGl0J3Mgc3RvcmVkIGluIHNvbWUgbWFnaWMgcGxhY2UKLS0gICAgLy8gICAg IGFuZCBub3QgaW4gdGhlIEFQRSB0YWdzLCBhbmQgdGFnbGliIGRvZXNuJ3QgbGV0IHVzIGFjY2Vz cyB0aGUgaW5mb3JtYXRpb24gKHVubGVzcwotLSAgICAvLyAgICAgd2Ugd2FudCB0byBwYXJzZSB0 aGUgZmlsZSBvdXJzZWx2ZXMpLgotLSAgICAvLyBGSVhNRTogc2hvdWxkIHdlIHRyeSBnZXR0aW5n IHRoZSBpbmZvIGZyb20gdGhlIE1QQyBBUEUgdGFnIGp1c3QgaW4gY2FzZT8KLS0KLS0gICAgaWYg KCBUYWdMaWI6Ok1QRUc6OkZpbGUgKmZpbGUgPSBkeW5hbWljX2Nhc3Q8VGFnTGliOjpNUEVHOjpG aWxlICo+KCBmaWxlcmVmLmZpbGUoKSApICkKLS0gICAgewotLSAgICAgICAgaWYgKCBmaWxlLT5J RDN2MlRhZygpICkKLS0gICAgICAgICAgICBtYXAgPSByZWFkSUQzdjJUYWdzKCBmaWxlLT5JRDN2 MlRhZygpICk7Ci0tICAgICAgICBpZiAoIG1hcC5pc0VtcHR5KCkgJiYgZmlsZS0+QVBFVGFnKCkg KQotLSAgICAgICAgICAgIG1hcCA9IHJlYWRBUEVUYWdzKCBmaWxlLT5BUEVUYWcoKSApOwotLSAg ICB9Ci0tICAgIGVsc2UgaWYgKCBUYWdMaWI6Ok9nZzo6Vm9yYmlzOjpGaWxlICpmaWxlID0gZHlu YW1pY19jYXN0PFRhZ0xpYjo6T2dnOjpWb3JiaXM6OkZpbGUgKj4oIGZpbGVyZWYuZmlsZSgpICkg KQotLSAgICB7Ci0tICAgICAgICBpZiAoIGZpbGUtPnRhZygpICkKLS0gICAgICAgICAgICBtYXAg PSByZWFkWGlwaFRhZ3MoIGZpbGUtPnRhZygpICk7Ci0tICAgIH0KLS0gICAgZWxzZSBpZiAoIFRh Z0xpYjo6RkxBQzo6RmlsZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6OkZMQUM6OkZpbGUg Kj4oIGZpbGVyZWYuZmlsZSgpICkgKQotLSAgICB7Ci0tICAgICAgICBpZiAoIGZpbGUtPnhpcGhD b21tZW50KCkgKQotLSAgICAgICAgICAgIG1hcCA9IHJlYWRYaXBoVGFncyggZmlsZS0+eGlwaENv bW1lbnQoKSApOwotLSAgICAgICAgaWYgKCBtYXAuaXNFbXB0eSgpICYmIGZpbGUtPklEM3YyVGFn KCkgKQotLSAgICAgICAgICAgIG1hcCA9IHJlYWRJRDN2MlRhZ3MoIGZpbGUtPklEM3YyVGFnKCkg KTsKLS0gICAgfQotLSAgICBlbHNlIGlmICggVGFnTGliOjpPZ2c6OkZMQUM6OkZpbGUgKmZpbGUg PSBkeW5hbWljX2Nhc3Q8VGFnTGliOjpPZ2c6OkZMQUM6OkZpbGUgKj4oIGZpbGVyZWYuZmlsZSgp ICkgKQotLSAgICB7Ci0tICAgICAgICBpZiAoIGZpbGUtPnRhZygpICkKLS0gICAgICAgICAgICBt YXAgPSByZWFkWGlwaFRhZ3MoIGZpbGUtPnRhZygpICk7Ci0tICAgIH0KLS0gICAgZWxzZSBpZiAo IFRhZ0xpYjo6V2F2UGFjazo6RmlsZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6OldhdlBh Y2s6OkZpbGUgKj4oIGZpbGVyZWYuZmlsZSgpICkgKQotLSAgICB7Ci0tICAgICAgICBpZiAoIGZp bGUtPkFQRVRhZygpICkKLS0gICAgICAgICAgICBtYXAgPSByZWFkQVBFVGFncyggZmlsZS0+QVBF VGFnKCkgKTsKLS0gICAgfQotLSAgICBlbHNlIGlmICggVGFnTGliOjpUcnVlQXVkaW86OkZpbGUg KmZpbGUgPSBkeW5hbWljX2Nhc3Q8VGFnTGliOjpUcnVlQXVkaW86OkZpbGUgKj4oIGZpbGVyZWYu ZmlsZSgpICkgKQotLSAgICB7Ci0tICAgICAgICBpZiAoIGZpbGUtPklEM3YyVGFnKCkgKQotLSAg ICAgICAgICAgIG1hcCA9IHJlYWRJRDN2MlRhZ3MoIGZpbGUtPklEM3YyVGFnKCkgKTsKLS0gICAg fQotLSAgICBlbHNlIGlmICggVGFnTGliOjpPZ2c6OlNwZWV4OjpGaWxlICpmaWxlID0gZHluYW1p Y19jYXN0PFRhZ0xpYjo6T2dnOjpTcGVleDo6RmlsZSAqPiggZmlsZXJlZi5maWxlKCkgKSApCi0t ICAgIHsKLS0gICAgICAgIGlmICggZmlsZS0+dGFnKCkgKQotLSAgICAgICAgICAgIG1hcCA9IHJl YWRYaXBoVGFncyggZmlsZS0+dGFnKCkgKTsKLS0gICAgfQotLSAgICBlbHNlIGlmICggVGFnTGli OjpNUEM6OkZpbGUgKmZpbGUgPSBkeW5hbWljX2Nhc3Q8VGFnTGliOjpNUEM6OkZpbGUgKj4oIGZp bGVyZWYuZmlsZSgpICkgKQotLSAgICB7Ci0tICAgICAgICAvLyBUaGlzIGlzIE5PVCB0aGUgY29y cmVjdCB3YXkgdG8gZ2V0IHJlcGxheSBnYWluIHRhZ3MgZnJvbSBNUEMgZmlsZXMsIGJ1dAotLSAg ICAgICAgLy8gdGFnbGliIGRvZXNuJ3QgYWxsb3cgdXMgYWNjZXNzIHRvIHRoZSByZWFsIGluZm9y bWF0aW9uLgotLSAgICAgICAgLy8gVGhpcyBhbGxvd3MgcGVvcGxlIHRvIHdvcmsgYXJvdW5kIHRo aXMgaXNzdWUgYnkgY29weWluZyB0aGVpciByZXBsYXkgZ2FpbgotLSAgICAgICAgLy8gaW5mb3Jt YXRpb24gdG8gdGhlIEFQRSB0YWcuCi0tICAgICAgICBpZiAoIGZpbGUtPkFQRVRhZygpICkKLS0g ICAgICAgICAgICBtYXAgPSByZWFkQVBFVGFncyggZmlsZS0+QVBFVGFnKCkgKTsKLS0gICAgfQot LSNpZmRlZiBUQUdMSUJfRVhUUkFTX0ZPVU5ECi0tICAgIGVsc2UgaWYgKCBUYWdMaWI6OkFTRjo6 RmlsZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxUYWdMaWI6OkFTRjo6RmlsZSAqPiggZmlsZXJlZi5m aWxlKCkgKSApCi0tICAgIHsKLS0gICAgICAgIGlmICggZmlsZS0+dGFnKCkgKQotLSAgICAgICAg ICAgIG1hcCA9IHJlYWRBU0ZUYWdzKCBmaWxlLT50YWcoKSApOwotLSAgICB9Ci0tI2VuZGlmCi0t Ly8gU2VlIGNvbW1lbnQgYWJvdmUKLS0jaWZkZWYgRE9fTk9UX1VTRV9USElTX1VOVElMX0ZJWEVE Ci0tICAgIGVsc2UgaWYgKCBUYWdMaWI6Ok1QNDo6RmlsZSAqZmlsZSA9IGR5bmFtaWNfY2FzdDxU YWdMaWI6Ok1QNDo6RmlsZSAqPiggZmlsZXJlZi5maWxlKCkgKSApCi0tICAgIHsKLS0gICAgICAg IGlmICggZmlsZS0+dGFnKCkgKQotLSAgICAgICAgICAgIG1hcCA9IHJlYWRNUDRUYWdzKCBmaWxl LT5nZXRNUDRUYWcoKSApOwotLSAgICB9Ci0tI2VuZGlmCi0tICAgIHJldHVybiBtYXA7Ci0tfQot LQotZGlmZiAtLWdpdCBhL3V0aWxpdGllcy9jb2xsZWN0aW9uc2Nhbm5lci9NZXRhUmVwbGF5R2Fp bi5oIGIvdXRpbGl0aWVzL2NvbGxlY3Rpb25zY2FubmVyL01ldGFSZXBsYXlHYWluLmgKLWRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggZWJhODYwYS4uMDAwMDAwMAotLS0tIGEvdXRpbGl0 aWVzL2NvbGxlY3Rpb25zY2FubmVyL01ldGFSZXBsYXlHYWluLmgKLSsrKyAvZGV2L251bGwKLUBA IC0xLDQ5ICswLDAgQEAKLS0vKgotLSAgIENvcHlyaWdodCAoQykgMjAwOSBBbGV4IE1lcnJ5IDxh bGV4Lm1lcnJ5QGtkZW1haWwubmV0PgotLQotLSAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLS0gICBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotLSAgIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCi0t ICAgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Ci0tCi0tICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCi0tICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLS0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0tICAgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLS0KLS0gICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotLSAgIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0t ICAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAgMDIxMTAtMTMwMSwgVVNBCi0tKi8KLS0KLS0jaWZuZGVmIEFNQVJPS19NRVRBUkVQ TEFZR0FJTl9ICi0tI2RlZmluZSBBTUFST0tfTUVUQVJFUExBWUdBSU5fSAotLQotLSNpbmNsdWRl IDxRTWFwPgotLQotLS8vIFRhZ2xpYgotLSNpbmNsdWRlIDxmaWxlcmVmLmg+Ci0tCi0tLyogVGhp cyBmaWxlIGV4aXN0cyAocmF0aGVyIHRoYW4gcHV0dGluZyB0aGUgbWV0aG9kIGluIE1ldGFVdGls aXR5LmggYW5kCi0tICogTWV0YVV0aWxpdHkuY3BwKSBiZWNhdXNlIHdlIG5lZWQgdG8gc2hhcmUg dGhlIGltcGxlbWVudGF0aW9uIGJldHdlZW4KLS0gKiBhbWFyb2tsaWIgYW5kIGFtYXJva2NvbGxl Y3Rpb25zY2FubmVyICh3aGljaCBkb2Vzbid0IGxpbmsgdG8gYW1hcm9rbGliKS4KLS0gKi8KLS1u YW1lc3BhY2UgTWV0YQotLXsKLS0gICAgZW51bSBSZXBsYXlHYWluVGFnCi0tICAgIHsKLS0gICAg ICAgIFJlcGxheUdhaW5fVHJhY2tfR2FpbiwKLS0gICAgICAgIFJlcGxheUdhaW5fVHJhY2tfUGVh aywKLS0gICAgICAgIFJlcGxheUdhaW5fQWxidW1fR2FpbiwKLS0gICAgICAgIFJlcGxheUdhaW5f QWxidW1fUGVhawotLSAgICB9OwotLQotLSAgICB0eXBlZGVmIFFNYXA8UmVwbGF5R2FpblRhZywg cXJlYWw+IFJlcGxheUdhaW5UYWdNYXA7Ci0tCi0tICAgIC8qKgotLSAgICAgKiBSZWFkcyB0aGUg cmVwbGF5IGdhaW4gdGFncyBmcm9tIGEgdGFnbGliIGZpbGUuCi0tICAgICAqLwotLSAgICBSZXBs YXlHYWluVGFnTWFwIHJlYWRSZXBsYXlHYWluVGFncyggVGFnTGliOjpGaWxlUmVmIGZpbGVyZWYg KTsKLS19Ci0tCi0tI2VuZGlmIC8vIEFNQVJPS19NRVRBUkVQTEFZR0FJTl9ICgpkaWZmIC0tZ2l0 IGEvYW1hcm9rLnNwZWMgYi9hbWFyb2suc3BlYwppbmRleCA3MTZlMTM0Li5hZWVlM2UzIDEwMDY0 NAotLS0gYS9hbWFyb2suc3BlYworKysgYi9hbWFyb2suc3BlYwpAQCAtMSw4ICsxLDggQEAKIAog TmFtZTogICAgYW1hcm9rCiBTdW1tYXJ5OiBNZWRpYSBwbGF5ZXIKLVZlcnNpb246IDIuMS44NQot UmVsZWFzZTogMiV7P2Rpc3R9CitWZXJzaW9uOiAyLjEuOTAKK1JlbGVhc2U6IDElez9kaXN0fQog CiBHcm91cDogCSBBcHBsaWNhdGlvbnMvTXVsdGltZWRpYQogTGljZW5zZTogR1BMdjIrCkBAIC0x Miw5ICsxMiw2IEBAIEJ1aWxkUm9vdDogJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7 cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKIAogUGF0Y2g1MDogYW1hcm9rLTIuMC45MC1x dHNjcmlwdF9ub3RfcmVxdWlyZWQucGF0Y2gKIAotIyMgdXBzdHJlYW0gcGF0Y2hlcwotUGF0Y2gx MDA6IGFtYXJvay10YWdsaWIucGF0Y2gKLQogQnVpbGRSZXF1aXJlczogY3VybC1kZXZlbAogQnVp bGRSZXF1aXJlczogZGVza3RvcC1maWxlLXV0aWxzCiBCdWlsZFJlcXVpcmVzOiBnZXR0ZXh0CkBA IC03OSw4ICs3Niw2IEBAIE9ic29sZXRlczogYW1hcm9rLXV0aWxpdGllcyA8IDIuMC45NgogCiAl cGF0Y2g1MCAtcDEgLWIgLnF0c2NyaXB0X25vdF9yZXF1aXJlZAogCi0lcGF0Y2gxMDAgLXAxIC1i IC50YWdsaWIKLQogCiAlYnVpbGQKIG1rZGlyIC1wICV7X3RhcmdldF9wbGF0Zm9ybX0KQEAgLTE3 MSw2ICsxNjYsOSBAQCBmaQogCiAKICVjaGFuZ2Vsb2cKKyogTW9uIFNlcCAyMSAyMDA5IFJleCBE aWV0ZXIgPHJkaWV0ZXJAZmVkb3JhcHJvamVjdC5vcmc+IDIuMS45MC0xCistIGFtYXJvay0yLjEu OTAgKDIuMnJjMSkKKwogKiBUaHUgU2VwIDE3IDIwMDkgUmV4IERpZXRlciA8cmRpZXRlckBmZWRv cmFwcm9qZWN0Lm9yZz4gMi4xLjg1LTIKIC0gQlI6IHRhZ2xpYi1kZXZlbCA+PSAxLjYsIHRhZ2xp Yi1leHRyYXMtZGV2ZWwgPj0gMS4wCiAKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwpp bmRleCA3NzgwODc3Li40NWQ0M2QwIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMK QEAgLTEgKzEgQEAKLTM4MzExYTU1NzY3ZmI4ZDg1MjU0YjI0OGE0NjQzM2Q4ICBhbWFyb2stMi4x Ljg1LnRhci5iejIKK2VjNzI3ZWQ3MmM1ZDM3MWZiNjU5Y2UwYzNjMWU2MTM2ICBhbWFyb2stMi4x LjkwLnRhci5iejIK