ZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L0d2aW1FeHQucmVnIGIvc3JjL0d2aW1FeHQvR3ZpbUV4dC5yZWcKaW5kZXggN2Y3YmZlZS4uMDJiMTc0NyAxMDA2NDQKLS0tIGEvc3JjL0d2aW1FeHQvR3ZpbUV4dC5yZWcKKysrIGIvc3JjL0d2aW1FeHQvR3ZpbUV4dC5yZWcKQEAgLTE1LDYgKzE1LDYgQEAKIFtIS0VZX0xPQ0FMX01BQ0hJTkVcU29mdHdhcmVcVmltXEd2aW1dCiAgICAicGF0aCI9Imd2aW0uZXhlIgogCi1bSEtFWV9MT0NBTF9NQUNISU5FXFNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFxWaW0gNy4xXQotICAgIkRpc3BsYXlOYW1lIj0iVmltIDcuMTogRWRpdCB3aXRoIFZpbSBwb3B1cCBtZW51IGVudHJ5IgorW0hLRVlfTE9DQUxfTUFDSElORVxTb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxVbmluc3RhbGxcVmltIDcuMmFdCisgICAiRGlzcGxheU5hbWUiPSJWaW0gNy4yYTogRWRpdCB3aXRoIFZpbSBwb3B1cCBtZW51IGVudHJ5IgogICAgIlVuaW5zdGFsbFN0cmluZyI9InVuaW5zdGFsLmV4ZSIKZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQppbmRleCA0NGM5YzZmLi5jY2EyZWVmIDEwMDY0NAotLS0gYS9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL01ha2VmaWxlCkBAIC00OCw3ICs0OCw5IEBACiAjCS0gVW5jb21tZW50IHRoZSBsaW5lIHdpdGggLS1kaXNhYmxlLWFjbCB0byBkaXNhYmxlIEFDTCBzdXBwb3J0IGV2ZW4KICMJICB0aG91Z2ggeW91ciBzeXN0ZW0gc3VwcG9ydHMgaXQuCiAjCS0gVW5jb21tZW50IHRoZSBsaW5lIHdpdGggLS1kaXNhYmxlLWdwbSB0byBkaXNhYmxlIGdwbSBzdXBwb3J0Ci0jCSAgZXZlbiB0aG91Z2ggeW91IGhhdmUgZ3BtIGxpYnJhcmllcyBhbmQgaW5jbHVkZXMKKyMJICBldmVuIHRob3VnaCB5b3UgaGF2ZSBncG0gbGlicmFyaWVzIGFuZCBpbmNsdWRlcy4KKyMJLSBVbmNvbW1lbnQgdGhlIGxpbmUgd2l0aCAtLWRpc2FibGUtc3lzbW91c2UgdG8gZGlzYWJsZSBzeXNtb3VzZQorIwkgIHN1cHBvcnQgZXZlbiB0aG91Z2ggeW91IGhhdmUgL2Rldi9zeXNtb3VzZSBhbmQgaW5jbHVkZXMuCiAjCS0gVW5jb21tZW50IG9uZSBvZiB0aGUgbGluZXMgd2l0aCBDRkxBR1MgYW5kL29yIENDIGlmIHlvdSBoYXZlCiAjCSAgc29tZXRoaW5nIHZlcnkgc3BlY2lhbCBvciB3YW50IHRvIHR1bmUgdGhlIG9wdGltaXplci4KICMJLSBTZWFyY2ggZm9yIHRoZSBuYW1lIG9mIHlvdXIgc3lzdGVtIHRvIHNlZSBpZiBpdCBuZWVkcyBhbnl0aGluZwpAQCAtNDQ3LDkgKzQ0OSwxNCBAQAogCiAjIGdwbSAtIEZvciBtb3VzZSBzdXBwb3J0IG9uIExpbnV4IGNvbnNvbGUgdmlhIGdwbQogIyBVbmNvbW1lbnQgdGhpcyB3aGVuIHlvdSBkbyBub3Qgd2FudCB0byBpbmNsdWRlIGdwbSBzdXBwb3J0LCBldmVuCi0jIHRob3VnaCB5b3UgaGF2ZSBncG0gbGlicmFyaWVzIGFuZCBpbmNsdWRlcworIyB0aG91Z2ggeW91IGhhdmUgZ3BtIGxpYnJhcmllcyBhbmQgaW5jbHVkZXMuCiAjQ09ORl9PUFRfR1BNID0gLS1kaXNhYmxlLWdwbQogCisjIHN5c21vdXNlIC0gRm9yIG1vdXNlIHN1cHBvcnQgb24gRnJlZUJTRCBhbmQgRHJhZ29uRmx5IGNvbnNvbGUgdmlhIHN5c21vdXNlCisjIFVuY29tbWVudCB0aGlzIHdoZW4geW91IGRvIG5vdCB3YW50IGRvIGluY2x1ZGUgc3lzbW91c2Ugc3VwcG9ydCwgZXZlbgorIyB0aG91Z2ggeW91IGhhdmUgL2Rldi9zeXNtb3VzZSBhbmQgaW5jbHVkZXMuCisjQ09ORl9PUFRfU1lTTU9VU0UgPSAtLWRpc2FibGUtc3lzbW91c2UKKwogIyBGRUFUVVJFUyAtIEZvciBjcmVhdGluZyBWaW0gd2l0aCBtb3JlIG9yIGxlc3MgZmVhdHVyZXMKICMgVW5jb21tZW50IG9uZSBvZiB0aGVzZSBsaW5lcyB3aGVuIHlvdSB3YW50IHRvIGluY2x1ZGUgZmV3IHRvIG1hbnkgZmVhdHVyZXMuCiAjIFRoZSBkZWZhdWx0IGlzICJub3JtYWwiLgpAQCAtNTM1LDYgKzU0MiwxMCBAQAogCiAjIFBVUklGWSAtIHJlbW92ZSB0aGUgIyB0byB1c2UgdGhlICJwdXJpZnkiIHByb2dyYW0gKGhvaSBOaWErKyEpCiAjUFVSSUZZID0gcHVyaWZ5CisKKyMgTkJERUJVRyAtIGRlYnVnZ2luZyB0aGUgbmV0YmVhbnMgaW50ZXJmYWNlLgorI0VYVFJBX0RFRlMgPSAtRE5CREVCVUcKKwogIyB9fX0KIAogIyBMSU5UIC0gZm9yIHJ1bm5pbmcgbGludApAQCAtODg4LDcgKzg5OSw3IEBACiAKICMjIyBWaW0gdmVyc2lvbiAoYWRqdXN0ZWQgYnkgYSBzY3JpcHQpCiBWSU1NQUpPUiA9IDcKLVZJTU1JTk9SID0gMQorVklNTUlOT1IgPSAyYQogCiAjIyMgTG9jYXRpb24gb2YgVmltIGZpbGVzIChzaG91bGQgbm90IG5lZWQgdG8gYmUgY2hhbmdlZCwgYW5kICB7e3sxCiAjIyMgc29tZSB0aGluZ3MgbWlnaHQgbm90IHdvcmsgd2hlbiB0aGV5IGFyZSBjaGFuZ2VkISkKQEAgLTEyMTksNyArMTIzMCw3IEBACiBDQVJCT05HVUlfTElCU19ESVIgPQogQ0FSQk9OR1VJX0xJQlMxCT0gLWZyYW1ld29yayBDYXJib24KIENBUkJPTkdVSV9MSUJTMgk9Ci1DQVJCT05HVUlfSU5TVEFMTCA9IGluc3RhbGxfbWFjb3N4IGluc3RhbGxfZ3VpX2V4dHJhCitDQVJCT05HVUlfSU5TVEFMTCA9IGluc3RhbGxfbWFjb3N4CiBDQVJCT05HVUlfVEFSR0VUUyA9CiBDQVJCT05HVUlfTUFOX1RBUkdFVFMgPQogQ0FSQk9OR1VJX1RFU1RUQVJHRVQgPSBndWkKQEAgLTE1NjYsNyArMTU3Nyw4IEBACiAJCSQoQ09ORl9PUFRfT1VUUFVUKSAkKENPTkZfT1BUX0dQTSkgJChDT05GX09QVF9XT1JLU0hPUCkgXAogCQkkKENPTkZfT1BUX1NOSUZGKSAkKENPTkZfT1BUX0ZFQVQpICQoQ09ORl9URVJNX0xJQikgXAogCQkkKENPTkZfT1BUX0NPTVBCWSkgJChDT05GX09QVF9BQ0wpICAkKENPTkZfT1BUX05FVEJFQU5TKSBcCi0JCSQoQ09ORl9BUkdTKSAkKENPTkZfT1BUX01aU0NIRU1FKSAkKENPTkZfT1BUX1BMVEhPTUUpCisJCSQoQ09ORl9BUkdTKSAkKENPTkZfT1BUX01aU0NIRU1FKSAkKENPTkZfT1BUX1BMVEhPTUUpIFwKKwkJJChDT05GX09QVF9TWVNNT1VTRSkKIAogIyBVc2UgIm1ha2UgcmVjb25maWciIHRvIHJlcnVuIGNvbmZpZ3VyZSB3aXRob3V0IGNhY2hlZCB2YWx1ZXMuCiAjIFdoZW4gY29uZmlnLmggY2hhbmdlcywgbW9zdCB0aGluZ3Mgd2lsbCBiZSByZWNvbXBpbGVkIGF1dG9tYXRpY2FsbHkuCkBAIC0yNTgwLDcgKzI1OTIsNyBAQAogCWxuIC1zIGBwd2RgLy4uL3J1bnRpbWUgJChSRVNESVIpL3ZpbQogIyBDb3B5IHJnYi50eHQsIE1hYyBkb2Vzbid0IGFsd2F5cyBoYXZlIFgxMQogCSQoSU5TVEFMTF9EQVRBKSAkKFNDUklQVFNPVVJDRSkvcmdiLnR4dCAkKERFU1RESVIpJChwcmVmaXgpLyQoUkVTRElSKS92aW0vcnVudGltZQotIyBUT0RPOiBDcmVhdGUgdGhlIHZpbXR1dG9yIGFwcGxpY2F0aW9uLgorIyBUT0RPOiBDcmVhdGUgdGhlIHZpbXR1dG9yIGFuZC9vciBndmltdHV0b3IgYXBwbGljYXRpb24uCiAKIGd1aV9idW5kbGU6ICQoUkVTRElSKSBidW5kbGUtZGlyIGJ1bmRsZS1leGVjdXRhYmxlIGJ1bmRsZS1pbmZvIGJ1bmRsZS1yZXNvdXJjZSBcCiAJYnVuZGxlLWxhbmd1YWdlCkBAIC0yNzU5LDcgKzI3NzEsNyBAQAogb2JqZWN0cy9vc191bml4Lm86IG9zX3VuaXguYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKICAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKICAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX216c2NoLmggb3NfdW5peHguaAorICBhcmFiaWMuaCBvc191bml4eC5oCiBvYmplY3RzL3BhdGhkZWYubzogYXV0by9wYXRoZGVmLmMgLi92aW0uaCAuL2F1dG8vY29uZmlnLmggLi9mZWF0dXJlLmggLi9vc191bml4LmggXAogICAuL2F1dG8vb3NkZWYuaCAuL2FzY2lpLmggLi9rZXltYXAuaCAuL3Rlcm0uaCAuL21hY3Jvcy5oIC4vb3B0aW9uLmggXAogICAuL3N0cnVjdHMuaCAuL3JlZ2V4cC5oIC4vZ3VpLmggLi9ndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIFwKZGlmZiAtLWdpdCBhL3NyYy9mZWF0dXJlLmggYi9zcmMvZmVhdHVyZS5oCmluZGV4IDczNGY2ZTYuLmE5NmEzZDEgMTAwNjQ0Ci0tLSBhL3NyYy9mZWF0dXJlLmgKKysrIGIvc3JjL2ZlYXR1cmUuaApAQCAtMzUsNyArMzUsNyBAQAogICogK3NtYWxsCQlmZXcgZmVhdHVyZXMgZW5hYmxlZCwgYXMgYmFzaWMgYXMgcG9zc2libGUKICAqICtub3JtYWwJCUEgZGVmYXVsdCBzZWxlY3Rpb24gb2YgZmVhdHVyZXMgZW5hYmxlZAogICogK2JpZwkJCW1hbnkgZmVhdHVyZXMgZW5hYmxlZCwgYXMgcmljaCBhcyBwb3NzaWJsZS4KLSAqICtodWdlCQlhbGwgcG9zc2libGUgZmVhdHVlcyBlbmFibGVkLgorICogK2h1Z2UJCWFsbCBwb3NzaWJsZSBmZWF0dXJlcyBlbmFibGVkLgogICoKICAqIFdoZW4gK3NtYWxsIGlzIHVzZWQsICt0aW55IGlzIGFsc28gaW5jbHVkZWQuICArbm9ybWFsIGltcGxpZXMgK3NtYWxsLCBldGMuCiAgKi8KQEAgLTM3Niw5ICszNzYsMTMgQEAKIC8qCiAgKiArZXZhbAkJQnVpbHQtaW4gc2NyaXB0IGxhbmd1YWdlIGFuZCBleHByZXNzaW9uIGV2YWx1YXRpb24sCiAgKgkJCSI6bGV0IiwgIjppZiIsIGV0Yy4KKyAqICtmbG9hdAkJRmxvYXRpbmcgcG9pbnQgdmFyaWFibGVzLgogICovCiAjaWZkZWYgRkVBVF9OT1JNQUwKICMgZGVmaW5lIEZFQVRfRVZBTAorIyBpZiBkZWZpbmVkKEhBVkVfRkxPQVRfRlVOQ1MpIHx8IGRlZmluZWQoV0lOMzI2NCkgfHwgZGVmaW5lZChNQUNPUykKKyMgIGRlZmluZSBGRUFUX0ZMT0FUCisjIGVuZGlmCiAjZW5kaWYKIAogLyoKQEAgLTEwMTAsNiArMTAxNCw4IEBACiAgKiArbW91c2VfZ3BtCQlVbml4IG9ubHk6IEluY2x1ZGUgY29kZSBmb3IgTGludXggY29uc29sZSBtb3VzZQogICoJCQloYW5kbGluZy4KICAqICttb3VzZV9wdGVybQkJUFRlcm0gbW91c2Ugc3VwcG9ydCBmb3IgUU5YCisgKiArbW91c2Vfc3lzbW91c2UJVW5peCBvbmx5OiBJbmNsdWRlIGNvZGUgZm9yIEZyZWVCU0QgYW5kIERyYWdvbkZseQorICoJCQljb25zb2xlIG1vdXNlIGhhbmRsaW5nLgogICogK21vdXNlCQlBbnkgbW91c2Ugc3VwcG9ydCAoYW55IG9mIHRoZSBhYm92ZSBlbmFibGVkKS4KICAqLwogLyogT1MvMiBhbmQgQW1pZ2EgY29uc29sZSBoYXZlIG5vIG1vdXNlIHN1cHBvcnQgKi8KQEAgLTEwMzQsMTEgKzEwNDAsMTcgQEAKICNpZiBkZWZpbmVkKEZFQVRfTk9STUFMKSAmJiBkZWZpbmVkKEhBVkVfR1BNKQogIyBkZWZpbmUgRkVBVF9NT1VTRV9HUE0KICNlbmRpZgorCisjaWYgZGVmaW5lZChGRUFUX05PUk1BTCkgJiYgZGVmaW5lZChIQVZFX1NZU01PVVNFKQorIyBkZWZpbmUgRkVBVF9TWVNNT1VTRQorI2VuZGlmCiAvKiBEZWZpbmUgRkVBVF9NT1VTRSB3aGVuIGFueSBvZiB0aGUgYWJvdmUgaXMgZGVmaW5lZCBvciBGRUFUX0dVSS4gKi8KLSNpZiAhZGVmaW5lZChGRUFUX01PVVNFX1RUWSkgJiYgKGRlZmluZWQoRkVBVF9NT1VTRV9YVEVSTSkgXAotCXx8IGRlZmluZWQoRkVBVF9NT1VTRV9ORVQpIHx8IGRlZmluZWQoRkVBVF9NT1VTRV9ERUMpIFwKLQl8fCBkZWZpbmVkKERPU19NT1VTRSkgfHwgZGVmaW5lZChGRUFUX01PVVNFX0dQTSkgXAotCXx8IGRlZmluZWQoRkVBVF9NT1VTRV9KU0IpIHx8IGRlZmluZWQoRkVBVF9NT1VTRV9QVEVSTSkpCisjaWYgIWRlZmluZWQoRkVBVF9NT1VTRV9UVFkpIFwKKwkmJiAoZGVmaW5lZChGRUFUX01PVVNFX1hURVJNKSBcCisJICAgIHx8IGRlZmluZWQoRkVBVF9NT1VTRV9ORVQpIHx8IGRlZmluZWQoRkVBVF9NT1VTRV9ERUMpIFwKKwkgICAgfHwgZGVmaW5lZChET1NfTU9VU0UpIHx8IGRlZmluZWQoRkVBVF9NT1VTRV9HUE0pIFwKKwkgICAgfHwgZGVmaW5lZChGRUFUX01PVVNFX0pTQikgfHwgZGVmaW5lZChGRUFUX01PVVNFX1BURVJNKSBcCisJICAgIHx8IGRlZmluZWQoRkVBVF9TWVNNT1VTRSkpCiAjIGRlZmluZSBGRUFUX01PVVNFX1RUWQkJLyogaW5jbHVkZSBub24tR1VJIG1vdXNlIHN1cHBvcnQgKi8KICNlbmRpZgogI2lmICFkZWZpbmVkKEZFQVRfTU9VU0UpICYmIChkZWZpbmVkKEZFQVRfTU9VU0VfVFRZKSB8fCBkZWZpbmVkKEZFQVRfR1VJKSkKZGlmZiAtLWdpdCBhL3NyYy9maWxlaW8uYyBiL3NyYy9maWxlaW8uYwppbmRleCBkZTEyM2EwLi5iOTdlMzhmIDEwMDY0NAotLS0gYS9zcmMvZmlsZWlvLmMKKysrIGIvc3JjL2ZpbGVpby5jCkBAIC0yMSwxMCArMjEsNiBAQAogCiAjaW5jbHVkZSAidmltLmgiCiAKLSNpZmRlZiBIQVZFX0ZDTlRMX0gKLSMgaW5jbHVkZSA8ZmNudGwuaD4KLSNlbmRpZgotCiAjaWZkZWYgX19UQU5ERU0KICMgaW5jbHVkZSA8bGltaXRzLmg+CQkvKiBmb3IgU1NJWkVfTUFYICovCiAjZW5kaWYKQEAgLTQ3MDIsNyArNDY5OCw3IEBACiAJICogZnJvbnQgb2YgdGhlIGZpbGUgbmFtZS4gKi8KIAlpZiAoZXJybnVtICE9IE5VTEwpCiAJewotCSAgICBtY2hfbWVtbW92ZShJT2J1ZmYgKyBudW1sZW4sIElPYnVmZiwgU1RSTEVOKElPYnVmZikgKyAxKTsKKwkgICAgU1RSTU9WRShJT2J1ZmYgKyBudW1sZW4sIElPYnVmZik7CiAJICAgIG1jaF9tZW1tb3ZlKElPYnVmZiwgZXJybnVtLCAoc2l6ZV90KW51bWxlbik7CiAJfQogCVNUUkNBVChJT2J1ZmYsIGVycm1zZyk7CkBAIC01OTc2LDcgKzU5NzIsNyBAQAogI2VuZGlmCiAJCQkJKQogICAgIHsKLQltY2hfbWVtbW92ZShlICsgMSwgZSwgU1RSTEVOKGUpICsgMSk7CisJU1RSTU9WRShlICsgMSwgZSk7CiAjaWZkZWYgUklTQ09TCiAJKmUgPSAnLyc7CiAjZWxzZQpAQCAtNjU5Myw3ICs2NTg5LDggQEAKIAlidWZfcmVsb2FkKGJ1Ziwgb3JpZ19tb2RlKTsKIAogI2lmZGVmIEZFQVRfQVVUT0NNRAotICAgIGlmIChidWZfdmFsaWQoYnVmKSkKKyAgICAvKiBUcmlnZ2VyIEZpbGVDaGFuZ2VkU2hlbGwgd2hlbiB0aGUgZmlsZSB3YXMgY2hhbmdlZCBpbiBhbnkgd2F5LiAqLworICAgIGlmIChidWZfdmFsaWQoYnVmKSAmJiByZXR2YWwgIT0gMCkKIAkodm9pZClhcHBseV9hdXRvY21kcyhFVkVOVF9GSUxFQ0hBTkdFRFNIRUxMUE9TVCwKIAkJCQkgICAgICBidWYtPmJfZm5hbWUsIGJ1Zi0+Yl9mbmFtZSwgRkFMU0UsIGJ1Zik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9nbG9iYWxzLmggYi9zcmMvZ2xvYmFscy5oCmluZGV4IDQ2OTgwMWIuLmIzMWUwNTQgMTAwNjQ0Ci0tLSBhL3NyYy9nbG9iYWxzLmgKKysrIGIvc3JjL2dsb2JhbHMuaApAQCAtMTY4LDYgKzE2OCw4IEBACiBFWFRFUk4gaW50CWluZm9fbWVzc2FnZSBJTklUKD0gRkFMU0UpOyAvKiBwcmludGluZyBpbmZvcm1hdGl2ZSBtZXNzYWdlICovCiBFWFRFUk4gaW50ICAgICAgbXNnX2hpc3Rfb2ZmIElOSVQoPSBGQUxTRSk7IC8qIGRvbid0IGFkZCBtZXNzYWdlcyB0byBoaXN0b3J5ICovCiAjaWZkZWYgRkVBVF9FVkFMCitFWFRFUk4gaW50CW5lZWRfY2xyX2VvcyBJTklUKD0gRkFMU0UpOyAvKiBuZWVkIHRvIGNsZWFyIHRleHQgYmVmb3JlCisJCQkJCSAgICAgICBkaXNwbGF5aW5nIGEgbWVzc2FnZS4gKi8KIEVYVEVSTiBpbnQJZW1zZ19za2lwIElOSVQoPSAwKTsJICAgIC8qIGRvbid0IGRpc3BsYXkgZXJyb3JzIGZvcgogCQkJCQkgICAgICAgZXhwcmVzc2lvbiB0aGF0IGlzIHNraXBwZWQgKi8KIEVYVEVSTiBpbnQJZW1zZ19zZXZlcmUgSU5JVCg9IEZBTFNFKTsgICAvKiB1c2UgbWVzc2FnZSBvZiBuZXh0IG9mIHNldmVyYWwKQEAgLTExNzIsNyArMTE3NCw3IEBACiBFWFRFUk4gaW50CW5vX2hsc2VhcmNoIElOSVQoPSBGQUxTRSk7CiAjZW5kaWYKIAotI2lmZGVmIEZFQVRfQkVWQUwKKyNpZiBkZWZpbmVkKEZFQVRfQkVWQUwpICYmICFkZWZpbmVkKE5PX1gxMV9JTkNMVURFUykKIEVYVEVSTiBCYWxsb29uRXZhbAkqYmFsbG9vbkV2YWwgSU5JVCg9IE5VTEwpOwogIyBpZiBkZWZpbmVkKEZFQVRfTkVUQkVBTlNfSU5URykgfHwgZGVmaW5lZChGRUFUX1NVTl9XT1JLU0hPUCkKIEVYVEVSTiBpbnQgYmV2YWxTZXJ2ZXJzIElOSVQoPSAwKTsKZGlmZiAtLWdpdCBhL3NyYy9ndWkuYyBiL3NyYy9ndWkuYwppbmRleCAxZThhZDg0Li4wOWMzMDI3IDEwMDY0NAotLS0gYS9zcmMvZ3VpLmMKKysrIGIvc3JjL2d1aS5jCkBAIC0zNDk3LDcgKzM0OTcsNyBAQAogCSAgICBpZiAobW9kaWZpZWQpCiAJCVNUUkNBVChidWYsICIrIik7CiAJICAgIFNUUkNBVChidWYsICIgIik7Ci0JICAgIG1jaF9tZW1tb3ZlKE5hbWVCdWZmICsgU1RSTEVOKGJ1ZiksIE5hbWVCdWZmLCBTVFJMRU4oTmFtZUJ1ZmYpICsgMSk7CisJICAgIFNUUk1PVkUoTmFtZUJ1ZmYgKyBTVFJMRU4oYnVmKSwgTmFtZUJ1ZmYpOwogCSAgICBtY2hfbWVtbW92ZShOYW1lQnVmZiwgYnVmLCBTVFJMRU4oYnVmKSk7CiAJfQogICAgIH0KZGlmZiAtLWdpdCBhL3NyYy9ndWkuaCBiL3NyYy9ndWkuaAppbmRleCBlNGVlMTgyLi44NzViNWU0IDEwMDY0NAotLS0gYS9zcmMvZ3VpLmgKKysrIGIvc3JjL2d1aS5oCkBAIC00MjUsNyArNDI1LDcgQEAKICNlbmRpZgkvKiBGRUFUX0dVSV9HVEsgKi8KIAogI2lmIGRlZmluZWQoRkVBVF9HVUlfVEFCTElORSkgXAotIAkmJiAoZGVmaW5lZChGRUFUX0dVSV9XMzIpIHx8IGRlZmluZWQoRkVBVF9HVUlfTU9USUYpIFwKKwkmJiAoZGVmaW5lZChGRUFUX0dVSV9XMzIpIHx8IGRlZmluZWQoRkVBVF9HVUlfTU9USUYpIFwKICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChGRUFUX0dVSV9NQUMpKQogICAgIGludAkJdGFibGluZV9oZWlnaHQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9ndWlfYXRoZW5hLmMgYi9zcmMvZ3VpX2F0aGVuYS5jCmluZGV4IGRmMTM2N2YuLmM4NjcwM2UgMTAwNjQ0Ci0tLSBhL3NyYy9ndWlfYXRoZW5hLmMKKysrIGIvc3JjL2d1aV9hdGhlbmEuYwpAQCAtMjI0NSw3ICsyMjQ1LDcgQEAKIAlmb3IgKG5leHQgPSBwOyAqbmV4dDsgKytuZXh0KQogCXsKIAkgICAgaWYgKCpuZXh0ID09IERMR19IT1RLRVlfQ0hBUikKLQkJbWNoX21lbW1vdmUobmV4dCwgbmV4dCArIDEsIFNUUkxFTihuZXh0KSk7CisJCVNUUk1PVkUobmV4dCwgbmV4dCArIDEpOwogCSAgICBpZiAoKm5leHQgPT0gRExHX0JVVFRPTl9TRVApCiAJICAgIHsKIAkJKm5leHQrKyA9IE5VTDsKZGlmZiAtLWdpdCBhL3NyYy9tYnl0ZS5jIGIvc3JjL21ieXRlLmMKaW5kZXggNmFiNzNmMi4uNGU5MDU5MyAxMDA2NDQKLS0tIGEvc3JjL21ieXRlLmMKKysrIGIvc3JjL21ieXRlLmMKQEAgLTI5NDAsNyArMjk0MCw3IEBACiAJCSAgICAmJiBkYmNzX3NjcmVlbl9oZWFkX29mZihTY3JlZW5MaW5lcyArIExpbmVPZmZzZXRbcm93XSwKIAkJCQkJIFNjcmVlbkxpbmVzICsgTGluZU9mZnNldFtyb3ddICsgY29sKSkKIAkJfHwgKGVuY191dGY4ICYmIFNjcmVlbkxpbmVzW0xpbmVPZmZzZXRbcm93XSArIGNvbF0gPT0gMCkpKQotCS0tY29sOworCXJldHVybiBjb2wgLSAxOwogICAgIHJldHVybiBjb2w7CiB9CiAjIGVuZGlmCkBAIC0zMDA4LDMxICszMDA4LDMxIEBACiAKIAkvKiBDaGFuZ2UgIm1pY3Jvc29mdC1jcCIgdG8gImNwIi4gIFVzZWQgaW4gc29tZSBzcGVsbCBmaWxlcy4gKi8KIAlpZiAoU1RSTkNNUChwLCAibWljcm9zb2Z0LWNwIiwgMTIpID09IDApCi0JICAgIG1jaF9tZW1tb3ZlKHAsIHAgKyAxMCwgU1RSTEVOKHAgKyAxMCkgKyAxKTsKKwkgICAgU1RSTU9WRShwLCBwICsgMTApOwogCiAJLyogImlzbzg4NTkiIC0+ICJpc28tODg1OSIgKi8KIAlpZiAoU1RSTkNNUChwLCAiaXNvODg1OSIsIDcpID09IDApCiAJewotCSAgICBtY2hfbWVtbW92ZShwICsgNCwgcCArIDMsIFNUUkxFTihwICsgMikpOworCSAgICBTVFJNT1ZFKHAgKyA0LCBwICsgMyk7CiAJICAgIHBbM10gPSAnLSc7CiAJfQogCiAJLyogImlzby04ODU5biIgLT4gImlzby04ODU5LW4iICovCiAJaWYgKFNUUk5DTVAocCwgImlzby04ODU5IiwgOCkgPT0gMCAmJiBwWzhdICE9ICctJykKIAl7Ci0JICAgIG1jaF9tZW1tb3ZlKHAgKyA5LCBwICsgOCwgU1RSTEVOKHAgKyA3KSk7CisJICAgIFNUUk1PVkUocCArIDksIHAgKyA4KTsKIAkgICAgcFs4XSA9ICctJzsKIAl9CiAKIAkvKiAibGF0aW4tTiIgLT4gImxhdGluTiIgKi8KIAlpZiAoU1RSTkNNUChwLCAibGF0aW4tIiwgNikgPT0gMCkKLQkgICAgbWNoX21lbW1vdmUocCArIDUsIHAgKyA2LCBTVFJMRU4ocCArIDUpKTsKKwkgICAgU1RSTU9WRShwICsgNSwgcCArIDYpOwogCiAJaWYgKGVuY19jYW5vbl9zZWFyY2gocCkgPj0gMCkKIAl7CiAJICAgIC8qIGNhbm9uaWNhbCBuYW1lIGNhbiBiZSB1c2VkIHVubW9kaWZpZWQgKi8KIAkgICAgaWYgKHAgIT0gcikKLQkJbWNoX21lbW1vdmUociwgcCwgU1RSTEVOKHApICsgMSk7CisJCVNUUk1PVkUociwgcCk7CiAJfQogCWVsc2UgaWYgKChpID0gZW5jX2FsaWFzX3NlYXJjaChwKSkgPj0gMCkKIAl7CkBAIC0zNjkyLDcgKzM2OTIsMTEgQEAKICAgICBwcmVlZGl0X3N0YXJ0X2NvbCA9IE1BWENPTDsKICAgICB4aW1faGFzX3ByZWVkaXRpbmcgPSBGQUxTRTsKIAorI2lmIDAKKyAgICAvKiBSZW1vdmFsIG9mIHRoaXMgbGluZSBzdWdnZXN0ZWQgYnkgVGFrdWhpcm8gTmlzaGlva2EuICBGaXhlcyB0aGF0IElNIHdhcworICAgICAqIHN3aXRjaGVkIG9mZiB1bmludGVudGlvbmFsbHkuICovCiAgICAgaW1faXNfYWN0aXZlID0gRkFMU0U7CisjZW5kaWYKICAgICBndWlfdXBkYXRlX2N1cnNvcihUUlVFLCBGQUxTRSk7CiAgICAgaW1fc2hvd19pbmZvKCk7CiB9CkBAIC00MTQ0LDYgKzQxNDgsNyBAQAogCSAqIGNvbW1pdHRlZCB3aGlsZSB3ZSdyZSBwcm9jZXNzaW5nIG9uZSBvZiB0aGVzZSBrZXlzLCB3ZSBjYW4gaWdub3JlCiAJICogdGhhdCBjb21taXQgYW5kIGdvIGFoZWFkICYgcHJvY2VzcyBpdCBvdXJzZWx2ZXMuICBUaGF0IHdheSB3ZSBjYW4KIAkgKiBzdGlsbCBkaXN0aW5ndWlzaCBrZXlwYWQga2V5cyBmb3IgdXNlIGluIG1hcHBpbmdzLgorCSAqIEFsc28gYWRkIEdES19zcGFjZSB0byBtYWtlIDxTLVNwYWNlPiB3b3JrLgogCSAqLwogCXN3aXRjaCAoZXZlbnQtPmtleXZhbCkKIAl7CkBAIC00MTYzLDYgKzQxNjgsNyBAQAogCSAgICBjYXNlIEdES19LUF83OgkgIHhpbV9leHBlY3RlZF9jaGFyID0gJzcnOyAgYnJlYWs7CiAJICAgIGNhc2UgR0RLX0tQXzg6CSAgeGltX2V4cGVjdGVkX2NoYXIgPSAnOCc7ICBicmVhazsKIAkgICAgY2FzZSBHREtfS1BfOToJICB4aW1fZXhwZWN0ZWRfY2hhciA9ICc5JzsgIGJyZWFrOworCSAgICBjYXNlIEdES19zcGFjZToJICB4aW1fZXhwZWN0ZWRfY2hhciA9ICcgJzsgIGJyZWFrOwogCSAgICBkZWZhdWx0OgkJICB4aW1fZXhwZWN0ZWRfY2hhciA9IE5VTDsKIAl9CiAJeGltX2lnbm9yZWRfY2hhciA9IEZBTFNFOwpkaWZmIC0tZ2l0IGEvc3JjL21zdmMyMDA4LmJhdCBiL3NyYy9tc3ZjMjAwOC5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTUxNTVmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9tc3ZjMjAwOC5iYXQKQEAgLTAsMCArMSw1IEBACityZW0gVG8gYmUgdXNlZCBvbiBNUy1XaW5kb3dzIGZvciBWaXN1YWwgQysrIDIwMDggRXhwcmVzcyBFZGl0aW9uCityZW0gICBha2EgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gOS4wLgorcmVtIFNlZSBJTlNUQUxMcGMudHh0IGZvciBpbmZvcm1hdGlvbi4KKworY2FsbCAiJVZTOTBDT01OVE9PTFMlJXZzdmFyczMyLmJhdCIKZGlmZiAtLWdpdCBhL3NyYy9vc191bml4LmMgYi9zcmMvb3NfdW5peC5jCmluZGV4IDRjM2YzOWYuLmVmNzMyNzAgMTAwNjQ0Ci0tLSBhL3NyYy9vc191bml4LmMKKysrIGIvc3JjL29zX3VuaXguYwpAQCAtMzUsMTAgKzM1LDYgQEAKICMgaW5jbHVkZSAiaWZfbXpzY2guaCIKICNlbmRpZgogCi0jaWZkZWYgSEFWRV9GQ05UTF9ICi0jIGluY2x1ZGUgPGZjbnRsLmg+Ci0jZW5kaWYKLQogI2luY2x1ZGUgIm9zX3VuaXh4LmgiCSAgICAvKiB1bml4IGluY2x1ZGVzIGZvciBvc191bml4LmMgb25seSAqLwogCiAjaWZkZWYgVVNFX1hTTVAKQEAgLTkyLDYgKzg4LDE1IEBACiBzdGF0aWMgaW50IG1jaF9ncG1fcHJvY2VzcyBfX0FSR1MoKHZvaWQpKTsKICNlbmRpZgogCisjaWZkZWYgRkVBVF9TWVNNT1VTRQorIyBpbmNsdWRlIDxzeXMvY29uc2lvLmg+CisjIGluY2x1ZGUgPHN5cy9mYmlvLmg+CisKK3N0YXRpYyBpbnQgc3lzbW91c2Vfb3BlbiBfX0FSR1MoKHZvaWQpKTsKK3N0YXRpYyB2b2lkIHN5c21vdXNlX2Nsb3NlIF9fQVJHUygodm9pZCkpOworc3RhdGljIFJFVFNJR1RZUEUgc2lnX3N5c21vdXNlIF9fQVJHUyhTSUdQUk9UT0FSRyk7CisjZW5kaWYKKwogLyoKICAqIGVuZCBvZiBhdXRvY29uZiBzZWN0aW9uLiBUbyBiZSBleHRlbmRlZC4uLgogICovCkBAIC0yODksNyArMjk0LDggQEAKICNpZmRlZiBTSUdVU1IxCiAgICAge1NJR1VTUjEsCSAgICAiVVNSMSIsCVRSVUV9LAogI2VuZGlmCi0jaWZkZWYgU0lHVVNSMgorI2lmIGRlZmluZWQoU0lHVVNSMikgJiYgIWRlZmluZWQoRkVBVF9TWVNNT1VTRSkKKyAgICAvKiBVc2VkIGZvciBzeXNtb3VzZSBoYW5kbGluZyAqLwogICAgIHtTSUdVU1IyLAkgICAgIlVTUjIiLAlUUlVFfSwKICNlbmRpZgogI2lmZGVmIFNJR0lOVApAQCAtMjA1NSw2ICsyMDYxLDIxIEBACiAJCXx8IFNUUkNNUChuYW1lLCAiYnVpbHRpbl94dGVybSIpID09IDApOwogfQogCisjaWYgZGVmaW5lZChGRUFUX01PVVNFX1hURVJNKSB8fCBkZWZpbmVkKFBST1RPKQorLyoKKyAqIFJldHVybiBUUlVFIGlmICJuYW1lIiBhcHBlYXJzIHRvIGJlIHRoYXQgb2YgYSB0ZXJtaW5hbAorICoga25vd24gdG8gc3VwcG9ydCB0aGUgeHRlcm0tc3R5bGUgbW91c2UgcHJvdG9jb2wuCisgKiBSZWxpZXMgb24gdGVybV9pc194dGVybSBoYXZpbmcgYmVlbiBzZXQgdG8gaXRzIGNvcnJlY3QgdmFsdWUuCisgKi8KKyAgICBpbnQKK3VzZV94dGVybV9saWtlX21vdXNlKG5hbWUpCisgICAgY2hhcl91ICpuYW1lOworeworICAgIHJldHVybiAobmFtZSAhPSBOVUxMCisJICAgICYmICh0ZXJtX2lzX3h0ZXJtIHx8IFNUUk5JQ01QKG5hbWUsICJzY3JlZW4iLCA2KSA9PSAwKSk7Cit9CisjZW5kaWYKKwogI2lmIGRlZmluZWQoRkVBVF9NT1VTRV9UVFkpIHx8IGRlZmluZWQoUFJPVE8pCiAvKgogICogUmV0dXJuIG5vbi16ZXJvIHdoZW4gdXNpbmcgYW4geHRlcm0gbW91c2UsIGFjY29yZGluZyB0byAndHR5bW91c2UnLgpAQCAtMjI3OSwxMCArMjMwMCwxMCBAQAogICAgIGNoYXJfdQkqcDsKICAgICBpbnQJCXJldHZhbCA9IE9LOwogI2lmZGVmIF9fQ1lHV0lOX18KLSAgICBjaGFyX3UJcG9zaXhfZm5hbWVbTUFYX1BBVEhdOworICAgIGNoYXJfdQlwb3NpeF9mbmFtZVtNQVhQQVRITF07CS8qIEN5Z3dpbiBkb2NzIG1lbnRpb24gTUFYX1BBVEgsIGJ1dAorCQkJCQkgICBpdCdzIG5vdCBhbHdheXMgZGVmaW5lZCAqLwogI2VuZGlmCiAKLQogI2lmZGVmIFZNUwogICAgIGZuYW1lID0gdm1zX2ZpeGZpbGVuYW1lKGZuYW1lKTsKICNlbmRpZgpAQCAtMzI1NSw2ICszMjc2LDIyIEBACiAgICAgfQogIyBlbmRpZgogCisjIGlmZGVmIEZFQVRfU1lTTU9VU0UKKyAgICBlbHNlCisgICAgeworCWlmIChvbikKKwl7CisJICAgIGlmIChzeXNtb3VzZV9vcGVuKCkgPT0gT0spCisJCWlzb24gPSBUUlVFOworCX0KKwllbHNlCisJeworCSAgICBzeXNtb3VzZV9jbG9zZSgpOworCSAgICBpc29uID0gRkFMU0U7CisJfQorICAgIH0KKyMgZW5kaWYKKwogIyBpZmRlZiBGRUFUX01PVVNFX0pTQgogICAgIGVsc2UKICAgICB7CkBAIC0zMzQyLDYgKzMzNzksMTUgQEAKIAlzZXRfbW91c2VfdGVybWNvZGUoS1NfTU9VU0UsIChjaGFyX3UgKilJRl9FQigiXDAzM01HIiwgRVNDX1NUUiAiTUciKSk7CiAjIGVuZGlmCiAKKyMgaWZkZWYgRkVBVF9TWVNNT1VTRQorICAgIGlmICghdXNlX3h0ZXJtX21vdXNlKCkKKyMgIGlmZGVmIEZFQVRfR1VJCisJICAgICYmICFndWkuaW5fdXNlCisjICBlbmRpZgorCSAgICApCisJc2V0X21vdXNlX3Rlcm1jb2RlKEtTX01PVVNFLCAoY2hhcl91ICopSUZfRUIoIlwwMzNNUyIsIEVTQ19TVFIgIk1TIikpOworIyBlbmRpZgorCiAjIGlmZGVmIEZFQVRfTU9VU0VfSlNCCiAgICAgLyogY29uZmxpY3RzIHdpdGggeHRlcm0gbW91c2U6ICJcMDMzWyIgYW5kICJcMDMzW00iID8/PyAqLwogICAgIGlmICghdXNlX3h0ZXJtX21vdXNlKCkKQEAgLTUxNzAsNyArNTIxNiw3IEBACiAgICAgc3RhdGljIGludAlkaWRfZmluZF9udWwgPSBGQUxTRTsKICAgICBpbnQJCWFtcGVyc2VudCA9IEZBTFNFOwogCQkvKiB2aW1nbG9iKCkgZnVuY3Rpb24gdG8gZGVmaW5lIGZvciBQb3NpeCBzaGVsbCAqLwotICAgIHN0YXRpYyBjaGFyICpzaF92aW1nbG9iX2Z1bmMgPSAidmltZ2xvYigpIHsgd2hpbGUgWyAkIyAtZ2UgMSBdOyBkbyBlY2hvIC1uIFwiJDFcIjsgZWNobzsgc2hpZnQ7IGRvbmUgfTsgdmltZ2xvYiA+IjsKKyAgICBzdGF0aWMgY2hhciAqc2hfdmltZ2xvYl9mdW5jID0gInZpbWdsb2IoKSB7IHdoaWxlIFsgJCMgLWdlIDEgXTsgZG8gZWNobyBcIiQxXCI7IHNoaWZ0OyBkb25lIH07IHZpbWdsb2IgPiI7CiAKICAgICAqbnVtX2ZpbGUgPSAwOwkvKiBkZWZhdWx0OiBubyBmaWxlcyBmb3VuZCAqLwogICAgICpmaWxlID0gTlVMTDsKQEAgLTU4MTEsNyArNTg1Nyw2IEBACiAKIC8qCiAgKiBDbG9zZXMgY29ubmVjdGlvbiB0byBncG0KLSAqIHJldHVybnMgbm9uLXplcm8gaWYgY29ubmVjdGlvbiBzdWNjZXNzZnVsbHkgY2xvc2VkCiAgKi8KICAgICBzdGF0aWMgdm9pZAogZ3BtX2Nsb3NlKCkKQEAgLTU5MDYsNiArNTk1MSwxMTQgQEAKIH0KICNlbmRpZiAvKiBGRUFUX01PVVNFX0dQTSAqLwogCisjaWZkZWYgRkVBVF9TWVNNT1VTRQorLyoKKyAqIEluaXRpYWxpemUgY29ubmVjdGlvbiB3aXRoIHN5c21vdXNlLgorICogTGV0IHZpcnR1YWwgY29uc29sZSBpbmZvcm0gdXMgd2l0aCBTSUdVU1IyIGZvciBwZW5kaW5nIHN5c21vdXNlCisgKiBvdXRwdXQsIGFueSBzeXNtb3VzZSBvdXRwdXQgdGhhbiB3aWxsIGJlIHByb2Nlc3NlZCB2aWEgc2lnX3N5c21vdXNlKCkuCisgKiBSZXR1cm4gT0sgaWYgc3VjY2VlZGVkLCBGQUlMIGlmIGZhaWxlZC4KKyAqLworICAgIHN0YXRpYyBpbnQKK3N5c21vdXNlX29wZW4oKQoreworICAgIHN0cnVjdCBtb3VzZV9pbmZvICAgbW91c2U7CisKKyAgICBtb3VzZS5vcGVyYXRpb24gPSBNT1VTRV9NT0RFOworICAgIG1vdXNlLnUubW9kZS5tb2RlID0gMDsKKyAgICBtb3VzZS51Lm1vZGUuc2lnbmFsID0gU0lHVVNSMjsKKyAgICBpZiAoaW9jdGwoMSwgQ09OU19NT1VTRUNUTCwgJm1vdXNlKSAhPSAtMSkKKyAgICB7CisJc2lnbmFsKFNJR1VTUjIsIChSRVRTSUdUWVBFICgqKSgpKXNpZ19zeXNtb3VzZSk7CisJbW91c2Uub3BlcmF0aW9uID0gTU9VU0VfU0hPVzsKKwlpb2N0bCgxLCBDT05TX01PVVNFQ1RMLCAmbW91c2UpOworCXJldHVybiBPSzsKKyAgICB9CisgICAgcmV0dXJuIEZBSUw7Cit9CisKKy8qCisgKiBTdG9wIHByb2Nlc3NpbmcgU0lHVVNSMiBzaWduYWxzLCBhbmQgYWxzbyBtYWtlIHN1cmUgdGhhdAorICogdmlydHVhbCBjb25zb2xlIGRvIG5vdCBzZW5kIHVzIGFueSBzeXNtb3VzZSByZWxhdGVkIHNpZ25hbC4KKyAqLworICAgIHN0YXRpYyB2b2lkCitzeXNtb3VzZV9jbG9zZSgpCit7CisgICAgc3RydWN0IG1vdXNlX2luZm8JbW91c2U7CisKKyAgICBzaWduYWwoU0lHVVNSMiwgcmVzdHJpY3RlZCA/IFNJR19JR04gOiBTSUdfREZMKTsKKyAgICBtb3VzZS5vcGVyYXRpb24gPSBNT1VTRV9NT0RFOworICAgIG1vdXNlLnUubW9kZS5tb2RlID0gMDsKKyAgICBtb3VzZS51Lm1vZGUuc2lnbmFsID0gMDsKKyAgICBpb2N0bCgxLCBDT05TX01PVVNFQ1RMLCAmbW91c2UpOworfQorCisvKgorICogR2V0cyBpbmZvIGZyb20gc3lzbW91c2UgYW5kIGFkZHMgc3BlY2lhbCBrZXlzIHRvIGlucHV0IGJ1Zi4KKyAqLworLyogQVJHU1VTRUQgKi8KKyAgICBzdGF0aWMgUkVUU0lHVFlQRQorc2lnX3N5c21vdXNlIFNJR0RFRkFSRyhzaWdhcmcpCit7CisgICAgc3RydWN0IG1vdXNlX2luZm8JbW91c2U7CisgICAgc3RydWN0IHZpZGVvX2luZm8JdmlkZW87CisgICAgY2hhcl91CQlzdHJpbmdbNl07CisgICAgaW50CQkJcm93LCBjb2w7CisgICAgaW50CQkJYnV0dG9uOworICAgIGludAkJCWJ1dHRvbnM7CisgICAgc3RhdGljIGludAkJb2xkYnV0dG9ucyA9IDA7CisKKyNpZmRlZiBGRUFUX0dVSQorICAgIC8qIERvbid0IHB1dCBldmVudHMgaW4gdGhlIGlucHV0IHF1ZXVlIG5vdy4gKi8KKyAgICBpZiAoaG9sZF9ndWlfZXZlbnRzKQorCXJldHVybjsKKyNlbmRpZgorCisgICAgbW91c2Uub3BlcmF0aW9uID0gTU9VU0VfR0VUSU5GTzsKKyAgICBpZiAoaW9jdGwoMSwgRkJJT19HRVRNT0RFLCAmdmlkZW8udmlfbW9kZSkgIT0gLTEKKwkgICAgJiYgaW9jdGwoMSwgRkJJT19NT0RFSU5GTywgJnZpZGVvKSAhPSAtMQorCSAgICAmJiBpb2N0bCgxLCBDT05TX01PVVNFQ1RMLCAmbW91c2UpICE9IC0xCisJICAgICYmIHZpZGVvLnZpX2NoZWlnaHQgPiAwICYmIHZpZGVvLnZpX2N3aWR0aCA+IDApCisgICAgeworCXJvdyA9IG1vdXNlLnUuZGF0YS55IC8gdmlkZW8udmlfY2hlaWdodDsKKwljb2wgPSBtb3VzZS51LmRhdGEueCAvIHZpZGVvLnZpX2N3aWR0aDsKKwlidXR0b25zID0gbW91c2UudS5kYXRhLmJ1dHRvbnM7CisJc3RyaW5nWzBdID0gRVNDOyAvKiBPdXIgdGVybWNvZGUgKi8KKwlzdHJpbmdbMV0gPSAnTSc7CisJc3RyaW5nWzJdID0gJ1MnOworCWlmIChvbGRidXR0b25zID09IGJ1dHRvbnMgJiYgYnV0dG9ucyAhPSAwKQorCXsKKwkgICAgYnV0dG9uID0gTU9VU0VfRFJBRzsKKwl9CisJZWxzZQorCXsKKwkgICAgc3dpdGNoIChidXR0b25zKQorCSAgICB7CisJCWNhc2UgMDoKKwkJICAgIGJ1dHRvbiA9IE1PVVNFX1JFTEVBU0U7CisJCSAgICBicmVhazsKKwkJY2FzZSAxOgorCQkgICAgYnV0dG9uID0gTU9VU0VfTEVGVDsKKwkJICAgIGJyZWFrOworCQljYXNlIDI6CisJCSAgICBidXR0b24gPSBNT1VTRV9NSURETEU7CisJCSAgICBicmVhazsKKwkJY2FzZSA0OgorCQkgICAgYnV0dG9uID0gTU9VU0VfUklHSFQ7CisJCSAgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJICAgIHJldHVybjsKKwkgICAgfQorCSAgICBvbGRidXR0b25zID0gYnV0dG9uczsKKwl9CisJc3RyaW5nWzNdID0gKGNoYXJfdSkoYnV0dG9uKTsKKwlzdHJpbmdbNF0gPSAoY2hhcl91KShjb2wgKyAnICcgKyAxKTsKKwlzdHJpbmdbNV0gPSAoY2hhcl91KShyb3cgKyAnICcgKyAxKTsKKwlhZGRfdG9faW5wdXRfYnVmKHN0cmluZywgNik7CisgICAgfQorICAgIHJldHVybjsKK30KKyNlbmRpZiAvKiBGRUFUX1NZU01PVVNFICovCisKICNpZiBkZWZpbmVkKEZFQVRfTElCQ0FMTCkgfHwgZGVmaW5lZChQUk9UTykKIHR5cGVkZWYgY2hhcl91ICogKCpTVFJQUk9DU1RSKV9fQVJHUygoY2hhcl91ICopKTsKIHR5cGVkZWYgY2hhcl91ICogKCpJTlRQUk9DU1RSKV9fQVJHUygoaW50KSk7CmRpZmYgLS1naXQgYS9zcmMvb3Nfd2luMzIuYyBiL3NyYy9vc193aW4zMi5jCmluZGV4IDU0ODM3ZWMuLjk5NTIzYjcgMTAwNjQ0Ci0tLSBhL3NyYy9vc193aW4zMi5jCisrKyBiL3NyYy9vc193aW4zMi5jCkBAIC0yNyw5ICsyNyw2IEBACiAjIGluY2x1ZGUgImlmX216c2NoLmgiCiAjZW5kaWYKIAotI2lmZGVmIEhBVkVfRkNOVExfSAotIyBpbmNsdWRlIDxmY250bC5oPgotI2VuZGlmCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KZGlmZiAtLWdpdCBhL3NyYy9vc193aW4zMi5oIGIvc3JjL29zX3dpbjMyLmgKaW5kZXggMTVlNjE2MC4uYjU3ZWUyMyAxMDA2NDQKLS0tIGEvc3JjL29zX3dpbjMyLmgKKysrIGIvc3JjL29zX3dpbjMyLmgKQEAgLTI4LDYgKzI4LDkgQEAKICNpZm5kZWYgSEFWRV9TVFJJTkdfSAogIyBkZWZpbmUgSEFWRV9TVFJJTkdfSAogI2VuZGlmCisjaWZuZGVmIEhBVkVfTUFUSF9ICisjIGRlZmluZSBIQVZFX01BVEhfSAorI2VuZGlmCiAjZGVmaW5lIEhBVkVfU1RSQ1NQTgogI2lmbmRlZiBfX0dOVUNfXwogI2RlZmluZSBIQVZFX1NUUklDTVAKZGlmZiAtLWdpdCBhL3NyYy9wby9NYWtlX2N5Zy5tYWsgYi9zcmMvcG8vTWFrZV9jeWcubWFrCmluZGV4IDE1MjU4ZjQuLjI2YTgxNjggMTAwNjQ0Ci0tLSBhL3NyYy9wby9NYWtlX2N5Zy5tYWsKKysrIGIvc3JjL3BvL01ha2VfY3lnLm1hawpAQCAtMTgsNyArMTgsOSBAQAogCQljcy5jcDEyNTAgXAogCQlkZSBcCiAJCWVuX0dCIFwKKwkJZW8gXAogCQllcyBcCisJCWZpIFwKIAkJZnIgXAogCQlnYSBcCiAJCWl0IFwKQEAgLTQ4LDcgKzUwLDkgQEAKIAkJY3MubW8gXAogCQlkZS5tbyBcCiAJCWVuX0dCLm1vIFwKKwkJZW8ubW8gXAogCQllcy5tbyBcCisJCWZpLm1vIFwKIAkJZnIubW8gXAogCQlnYS5tbyBcCiAJCWl0Lm1vIFwKZGlmZiAtLWdpdCBhL3NyYy9wby9NYWtlZmlsZSBiL3NyYy9wby9NYWtlZmlsZQppbmRleCBkMzBkNzJmLi4yYjdlYWUwIDEwMDY0NAotLS0gYS9zcmMvcG8vTWFrZWZpbGUKKysrIGIvc3JjL3BvL01ha2VmaWxlCkBAIC0xMCw3ICsxMCw5IEBACiAJCWNzIFwKIAkJZGUgXAogCQllbl9HQiBcCisJCWVvIFwKIAkJZXMgXAorCQlmaSBcCiAJCWZyIFwKIAkJZ2EgXAogCQlpdCBcCkBAIC0zNCw3ICszNiw5IEBACiAJCWNzLm1vIFwKIAkJZGUubW8gXAogCQllbl9HQi5tbyBcCisJCWVvLm1vIFwKIAkJZXMubW8gXAorCQlmaS5tbyBcCiAJCWZyLm1vIFwKIAkJZ2EubW8gXAogCQlpdC5tbyBcCkBAIC02OCw3ICs3Miw5IEBACiAJCWNzLmNrIFwKIAkJZGUuY2sgXAogCQllbl9HQi5jayBcCisJCWVvLmNrIFwKIAkJZXMuY2sgXAorCQlmaS5jayBcCiAJCWZyLmNrIFwKIAkJZ2EuY2sgXAogCQlpdC5jayBcCkBAIC0xOTksOCArMjA1LDggQEAKICMgQ29udmVydCB1ay5wbyB0byBjcmVhdGUgdWsuY3AxMjUxLnBvLgogdWsuY3AxMjUxLnBvOiB1ay5wbwogCXJtIC1mIHVrLmNwMTI1MS5wbwotCWljb252IC1mIGtvaTgtdSAtdCBjcDEyNTEgdWsucG8gfCBcCi0JCXNlZCAtZSAncy9jaGFyc2V0PWtvaTgtdS9jaGFyc2V0PWNwMTI1MS8nIC1lICdzLyMgT3JpZ2luYWwgdHJhbnNsYXRpb25zLyMgR2VuZXJhdGVkIGZyb20gdWsucG8sIERPIE5PVCBFRElULycgPiB1ay5jcDEyNTEucG8KKwlpY29udiAtZiB1dGYtOCAtdCBjcDEyNTEgdWsucG8gfCBcCisJCXNlZCAtZSAncy9jaGFyc2V0PXV0Zi04L2NoYXJzZXQ9Y3AxMjUxLycgLWUgJ3MvIyBPcmlnaW5hbCB0cmFuc2xhdGlvbnMvIyBHZW5lcmF0ZWQgZnJvbSB1ay5wbywgRE8gTk9UIEVESVQvJyA+IHVrLmNwMTI1MS5wbwogCiBwcmVmaXhjaGVjazoKIAlAaWYgdGVzdCAieCIgPSAieCQocHJlZml4KSI7IHRoZW4gXApkaWZmIC0tZ2l0IGEvc3JjL3BvL2phLnBvIGIvc3JjL3BvL2phLnBvCmluZGV4IDk1NDljMjQuLjA1Mzg5NDAgMTAwNjQ0Ci0tLSBhL3NyYy9wby9qYS5wbworKysgYi9zcmMvcG8vamEucG8KQEAgLTMsMTYgKzMsMTcgQEAKICMgRG8gIjpoZWxwIHVnYW5kYSIgIGluIFZpbSB0byByZWFkIGNvcHlpbmcgYW5kIHVzYWdlIGNvbmRpdGlvbnMuCiAjIERvICI6aGVscCBjcmVkaXRzIiBpbiBWaW0gdG8gc2VlIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkLgogIwotIyBNVVJBT0tBIFRhcm8gPGtvcm9uQHRrYS5hdHQubmUuanA+LCAyMDAxLTYuCi0jIExhc3QgQ2hhbmdlOiAxOC1BcHItMjAwNi4KKyMgTVVSQU9LQSBUYXJvIDxrb3Jvbi5rYW9yaXlhQGdtYWlsLmNvbT4sIDIwMDEtOC4KKyMgTGFzdCBDaGFuZ2U6IDMxLU1heS0yMDA4LgogIwogbXNnaWQgIiIKIG1zZ3N0ciAiIgotIlByb2plY3QtSWQtVmVyc2lvbjogVmltIDcuMFxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA2LTA0LTE4IDExOjAwKzA5MDBcbiIKLSJQTy1SZXZpc2lvbi1EYXRlOiAyMDA2LTA0LTE4IDExOjMwKzA5MDBcbiIKLSJMYXN0LVRyYW5zbGF0b3I6IE1VUkFPS0EgVGFybyA8a29yb25AdGthLmF0dC5uZS5qcD5cbiIKLSJMYW5ndWFnZS1UZWFtOiBNVVJBT0tBIFRhcm8gPGtvcm9uQHRrYS5hdHQubmUuanA+XG4iCisiUHJvamVjdC1JZC1WZXJzaW9uOiBWaW0gNy4xXG4iCisiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA4LTA1LTMxIDIyOjAwKzA5MDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDA4LTA1LTMxIDIyOjMwKzA5MDBcbiIKKyJMYXN0LVRyYW5zbGF0b3I6IE1VUkFPS0EgVGFybyA8a29yb24ua2Fvcml5YUBnbWFpbC5jb20+XG4iCisiTGFuZ3VhZ2UtVGVhbTogTVVSQU9LQSBUYXJvIDxrb3Jvbi5rYW9yaXlhQGdtYWlsLmNvbT5cbiIKICJNSU1FLVZlcnNpb246IDEuMFxuIgogIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1ldWMtanBcbiIKICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4LWJpdFxuIgpAQCAtMTE0LDEyICsxMTUsMTUgQEAKIG1zZ2lkICJbcmVhZG9ubHldIgogbXNnc3RyICJbxsm5/sDszdFdIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIjEgbGluZSAtLSVkJSUtLSIKIG1zZ3N0ciAiMSC51CAtLSVkJSUtLSIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICIlbGQgbGluZXMgLS0lZCUlLS0iCiBtc2dzdHIgIiVsZCC51CAtLSVkJSUtLSIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJsaW5lICVsZCBvZiAlbGQgLS0lZCUlLS0gY29sICIKIG1zZ3N0ciAiudQgJWxkICjBtMLOICVsZCkgLS0lZCUlLS0gY29sICIKIApAQCAtMTQ1LDYgKzE0OSw3IEBACiBtc2dpZCAiVG9wIgogbXNnc3RyICLA6MasIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKICIjIEJ1ZmZlciBsaXN0OlxuIgpAQCAtMTg5LDYgKzE5NCw5IEBACiBtc2dpZCAiRTk5OiBDdXJyZW50IGJ1ZmZlciBpcyBub3QgaW4gZGlmZiBtb2RlIgogbXNnc3RyICJFOTk6ILi9ut+kzqXQpcOl1aWhpM+6ucqspeKhvKXJpMekz6SipOqk3qS7pPMiCiAKK21zZ2lkICJFNzkzOiBObyBvdGhlciBidWZmZXIgaW4gZGlmZiBtb2RlIGlzIG1vZGlmaWFibGUiCittc2dzdHIgIkU3OTM6ILq5yqyl4qG8pcmkx6SipOvCvqTOpdClw6XVpaGkz8rRubmyxMe9pMekuSIKKwogbXNnaWQgIkUxMDA6IE5vIG90aGVyIGJ1ZmZlciBpbiBkaWZmIG1vZGUiCiBtc2dzdHIgIkUxMDA6ILq5yqyl4qG8pcmkx6SipOvCvqTOpdClw6XVpaGkz6SipOqk3qS7pPMiCiAKQEAgLTIxNiw2ICsyMjQsOSBAQAogbXNnaWQgIkUxMDU6IFVzaW5nIDpsb2Fka2V5bWFwIG5vdCBpbiBhIHNvdXJjZWQgZmlsZSIKIG1zZ3N0ciAiRTEwNTogOnNvdXJjZSCkx7zouf6k4KXVpaGlpKXrsMqzsKTHpM8gOmxvYWRrZXltYXAgpPK7yKSopN6ku6TzIgogCittc2dpZCAiRTc5MTogRW1wdHkga2V5bWFwIGVudHJ5IgorbXNnc3RyICJFNzkxOiC29aTOpa2hvKXepcOl16WopfOlyKXqIgorCiBtc2dpZCAiIEtleXdvcmQgY29tcGxldGlvbiAoXk5eUCkiCiBtc2dzdHIgIiClraG8pe+hvKXJyuS0sCAoXk5eUCkiCiAKQEAgLTI4Miw2ICsyOTMsNyBAQAogbXNnaWQgIlNjYW5uaW5nOiAlcyIKIG1zZ3N0ciAipbmlraXjpfPD5jogJXMiCiAKKyMsIGMtZm9ybWF0CiBtc2dpZCAiU2Nhbm5pbmcgdGFncy4iCiBtc2dzdHIgIqW/pbCk8qW5pa2l46Xzw+YuIgogCkBAIC0zMzgsNyArMzUwLDcgQEAKIG1zZ3N0ciAiRTcxMzogvK298be/pMu29aTOpa2hvKTyu8ikpqSzpMikz6THpK2k3qS7pPMiCiAKIG1zZ2lkICJFNzE0OiBMaXN0IHJlcXVpcmVkIgotbXNnc3RyICJFNDcxOiCl6qW5pci3v6SsyazN16THpLkiCittc2dzdHIgIkU3MTQ6IKXqpbmlyLe/pKzJrM3XpMekuSIKIAogbXNnaWQgIkU3MTU6IERpY3Rpb25hcnkgcmVxdWlyZWQiCiBtc2dzdHIgIkU3MTU6ILytvfG3v6SsyazN16THpLkiCkBAIC02MTMsNiArNjI1LDEwIEBACiBtc2dzdHIgIkU3MDY6IMrRv/Skzre/pKyw7MPXpLek3qS7pPM6ICVzIgogCiAjLCBjLWZvcm1hdAorbXNnaWQgIkU3OTU6IENhbm5vdCBkZWxldGUgdmFyaWFibGUgJXMiCittc2dzdHIgIkU3OTU6IMrRv/QgJXMgpPK67738pMekraTepLuk8yIKKworIywgYy1mb3JtYXQKIG1zZ2lkICJFNzQxOiBWYWx1ZSBpcyBsb2NrZWQ6ICVzIgogbXNnc3RyICJFNzQxOiDDzaSspe2lw6WvpLWk7KTGpKSk3qS5OiAlcyIKIApAQCAtNjc4LDYgKzY5NCw3IEBACiBtc2dpZCAiRTEzMzogOnJldHVybiBub3QgaW5zaWRlIGEgZnVuY3Rpb24iCiBtc2dzdHIgIkUxMzM6ILTYv/SzsKTLIDpyZXR1cm4gpKykoqTqpN6kt6S/IgogCisjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKICIjIGdsb2JhbCB2YXJpYWJsZXM6XG4iCkBAIC03NDQsNiArNzYxLDcgQEAKIG1zZ2lkICIgRkFJTEVEIgogbXNnc3RyICIgvLrH1CIKIAorIy4gYXZvaWQgYSB3YWl0X3JldHVybiBmb3IgdGhpcyBtZXNzYWdlLCBpdCdzIGFubm95aW5nCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxMzc6IFZpbWluZm8gZmlsZSBpcyBub3Qgd3JpdGFibGU6ICVzIgogbXNnc3RyICJFMTM3OiB2aW1pbmZvpdWloaWkpeukrL3xuf6k36THpK2k3qS7pPM6ICVzIgpAQCAtNzYxLDYgKzc3OSw3IEBACiBtc2dpZCAiIyBUaGlzIHZpbWluZm8gZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IFZpbSAlcy5cbiIKIG1zZ3N0ciAiIyCks6TOIHZpbWluZm8gpdWloaWkpeukzyBWaW0gJXMgpMuk6KTDpMbAuMCupLWk7KTepLekvy5cbiIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiIyBZb3UgbWF5IGVkaXQgaXQgaWYgeW91J3JlIGNhcmVmdWwhXG4iCiAiXG4iCkBAIC03NjgsNiArNzg3LDcgQEAKICIjIMrRubmkuaTrut2ky6TPvb3KrMPtsNWkt6TGpK+kwKS1pKQhXG4iCiAiXG4iCiAKKyMsIGMtZm9ybWF0CiBtc2dpZCAiIyBWYWx1ZSBvZiAnZW5jb2RpbmcnIHdoZW4gdGhpcyBmaWxlIHdhcyB3cml0dGVuXG4iCiBtc2dzdHIgIiMgpLOkzqXVpaGlpKXrpKy98aSrpOykv7v+pM4gJ2VuY29kaW5nJyCkzsPNXG4iCiAKQEAgLTgxMCw2ICs4MzAsMjAgQEAKICJcIiVzXCIgpMukzyAncmVhZG9ubHknIKWqpdelt6XnpfOkrMDfxOqktaTspMakpKTepLkuXG4iCiAivuW98aSttq/AqaTypLek3qS5pKs/IgogCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlIHBlcm1pc3Npb25zIG9mIFwiJXNcIiBhcmUgcmVhZC1vbmx5LlxuIgorIkl0IG1heSBzdGlsbCBiZSBwb3NzaWJsZSB0byB3cml0ZSBpdC5cbiIKKyJEbyB5b3Ugd2lzaCB0byB0cnk/IgorbXNnc3RyICIiCisipdWloaWkpesgXCIlc1wiIKTOpdGhvKXfpcOlt6XnpfOkrMbJuf7A7M3RpMekuS5cbiIKKyKkvaTspMek4raypOmkr73xpK25/qTgpLOkyKTPssTHvaTHpLkuXG4iCisit9HCs6S3pN6kuaSrPyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNTA1OiBcIiVzXCIgaXMgcmVhZC1vbmx5IChhZGQgISB0byBvdmVycmlkZSkiCittc2dzdHIgIkU1MDU6IFwiJXNcIiCkz8bJuf7A7M3RpMekuSAotq/Aqb3xuf6ky6TPICEgpPLEybLDKSIKKwogbXNnaWQgIkVkaXQgRmlsZSIKIG1zZ3N0ciAipdWloaWkpeuk8srUvbgiCiAKQEAgLTg2NCw2ICs4OTgsNyBAQAogbXNnaWQgIlBhdHRlcm4gZm91bmQgaW4gZXZlcnkgbGluZTogJXMiCiBtc2dzdHIgIqXRpb+hvKXzpKzBtKTGpM651KTHpN+kxKSrpOqk3qS3pL86ICVzIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKICIjIExhc3QgU3Vic3RpdHV0ZSBTdHJpbmc6XG4iCkBAIC0xMjA3LDEwICsxMjQyLDEwIEBACiBtc2dpZCAiQXBwZW5kIEZpbGUiCiBtc2dzdHIgIsTJssOl1aWhpaSl6yIKIAotbXNnaWQgIkU3NDc6IENhbm5vdCBjaGFuZ2UgZGlyZWN0b3J5LCBidWZmZXIgaXMgbW9kaWZlZCAoYWRkICEgdG8gb3ZlcnJpZGUpIgorbXNnaWQgIkU3NDc6IENhbm5vdCBjaGFuZ2UgZGlyZWN0b3J5LCBidWZmZXIgaXMgbW9kaWZpZWQgKGFkZCAhIHRvIG92ZXJyaWRlKSIKIG1zZ3N0ciAiIgotIkU3NDc6IKXQpcOl1aWhpKy9pMC1pLWk7KTGpKSk66TOpMcsIKXHpaOl7KWvpcil6qTyytG5uaTHpK2k3qS7pPMgKCEgIgotIqTyxMmyw6THvuW98SkiCisiRTc0NzogpdClw6XVpaGkrL2kwLWktaTspMakpKTrpM6kxywgpcelo6Xspa+lyKXqpPLK0bm5pMekraTepLuk8yAoISCk8sTJssOkxyIKKyK+5b3xKSIKIAogbXNnaWQgIkUxODY6IE5vIHByZXZpb3VzIGRpcmVjdG9yeSIKIG1zZ3N0ciAiRTE4NjogwbCkzqXHpaOl7KWvpcil6qTPpKKk6qTepLuk8yIKQEAgLTE0NDYsNiArMTQ4MSw5IEBACiBtc2dpZCAiaXMgbm90IGEgZmlsZSIKIG1zZ3N0ciAiIKTPpdWloaWkpeukx6TPpKKk6qTepLuk8yIKIAorbXNnaWQgImlzIGEgZGV2aWNlIChkaXNhYmxlZCB3aXRoICdvcGVuZGV2aWNlJyBvcHRpb24pIgorbXNnc3RyICIgpM+lx6XQpaSluaTHpLkgKCdvcGVuZGV2aWNlJyClqqXXpbel56XzpMey88jypMekraTepLkpIgorCiBtc2dpZCAiW05ldyBGaWxlXSIKIG1zZ3N0ciAiW7+3pdWloaWkpetdIgogCkBAIC0xNDgzLDYgKzE1MjEsOSBAQAogbXNnaWQgIltzb2NrZXRdIgogbXNnc3RyICJbpb2lsaXDpchdIgogCittc2dpZCAiW2NoYXJhY3RlciBzcGVjaWFsXSIKK21zZ3N0ciAiW6WtpeOl6aWvpb+hpqXHpdClpKW5XSIKKwogbXNnaWQgIltST10iCiBtc2dzdHIgIlvGycDsXSIKIApAQCAtMTU0Myw2ICsxNTg0LDkgQEAKIG1zZ2lkICJpcyBub3QgYSBmaWxlIG9yIHdyaXRhYmxlIGRldmljZSIKIG1zZ3N0ciAipM+l1aWhpaSl66THpOK98bn+pN+yxMe9pcel0KWkpbmkx6TipKKk6qTepLuk8yIKIAorbXNnaWQgIndyaXRpbmcgdG8gZGV2aWNlIGRpc2FibGVkIHdpdGggJ29wZW5kZXZpY2UnIG9wdGlvbiIKK21zZ3N0ciAiJ29wZW5kZXZpY2UnIKWqpdelt6XnpfOky6TopOqlx6XQpaSluaTYpM698aStuf6k36TPpMekraTepLuk8yIKKwogbXNnaWQgImlzIHJlYWQtb25seSAoYWRkICEgdG8gb3ZlcnJpZGUpIgogbXNnc3RyICKkz8bJuf7A7M3RpMekuSAotq/Aqb3xuf6ky6TPICEgpPLEybLDKSIKIApAQCAtMjE1MSw2ICsyMTk1LDcgQEAKIG1zZ2lkICJObyB0ZXh0IHRvIGJlIHByaW50ZWQiCiBtc2dzdHIgIrD1uv6kuaTrpcalraW5pcikrKSipOqk3qS7pPMiCiAKKyMsIGMtZm9ybWF0CiBtc2dpZCAiUHJpbnRpbmcgcGFnZSAlZCAoJWQlJSkiCiBtc2dzdHIgIrD1uv7D5jogpdqhvKW4ICVkICglZCUlKSIKIApAQCAtMjI5MCwxNSArMjMzNSwxNSBAQAogbXNnaWQgImNzX2NyZWF0ZV9jb25uZWN0aW9uIGV4ZWMgZmFpbGVkIgogbXNnc3RyICJjc19jcmVhdGVfY29ubmVjdGlvbiCkzrzCudSky7y6x9Skt6TepLekvyIKIAotbXNnaWQgIkU2MjM6IENvdWxkIG5vdCBzcGF3biBjc2NvcGUgcHJvY2VzcyIKLW1zZ3N0ciAiRTYyMzogY3Njb3Blpdel7aW7pbmk8rWvxrCkx6StpN6ku6TzpMekt6S/IgotCiBtc2dpZCAiY3NfY3JlYXRlX2Nvbm5lY3Rpb246IGZkb3BlbiBmb3IgdG9fZnAgZmFpbGVkIgogbXNnc3RyICJjc19jcmVhdGVfY29ubmVjdGlvbjogdG9fZnAgpM4gZmRvcGVuIKTLvLrH1KS3pN6kt6S/IgogCiBtc2dpZCAiY3NfY3JlYXRlX2Nvbm5lY3Rpb246IGZkb3BlbiBmb3IgZnJfZnAgZmFpbGVkIgogbXNnc3RyICJjc19jcmVhdGVfY29ubmVjdGlvbjogZnJfZnAgpM4gZmRvcGVuIKTLvLrH1KS3pN6kt6S/IgogCittc2dpZCAiRTYyMzogQ291bGQgbm90IHNwYXduIGNzY29wZSBwcm9jZXNzIgorbXNnc3RyICJFNjIzOiBjc2NvcGWl16XtpbuluaTyta/GsKTHpK2k3qS7pPOkx6S3pL8iCisKIG1zZ2lkICJFNTY3OiBubyBjc2NvcGUgY29ubmVjdGlvbnMiCiBtc2dzdHIgIkU1Njc6IGNzY29wZcDcwrOky7y6x9Skt6TepLekvyIKIApAQCAtMjM3Myw4ICsyNDE4LDggQEAKICI/Pz86IFNvcnJ5LCB0aGlzIGNvbW1hbmQgaXMgZGlzYWJsZWQsIHRoZSBNelNjaGVtZSBsaWJyYXJ5IGNvdWxkIG5vdCBiZSAiCiAibG9hZGVkLiIKIG1zZ3N0ciAiIgotIj8/PzogpLOkzqWzpd6l86XJpM/Mtbj6pMekuSwgpLSk4aTzpMqktaSkOiBNelNjaGVtZSAiCi0ipemlpKXWpeml6qType2hvKXJpMekraTepLuk86THpLekvy4iCisiPz8/OiCks6TOpbOl3qXzpcmkz8y1uPqkx6S5LCCktKThpPOkyqS1pKQ6IE16U2NoZW1lIKXppaSl1qXppeqk8qXtobylyaTHpK2k3iIKKyKku6TzpMekt6S/LiIKIAogbXNnaWQgImludmFsaWQgZXhwcmVzc2lvbiIKIG1zZ3N0ciAizLW4+qTKvLCkx6S5IgpAQCAtMjQyNywyNSArMjQ3MiwxMiBAQAogbXNnaWQgIm5vdCBhbGxvd2VkIGluIHRoZSBWaW0gc2FuZGJveCIKIG1zZ3N0ciAipbWl86XJpdylw6Wvpbmkx6TPtfaktaTspN6ku6TzIgogCi0jLCBjLWZvcm1hdAotbXNnaWQgIkUzNzA6IENvdWxkIG5vdCBsb2FkIGxpYnJhcnkgJXMiCi1tc2dzdHIgIkUzNzA6IKXppaSl1qXppeogJXMgpPKl7aG8pcmkx6StpN6ku6TzpMekt6S/IgotCi1tc2dpZCAiU29ycnksIHRoaXMgY29tbWFuZCBpcyBkaXNhYmxlZDogdGhlIFBlcmwgbGlicmFyeSBjb3VsZCBub3QgYmUgbG9hZGVkLiIKLW1zZ3N0ciAiIgotIqSzpM6ls6XepfOlyaTPzLW4+qTHpLksIKS0pOGk86TKpLWkpDogUGVybKXppaSl1qXppeqk8qXtobylyaTHpK2k3qS7pPOkx6S3pL8uIgotCi1tc2dpZCAiRTI5OTogUGVybCBldmFsdWF0aW9uIGZvcmJpZGRlbiBpbiBzYW5kYm94IHdpdGhvdXQgdGhlIFNhZmUgbW9kdWxlIgotbXNnc3RyICIiCi0iRTI5OTogpbWl86XJpdylw6Wvpbmkx6TPIFNhZmUgIgotIqXipbil5aG8peuk8rvIzdGkt6TKpKRQZXJspbmlr6XqpdelyKTPttikuKTppOykxqSkpN6kuSIKLQogbXNnaWQgIiIKICJFMjYzOiBTb3JyeSwgdGhpcyBjb21tYW5kIGlzIGRpc2FibGVkLCB0aGUgUHl0aG9uIGxpYnJhcnkgY291bGQgbm90IGJlICIKICJsb2FkZWQuIgogbXNnc3RyICIiCi0iRTI2MzogpLOkzqWzpd6l86XJpM/Mtbj6pMekuSyktKThpPOkyqS1pKQ6ICIKLSJQeXRob26l6aWkpdal6aXqpPKl7aG8pcmkx6StpN6ku6TzpMekt6S/LiIKKyJFMjYzOiCks6TOpbOl3qXzpcmkz8y1uPqkx6S5LKS0pOGk86TKpLWkpDogUHl0aG9upemlpKXWpeml6qType2hvKXJpMekraTepLuk8yIKKyKkx6S3pL8uIgogCiAjIEFkZGVkIGF0IDA3LUZlYi0yMDA0LgogbXNnaWQgIkU2NTk6IENhbm5vdCBpbnZva2UgUHl0aG9uIHJlY3Vyc2l2ZWx5IgpAQCAtMjUxMiwxMSArMjU0NCwxMSBAQAogbXNnaWQgIiIKICJFMjY2OiBTb3JyeSwgdGhpcyBjb21tYW5kIGlzIGRpc2FibGVkLCB0aGUgUnVieSBsaWJyYXJ5IGNvdWxkIG5vdCBiZSBsb2FkZWQuIgogbXNnc3RyICIiCi0iRTI2NjogpLOkzqWzpd6l86XJpM/Mtbj6pMekuSyktKThpPOkyqS1pKQ6ICIKLSJSdWJ5pemlpKXWpeml6qType2hvKXJpMekraTepLuk86THpLekvy4iCisiRTI2NjogpLOkzqWzpd6l86XJpM/Mtbj6pMekuSyktKThpPOkyqS1pKQ6IFJ1Ynml6aWkpdal6aXqpPKl7aG8pcmkx6StpN6ku6TzpMciCisipLekvy4iCiAKIG1zZ2lkICJFMjY3OiB1bmV4cGVjdGVkIHJldHVybiIKLW1zZ3N0ciAiRTI2NTogzb20/KS7pMwgcmV0dXJuIKTHpLkiCittc2dzdHIgIkUyNjc6IM29tPyku6TMIHJldHVybiCkx6S5IgogCiBtc2dpZCAiRTI2ODogdW5leHBlY3RlZCBuZXh0IgogbXNnc3RyICJFMjY4OiDNvbT8pLukzCBuZXh0IKTHpLkiCkBAIC0yNTk1LDggKzI2MjcsOCBAQAogIkNhbm5vdCBjb25uZWN0IHRvIFNOaUZGKy4gQ2hlY2sgZW52aXJvbm1lbnQgKHNuaWZmZW1hY3MgbXVzdCBiZSBmb3VuZCBpbiAiCiAiJFBBVEgpLlxuIgogbXNnc3RyICIiCi0iU05pRkYrpMvA3MKzpMekraTepLuk8y4gtMS2raTypcGlp6XDpa+kt6TGpK+kwKS1pKQoc25pZmZlbWFjcyCkrCAkUEFUSCAiCi0ipMukyqSxpOyk0KTKpOqk3qS7pPMpLlxuIgorIlNOaUZGK6TLwNzCs6THpK2k3qS7pPMuILTEtq2k8qXBpaelw6WvpLekxqSvpMCktaSkKHNuaWZmZW1hY3MgpKwgJFBBVEggpMukyqSxIgorIqTspNCkyqTqpN6ku6TzKS5cbiIKIAogbXNnaWQgIkUyNzQ6IFNuaWZmOiBFcnJvciBkdXJpbmcgcmVhZC4gRGlzY29ubmVjdGVkIgogbXNnc3RyICJFMjc0OiBTbmlmZjogxsm5/sPmpMulqKXpobykrMivwLikt6TepLekvy4gwNrDx6S3pN6kt6S/IgpAQCAtMjY2MCw4ICsyNjkyLDggQEAKIAogbXNnaWQgImNhbm5vdCBjcmVhdGUgYnVmZmVyL3dpbmRvdyBjb21tYW5kOiBvYmplY3QgaXMgYmVpbmcgZGVsZXRlZCIKIG1zZ3N0ciAiIgotIqXQpcOl1aWhL6WmpaOl86XJpaa67sCupbOl3qXzpcmk8rruwK6kx6StpN6ku6TzOiAiCi0ipaql1qW4paelr6XIpKy+w7XupLWk7KTGpKSk3qS3pL8iCisipdClw6XVpaEvpaalo6XzpcmlprruwK6ls6XepfOlyaTyuu7ArqTHpK2k3qS7pPM6IKWqpdaluKWnpa+lyKSsvsO17qS1pOykxqSkpN4iCisipLekvyIKIAogbXNnaWQgIiIKICJjYW5ub3QgcmVnaXN0ZXIgY2FsbGJhY2sgY29tbWFuZDogYnVmZmVyL3dpbmRvdyBpcyBhbHJlYWR5IGJlaW5nIGRlbGV0ZWQiCkBAIC0yNjcwLDI3ICsyNzAyLDI3IEBACiAKICMuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gIEZhbW91cyBsYXN0IHdvcmQ/CiBtc2dpZCAiIgotIkUyODA6IFRDTCBGQVRBTCBFUlJPUjogcmVmbGlzdCBjb3JydXB0IT8gUGxlYXNlIHJlcG9ydCB0aGlzIHRvICIKLSJ2aW0tZGV2QHZpbS5vcmciCisiRTI4MDogVENMIEZBVEFMIEVSUk9SOiByZWZsaXN0IGNvcnJ1cHQhPyBQbGVhc2UgcmVwb3J0IHRoaXMgdG8gdmltLWRldkB2aW0uIgorIm9yZyIKIG1zZ3N0ciAiIgogIkUyODA6IFRDTCDD18y/xaqlqKXpobw6IHJlZmxpc3QgsfjA9yE/IHZpbS1kZXZAdmltLm9yZyCky8rzufCkt6TGpK+kwKS1pKQiCiAKIG1zZ2lkICJjYW5ub3QgcmVnaXN0ZXIgY2FsbGJhY2sgY29tbWFuZDogYnVmZmVyL3dpbmRvdyByZWZlcmVuY2Ugbm90IGZvdW5kIgogbXNnc3RyICIiCi0ipbOhvKXrpdClw6WvpbOl3qXzpcmk8sXQz7+kx6StpN6ku6TzOiAiCi0ipdClw6XVpaEvpaalo6XzpcmlpqTOu7K+yKSspN+kxKSrpOqk3qS7pPMiCisipbOhvKXrpdClw6WvpbOl3qXzpcmk8sXQz7+kx6StpN6ku6TzOiCl0KXDpdWloS+lpqWjpfOlyaWmpM67sr7IpKyk36TEpKuk6qTepLsiCisipPMiCiAKIG1zZ2lkICIiCiAiRTU3MTogU29ycnksIHRoaXMgY29tbWFuZCBpcyBkaXNhYmxlZDogdGhlIFRjbCBsaWJyYXJ5IGNvdWxkIG5vdCBiZSBsb2FkZWQuIgogbXNnc3RyICIiCi0iRTU3MTogpLOkzqWzpd6l86XJpM/Mtbj6pMekuSyktKThpPOkyqS1pKQ6ICIKLSJUY2yl6aWkpdal6aXqpPKl7aG8pcmkx6StpN6ku6TzpMekt6S/LiIKKyJFNTcxOiCks6TOpbOl3qXzpcmkz8y1uPqkx6S5LKS0pOGk86TKpLWkpDogVGNspemlpKXWpeml6qType2hvKXJpMekraTepLuk86THIgorIqS3pL8uIgogCiBtc2dpZCAiIgogIkUyODE6IFRDTCBFUlJPUjogZXhpdCBjb2RlIGlzIG5vdCBpbnQhPyBQbGVhc2UgcmVwb3J0IHRoaXMgdG8gdmltLWRldkB2aW0ub3JnIgogbXNnc3RyICIiCi0iRTI4MTogVENMIKWopemhvDogvarOu6WzobylyaSswLC/9MPNpMekz6SipOqk3qS7pPMhPyB2aW0tZGV2QHZpbS5vcmcgIgotIqTLyvO58KS3pMakr6TApLWkpCIKKyJFMjgxOiBUQ0wgpail6aG8OiC9qs67pbOhvKXJpKzAsL/0w82kx6TPpKKk6qTepLuk8yE/IHZpbS1kZXZAdmltLm9yZyCky8rzufCktyIKKyKkxqSvpMCktaSkIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU1NzI6IGV4aXQgY29kZSAlZCIKQEAgLTI4MDEsOCArMjgzMywxMiBAQAogIlxuIgogIiAgIKTipLekr6TPOiIKIAotbXNnaWQgIndoZXJlIGNhc2UgaXMgaWdub3JlZCBwcmVwZW5kIC8gdG8gbWFrZSBmbGFnIHVwcGVyIGNhc2UiCi1tc2dzdHIgIsLnyri7+r6uyri7+qTPzLW766S1pOyk3qS5IC8gpdWl6aWwpM/C58q4u/qky6S3pMakr6TApLWkpCIKK21zZ2lkICIiCisiXG4iCisiV2hlcmUgY2FzZSBpcyBpZ25vcmVkIHByZXBlbmQgLyB0byBtYWtlIGZsYWcgdXBwZXIgY2FzZSIKK21zZ3N0ciAiIgorIlxuIgorIsLnvq7KuLv6pKzMtbvrpLWk7KTrvuy556TPwufKuLv6pMukuaTrpL+k4aTLIC8gpPLBsMPWpLekxqSvpMCktaSkIgogCiBtc2dpZCAiIgogIlxuIgpAQCAtMjg3MCw4ICsyOTA2LDggQEAKIG1zZ2lkICItTlx0XHRcdE5vdCBmdWxseSBWaSBjb21wYXRpYmxlOiAnbm9jb21wYXRpYmxlJyIKIG1zZ3N0ciAiLU5cdFx0XHRWacjzuN+0uaXiobylyTogJ25vY29tcGF0aWJsZSIKIAotbXNnaWQgIi1WW05dXHRcdFZlcmJvc2UgbGV2ZWwiCi1tc2dzdHIgIi1WW05dXHRcdFZlcmJvc2Ugpeyl2aXrIgorbXNnaWQgIi1WW05dW2ZuYW1lXVx0XHRCZSB2ZXJib3NlIFtsZXZlbCBOXSBbbG9nIG1lc3NhZ2VzIHRvIGZuYW1lXSIKK21zZ3N0ciAiLVZbTl1bZm5hbWVdXHRcdKXtpbC90M7PwN/E6iBbpeyl2aXrIE5dIFul7aWwpdWloaWkpevMviBmbmFtZV0iCiAKIG1zZ2lkICItRFx0XHRcdERlYnVnZ2luZyBtb2RlIgogbXNnc3RyICItRFx0XHRcdKXHpdClw6WwpeKhvKXJIgpAQCAtMjk3MSw4ICszMDA3LDExIEBACiAiLS1yZW1vdGUtd2FpdC1zaWxlbnQgPGZpbGVzPiAgU2FtZSwgZG9uJ3QgY29tcGxhaW4gaWYgdGhlcmUgaXMgbm8gc2VydmVyIgogbXNnc3RyICItLXJlbW90ZS13YWl0LXNpbGVudCA8ZmlsZXM+ICDGsb7lLCCltaG8pdCkrMy1pK+kxqTit9m58Mq4pPK90M7PpLekyqSkIgogCi1tc2dpZCAiLS1yZW1vdGUtdGFiIDxmaWxlcz4gIEFzIC0tcmVtb3RlIGJ1dCBvcGVuIHRhYiBwYWdlIGZvciBlYWNoIGZpbGUiCi1tc2dzdHIgIi0tcmVtb3RlLXRhYiA8ZmlsZXM+ICAtLXJlbW90ZaTHpdWloaWkpesxpMSky6TEpK0xpMSkzqW/pdal2qG8pbik8rOrpK8iCittc2dpZCAiIgorIi0tcmVtb3RlLXRhYlstd2FpdF1bLXNpbGVudF0gPGZpbGVzPiAgQXMgLS1yZW1vdGUgYnV0IHVzZSB0YWIgcGFnZSBwZXIgZmlsZSIKK21zZ3N0ciAiIgorIi0tcmVtb3RlLXRhYlstd2FpdF1bLXNpbGVudF0gPGZpbGVzPiAgLS1yZW1vdGWkx6XVpaGlpKXrMaTEpMukxKStMaTEpM6lv6XWIgorIqXaobyluKTys6ukryIKIAogbXNnaWQgIi0tcmVtb3RlLXNlbmQgPGtleXM+XHRTZW5kIDxrZXlzPiB0byBhIFZpbSBzZXJ2ZXIgYW5kIGV4aXQiCiBtc2dzdHIgIi0tcmVtb3RlLXNlbmQgPGtleXM+XHRWaW2ltaG8pdCkyyA8a2V5cz4gpPLB97+upLekxr2qzrukuaTrIgpAQCAtMzA5Nyw2ICszMTM2LDkgQEAKIG1zZ2lkICItUCA8cGFyZW50IHRpdGxlPlx0T3BlbiBWaW0gaW5zaWRlIHBhcmVudCBhcHBsaWNhdGlvbiIKIG1zZ3N0ciAiLVAgPL/GpM6lv6Wkpcil6z5cdFZpbaTyv8aloqXXpeqlsaG8pbel56XzpM7D5qTHta/GsKS5pOsiCiAKK21zZ2lkICItLXdpbmRvd2lkIDxIV05EPlx0T3BlbiBWaW0gaW5zaWRlIGFub3RoZXIgd2luMzIgd2lkZ2V0IgorbXNnc3RyICItLXdpbmRvd2lkIDxIV05EPlx0sNukyqTrV2luMzIgd2lkZ2V0pM7G4sn0pMtWaW2k8rOrpK8iCisKIG1zZ2lkICJObyBkaXNwbGF5IgogbXNnc3RyICKlx6Wjpbml16XspaSkrLirpMSkq6TqpN6ku6TzIgogCkBAIC0zMTQ5LDYgKzMxOTEsNyBAQAogIlxuIgogIsrRubkgICC51CAgICDO8yAgpcalraW5pcgiCiAKKyMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgogIiMgRmlsZSBtYXJrczpcbiIKQEAgLTMxNTcsNiArMzIwMCw3IEBACiAiIyCl1aWhpaSl66XeobylrzpcbiIKIAogIy4gV3JpdGUgdGhlIGp1bXBsaXN0IHdpdGggLScKKyMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgogIiMgSnVtcGxpc3QgKG5ld2VzdCBmaXJzdCk6XG4iCkBAIC0zMTY0LDYgKzMyMDgsNyBAQAogIlxuIgogIiMgpbil46Xzpdel6qW5pcggKL+3pLekpKTipM6krMDoKTpcbiIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCiAiIyBIaXN0b3J5IG9mIG1hcmtzIHdpdGhpbiBmaWxlcyAobmV3ZXN0IHRvIG9sZGVzdCk6XG4iCkBAIC0zMjg5LDYgKzMzMzQsOSBAQAogIixcbiIKICKk4qS3pK+kz6XVpaGlpKXrpKzCu739pLekxqSkpN6kuS4iCiAKK21zZ2lkICIgaGFzIGJlZW4gZGFtYWdlZCAocGFnZSBzaXplIGlzIHNtYWxsZXIgdGhhbiBtaW5pbXVtIHZhbHVlKS5cbiIKK21zZ3N0ciAiIKTPwru9/aS3pMakpKTepLkgKKXaobyluKW1paSluqSsuse+rsPNpPKyvLLzpMOkxqSkpN6kuSkuXG4iCisKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNpbmcgc3dhcCBmaWxlIFwiJXNcIiIKIG1zZ3N0ciAipbml76XDpdel1aWhpaSl6yBcIiVzXCIgpPK7yM3Rw+YiCkBAIC0zNjI5LDYgKzM2NzcsMTAgQEAKIG1zZ2lkICJFMzI5OiBObyBtZW51IFwiJXNcIiIKIG1zZ3N0ciAiRTMyOTogXCIlc1wiIKTIpKSkpqXhpcul5aG8pM+koqTqpN6ku6TzIgogCisjLiBPbmx5IGEgbW5lbW9uaWMgb3IgYWNjZWxlcmF0b3IgaXMgbm90IHZhbGlkLgorbXNnaWQgIkU3OTI6IEVtcHR5IG1lbnUgbmFtZSIKK21zZ3N0ciAiRTc5MjogpeGly6XlobzMvqSstvWkx6S5IgorCiBtc2dpZCAiRTMzMDogTWVudSBwYXRoIG11c3Qgbm90IGxlYWQgdG8gYSBzdWItbWVudSIKIG1zZ3N0ciAiRTMzMDogpeGly6Xlobyl0aW5pM+ltaXWpeGly6Xlobyk8sC4pLik66TZpK2kx6TPpKKk6qTepLuk8yIKIApAQCAtMzY4MCw3ICszNzMyLDcgQEAKIG1zZ3N0ciAiRTM1NDogzLW4+qTKpeyluKW5pb/MvjogJyVzJyIKIAogbXNnaWQgIk1lc3NhZ2VzIG1haW50YWluZXI6IEJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+IgotbXNnc3RyICLG/MvcuOyl4aXDpbuhvKW4y93M9S+0xr2kOiDCvLKsIMLAz7ogPGtvcm9uQHRrYS5hdHQubmUuanA+IgorbXNnc3RyICLG/MvcuOyl4aXDpbuhvKW4y93M9S+0xr2kOiDCvLKsIMLAz7ogPGtvcm9uLmthb3JpeWFAZ21haWwuY29tPiIKIAogbXNnaWQgIkludGVycnVwdDogIgogbXNnc3RyICKz5Ln+pN86ICIKQEAgLTM3NzYsNiArMzgyOCw3IEBACiBtc2dpZCAiVmltOiBGaW5pc2hlZC5cbiIKIG1zZ3N0ciAiVmltOiC9qs67pLek3qS3pL8uXG4iCiAKKyMsIGMtZm9ybWF0CiBtc2dpZCAiRVJST1I6ICIKIG1zZ3N0ciAipail6aG8OiAiCiAKQEAgLTM4MzksOCArMzg5Miw4IEBACiAiRTM0MzogSW52YWxpZCBwYXRoOiAnKipbbnVtYmVyXScgbXVzdCBiZSBhdCB0aGUgZW5kIG9mIHRoZSBwYXRoIG9yIGJlICIKICJmb2xsb3dlZCBieSAnJXMnLiIKIG1zZ3N0ciAiIgotIkUzNDM6IMy1uPqkyqXRpbmkx6S5OiAnKipbv/TDzV0nIKTPcGF0aKTOuse45aSrICclcycgIgotIqSswrOkpKTGpMqkpKTIpKSksaTepLuk8y4iCisiRTM0MzogzLW4+qTKpdGluaTHpLk6ICcqKlu/9MPNXScgpM9wYXRopM66x7jlpKsgJyVzJyCkrMKzpKSkxqTKpKSkyKSkpLGk3qS7IgorIqTzLiIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzQ0OiBDYW4ndCBmaW5kIGRpcmVjdG9yeSBcIiVzXCIgaW4gY2RwYXRoIgpAQCAtMzk4NCw2ICs0MDM3LDcgQEAKIG1zZ2lkICJJbGxlZ2FsIHJlZ2lzdGVyIG5hbWUiCiBtc2dzdHIgIsnUwLWkyqXspbiluaW/zL4iCiAKKyMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgogIiMgUmVnaXN0ZXJzOlxuIgpAQCAtNDE0MCw2ICs0MTk0LDEzIEBACiBtc2dpZCAiRTM1NTogVW5rbm93biBvcHRpb246ICVzIgogbXNnc3RyICJFMzU1OiDMpMPOpM6lqqXXpbel56XzpMekuTogJXMiCiAKKyMuIFRoZXJlJ3MgYW5vdGhlciBjaGFyYWN0ZXIgYWZ0ZXIgemVyb3Mgb3IgdGhlIHN0cmluZworIy4gKiBpcyBlbXB0eS4gIEluIGJvdGggY2FzZXMsIHdlIGFyZSB0cnlpbmcgdG8gc2V0IGEKKyMuICogbnVtIG9wdGlvbiB1c2luZyBhIHN0cmluZy4KKyMsIGMtZm9ybWF0Cittc2dpZCAiRTUyMTogTnVtYmVyIHJlcXVpcmVkOiAmJXMgPSAnJXMnIgorbXNnc3RyICJFNTIxOiC/9Lv6pKzJrM3XpMekuTogJiVzID0gJyVzJyIKKwogbXNnaWQgIiIKICJcbiIKICItLS0gVGVybWluYWwgY29kZXMgLS0tIgpAQCAtNDI3MCw2ICs0MzMxLDcgQEAKIG1zZ2lkICJWaW06IENhdWdodCBkZWFkbHkgc2lnbmFsICVzXG4iCiBtc2dzdHIgIlZpbTogw9fMv8WqpbelsKXKpesgJXMgpPK4ocPOpLek3qS3pL9cbiIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJWaW06IENhdWdodCBkZWFkbHkgc2lnbmFsXG4iCiBtc2dzdHIgIlZpbTogw9fMv8WqpbelsKXKpeuk8rihw86kt6TepLekv1xuIgogCkBAIC00MjkyLDYgKzQzNTQsMjAgQEAKIAogbXNnaWQgIiIKICJcbiIKKyJDb3VsZCBub3QgZ2V0IHNlY3VyaXR5IGNvbnRleHQgZm9yICIKK21zZ3N0ciAiIgorIlxuIgorIqW7pa2l5aXqpcalo6WzpfOlxqWtpbmlyKTyvOjGwKTHpK2k3qS7pPMgIgorCittc2dpZCAiIgorIlxuIgorIkNvdWxkIG5vdCBzZXQgc2VjdXJpdHkgY29udGV4dCBmb3IgIgorbXNnc3RyICIiCisiXG4iCisipbulraXlpeqlxqWjpbOl86XGpa2luaXIpPLA38TqpMekraTepLuk8yAiCisKK21zZ2lkICIiCisiXG4iCiAiQ2Fubm90IGV4ZWN1dGUgc2hlbGwgIgogbXNnc3RyICIiCiAiXG4iCkBAIC00Mzk5LDIxICs0NDc1LDI2IEBACiBtc2dpZCAiVmltIFdhcm5pbmciCiBtc2dzdHIgIlZpbaTOt9m58CIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJFMzcyOiBUb28gbWFueSAlJSVjIGluIGZvcm1hdCBzdHJpbmciCiBtc2dzdHIgIkUzNzI6IKXVpamhvKXepcOlyMq4u/rO86TLICUlJWMgpKzCv7LhpK6k3qS5IgogCisjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzM6IFVuZXhwZWN0ZWQgJSUlYyBpbiBmb3JtYXQgc3RyaW5nIgogbXNnc3RyICJFMzczOiCl1aWpobyl3qXDpcjKuLv6zvOky829tPyku6TMICUlJWMgpKykoqTqpN6kt6S/IgogCiBtc2dpZCAiRTM3NDogTWlzc2luZyBdIGluIGZvcm1hdCBzdHJpbmciCiBtc2dzdHIgIkUzNzQ6IKXVpamhvKXepcOlyMq4u/rO86TLIF0gpKykoqTqpN6ku6TzIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzU6IFVuc3VwcG9ydGVkICUlJWMgaW4gZm9ybWF0IHN0cmluZyIKIG1zZ3N0ciAiRTM3NTogpdWlqaG8pd6lw6XIyri7+s7zpMekzyAlJSVjIKTPpbWl3aG8pciktaTspN6ku6TzIgogCisjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzY6IEludmFsaWQgJSUlYyBpbiBmb3JtYXQgc3RyaW5nIHByZWZpeCIKIG1zZ3N0ciAiRTM3NjogpdWlqaG8pd6lw6XIyri7+s7zpM7BsMPWpMvMtbj6pMogJSUlYyCkrKSipOqk3qS5IgogCisjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzc6IEludmFsaWQgJSUlYyBpbiBmb3JtYXQgc3RyaW5nIgogbXNnc3RyICJFMzc3OiCl1aWpobyl3qXDpcjKuLv6zvOky8y1uPqkyiAlJSVjIKSspKKk6qTepLkiCiAKQEAgLTQ0NTksNiArNDU0MCwxMCBAQAogbXNnaWQgIkU3Nzc6IFN0cmluZyBvciBMaXN0IGV4cGVjdGVkIgogbXNnc3RyICJFNzc3OiDKuLv6zvOkq6XqpbmlyKSsyazN16THpLkiCiAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTM2OTogaW52YWxpZCBpdGVtIGluICVzJSVbXSIKK21zZ3N0ciAiRTM2OTogzLW4+qTKueDM3KTHpLk6ICVzJSVbXSIKKwogbXNnaWQgIkUzMzk6IFBhdHRlcm4gdG9vIGxvbmciCiBtc2dzdHIgIkUzMzk6IKXRpb+hvKXzpKzEubLhpK6k3qS5IgogCkBAIC00NDcyLDYgKzQ1NTcsNyBAQAogbXNnaWQgIkU1MjogVW5tYXRjaGVkIFxceigiCiBtc2dzdHIgIkU1MjogXFx6KCCkrMTgpOq556TDpMakpKTepLuk8yIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJFNTM6IFVubWF0Y2hlZCAlcyUlKCIKIG1zZ3N0ciAiRTUzOiAlcyUlKCCkrMTgpOq556TDpMakpKTepLuk8yIKIApAQCAtNDUyNCwxNyArNDYxMCwyMSBAQAogbXNnc3RyICJFNjg6IFxceiCkzrjlpMvJ1MC1pMrKuLv6pKykoqTqpN6kt6S/IgogCiAjCisjLCBjLWZvcm1hdAogbXNnaWQgIkU2OTogTWlzc2luZyBdIGFmdGVyICVzJSVbIgogbXNnc3RyICJFNjk6ICVzJSVbIKTOuOWkyyBdIKSspKKk6qTepLuk8yIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJFNzA6IEVtcHR5ICVzJSVbXSIKIG1zZ3N0ciAiRTcwOiAlcyUlW10gpKy29aTHpLkiCiAKICMKKyMsIGMtZm9ybWF0CiBtc2dpZCAiRTY3ODogSW52YWxpZCBjaGFyYWN0ZXIgYWZ0ZXIgJXMlJVtkeG91VV0iCiBtc2dzdHIgIkU2Nzg6ICVzJSVbZHhvdVVdIKTOuOWky8nUwLWkysq4u/qkrKSipOqk3qS3pL8iCiAKICMKKyMsIGMtZm9ybWF0CiBtc2dpZCAiRTcxOiBJbnZhbGlkIGNoYXJhY3RlciBhZnRlciAlcyUlIgogbXNnc3RyICJFNzE6ICVzJSUgpM645aTLydTAtaTKyri7+qSspKKk6qTepLekvyIKIApAQCAtNDc1MiwxNiArNDg0MiwxNiBAQAogIkRlZmluaW5nIENPTVBPVU5ERk9SQklERkxBRyBhZnRlciBQRlggaXRlbSBtYXkgZ2l2ZSB3cm9uZyByZXN1bHRzIGluICVzIGxpbmUgIgogIiVkIgogbXNnc3RyICIiCi0iJXMgpM4gJWQgudTM3KTOIFBGWCC54MzcpM645aTOIENPTVBPVU5ERk9SQklERkxBRyAiCi0ipM7E6rXBpM+47aTDpL+367LMpPLAuKS4pOuks6TIpKykoqTqpN6kuSIKKyIlcyCkziAlZCC51MzcpM4gUEZYILngzNykzrjlpM4gQ09NUE9VTkRGT1JCSURGTEFHIKTOxOq1waTPuO2kw6S/t+uyzKTywLikuKTrIgorIqSzpMikrKSipOqk3qS5IgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJEZWZpbmluZyBDT01QT1VORFBFUk1JVEZMQUcgYWZ0ZXIgUEZYIGl0ZW0gbWF5IGdpdmUgd3JvbmcgcmVzdWx0cyBpbiAlcyBsaW5lICIKICIlZCIKIG1zZ3N0ciAiIgotIiVzIKTOICVkILnUzNykziBQRlggueDM3KTOuOWkziBDT01QT1VORFBFUk1JVEZMQUcgIgotIqTOxOq1waTPuO2kw6S/t+uyzKTywLikuKTrpLOkyKSspKKk6qTepLkiCisiJXMgpM4gJWQgudTM3KTOIFBGWCC54MzcpM645aTOIENPTVBPVU5EUEVSTUlURkxBRyCkzsTqtcGkz7jtpMOkv7frssyk8sC4pLik6yIKKyKks6TIpKykoqTqpN6kuSIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJXcm9uZyBDT01QT1VORFdPUkRNQVggdmFsdWUgaW4gJXMgbGluZSAlZDogJXMiCkBAIC00OTIwLDYgKzUwMTAsNyBAQAogbXNnaWQgIklnbm9yZWQgJWQgd29yZHMgd2l0aCBub24tQVNDSUkgY2hhcmFjdGVycyIKIG1zZ3N0ciAiyPNBU0NJScq4u/qk8rTepOAgJWQguMSkzsOxuOyk8sy1u+ukt6TepLekvyIKIAorIywgYy1mb3JtYXQKIG1zZ2lkICJDb21wcmVzc2VkICVkIG9mICVkIG5vZGVzOyAlZCAoJWQlJSkgcmVtYWluaW5nIgogbXNnc3RyICKlzqG8pckgJWQguMQowbQgJWQguMTD5ikgpPKwtb3MpLek3qS3pL87ILvEpOogJWQgKCVkJSUpIgogCkBAIC00OTkxLDYgKzUwODIsNyBAQAogbXNnaWQgIlNvcnJ5LCBvbmx5ICVsZCBzdWdnZXN0aW9ucyIKIG1zZ3N0ciAiu8THsKTHpLmkrCwgvaTAtbj1yuSkzyAlbGQguMSkt6SrpKKk6qTepLuk8yIKIAorIy4gZm9yIHdoZW4gJ2NtZGhlaWdodCcgPiAxCiAjLiBhdm9pZCBtb3JlIHByb21wdAogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGFuZ2UgXCIlLipzXCIgdG86IgpAQCAtNTM5Niw2ICs1NDg4LDkgQEAKIG1zZ2lkICIlbGQgc2Vjb25kcyBhZ28iCiBtc2dzdHIgIiVsZCDJw7fQsuGkt6TGpKSk3qS5IgogCittc2dpZCAiRTc5MDogdW5kb2pvaW4gaXMgbm90IGFsbG93ZWQgYWZ0ZXIgdW5kbyIKK21zZ3N0ciAiRTc5MDogdW5kbyCkzsS+uOWkyyB1bmRvam9pbiCkz6THpK2k3qS7pPMiCisKIG1zZ2lkICJFNDM5OiB1bmRvIGxpc3QgY29ycnVwdCIKIG1zZ3N0ciAiRTQzOTogpaKl86XJpaWl6qW5pcikrLL1pOykxqSkpN6kuSIKIApAQCAtNTQxMiw2ICs1NTA3LDEzIEBACiAKIG1zZ2lkICIiCiAiXG4iCisiTVMtV2luZG93cyA2NCBiaXQgR1VJIHZlcnNpb24iCittc2dzdHIgIiIKKyJcbiIKKyJNUy1XaW5kb3dzIDY0IKXTpcOlyCBHVUkgyMciCisKK21zZ2lkICIiCisiXG4iCiAiTVMtV2luZG93cyAzMiBiaXQgR1VJIHZlcnNpb24iCiBtc2dzdHIgIiIKICJcbiIKQEAgLTU3MjcsNiArNTgyOSwxOSBAQAogbXNnaWQgIkU0NDc6IENhbid0IGZpbmQgZmlsZSBcIiVzXCIgaW4gcGF0aCIKIG1zZ3N0ciAiRTQ0NzogcGF0aKTLpM8gXCIlc1wiIKTIpKSkpqXVpaGlpKXrpKykoqTqpN6ku6TzIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIkUzNzA6IENvdWxkIG5vdCBsb2FkIGxpYnJhcnkgJXMiCittc2dzdHIgIkUzNzA6IKXppaSl1qXppeogJXMgpPKl7aG8pcmkx6StpN6ku6TzpMekt6S/IgorCittc2dpZCAiU29ycnksIHRoaXMgY29tbWFuZCBpcyBkaXNhYmxlZDogdGhlIFBlcmwgbGlicmFyeSBjb3VsZCBub3QgYmUgbG9hZGVkLiIKK21zZ3N0ciAiIgorIqSzpM6ls6XepfOlyaTPzLW4+qTHpLksIKS0pOGk86TKpLWkpDogUGVybKXppaSl1qXppeqk8qXtobylyaTHpK2k3qS7pPOkx6S3pL8uIgorCittc2dpZCAiRTI5OTogUGVybCBldmFsdWF0aW9uIGZvcmJpZGRlbiBpbiBzYW5kYm94IHdpdGhvdXQgdGhlIFNhZmUgbW9kdWxlIgorbXNnc3RyICIiCisiRTI5OTogpbWl86XJpdylw6Wvpbmkx6TPIFNhZmUgpeKluKXlobyl66Tyu8jN0aS3pMqkpFBlcmyluaWvpeql16XIpM+22KS4pOmk7CIKKyKkxqSkpN6kuSIKKwogbXNnaWQgIkVkaXQgd2l0aCAmbXVsdGlwbGUgVmltcyIKIG1zZ3N0ciAiyqO/9KTOVmltpMfK1L24pLmk6yAoJk0pIgogCkBAIC01NzM5LDYgKzU4NTQsNyBAQAogbXNnaWQgIkVkaXQgd2l0aCAmVmltIgogbXNnc3RyICJWaW2kx8rUvbikuaTrICgmVikiCiAKKyMuIE5vdyBjb25jYXRlbmF0ZQogbXNnaWQgIkVkaXQgd2l0aCBleGlzdGluZyBWaW0gLSAiCiBtc2dzdHIgIrT7wrikzlZpbaTHytS9uKS5pOsgLSAiCiAKQEAgLTU5OTQsOCArNjExMCw4IEBACiBtc2dzdHIgIkU0Njogxsm86MDszdHK0b/0IFwiJXNcIiCky6TPw82k8sDfxOqkx6StpN6ku6TzIgogCiAjLCBjLWZvcm1hdAotbXNnaWQgIkU0NjogQ2Fubm90IHNldCB2YXJpYWJsZSBpbiB0aGUgc2FuZGJveDogXCIlc1wiIgotbXNnc3RyICJFNDY6IKW1pfOlyaXcpcOlr6W5pMekz8rRv/QgXCIlc1wiIKTLw82k8sDfxOqkx6StpN6ku6TzIgorbXNnaWQgIkU3OTQ6IENhbm5vdCBzZXQgdmFyaWFibGUgaW4gdGhlIHNhbmRib3g6IFwiJXNcIiIKK21zZ3N0ciAiRTc5NDogpbWl86XJpdylw6Wvpbmkx6TPytG/9CBcIiVzXCIgpMvDzaTywN/E6qTHpK2k3qS7pPMiCiAKIG1zZ2lkICJFNDc6IEVycm9yIHdoaWxlIHJlYWRpbmcgZXJyb3JmaWxlIgogbXNnc3RyICJFNDc6IKWopemhvKXVpaGlpKXrpM7Gybn+w+aky6WopemhvKSsyK/AuKS3pN6kt6S/IgpAQCAtNjA3OSw3ICs2MTk1LDYgQEAKIG1zZ2lkICJFNzQ5OiBlbXB0eSBidWZmZXIiCiBtc2dzdHIgIkU3NDk6IKXQpcOl1aWhpKy29aTHpLkiCiAKLSMKIG1zZ2lkICJFNjgyOiBJbnZhbGlkIHNlYXJjaCBwYXR0ZXJuIG9yIGRlbGltaXRlciIKIG1zZ3N0ciAiRTY4MjoguKG696XRpb+hvKXzpKu26MDapOq1rbnmpKzJ1MC1pMekuSIKIApkaWZmIC0tZ2l0IGEvc3JjL3BvL3BsLlVURi04LnBvIGIvc3JjL3BvL3BsLlVURi04LnBvCmluZGV4IDc1MjcwY2EuLmUxM2M4NTUgMTAwNjQ0Ci0tLSBhL3NyYy9wby9wbC5VVEYtOC5wbworKysgYi9zcmMvcG8vcGwuVVRGLTgucG8KQEAgLTczLDcgKzczLDcgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFODk6IE5vIHdyaXRlIHNpbmNlIGxhc3QgY2hhbmdlIGZvciBidWZmZXIgJWxkIChhZGQgISB0byBvdmVycmlkZSkiCi1tc2dzdHIgIkU4OSBOaWUgemFwaXNhbm8gem1pYW4gdyBidWZvcnplICVsZCAod3ltdcWbIHByemV6ICEpIgorbXNnc3RyICJFODk6IE5pZSB6YXBpc2FubyB6bWlhbiB3IGJ1Zm9yemUgJWxkICh3eW11xZsgcHJ6ZXogISkiCiAKIG1zZ2lkICJFOTA6IENhbm5vdCB1bmxvYWQgbGFzdCBidWZmZXIiCiBtc2dzdHIgIkU5MDogTmllIG1vZ8SZIHd5xYJhZG93YcSHIG9zdGF0bmllZ28gYnVmb3JhIgpAQCAtMzM5LDcgKzMzOSw3IEBACiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTY4NjogQXJndW1lbnQgb2YgJXMgbXVzdCBiZSBhIExpc3QiCi1tc2dzdHIgIkU0ODc6IEFyZ3VtZW50ICVzIG11c2kgYnnEhyBMaXN0xIUiCittc2dzdHIgIkU2ODY6IEFyZ3VtZW50ICVzIG11c2kgYnnEhyBMaXN0xIUiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTcxMjogQXJndW1lbnQgb2YgJXMgbXVzdCBiZSBhIExpc3Qgb3IgRGljdGlvbmFyeSIKQEAgLTM4NSw3ICszODUsNyBAQAogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU0NjE6IElsbGVnYWwgdmFyaWFibGUgbmFtZTogJXMiCi1tc2dzdHIgIkU0MTg6IE5pZWRvendvbG9uYSBuYXp3YSB6bWllbm5lajogJXMiCittc2dzdHIgIkU0NjE6IE5pZWRvendvbG9uYSBuYXp3YSB6bWllbm5lajogJXMiCiAKIG1zZ2lkICJFNjg3OiBMZXNzIHRhcmdldHMgdGhhbiBMaXN0IGl0ZW1zIgogbXNnc3RyICJFNjg3OiBNbmllaiBjZWzDs3cgbmnFvCBlbGVtZW50w7N3IExpc3R5IgpAQCAtMTA2NCw3ICsxMDY0LDcgQEAKIG1zZ3N0ciAiRTE1NjogQnJhayBuYXp3eSB6bmFrdSIKIAogbXNnaWQgIkU2MTI6IFRvbyBtYW55IHNpZ25zIGRlZmluZWQiCi1tc2dzdHIgIkUyNTU6IFpieXQgd2llbGUgbmF6dyB6bmFrw7N3IgorbXNnc3RyICJFNjEyOiBaYnl0IHdpZWxlIG5hencgem5ha8OzdyIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjM5OiBJbnZhbGlkIHNpZ24gdGV4dDogJXMiCkBAIC0xMjI4LDcgKzEyMjgsNyBAQAogbXNnaWQgIkFwcGVuZCBGaWxlIgogbXNnc3RyICJEb8WCxIVjeiBwbGlrIgogCi1tc2dpZCAiRTc0NzogQ2Fubm90IGNoYW5nZSBkaXJlY3RvcnksIGJ1ZmZlciBpcyBtb2RpZmVkIChhZGQgISB0byBvdmVycmlkZSkiCittc2dpZCAiRTc0NzogQ2Fubm90IGNoYW5nZSBkaXJlY3RvcnksIGJ1ZmZlciBpcyBtb2RpZmllZCAoYWRkICEgdG8gb3ZlcnJpZGUpIgogbXNnc3RyICIiCiAiRTc0NzogTmllIG1vZ8SZIHptaWVuacSHIGthdGFsb2d1LCBidWZvciB6b3N0YcWCIHptb2R5Zmlrb3dhbnkgKGRvZGFqICEgYWJ5ICIKICJ3eW11c2nEhykiCkBAIC0xNDY1LDggKzE0NjUsOCBAQAogbXNnaWQgImlzIG5vdCBhIGZpbGUiCiBtc2dzdHIgIm5pZSBqZXN0IHBsaWtpZW0iCiAKLW1zZ2lkICJpcyBhIGRldmljZSAoZGlzYWJsZWQgd2l0aCAnb3BlbmRldmljZScgb3B0aW9uIgotbXNnc3RyICJqZXN0IHVyesSFZHplbmllbSAod3nFgsSFY3pvbnltIHcgb3BjamkgJ29wZW5kZXZpY2UnIgorbXNnaWQgImlzIGEgZGV2aWNlIChkaXNhYmxlZCB3aXRoICdvcGVuZGV2aWNlJyBvcHRpb24pIgorbXNnc3RyICJqZXN0IHVyesSFZHplbmllbSAod3nFgsSFY3pvbnltIHcgb3BjamkgJ29wZW5kZXZpY2UnKSIKIAogbXNnaWQgIltOZXcgRmlsZV0iCiBtc2dzdHIgIltOb3d5IFBsaWtdIgpAQCAtMjUyMyw4ICsyNTIzLDcgQEAKIG1zZ3N0ciAiRTI2NTogJF8gbXVzaSBiecSHIHJlcHJlemVudGFjasSFIMWBYcWEY3VjaGEiCiAKIG1zZ2lkICJFMjY2OiBTb3JyeSwgdGhpcyBjb21tYW5kIGlzIGRpc2FibGVkLCB0aGUgUnVieSBsaWJyYXJ5IGNvdWxkIG5vdCBiZSBsb2FkZWQuIgotbXNnc3RyICIiCi0iRTI2MzogUHJ6eWtybyBtaSwgdGEga29tZW5kYSBqZXN0IHd5xYLEhWN6b25hLCBibyBuaWUgbW/FvG5hIHphxYJhZG93YcSHICIKK21zZ3N0ciAiRTI2NjogUHJ6eWtybyBtaSwgdGEga29tZW5kYSBqZXN0IHd5xYLEhWN6b25hLCBibyBuaWUgbW/FvG5hIHphxYJhZG93YcSHICIKICJiaWJsaW90ZWtpIFJ1YnkuIgogCiBtc2dpZCAiRTI2NzogdW5leHBlY3RlZCByZXR1cm4iCkBAIC0yNjkyLDcgKzI2OTEsNyBAQAogImJ1Zm9yYS9va25hIgogCiBtc2dpZCAiRTU3MTogU29ycnksIHRoaXMgY29tbWFuZCBpcyBkaXNhYmxlZDogdGhlIFRjbCBsaWJyYXJ5IGNvdWxkIG5vdCBiZSBsb2FkZWQuIgotbXNnc3RyICJQcnp5a3JvIG1pLCB0YSBrb21lbmRhIGplc3Qgd3nFgsSFY3pvbmEsIGJvIG5pZSBtb8W8bmEgemHFgmFkb3dhxIcgYmlibGlvdGVraSBUY2wuIgorbXNnc3RyICJFNTcxOiBQcnp5a3JvIG1pLCB0YSBrb21lbmRhIGplc3Qgd3nFgsSFY3pvbmEsIGJvIG5pZSBtb8W8bmEgemHFgmFkb3dhxIcgYmlibGlvdGVraSBUY2wuIgogCiBtc2dpZCAiRTI4MTogVENMIEVSUk9SOiBleGl0IGNvZGUgaXMgbm90IGludCE/IFBsZWFzZSByZXBvcnQgdGhpcyB0byB2aW0tZGV2QHZpbS5vcmciCiBtc2dzdHIgIiIKQEAgLTM4NDMsNyArMzg0Miw3IEBACiBtc2dzdHIgIkU1NDg6IG9jemVraXdhbm8gY3lmcnkiCiAKIG1zZ2lkICJFNTQ5OiBJbGxlZ2FsIHBlcmNlbnRhZ2UiCi1tc2dzdHIgIkU0NTk6IE5pZWRvendvbG9ueSBwcm9jZW50IgorbXNnc3RyICJFNTQ5OiBOaWVkb3p3b2xvbnkgcHJvY2VudCIKIAogbXNnaWQgIkVudGVyIGVuY3J5cHRpb24ga2V5OiAiCiBtc2dzdHIgIldwcm93YWTFuiBrbHVjeiBkbyBvZGtvZG93YW5pYTogIgpkaWZmIC0tZ2l0IGEvc3JjL3BvL3NrLnBvIGIvc3JjL3BvL3NrLnBvCmluZGV4IDNjNjdiMzIuLjhkNjJkM2IgMTAwNjQ0Ci0tLSBhL3NyYy9wby9zay5wbworKysgYi9zcmMvcG8vc2sucG8KQEAgLTM0Niw3ICszNDYsNyBAQAogbXNnc3RyICJFNzE2OiBrtfroIHNhIHYgU2xvdm7ta3UgKERpY3Rpb25hcnkpIG5lbmFjaOFkemE6ICVzIgogCiBtc2dpZCAiRTEyMjogRnVuY3Rpb24gJXMgYWxyZWFkeSBleGlzdHMsIGFkZCAhIHRvIHJlcGxhY2UgaXQiCi1tc2dzdHIgIkUxMTI6IEZ1bmtjaWEgJXMgdb4gZXhpc3R1amUuIFBvdb5pdGUgISBwcmUgamVqIG5haHJhZGVuaWUuIgorbXNnc3RyICJFMTIyOiBGdW5rY2lhICVzIHW+IGV4aXN0dWplLiBQb3W+aXRlICEgcHJlIGplaiBuYWhyYWRlbmllLiIKIAogbXNnaWQgIkU3MTc6IERpY3Rpb25hcnkgZW50cnkgYWxyZWFkeSBleGlzdHMiCiBtc2dzdHIgIkU3MTc6IFrhem5hbSB2IFNsb3Zu7Wt1IChEaWN0aW9uYXJ5KSB1viBleGlzdHVqZSIKQEAgLTUyNyw3ICs1MjcsNyBAQAogbXNnc3RyICJFMjQxOiBOZW30vmVtIHBvc2xhuyBuYSAlcyIKIAogbXNnaWQgIkUyNzc6IFVuYWJsZSB0byByZWFkIGEgc2VydmVyIHJlcGx5IgotbXNnc3RyICJFMjI3OiBOZW30vmVtIOjtdGG7IG9kcG92Ze8gc2VydnJhIgorbXNnc3RyICJFMjc3OiBOZW30vmVtIOjtdGG7IG9kcG92Ze8gc2VydnJhIgogCiBtc2dpZCAiRTY1NTogVG9vIG1hbnkgc3ltYm9saWMgbGlua3MgKGN5Y2xlPykiCiBtc2dzdHIgIkU2NTU6IFBy7WxpuSBtbm9obyBzeW1ib2xpY2v9Y2ggb2RrYXpvdiAoc2x16GthPykiCkBAIC04NjYsNyArODY2LDcgQEAKIG1zZ3N0ciAiRTE1NjogQ2j9YmEgbWVubyBwcmUgem5h6Gt1IgogCiBtc2dpZCAiRTYxMjogVG9vIG1hbnkgc2lnbnMgZGVmaW5lZCIKLW1zZ3N0ciAiRTI1NTogUHLtbGm5IG1ub2hvIGRlZmlub3Zhbv1jaCB6bmHoaWVrIgorbXNnc3RyICJFNjEyOiBQcu1sabkgbW5vaG8gZGVmaW5vdmFu/WNoIHpuYehpZWsiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTIzOTogSW52YWxpZCBzaWduIHRleHQ6ICVzIgpAQCAtMTEyOCw3ICsxMTI4LDcgQEAKIG1zZ2lkICJBcHBlbmQgRmlsZSIKIG1zZ3N0ciAiUHJpcG9qabsgc/pib3IiCiAKLW1zZ2lkICJFNzQ3OiBDYW5ub3QgY2hhbmdlIGRpcmVjdG9yeSwgYnVmZmVyIGlzIG1vZGlmZWQgKGFkZCAhIHRvIG92ZXJyaWRlKSIKK21zZ2lkICJFNzQ3OiBDYW5ub3QgY2hhbmdlIGRpcmVjdG9yeSwgYnVmZmVyIGlzIG1vZGlmaWVkIChhZGQgISB0byBvdmVycmlkZSkiCiBtc2dzdHIgIkU3NDc6IE5lbW++bm8gem1lbmm7IGFkcmVz4XIsIGJ1ZmZlciBqZSBtb2RpZmlrb3Zhbv0gKHBvdb5pdGUgISBwcmUgdnlu+nRlbmllKSIKIAogbXNnaWQgIkUxODY6IE5vIHByZXZpb3VzIGRpcmVjdG9yeSIKQEAgLTEyNjAsMTMgKzEyNjAsMTMgQEAKIG1zZ3N0ciAiRTU3OTogdm5vcmVuaWUgOmlmIGplIHBy7WxpuSBobGJva+kiCiAKIG1zZ2lkICJFNTgwOiA6ZW5kaWYgd2l0aG91dCA6aWYiCi1tc2dzdHIgIkU1ODAgOmVuZGlmIGJleiB6b2Rwb3ZlZGFq+mNlaG8gOmlmIgorbXNnc3RyICJFNTgwOiA6ZW5kaWYgYmV6IHpvZHBvdmVkYWr6Y2VobyA6aWYiCiAKIG1zZ2lkICJFNTgxOiA6ZWxzZSB3aXRob3V0IDppZiIKLW1zZ3N0ciAiRTU4MSA6ZWxzZSBiZXogem9kcG92ZWRhavpjZWhvIDppZiIKK21zZ3N0ciAiRTU4MTogOmVsc2UgYmV6IHpvZHBvdmVkYWr6Y2VobyA6aWYiCiAKIG1zZ2lkICJFNTgyOiA6ZWxzZWlmIHdpdGhvdXQgOmlmIgotbXNnc3RyICJFNTgyIDplbHNlaWYgYmV6IHpvZHBvdmVkYWr6Y2VobyA6aWYiCittc2dzdHIgIkU1ODI6IDplbHNlaWYgYmV6IHpvZHBvdmVkYWr6Y2VobyA6aWYiCiAKIG1zZ2lkICJFNTgzOiBtdWx0aXBsZSA6ZWxzZSIKIG1zZ3N0ciAiRTU4MzogdmlhY27hc29ibukgOmVsc2UiCmRpZmYgLS1naXQgYS9zcmMvcG8vdmkucG8gYi9zcmMvcG8vdmkucG8KaW5kZXggNWJjOWY1My4uZjFiZmIzMSAxMDA2NDQKLS0tIGEvc3JjL3BvL3ZpLnBvCisrKyBiL3NyYy9wby92aS5wbwpAQCAtMjc3OSw3ICsyNzc5LDcgQEAKIG1zZ3N0ciAiRTI5NjogTOG7l2kgdMOsbSBraeG6v20ga2hpIGdoaSBuaOG7myB04bqtcCB0aW4gdHJhbyDEkeG7lWkgKHN3YXApIgogCiBtc2dpZCAiRTI5NzogV3JpdGUgZXJyb3IgaW4gc3dhcCBmaWxlIgotbXNnc3RyICJFMjk1OiBM4buXaSBnaGkgbmjhu5sgdOG6rXAgdGluIHRyYW8gxJHhu5VpIChzd2FwKSIKK21zZ3N0ciAiRTI5NzogTOG7l2kgZ2hpIG5o4bubIHThuq1wIHRpbiB0cmFvIMSR4buVaSAoc3dhcCkiCiAKIG1zZ2lkICJFMzAwOiBTd2FwIGZpbGUgYWxyZWFkeSBleGlzdHMgKHN5bWxpbmsgYXR0YWNrPykiCiBtc2dzdHIgIiIKQEAgLTM3NzIsNyArMzc3Miw3IEBACiBtc2dzdHIgIlTDuXkgY2jhu41uICdjb2x1bW5zJyBraMOhYyA4MCwgY2jGsMahbmcgdHLDrG5oIG5nb+G6oWkgdHLDuiBraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiIKIAogbXNnaWQgIkUyMzc6IFByaW50ZXIgc2VsZWN0aW9uIGZhaWxlZCIKLW1zZ3N0ciAiRTMyNzogQ2jhu41uIG3DoXkgaW4ga2jDtG5nIHRow6BuaCBjw7RuZyIKK21zZ3N0ciAiRTIzNzogQ2jhu41uIG3DoXkgaW4ga2jDtG5nIHRow6BuaCBjw7RuZyIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0byAlcyBvbiAlcyIKZGlmZiAtLWdpdCBhL3NyYy9wby96aF9DTi5VVEYtOC5wbyBiL3NyYy9wby96aF9DTi5VVEYtOC5wbwppbmRleCBjYjUxNmU2Li4wMTgyMzE4IDEwMDY0NAotLS0gYS9zcmMvcG8vemhfQ04uVVRGLTgucG8KKysrIGIvc3JjL3BvL3poX0NOLlVURi04LnBvCkBAIC0xMjA3LDcgKzEyMDcsNyBAQAogbXNnaWQgIkFwcGVuZCBGaWxlIgogbXNnc3RyICLov73liqDmlofku7YiCiAKLW1zZ2lkICJFNzQ3OiBDYW5ub3QgY2hhbmdlIGRpcmVjdG9yeSwgYnVmZmVyIGlzIG1vZGlmZWQgKGFkZCAhIHRvIG92ZXJyaWRlKSIKK21zZ2lkICJFNzQ3OiBDYW5ub3QgY2hhbmdlIGRpcmVjdG9yeSwgYnVmZmVyIGlzIG1vZGlmaWVkIChhZGQgISB0byBvdmVycmlkZSkiCiBtc2dzdHIgIkU3NDc6IOS4jeiDveaUueWPmOebruW9le+8jOe8k+WGsuWMuuW3suS/ruaUuSAo6K+35YqgICEg5by65Yi25omn6KGMKSIKIAogbXNnaWQgIkUxODY6IE5vIHByZXZpb3VzIGRpcmVjdG9yeSIKZGlmZiAtLWdpdCBhL3NyYy9wby96aF9UVy5VVEYtOC5wbyBiL3NyYy9wby96aF9UVy5VVEYtOC5wbwppbmRleCBiNDI2MGI0Li4zZWYwNThkIDEwMDY0NAotLS0gYS9zcmMvcG8vemhfVFcuVVRGLTgucG8KKysrIGIvc3JjL3BvL3poX1RXLlVURi04LnBvCkBAIC03MDUsNyArNzA1LDcgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFNjYxOiBTb3JyeSwgbm8gJyVzJyBoZWxwIGZvciAlcyIKLW1zZ3N0ciAiRTE0OTog5oqx5q2JLCDmspLmnInpl5zmlrwgJXMtJXMg55qE6Kqq5piOIgorbXNnc3RyICJFNjYxOiDmirHmrYksIOaykuaciemXnOaWvCAlcy0lcyDnmoToqqrmmI4iCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTE0OTogU29ycnksIG5vIGhlbHAgZm9yICVzIgpAQCAtMTY4NCw3ICsxNjg0LDcgQEAKIG1zZ3N0ciAiRTIzMTog5LiN5q2j56K655qEICdndWlmb250d2lkZSciCiAKIG1zZ2lkICJFNTk5OiBWYWx1ZSBvZiAnaW1hY3RpdmF0ZWtleScgaXMgaW52YWxpZCIKLW1zZ3N0ciAiRTU1OTogJ2ltYWN0aXZhdGVrZXknIOeahOWAvOS4jeato+eiuiIKK21zZ3N0ciAiRTU5OTogJ2ltYWN0aXZhdGVrZXknIOeahOWAvOS4jeato+eiuiIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjU0OiBDYW5ub3QgYWxsb2NhdGUgY29sb3IgJXMiCkBAIC00MDExLDcgKzQwMTEsNyBAQAogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU1NzogJXMrIG9wZXJhbmQgY291bGQgYmUgZW1wdHkiCi1tc2dzdHIgIkU1NjogJXMrIOmBi+eul+WFg+WPr+S7peaYr+epuueahCIKK21zZ3N0ciAiRTU3OiAlcysg6YGL566X5YWD5Y+v5Lul5piv56m655qEIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU1OTogaW52YWxpZCBjaGFyYWN0ZXIgYWZ0ZXIgJXNAIgpAQCAtNDkzNyw3ICs0OTM3LDcgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjM1OiBVbmtub3duIGZvbnQ6ICVzIgotbXNnc3RyICLkuI3mraPnorrnmoTlrZflnovlkI3nqLE6ICVzIgorbXNnc3RyICJFMjM1OiDkuI3mraPnorrnmoTlrZflnovlkI3nqLE6ICVzIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUyMzY6IEZvbnQgXCIlc1wiIGlzIG5vdCBmaXhlZC13aWR0aCIKZGlmZiAtLWdpdCBhL3NyYy90YWcuYyBiL3NyYy90YWcuYwppbmRleCBjMTYyOGQyLi4yOTg5M2RlIDEwMDY0NAotLS0gYS9zcmMvdGFnLmMKKysrIGIvc3JjL3RhZy5jCkBAIC0xNywxMCArMTcsNiBAQAogCiAjaW5jbHVkZSAidmltLmgiCiAKLSNpZmRlZiBIQVZFX0ZDTlRMX0gKLSMgaW5jbHVkZSA8ZmNudGwuaD4JLyogZm9yIGxzZWVrKCkgKi8KLSNlbmRpZgotCiAvKgogICogU3RydWN0dXJlIHRvIGhvbGQgcG9pbnRlcnMgdG8gdmFyaW91cyBpdGVtcyBpbiBhIHRhZyBsaW5lLgogICovCkBAIC0yNjY0LDcgKzI2NjAsNyBAQAogCSAgICAvKiBtb3ZlIHRoZSBmaWxlbmFtZSBvbmUgY2hhciBmb3J3YXJkIGFuZCB0cnVuY2F0ZSB0aGUKIAkgICAgICogZmlsZXBhdGggd2l0aCBhIE5VTCAqLwogCSAgICBmaWxlbmFtZSA9IGdldHRhaWwoYnVmKTsKLQkgICAgbWNoX21lbW1vdmUoZmlsZW5hbWUgKyAxLCBmaWxlbmFtZSwgU1RSTEVOKGZpbGVuYW1lKSArIDEpOworCSAgICBTVFJNT1ZFKGZpbGVuYW1lICsgMSwgZmlsZW5hbWUpOwogCSAgICAqZmlsZW5hbWUrKyA9IE5VTDsKIAogCSAgICB0bnAtPnRuX3NlYXJjaF9jdHggPSB2aW1fZmluZGZpbGVfaW5pdChidWYsIGZpbGVuYW1lLApAQCAtMzM5MiwxMyArMzM4OCw2IEBACiB9CiAKIC8qCi0gKiBNb3ZlcyB0aGUgdGFpbCBwYXJ0IG9mIHRoZSBwYXRoIChpbmNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIE5VTCkgcG9pbnRlZCB0bwotICogYnkgInRhaWwiIHRvIHRoZSBuZXcgbG9jYXRpb24gcG9pbnRlZCB0byBieSAiaGVyZSIuIFRoaXMgc2hvdWxkIGFjY29tb2RhdGUKLSAqIGFuIG92ZXJsYXBwaW5nIG1vdmUuCi0gKi8KLSNkZWZpbmUgbW92ZXRhaWwoaGVyZSwgdGFpbCkgIG1jaF9tZW1tb3ZlKGhlcmUsIHRhaWwsIFNUUkxFTih0YWlsKSArIChzaXplX3QpMSkKLQotLyoKICAqIENvbnZlcnRzIGEgZmlsZSBuYW1lIGludG8gYSBjYW5vbmljYWwgZm9ybS4gSXQgc2ltcGxpZmllcyBhIGZpbGUgbmFtZSBpbnRvCiAgKiBpdHMgc2ltcGxlc3QgZm9ybSBieSBzdHJpcHBpbmcgb3V0IHVubmVlZGVkIGNvbXBvbmVudHMsIGlmIGFueS4gIFRoZQogICogcmVzdWx0aW5nIGZpbGUgbmFtZSBpcyBzaW1wbGlmaWVkIGluIHBsYWNlIGFuZCB3aWxsIGVpdGhlciBiZSB0aGUgc2FtZQpAQCAtMzQ1MSw3ICszNDQwLDcgQEAKIAllbHNlCiAjZW5kaWYKIAkgIGlmICh2aW1faXNwYXRoc2VwKCpwKSkKLQkgICAgbW92ZXRhaWwocCwgcCArIDEpOwkJLyogcmVtb3ZlIGR1cGxpY2F0ZSAiLyIgKi8KKwkgICAgU1RSTU9WRShwLCBwICsgMSk7CQkvKiByZW1vdmUgZHVwbGljYXRlICIvIiAqLwogCWVsc2UgaWYgKHBbMF0gPT0gJy4nICYmICh2aW1faXNwYXRoc2VwKHBbMV0pIHx8IHBbMV0gPT0gTlVMKSkKIAl7CiAJICAgIGlmIChwID09IHN0YXJ0ICYmIHJlbGF0aXZlKQpAQCAtMzQ2OCw3ICszNDU3LDcgQEAKIAkJCW1iX3B0cl9hZHYodGFpbCk7CiAJCWVsc2UgaWYgKHAgPiBzdGFydCkKIAkJICAgIC0tcDsJCS8qIHN0cmlwIHByZWNlZGluZyBwYXRoIHNlcGFyYXRvciAqLwotCQltb3ZldGFpbChwLCB0YWlsKTsKKwkJU1RSTU9WRShwLCB0YWlsKTsKIAkgICAgfQogCX0KIAllbHNlIGlmIChwWzBdID09ICcuJyAmJiBwWzFdID09ICcuJyAmJgpAQCAtMzU4NCwxOSArMzU3MywxOSBAQAogCQkgICAgewogCQkJaWYgKHAgPiBzdGFydCAmJiB0YWlsWy0xXSA9PSAnLicpCiAJCQkgICAgLS1wOwotCQkJbW92ZXRhaWwocCwgdGFpbCk7CS8qIHN0cmlwIHByZXZpb3VzIGNvbXBvbmVudCAqLworCQkJU1RSTU9WRShwLCB0YWlsKTsJLyogc3RyaXAgcHJldmlvdXMgY29tcG9uZW50ICovCiAJCSAgICB9CiAKIAkJICAgIC0tY29tcG9uZW50czsKIAkJfQogCSAgICB9CiAJICAgIGVsc2UgaWYgKHAgPT0gc3RhcnQgJiYgIXJlbGF0aXZlKQkvKiBsZWFkaW5nICIvLi4iIG9yICIvLi4vIiAqLwotCQltb3ZldGFpbChwLCB0YWlsKTsJCS8qIHN0cmlwICIuLiIgb3IgIi4uLyIgKi8KKwkJU1RSTU9WRShwLCB0YWlsKTsJCS8qIHN0cmlwICIuLiIgb3IgIi4uLyIgKi8KIAkgICAgZWxzZQogCSAgICB7CiAJCWlmIChwID09IHN0YXJ0ICsgMiAmJiBwWy0yXSA9PSAnLicpCS8qIGxlYWRpbmcgIi4vLi4vIiAqLwogCQl7Ci0JCSAgICBtb3ZldGFpbChwIC0gMiwgcCk7CQkJLyogc3RyaXAgbGVhZGluZyAiLi8iICovCisJCSAgICBTVFJNT1ZFKHAgLSAyLCBwKTsJCQkvKiBzdHJpcCBsZWFkaW5nICIuLyIgKi8KIAkJICAgIHRhaWwgLT0gMjsKIAkJfQogCQlwID0gdGFpbDsJCS8qIHNraXAgdG8gY2hhciBhZnRlciAiLi4iIG9yICIuLi8iICovCg==